‘Link’와 ‘Network’을 구분하는 것은 Link-State 라우팅 프로토콜을 이해하는데 매우 중요하다. 이것을 명확하게 구분하지 못하고 Link-State 라우팅 프로토콜을 이해한다는 것은 불가능하다.

  그런데, OSPF 라우팅 프로토콜을 수십년간 운영하시는 전문가 분들이나, 네트워크 강의를 십수년간 하고 계시는 강사 분들도 이것을 대다수 구분하지 못한다. 그 이유는 IPv4 OSPF 라우팅 프로토콜이 만들어 질 때, ‘Link’와 ‘Network’을 구분하지 않고 모두 만들었기 때문에 그 차이에 대한 고민을 해보지 않았기 때문이다.

  OSPF 라우팅 프로토콜을 학습한 후에 IS-IS 라우팅 프로토콜을 공부하면 전혀 새로운 프로토콜을 학습하는 것처럼 느끼는 사람들이 많다. 그 이유 중에 가장 큰 이유가 IS-IS 라우팅 프로토콜은 OSPF라우팅 프로토콜과 다르게 ‘Link’와 ‘Network’를 구분하기 때문이다.

  이것을 구분하는 것은 Link-State 라우팅 프로토콜의 최대 장점 중 하나이다. 이것을 구분하지 않은 IPv4 OSPF 라우팅 프로토콜은 당연히 Link-State의 장점 하나를 잃게 되고, ‘많은 메모리와 CPU 사용’이라는 불명예 특성까지 가지게 되었다. 다행스럽게도 OSPFv3(IPv6 OSPF 라우팅 프로토콜)에서는 명확하게 구분하도록 만들어 졌는데 이 부분은 추후에 살펴보도록 하겠다.

  먼저, ‘Link’와 ‘Network’을 이해하기 위해 ‘Node’에 대한 이해가 필요하다. ‘Node’란 출발지와 목적지 사이에 데이터가 거쳐가는 지점들을 말한다. 즉, Packet이 목적지까지 전달될 때 Best-Path 상에 있는 라우터나 L3 스위치가 해당 Packet의 ‘Node’가 된다.

  그리고, ‘Node’들이 가지고 있는 라인을 ‘Link’라고 한다. 또한, 다음과 같이 ‘Link’를 크게 두가지로 구분할 수 있는데 그것은 다른 ‘Node’와 연결된 ‘Link’와 어떤 ‘Node’와도 연결되어 있지 않은 ‘Link’이다.

  위 그림에서 각 ‘Link’의 Metric 값을 임의대로 설정하고, Node A에서 각 Node 까지 최단 거리를 계산하면 다음과 같다. 그리고, Best-Path 경로상에 존재하지 않는 Link는 토폴로지에서 큰 의미가 없는 Link가 된다.

  여기서 만일 Best-Path 경로상에 있는 Node B와 Node C 사이의 Link가 다운되었다고 가정해보자. 그런 경우, 아래와 같이 Best-Path가 변경되게 되는데, 단순히 몇 개 Node만 Best-Path가 변경되는 것이 아니라 Node B와 Node  C 아래에 있는 모든 Node들에 영향을 주게 된다.

  이와 같이 Best-Path 경로상에 있는 Link가 변경되면 모든 Node에 대한 Best-Path를 재계산하여야 하기 때문에 CPU나 메모리 등 장비의 자원을 많이 소모하게 된다. 이러한 Link들로 구성된 토폴로지를 ‘Basic Topology’라고 부르고, ‘Basic Topology’ 상의 Link가 변경되면 전체 토폴로지를 다시 그려서 Best-Path를 계산하게 되는데 이것을 ‘Full SPF Computation’ 또는 ‘Complete SPF Computation’’이라고 부른다.

  그런데, Node F와 Node G 사이의 ‘Link’처럼 ‘Basic Topology’ 상에 있지 않은 ‘Link’나 Node간에 연결되지 않은 ‘Link’ 정보가 변경되는 경우는 어떠한 Node에 대해서도 Best-Path에 영향을 주지 않을 것이다. 그런 경우, ‘Basic Topology’는 변경이 되지 않지만, 해당 ‘Link’가 가지고 있던 네트워크 정보는 변경이 된다.

  예를 들어, 위 그림에서 Node F와 Node G 사이 ‘Link’의 네트워크가 10.10.10.0/24 였다고 가정해보자. 그런 경우 다음과 같이 10.10.10.0/24에 대해서는 2개의 경로가 있을 것이다.

경로 1 : Node A – Node B – Node C – Node F – 10.10.10.0/24 = Metric 10

경로 2 : Node A – Node B – Node C – Node G – 10.10.10.0/24 = Metric 12

  당연히 Metric 값이 작은 ‘경로 1’을 10.10.10.0/24 네트워크에 대한 Best-Path로 선출할 것이다.여기서 만일 Node F와 Node G 사이에 스위치가 있어서 Node F와 연결된 ‘Link’만 다운되었다면, 기존 Best-Path를 삭제하고 10.10.10.0/24에 대한 ‘경로 2’를 찾아서 Best-Path로 선출해야 할 것이다. 이렇게 전체 토폴로지를 다시 그리지 않고 변경된 네트워크 정보에 대해서만 Best-Path를 계산하는 것을 ‘Incremental SPF’이라고 한다.

  그리고, 네트워크 정보만 변경이 발생한 경우 SPF 알고리즘을 수행하지 않고 다른 장비가 변경된 네트워크 정보를 가지고 있는지 검색만 수행하게 되는데, 이를 Partial SPF라 하며 IS-IS 프로토콜에서는 PRC(Partial Route Computation)라 부른다.

