지금까지 학습한 내용을 기반으로 OSPF가 가지고 있는 Distance Vector 특징을 확인해 보자.

  첫째, Area와 Area 간에는 데이터베이스를 동기화할 필요가 없기 때문에 네트워크 Filter나 Summary, 또는 변경이 가능하다는 것을 우리는 알고 있다. 이것은 다른 Area의 네트워크 정보는 ABR이 보내주는 정보를 그대로 학습한다는 의미이다.

  예를 들어 Area 1에 10.1.1.0/24 네트워크가 존재하는데, Area 1과 연결된 ABR에서 10.1.1.0/24 네트워크를 Filter하게 되면 다른 Area에 있는 장비들은 10.1.1.0/24가 존재하는지도 모르게 된다. 그리고, 10.1.1.0/24를 ABR이 10.1.0.0/16로 Area 0 데이터베이스로 전달하게 되면 다른 Area에 있는 장비들은 전부 Area 1에 10.1.0.0/16가 존재한다고 알게 될 것이다.

  이와 비슷한 상황을 우리는 Distance Vector 라우팅 프로토콜에서 학습하였다. Distance Vector 라우팅 프로토콜은 인접해 있는 장비가 보내주는 네트워크 정보를 그대로 신뢰하기 떄문에 네트워크 정보를 변경해서 잘못된 정보를 전달해 줄 경우 라우팅 Loop이 발생할 수 있다고 설명한 적이 있다.

  그런데, OSPF 라우팅 프로토콜도 Area간에는 ABR이 보내주는 정보를 그대로 신뢰하기 떄문에, Area와 Area 사이에서는 Distance Vector 라우팅 프로토콜 방식으로 통신을 하는 것이다. 즉, OSPF 라우팅 프로토콜은 Area 내에서는 Link-State 라우팅 프로토콜로 동작하고, Area 간에는 Distance Vector 라우팅 프로토콜로 동작하는 구조를 가지고 있다.

  만일, ABR이 Area 간에 잘못된 정보를 전달하게 되면 다음과 같은 문제가 발생할 수 있다.

  위의 그림에서 보면 Area 3의 ‘A’ 네트워크 정보가 Area 3에서 Area 0, Area 1을 거쳐 Area 3로 다시 업데이트되었다. 그런데, Area 1과 Area 3 사이에 있는 ABR이 ‘A’ 네트워크에 대해서 Cost 값을 1로 변경을 해서 Area 3에게 업데이트한다면 Area 3에 있는 장비들이 ‘A’ 네트워크에 대하여 Area 1을 Best-Path로 선출하게 되어 라우팅 Loop이 발생할 수 있다.

  IS-IS 라우팅 프로토콜은 Level 2 장비가 Area 간에 업데이트를 보낼 때 Level 2 장비 간에 데이터베이스가 동기화 되어야 하기 때문에 Summary나 Filter, 또는 네트워크 변경이 불가능하다. 그래서, IS-IS 라우팅 프로토콜은 라우팅 Loop이 발생하지 않는데 OSPF 라우팅 프로토콜은 해결해야 하는 문제가 하나 생긴 것이다.

  이 문제를 해결하기 위해 OSPF 라우팅 프로토콜은 몇가지 규칙을 만들었는데 이 규칙은 OSPF 라우팅 프로토콜을 학습하는데 SPF 알고리즘을 학습하는 것만큼 대단히 중요한 내용이니 잘 학습할 수 있도록 하자.

규칙 1. ABR은 Area 0와 반드시 연결되어 있어야 하고, Area 0가 연결되어 있는 경우만 Area간에 데이터베이스를 교환할 수 있다.

  OSPF 라우팅 프로토콜은 Area 간에 라우팅 Loop을 막기 위해 가장 단순한 방법을 사용했는데, 그것은 Area 간에 연결 구조를 다음과 같이 절대 Loop이 발생할 수 없는 ‘Hub & Spoke’ 구조가 되도록 만들었다.

  그래서, ABR은 Area 0에 연결되어 있어야만 데이터베이스 정보를 Area 간에 교환할 수 있도록 하였다.

  즉, 위 그림에서 R1, R2, R3는 Area 0와 연결되어 있기 때문에 데이터베이스를 교환할 수 있는 ABR이 될 수 있지만, R4와 R5는 Area 0와 연결되어 있지 않기 때문에 Area를 2개 가지고 있는 장비일 뿐 ABR이 될 수 없도록 하였다. 즉, R4는 Area 1과 Area 3의 데이터베이스를 서로 교환할 수 없고, R5은 Area 2와 Area 3의 데이터베이스를 서로 교환할 수 없다.

