OSPF 라우팅 프로토콜의 Router-ID는 SPF 알고리즘을 수행하기 위한 토폴로지를 구성할 때, 해당 장비의 이름으로 사용된다. OSPF 라우팅 프로토콜은 Area 단위로 데이터베이스가 구분되어 있기 때문에 하나의 Area 내에서만 Router-ID가 충돌나지 않으면 되지만, 관리목적상 OSPF 라우팅 프로토콜을 구동중인 전체 네트워크에서 장비마다 충돌나지 않도록 각각의 장비에 유니크한 Router-ID를 설정한다.

  이러한 Router-ID는 관리자가 수동으로 설정을 할 수도 있고, 자동으로 선출된 값을 사용할 수도 있는데 Router-ID가 선출되는 프로세스를 하나씩 살펴보도록 하자.

1. OSPF 프로세스 구동

  OSPF 라우팅 프로토콜을 처음 구동할 때, Router-ID로 선출할 IP address가 찾는다. 자동으로 선출되는 Router-ID의 조건은 Active Interface의 IP address이어야 한다.

2. Active Interface의 IP address 검색

  Active Interface가 없거나 Active Interface에 IP address가 없는 경우는 OSPF 프로세스가 동작하지 않는다. 만일 Active Interface가 여러개 존재하는 경우는 3번으로 가서 OSPF의 Router-ID 선출 기준에 따라 Router-ID를 선출한다.

3. OSPF Router-ID 자동 선출 기준

  OSPF 라우팅 프로토콜이 Router-ID를 선출하는 기준을 확인하기 위하여 5개의 Interface에 IP address를 설정하고 Active Interface로 만든 후, ‘OSPF 1’을 구동시키면 결과는 다음과 같다.

  결과에서 보면 Loopback 1의 IP address인 ‘11.11.11.11’이 Router-ID로 선출되었다. 다음으로 ‘OSPF 2’를 구동시켜 보자.

  Loopback 1의 IP address는 이미 ‘OSPF 1의 Router-ID로 사용하였기 때문에 사용할 수 없고, Loopback 0의 IP address인 ‘1.1.1.1’이 ‘OSPF 2’의 Router-ID로 설정된 것을 확인할 수 있다. 이번에는 ‘OSPF 3’, ‘OSPF 4’, ‘OSPF 5’, ‘OSPF 6’를 순차적으로 올리고 Router-ID를 확인해 보도록 하자.

    각각의 프로세스별로 Router-ID를 정리해보면 다음과 같다.

  • 1순위 : Loopback 1 – 11.11.11.11
  • 2순위 : Loopback 0 – 1.1.1.1
  • 3순위 : Fa1/1 – 172.16.3.1
  • 4순위 : Fa1/0 – 172.16.2.1
  • 5순위 : Fa0/0 – 172.16.1.1

  그리고, ‘OSPF 6’ 프로세스는 더이상 Router-ID로 만들 Active Interface의 IP address가 존재하지 않기 때문에 구동되지 않는다. 이 규칙을 정리하면 OSPF 라우팅 프로토콜은 Router-ID로 Loopback의 IP address를 우선하는데, Loopback  Interface가 많은 경우는 Active Loopback Interface의 IP address 중에 가장 높은 IP address를 Router-ID로 선출한다.

  만일, Loopback Interface가 존재하지 않는다면 물리적인 Active Interface 중에 가장 높은 IP address를 Router-ID로 선출한다.

  그러므로, Router-ID를 자동으로 선출하는 경우 우선순위는 다음과 같다.

1순위 : Loopback Interface가 존재하는 경우 :

   → Active Loopback Interface의 IP address 중에 가장 높은 IP address

2순위 : Loopback Interface가 존재하지 않는 경우 :

   → 물리적인 Active Interface 중에 가장 높은 IP address

4. Router-ID를 자동으로 선출할 수 없는 경우

  다음 그림과 같이 Active Interface가 하나도 없거나, Active Interface에 IP address가 설정되지 않은 경우, 그리고 Active Interface의 IP address가 설정되어 있지만 이미 다른 OSPF 프로세스에서 Router-ID로 다 사용하고 있는 경우는 OSPF를 구동시켜도 대기 상태가 되며 프로세스는 동작하지 않는다.

5. 대기 중에 있던 OSPF 구동시키기

  Router-ID가 존재하지 않아서 대기중이던 OSPF 프로세스를 구동시키는 방법은 Active Interface를 만들고 IP address를 설정하는 방법과 ‘router-id’ 명령어를 사용하여 수동으로 설정하여 주는 방법이 있다.

  먼저 Active Interface를 만들고 IP address를 설정한 후 OSPF 프로세스가 구동되는 것을 확인해 보자.

  다음으로 Router-ID를 수동으로 설정한 후 OSPF 프로세스가 구동되는 것을 확인해 보자. 이때, Router-ID는 장비의 이름 역할을 하기 때문에 실제로 존재하는 IP address일 필요는 없다. IPv4 주소체계 포멧으로만 설정해 주면 된다.

6. OSPF 프로세스가 구동된 상태

  OSPF 라우팅 프로토콜은 Router-ID가 바뀌게 되면 모든 Neighbor가 관계가 끊어지기 때문에 이미 OSPF 프로세스가 동작하고 있는 상태에서는 Active Interface를 추가적으로 만들어 주거나 ‘router-id’ 명령어를 사용해도 바뀌지 않는다.

7. 새로운 Interface의 IP address로 Router-ID를 변경하는 경우

  Loopback을 만들기 전에 OSPF 프로세스를 구동시켜 물리적인 Interface의 IP address가 Router-ID로 된 경우, Loopback을 추후에 만들어도 Router-ID는 자동으로 변경되지 않는다. 새롭게 생성한 Loopback의 IP address로 Router-ID를 변경하기 위해서는 장비를 reload 하거나, ‘no router ospf’ 명령어를 사용하여 기존 OSPF 설정을 지우고 다시 재설정하여야 Loopback의 IP address로 변경된다.

8. ‘router-id’ 명령어로 Router-ID를 변경하는 경우

  ‘router-id’ 명령어를 통하여 Router-ID를 변경하는 경우, Neighbor가 존재하지 않는 상태에서는 바로 Router-ID가 변경된다. 하지만, Neighbor가 하나라도 존재하는 경우라면 장비를 relaod하거나 ‘clear ip ospf process’ 명령어를 통하여 OSPF 프로세스를 재구동 시켜야 Router-ID가 변경된다.