Link 종류 설 명
Best-Path 상에 있는 Link ‘Basic Topology’를 구성하는 Link로 Link 정보가 변경되었을 경우, 전체 토폴로지를 새롭게 구성하고 Complete SPF Computation을 수행한다.
Best-Path 상에 없는 Link 토폴로지를 새롭게 구성하지 않고, 변경된 네트워크 정보에 대한 Incremental SPF을 수행할 수 있다. (iSPF 알고리즘은 default로 동작하지 않으며 수동으로 enable 시켜주어야 한다.)
네트워크 정보 변경 토폴로지를 새롭게 구성하지 않고, 변경된 네트워크 정보에 대한 Partial SPF을 수행한다.

  그런데, OSPF는 ‘Link’를 상위 표와 같이 구분을 하지 않았다. 어떠한 ‘Link’ 정보가 변경되더라도 ‘Complete SPF Computation’이 수행되도록 만들었다. 즉, 토폴로지에 아무런 영향을 주지 않는 특정 장비의 Loopback Interface가 다운되거나 생성되더라도 전체 토폴로지를 새롭게 그리고 모든 네트워크에 대해서  Best-Path를 계산하는 것이다.

  그렇기 때문에 타 라우팅 프로토콜보다 장비의 자원을 많이 사용하는 프로토콜이 되어버린 것이다. 이 부분은 SPF 알고리즘의 동작원리와 Area 개념을 설명하면서 다시 한번 자세히 다루게 될 것이다.

  다음으로 ‘Network’ 개념에 대해 알아보자. Link-State 라우팅 프로토콜에서 ‘Network’의 개념은 ‘Node가 가지고 있는 Information’ 일 뿐이다. 다음과 같이 2개의 토폴로지가 있는데 그 차이를 느낄 수 있겠는가? 만일, 이 그림을 보고  차이를 느낄 수 있다면 그 사람은 Link-State 라우팅 프로토콜을 쉽게 이해할 수 있을 것이다.

  차이부터 설명을 하면 상위 토폴로지는 ‘Link’와 ‘Network’을 구분하지 않았고, 하위 토폴로지는 구분을 해 놓았다. 그리고, 하위 토폴로지가 Link-State 라우팅 프로토콜이 토폴로지를 그리는 방식이다.

  Link-State 라우팅 프로토콜은 업데이트 내용을 ‘Link’ 정보와 ‘Network’ 정보로 구분을 한다. 예를 들어, 위 그림에서 R1, R2, R3의 업데이트 내용을 간단히 표로 정리하면 다음과 같다. 물론, 실제로는 이보다 많은 정보가 들어가 있지만 여기서는 간략히 표시해 보도록 하겠다.

장 비 업데이트 정보
Link 정보 Network 정보
R1 R2와 Metric 5로 연결되어 있음 1.1.1.1/32를 Metric 1로 가지고 있음
10.10.12.0/24를 Metric 5로 가지고 있음
R2 R1과 Metric 5로 연결되어 있음

R3와 Metric 5로 연결되어 있음

2.2.2.2/32를 Metric 1로 가지고 있음
10.10.12.0/24를 Metric 5로 가지고 있음
10.10.23.0/24를 Metric 5로 가지고 있음
R3 R2와 Metric 5로 연결되어 있음 3.3.3.3/32를 Metric 1로 가지고 있음
10.10.23.0/24를 Metric 5로 가지고 있음

  위의 표와 같이 각자가 가지고 있는 ‘Link’ 정보와 ‘Network’ 정보를 전체 망으로 업데이트하면 R1, R2, R3는 각각의 장비가 보낸 업데이트 정보를 데이터베이스에 저장을 한다. 그리고, ‘Link’ 정보를 기반으로 토폴로지를 다음과 같이 그린다.

  그리고, 각각의 장비가 가지고 있는 ‘Network’ 정보를 그려 넣는다.

  이렇게 그림을 그리고 나면 Link-State 라우팅 프로토콜 입장에서는 10.10.23.0/24 네트워크는 더이상 R2와 R3 사이에 있는 네트워크가 아니라 단순히 R2와 R3가 가지고 있는 정보가 되는 것이다.

  그럼, R1 입장에서 10.10.23.0/24에 대하여 Best-Path를 선출해 보자. R1은 R2까지 5만큼, R3까지는 10만큼 떨어져 있으니, R2가 가지고 있는 10.10.23.0/24(5) 네트워크는 총 10만큼 떨어져 있고, R3가 가지고 있는 10.10.23.0/24(5) 네트워크는 총 15만큼 떨어져 있게 된다. 그러므로, R2가 10.10.23.0/24에 대하여 Best가 되는 것이다.