본문 바로가기

네트워크/CCNA

OSPF - Part 1 -

OSPF (Open Shortest Path First)
개방된 표준에 의거한 링크-상태 라우팅 프로토콜.
OSPF의 뛰어난 확장성은 계층적 설계에 기인한다.
관리자는 OSPF 네트워크를 여러 영역(Area)으로 나눌 수 있으며, 이는 라우팅 업데이트를 광범위하게 제어한다.
적절히 설계된 네트워크 내에 영역들을 정의함으로써 관리자는 라우팅 오버헤드르 줄이고 성능을 개선할 수 있다.


개관
링크 상태 라우터는 Neighbor 라우터로 인식하고 통신하여 네트워크 내 다른 라우터들로부터 직접 정보를 수집할 수 있다. 링크의 상태를 서로 알려주고, 라우터는 이 정보를 가공해서 링크-상태 데이터베이스를 구축한다.
 주어진 영역 내의 모든 라우터들은 동일한 링크-상태 데이터베이스를 갖고 있어야 한다. 그 다음 각 라우터는 독립적으로 최단경로우선(SPF)알고리즘을 이 데이터 베이스에 실행하여 최적 경로를 결정하고, 자신의 라우팅 테이블에 최저 비용 라우트를 추가한다


OSPF 패킷 5가지
1. Hello : 네이버 라우터들과 인접 정보를 수립하고 유지. (224.0.0.5로 멀티캐스트)
2. DBD(데이터베이스 기술 패킷) : OSPF 라우터의 링크-상태 데이터 베이스의 내용을 기술
3. LSR(링크-상태 요청) : 라우터의 링크-상태 데이터베이스의 특정 부분을 요청
4. LSU(링크-상태 업데이트) : 링크-상태 광고(LSA)를 네이버 라우터들에게 전송
5. LSA(링크-상태 수신확인) :  네이버 라우터의 LSA를 수신했음을 확인.


OSPF 7상태
1. Down 상태
    어떤 네이버 라우터와 정보 교환을 하지 않은 상태. Init 상태로 가기 위해 대기

2. Init 상태
    인터페이스가 첫 번째, Hello 패킷을 받으면  Init 상태에 들어간다.
    네이버 라우터가 다음 단계로의 관계를 얻기 위해 기다리고 있음을 라우터가 인식했다는 의미.

3. 2-way 상태
    hello 파킷을 상요해서 모든 OSPF 라우터는 같은 IP 네트워크에 있는 모든 네이버 라우터들과 2단계 상태, 즉 양방향 통신을 수립하려고 시도한다. hello 패킷에는 송신자가 알고 있는 OSPF 네이버 라우터들의 리스트가 들어 있다. 라우터가 네이버 라우터의 hello에서 자기 자신을 발견하면, 2-way 상태에 진입한다.
   
4. ExStart(실행) 상태
    기술적 관점에서 한 라우터와 그 네이버 라우터가 실행 상태에 들어설 떄 그들의 대화는 인접으로서 기술되지만, 라우터들은 아직 완전히 인접되진 않았다. 실행은 타입 2 데이터베이스 기술(DBD) 패킷(DDP라고도 함)을 사용하여 수립된다. 두 네이버 라우터들은 이 DBD 패킷들을 사용해 그드르이 관계 내에서 누가 마스터이고 누가 슬
레이브인지를 협상한다.

5. Exchange(교환) 상태
  네이터 라우터들은 타입 2 DBD 패킷을 이용하여 자신의 링크-상태 정보를 서로에게 보낸다.
  즉 자신의 링크-상태 데이터베이스를 상대방에게 설명한다. 라우터들은 새로 배운 것을 기존의 링크-상태 데이터베이스와 비교하고 기존에 없던 링크 정볼르 받으면, 완전한 업데이트를 요청하고, 이 완전한 라우팅 정보는 전송 상태에서 교환된다.

6. Loading(전송) 상태
  데이터베이트를 받은 다음에 타입 3패킷(LSR)을 사용하여 보다 완전한 정보를 요청할 수 있다. LSR을 받은 라우터는 타입-4 LSU 패킷으로 상대방에게 업데이트를 보낸다. 이 패킷에는 실제 LSA가 들어있는데, LSA가 바로 링크-상태 라우팅 프로토콜의 핵심이다.

7. Full adjacency(완전한 인접)상태
  전송이 완료되면 라우터들은 완전히 인접된다. 각 라우터는 인접 데이터베이스라는 인접한 네이버 라우터들의 리스트를 유지한다. 인접 데이터베이스를 인접-상태 데이터베이스나 전달 데이터베이스와 혼동하지 말라.