규칙 2. Area 내부 네트워크 정보와 타 Area에서 업데이트된 네트워크 정보가 동일한 경우 Area 내부 네트워크 정보를 우선하도록 하였다.

  Area 0와 연결된 ABR만이 타 Area 정보를 전달할 수 있다는 규칙을 만들었더니, 이번에는 ABR이 다운되는 경우 다른 Area와 통신을 할 수 없는 문제가 생겼다. 그래서, ABR을 이중화로 구성하게 되는데 여기서 새로운 문제가 발생하게 되었다. 다음과 같이 ABR을 통해서 업데이트 보낸 정보가 다른 ABR을 통해서 내부로 다시 들어오게 되는 경우가 발생하는 것이다.

  이 문제를 해결하기 위해서 다른 Area에서 넘어온 정보와 Area 내부 네트워크 정보가 동일한 경우 내부 Area의 정보를 우선하도록 하였다. 즉, Area 내부 네트워크 정보가 외부에서 다시 Area 내부로 유입된다 하더라도 문제가 없도록 만든 것이다. 이렇게 하기 위해서는 각 네트워크 정보에 대해서 그것이 내부 Area 정보인지, 다른 Area에서 업데이트된 정보인지 구분을 할 수 있어야 할 것이다.

  그래서, OSPF 라우팅 프로토콜은 네트워크가 어떤 정보인지 구분하기 위하여 Type을 만들었다. 그것을 ‘LSA(Link-State Advertisement) Type’이라고 하는데 이 부분은 추후에 자세하게 설명할 것이다.

규칙 3. 다른 Area에서 업데이트된 정보는 Area 0 데이타베이스만 타 Area 데이터베이스로 전달할 수 있다.

  이 규칙을 이해하기 위해 다음 그림을 보도록 하자.

  위 그림을 보면 Area 0 입장에서는 ‘A’ 네트워크는 처음 들어온 정보도 Area 1에서 업데이트된 타 Area 네트워크 정보이고, Area 3를 통해 되돌아 온 업데이트 된 정보도 마찬가지로 타 Area 네트워크 정보가 된다. 이런 경우는 규칙 1과 규칙 2만을 가지고 라우팅 Loop을 막을 수 없다.

  그래서 OSPF 라우팅 프로토콜은 규칙 3을 만들었는데, Area 0는 데이터베이스에 있는 타 Area 네트워크 정보를 모든 다른 Area데이터베이스로 전달할 수 있지만, Area 0를 제외한 다른 Area는 해당 정보를 전달할 수 없도록 만들었다.

  그럼으로 위 그림에서 Area 1의 ‘A’ 네트워크 정보를 Area 0는 Area 3로 전달할 수 있지만, Area 3 데이터베이스에 다른 Area 정보로 존재하기 때문에 Area 0 데이터베이스로는 전달하지 못하게 되는 것이다.

  이렇듯 OSPF는 Area 간에 Distance Vector로 동작하는 특징을 가지고 있어 많은 규칙들이 생기게 되었고, 그 규칙들의 한계때문에 새로운 기술들이 생겨나게 된다.

  우리는 앞으로 OSPF 라우팅 프로토콜을 학습하기 위한 기초 지식을 이번 장에서 학습을 하였다. 지금까지 배운 기초 이론을 기반으로 다음 장부터는 OSPF 라우팅 프로토콜에 대한 심화 학습에 들어가게 된다. 아직까지 기초 이론이 이해가 가지 않는다면, 몇 번이고 반복해서 학습하면서 이해가 될 수 있도록 하자. 기초 지식 없이 학습하는 지식은 모래알과 같아 금방 잊혀져 버리고 말기 때문이다.