OSPF 라우팅 프로토콜은 OSPF라우팅 프로토콜이 구동되는 인터페이스로 Hello Packet을 주기적으로 전달하여 Neighbor를 자동으로 선출하고, Holdtime 동안 Neighbor로 부터 Hello Packet을 받지 못한 경우 Neighbor가 다운되었음을 자동으로 감지한다.

  Hello Packet은 기본적으로 multicast 주소 224.0.0.5를 사용하여 전달하지만, non-broadcast 환경에서 ‘neighbor’ 명령어를 사용하여 unicast로 전달할 수도 있다. 이 부분은 ‘OSPF Network의 종류’에서 자세히 알아보기로 하고 여기서는 Hello Packet의 구조에 대해 확인해 보자.

1. Network Mask

  다른 라우팅 프로토콜은 상대방 Neighbor의 인터페이스 subnet 정보를 알 수가 없다. 그래서, RIP 라우팅 프로토콜이나 EIGRP 라우팅 프로토콜의 경우는 두 대의 장비간에 subnet 정보가 달라도 다음 조건만 맞으면 Neighbor가 되고 업데이트를 던지는데 아무런 문제가 없다.

 조건 : 상대방의 IP address ⊂ 인터페이스의 네트워크

  OSPF 라우팅 프로토콜도 Point-to-Point 환경에서는 위의 조건만 만족하면 아무런 문제가 발생하지 않는다. 하지만, Multi-Access 환경에서는 상호간에 Subnet 정보가 반드시 일치하여야 Neighbor 관계가 수립되어 Update Packet을 주고 받을 수 있다. 그 이유는 추후에 LSA 종류를 학습하게 되면 자연스럽게 알 수 있다.

2. Hello Interval, 5. Router Dead Interval

  OSPF 라우팅 프로토콜이 Hello Packet을 몇 초마다 한번씩 주기적으로 전달할 것인지, 그리고 얼마동안 Hello Packet을 받지 못하면 Neighbor가 다운되었다고 인식할 것인지에 대한 시간 정보를 Hello Packet을 통하여 전달하고 비교한다. 그리고, 이 정보가 반드시 동일해야 Neighbor 관계가 수립된다.  그 이유는 다음과 같다.

  위 그림처럼 두 대의 장비 중 한대의 Hello Interval이 다른 장비의 Dead Interval 보다 크게 되면 Neighbor가 아무런 문제없이 동작하고 있음에도 불구하고 Dead Interval 동안 Hello Packet을 받지 못해서 Neighbor가 다운되었다고 인식하게 된다. 이 문제를 근본적으로 해결하기 위하여 OSPF 라우팅 프로토콜은 상호간에 Hello Interval과 Dead Interval이 동일해야만 Neighbor 관계가 될 수 있도록 만들었다.

3. Options

Option 설 명

DN

MPLS L3 VPN에서 라우팅 Loop을 차단하기 위해 사용하며, MP-BGP에서 OSPF 라우팅 프로토콜로 redistribute된 네트워크에 대하여 DN(Donw) Bit가 설정된다. 그리고, DN bit가 설정된 네트워크 정보는 MP-BGP로 redistribute가 되지 않도록 함으로써 MP-BGP로 부터 넘어온 정보가 다시 MP-BGP로 넘어가지 않도록 하여 라우팅 Loop를 차단한다.

O

MPLS TE에서 사용되는 LSA Type 9, 10, 11을 Opaque LSA라고 하는데, Opaque LSA 기능을 가지고 있다는 의미로 사용된다. DBD Packet을 전달하면서 ‘O’ bit를 사용하는데 ‘O’ bit가 설정된 DBD는 Opaque LSA 기능이 존재하는 장비간에만 교환된다.

DC

해당 인터페이스가 ‘Demand Circuit’이라는 것을 의미한다. Point-to-Potint 환경이나 Point-to-Multipoint 환경에서 인터페이스를 Demand Circuit으로 설정하면 주기적으로 Hello Packet을 전달하지 않고, 30분마다 한번씩 전달되는 LSA refresh를 전달하지 않는다. 그리고, 해당 인터페이스를 통해 받은 LSA는 DNA(Do Not Aging) bit가 설정되어 Aging Time이 동작하지 않는다.
L Hello Packet과 DBD Packet에서만 사용되며, LLS(Link-Local-Signaling) 정보가 데이터에 포함되어 있는지 여부를 알려주기 위해 사용된다. 존재하는 OSPF Packet에 추가적인 확장 영역을 사용할 수 있도록 하여 OSPF Nonstop Forwarding (NSF) 기능 등 새로운 기술을 사용할 수 있도록 한다.
N/P N bit – Hello Packet에서만 사용되며 해당 Area가 NSSA(Not-So-Stub-Area)라는 것을 의미하며 해당 bit 정보가 동일해야 Neighbor가 될 수 있다.

P bit – LSA Type 7 NSSA-External-LSA Header에만 사용되며, NSSA ABR에게 해당 정보가 Type 7이니 Type 5로 변경하라는 것을 알려주기 위해 사용된다.