OSPF 라우터가 유지하는 중요 데이터베이스
인접 데이터베이스 : 2-way 통신을 수립한 모든 인접 라우터들의 리스트. 각 라우터마다 고유
링크-상태 데이터베이스(Topology Database)) : 네트워크 내의 모든 다른 라우터들에 관한 정보 리스트.  이 데이터베이스는 네트워크의 토폴로지를 보여준다. 한 영역(Area) 내의 모든 라우터들은 동일한 링크-상태 데이터베이스를 가진다.
전달 데이터베이스(Routing Table) : 링크-상태 데이터베이스에 어떤 알고리즘이 실행되었을 때, 생성되는 라우트들의 리스트. 각 라우터의 라우팅 테이블은 고유하며, 어떻게 그리고 어디로 패킷을 보낼지에 대한 정보를 담고있다.

라우터 ID


OSPF 연산 순서
1. 라우터 인접을 수립
2. DR과 BDR을 선출
3. 라우트들을 발견
4. 사용하기에 적절한 경로를 선택
5. 라우팅 정보를 유지

라우터 상태에 따른 패킷 전송
Exstart State : Hello
Exchange State : DBD LSAck
Loading State : LSR LSU LSAck

Non DR                                                DR
                        Hello    → 
                   ←  Hello           
                   ←  DBD
                        DBD     →
                   ←  LSAck 
                        LSR     →
                   ←  LSU
                        LSAck  →


==================================================================================

- 클래스레스 라우팅 프로토콜(Classless routing protocol)

  1) 다양한 서브넷 마스크 구간에서 동작이 가능한다.
  2) VLSM, CIDR 환경에서 동작이 가능하다.
  3) 라우팅 업데이트시 서브넷 마스크를 포함한다.
  4) 자동 요약 개념이 없다. 무조건 수동 요약 실시!! 특징! 이다

- 균등 로드 분산 (기본 4개~ 최대 6개)
- 신뢰도 : 110
- 메트릭 : Cost(거리비용) = (10^8/ bandwidth) 실시
                          = 출발지에 목적지까지 더한값


Router(config)# router ospf 1
Router(config-router)# auto-cost reference-banndwidth 10000  <<---10^10

 

  - OSPF 경로유형
1)'O' - 같은 Area 안에 있는 네트워크 정보
2)'O IA' - 다른 Area에서 업데이트된 네트워크 정보
3)'O E1/ O E2' - 다른 외부 AS 에서 업데이트된 네트워크 정보

- OSPF 동작 과정  <=  Link-State 알고리즘 사용 (ISIS)

1) 상호 라우터 간에 인접 관계(네이버)를 성립한 이후에, 라우팅 업데이트 실시

2) 인접 관계는 Hello패켓을 교환하여 실시하며, 라우팅 업데이트는
   LSA광고 패켓과 LSU 업데이트 패켓을 사용한다.

3) 수신한 업데이트 정보는 데이터 베이스를 구성하여 관리한다. 이때,
   데이터 베이스를 LSDB(Link State Database)라고 한다.
               LSDB    책장이라고 생각하자~
           어떤놈은 어떤 줄에 몇번째에 있다 이런식으로 관리한다
           (라우팅 정보는 지역에 딸라 다르게 경로를 관리한다.)

4) 각각의 라우터들은 동일한 LSDB 상태를 유지하기 위해서 동기화를
   실시한다. 이때 , LSA광고 패켓으로 데이터베이스 동기화를 실시한다.

5) LSDB 정보를 기반으로 SPF 알고리즘을 사용하여 최적 경로를 선출한다.

6) 선출된 최적 경로는 라우팅 테이블에 등록되어 동작한다.

 

- OSPF 3가지 유형 테이블

  1) OSPF네이버 테이블

    - 인접 관계 (네이버)를 성립한 이웃 라우터 정보를 관리한다.
    - 인접관계(네이버)를 성립한 이웃 라우터의 라우터 아이디가 출력된다.
    - OSPF 설정이 완료되면 가장 먼저 해야하는 정보 확인이다.
    - 'show ip ospf neighbor' command 사용

   2) OSPF 데이터베이스 테이블

    - 네이버에게 수신한 라우팅 업데이트 정보를 관리
    - 데이터베이스 정보를 LSDB라고 하며, LSDB는 네이버라우터와 동일한 상태를 유지하기 위해서 LSA 광고패킷을 이용하여 동기화한다.(LSDB동기화)
    - LSDB 정보를 기반으로  SPF알고리즘을 상요하여 최적 경로를 선출
    - 'show ip ospf database' command 사용

 

  3) 라우팅 테이블

    - 최적 경로가 등록되어 동작한다.
    - 'O' : INter-Area Route
    - 'O IA' - 다른 Area에서 업데이트를 수신한 네트워크 정보
    - 'O E1, O E2' - OSPF가 아닌 다른 외부 AS에서 업데에트를 수신한 네트워크 정보
    - 'show iip route', 'show ip route ospf'command 사용

 - OSPF 5가지 유형의 패킷

  -OSPF 설정이 완료되면, 라우터와 라우터간에 Hello 패킷을 교환하여 인접 관계(네이버)를 성립하며, 주기적이 교환으로 관계를 유지한다.

 1) Hello
   - Area-ID, Hello/Dead Interval, OSPF인증, Stub Rag  <<--인접조건
   - OSPF Priority(우선순위) OSPF Router-ID  <--- DR/BDR 선출할때 사용
   - DR/BDR 정보
   - Neighbor 정보
   - 멀티캐스트 224.0.0.5 주로를 목적지로 하여 전송한다.  224.0.0.6도 사용한다.
      224.0.0.6 (DR/BDR이 다른 라우터로 보낼 때의 멀티캐스트 주소)
      224.0.0.5 (DR/BDR을 제외한 라우터들이 DR/BDR로 보낼 때의 멀티캐스트 주소)

       

 2) DBD                                   <<<--- 처음에 주고 받는것.
   - LSDB를 구성하기 휘해서 네이버 라우터와 교환하는 라우팅 정보이다.
   - 만약, 수신한 DBD 정보가 자신의 정보보다 최신 정보이면, 요청을 실시하여 업데이트를 받게 된다.

3)LSR                                  <<<---- 하나씩 처음에 주고나서 틀렸는지 확인하기위한 주기적인 패킷(30초)
   - 업데이트에 대한 요청 패킷 

4)LSU 
    -요청에 대한 업데이트 패킷
 

5)LSAck
  - DBD, LSR, LSU에 대한 수신 확인 패킷이다. 
 
- DR/BDR 선출 내용
   1) DR/BDR 선출되지 않는 환경     
      - 네트워크에 노드가 2개이상 증가되지 않는 환경
      - Point-to-Point 환경, Point-to-Multipoint 환경

    2) DR/BDR 선출되는 환경
     - 네트워크에 노드가 여러개가 증가되어 연결이 가능한 환경
     - Broadcast 환경(LAN), Nonbroadcast 환경 (WAN)
     - 선출 이유 : DR/BDR를 선출하여 LSA 광고를 실시하기때문에 브로드케스트 환경에서 LSA 광고 패킷양을 최소화하기 위해

   - 선출 과정 : OSPF Priority(우선 순위)=(기본값 1), OSPF Router-ID 사용

     1. OSPF 우선 순위가 가장 높은 라우터가 DR, 두번째가 BDR로 선출
     2. 우선 순위가 동일하면, 라우터 아이디가 가장 높은 라우터가 DR, 두번째가 BDR로 선출
     3. DR/BDR이 아닌 나머지 라우터는 DR OTHER라고 한다.
     4. 또한, OSPF 우선순위를 '0'으로 설정하면 무조건 DR OTHER를 수행한다.

 - OSPF 인접(네이버)조건
 1) 동일한 세그먼트를 공유하는 네트워크는 같은 Area에 포함되어야 한다.
 2) 동일한 세크먼트를 공유하는 네트워크의 OSPF Hello(10초)/Dead(40초) 주기가 동일해야한다.
 3) 동일한 세크먼트를 공유하는 인터페이스의 MTU 싸이즈가 동일해야 한다.
 4) OSPF 인증을 실시하면 인증내용 (key, Key-String)이 동일해야 한다.
 5) Stub Area 구간에 모든 라우터는 Stub설정을 해야한다.

- 라우터 아이디(Router-ID)

 1) 물리적인 인터페이스 중 IP가 가장 큰 IP로 라우터 아이디가 선출
 2) Loopback 인터페이스가 있을 경우 Loopback IP가 가장 큰 IP로 선출
 3) 'router-id'로 수동 선출, 가장 신뢰적인 선출 방법


[출처] OSPF(Open Shortest Path First) 정리|작성자 상이


 - OSPF 선출과정
  루프백 인터페이스에서 주소를 설정해서 라우터 ID를 조작할 수 있지만, 이것은 DR,BDR 선출 과정에서 바람직한 방법이 아니다. 각 인터페이스가 자신의 고유한 우선 순위 값을 가질 수 있으므로, 우선 순위 값을 사용하여 선출 과정을 제어해야 한다.