MC MOSPF(Multicast OSPF)가 동작하는 장비라는 의미로 사용하기 위해 만들어졌으나, 시스코는 MOSPF를 지원하지 않기 때문에 해당 bit를 사용하지 않는다. 타 제조사의 장비에 MOSPF가 동작하는 경우 시스코 장비에서 ‘%OSPF-4-BADLSATYPE error message’가 나타날 수 있는데, ‘ignore lsa mospf’ 명령어를 통하여 해결할 수 있다.
E LSA Type 5(External LSA)를 전달하고 받을 수 있는 기능이 있는지 여부를 표시할 때 사용되며, Area를 Stub Area로 구성하게 되면 ‘E’ bit가 ‘0’으로 설정되어 External LSA 전달 기능이 없음을 Neighbor에게 알려주어 External LSA가 전달되는 것을 차단한다. 해당 bit 정보가 동일해야 Neighbor가 될 수 있다.

MT

과거에는 ‘T’ bit로 사용되었으나 현재는 OSPF가 Multi-Topology 기능이 있는지를 Neighbor에게 알려주기 위해 사용된다.

4. Router Priority, 6. Designated Router, 7. Backup Designated Router

  OSPF 라우팅 프로토콜은 SPF 알고리즘을 통해서 Best-Path를 선출하게 되는데 SPF 알고리즘은 Tree 기반으로 최단거리를 계산하는 알고리즘이다. 그런데, Multi-Access 구조에서는 Tree 구조를 만들기가 쉽지 않다. 다음의 경우를 확인해 보자.

  R1, R2, R3, R4, R5가 Multi-Access로 구성되어 있는 경우, 각 라우터는 물리적으로는 스위치나 허브를 이용해서 연결되어 있기 때문에 Hub & Spoke 구조로 보일 수 있지만, 논리적으로 그림을 그리면 다음과 같이 모든 라우터가 직접 연결되어 있는 Full-Mesh 구조가 된다.

  이 상태에서 SPF 알고리즘을 계산하기 위해 Tree 구조로 네트워크를 구성한다면 R1 밑에 R2, R3, R4, R5가 있고, R2는 다시 다른 라우터들과 연결되어 있으니 그 밑에 다시 R3, R4, R5 존재하는 그림이 만들어 질 것이다. 그 상태를 나타내면 다음과 같다.

  라우터 5대가 연결된 단순한 Multi-Access 구조지만 Tree로 구성하면 엄청나게 복잡해 지는 것을 확인할 수 있다. 이 문제를 해결하기 위해서 OSPF 라우팅 프로토콜은 DR이라고 부르는 Designated Router를 선출하기로 하였다. Multi-Access에 연결된 장비중에 한대가 DR로 선출되지만, OSPF 라우팅 프로토콜에서는 DR을 별도의 라우터로 간주한다. 그리고, 선출된 DR이 Multi-Access 네트워크의 중심에 위치해 있고, 다음과 같이 DR을 중심으로 Hub & Spoke 구조로 연결되었다고 그림을 그린다.

  이렇게 구성을 하면 쉽게 Tree 구조를 그릴 수 있고 SPF 알고리즘도 빠르게 계산할 수 있는 것이다. IS-IS 라우팅 프로토콜도 DIS를 선출한다. 그런데, OSPF 라우팅 프로토콜은 DR로 선출된 장비가 다운되었을 때 DR 역할을 할 수 있는 Backup DR을 선출하는 반면, IS-IS 라우팅 프로토콜은 Backup DIS가 존재하지 않는다. 이 부분은 DR/BDR에 대해 다루는 장에서 자세히 알아보기로 하자.

  DR을 선출하는 기준은 인터페이스의 OSPF Priority가 가장 높은 장비가 DR이 되고, 두번째 높은 장비가 BDR이 된다. 그리고, OSPF Priority가 동일한 경우에는 Router ID를 비교하여 가장 높은 장비가 DR, 다음으로 높은 장비가 BDR로 선출된다.

  이 때, 자신의 Priority 값을 Neighbor들에게 전달하여야 하는데, Hello Packet의 Router Priority 필드를 이용하여 전달한다. 그리고, 이미 DR/BDR을 선출하였다면 Hello Packet을 이용하여 어떤 장비가 DR/BDR인지 새로운 Neighbor에게  Designated Router, Backup Designated Router 필드를 통하여 전달하게 된다. 이 정보가 왜 필요한지도 DR/BDR에 대해 다루는 장에서 자세히 알아보기로 하자.

8. Neighbor List

  OSPF 라우팅 프로토콜은 Neighbor가 자신을 Neighbor로 등록했는지 여부를 Hello Packet을 이용해서 확인할 수 있다. 만일, 자신은 상대방을 Neighbor로 인정했는데, Neighbor가 자신을 Neighbor로 인정하지 않았을 경우에는 Unicast로 Hello Packet을 전송하여 Neighbor 관계가 될 수 있도록 시도한다.

  그 때, 자신이 Neighbor로 인정한 장비들의 Router ID를 Neighbor List 필드에 담아 전달한다. 그렇다고 모든 Neighbor 정보를 보내는 것은 아니고, 다음과 같이 해당 인터페이스를 통해 연결된 Neighbor 정보만을 전달한다.

1 COMMENT

Comments are closed.