[OSPF] OSPF 연동 실습#1 - 네이버 연결 및 라우팅 확인 (+DR, BDR)
OSPF 연동 실습을 통해 네이버 관계 형성, 라우팅 테이블 확인, 그리고 DR/BDR 선출 과정을 직접 확인해보려 합니다. 특히, 네이버 간의 관계 형성과 LSDB의 동기화 과정을 통해 모든 라우터가 동일한 네트워크 정보를 공유하게 되며, 멀티액세스 네트워크에서는 DR/BDR 선출을 통해 LSA 전파의 효율을 높이는 것이 핵심입니다.
이번 실습에서는 가장 기본적인 OSPF 설정부터, 네이버 관계 확인 및 DR/BDR이 어떻게 선출되는지를 확인해보겠습니다.
OSPF 설정
OSPF는 기본적으로 라우터 식별을 위한 Router ID를 지정하고, OSPF를 활성화할 네트워크 대역 또는 인터페이스를 설정합니다.
설정된 인터페이스에서는 OSPF Hello 패킷을 주고받으며 인접 라우터를 자동으로 발견하고 네이버 관계를 형성합니다. 이 과정을 통해 라우터 간 동적으로 라우팅 정보가 교환될 수 있는 기반이 마련됩니다.
[R1]
router ospf 1
router-id 1.1.1.1
network 110.1.0.0/24 area 0
network 110.1.1.0/24 area 0
network 110.1.2.0/24 area 0
network 1.1.1.1/32 area 0
network 10.10.12.0/24 area 0
network 10.10.13.0/24 area 0
[R2]
router ospf 1
router-id 2.2.2.2
network 120.2.0.0/24 area 0
network 120.2.1.0/24 area 0
network 120.2.2.0/24 area 0
network 2.2.2.2/32 area 0
network 10.10.12.0/24 area 0
network 10.10.24.0/24 area 0
[R3]
router ospf 1
router-id 3.3.3.3
network 130.3.0.0/24 area 0
network 130.3.1.0/24 area 0
network 130.3.2.0/24 area 0
network 3.3.3.3/32 area 0
network 10.10.13.0/24 area 0
network 10.10.24.0/24 area 0
[R4]
router ospf 1
router-id 4.4.4.4
network 140.4.0.0/24 area 0
network 140.4.1.0/24 area 0
network 140.4.2.0/24 area 0
network 4.4.4.4/32 area 0
network 10.10.24.0/24 area 0
router ospf 1 | Router 내에서 다수 OSPF 구동 시 이를 식별하는 Process 번호 |
router-id 4.4.4.4 | Router-ID는 OSPF에서 라우터를 식별하는 고유 ID로, DR/BDR 선출에 사용 |
network 140.4.0.0/24 area 0 | network 명령어는 OSPF가 활성화될 인터페이스 정의 |
Neighbor 연결 과정
debug 명령어로 OSPF neighbor 연결 과정을 확인해보았습니다.
Neighbor state change from LOADING to FULL
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:47 : [12735293:000352] OSPF(1:00):
Neighbor state change from EXCHANGE to LOADING
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:45 : [12735288:000353] OSPF(1:00):
Apr 15 22:23:45 %STKUNIT1-M:CP %OSPF-6-LSA_BACKOFF: Router lsa id 1.1.1.1 rtrid 1.1.1.1 received before 1000ms time .
Neighbor state change from EXSTART to EXCHANGE
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:44 : [12735288:000348] OSPF(1:00):
Neighbor state change from 2WAY to EXSTART
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:43 : [12735288:000341] OSPF(1:00):
Neighbor state change from INIT to 2WAY
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:13 : [12735258:000344] OSPF(1:00):
Neighbor state change from DOWN to INIT
Nbr. rid:1.1.1.1 in aid:0 intf:Vl 13
Apr 15 22:23:12 : [12735258:000343] OSPF(1:00):
아래부터 위로 Down → INIT → 2WAY → EXSTART → EXCHANGE →LOADING → FULL 과정까지 확인할 수 있습니다.
show ip ospf neighbor 명령어로 현재 연결된 OSPF neighbor에 대한 정보를 확인 할 수 있습니다.
neighbor와 연결된 상태정보를 볼 수 있으며 State 부분에서 neighbor 라우터의 DR/BDR/DROTHER 상태를 볼 수 있습니다. Dead Time은 점점 감소하며 neighbor 라우터로 부터 Hello 패킷 미수신으로 0이 될 경우 neighbor 관계가 끊어집니다.
[R1]
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface Area
2.2.2.2 1 FULL/DR 00:00:34 10.10.12.2 Gi 1/47 0
3.3.3.3 1 FULL/DR 00:00:34 10.10.13.3 Vl 13 0
[R2]
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface Area
1.1.1.1 1 FULL/BDR 00:00:34 10.10.12.1 Gi 1/47 0
3.3.3.3 1 FULL/BDR 00:00:34 10.10.24.3 Vl 24 0
4.4.4.4 1 FULL/DR 00:00:34 10.10.24.4 Vl 24 0
[R3]
R3#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface Area
1.1.1.1 1 FULL/BDR 00:00:34 10.10.13.1 Vl 13 0
2.2.2.2 1 FULL/DROTHER 00:00:34 10.10.24.2 Vl 24 0
4.4.4.4 1 FULL/DR 00:00:34 10.10.24.4 Vl 24 0
[R4]
R4#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface Area
2.2.2.2 1 FULL/DROTHER 00:00:34 10.10.24.2 Vl 24 0
3.3.3.3 1 FULL/BDR 00:00:34 10.10.24.3 Vl 24 0
OSPF 테이블
OSPF에서 라우팅 정보를 교환하는 과정은 네이버 관계 형성 → 데이터베이스 동기화 → 라우팅 테이블 생성 순으로 이루어집니다.
OSPF는 neighbor와 LSDB 정보를 비교하여 서로 부족한 정보(LSA)를 전달 받고 이를 OSPF 테이블에 저장합니다.
필요한 LSA를 주고 받고 LSDB가 완전히 동기화되면 SPF 알고리즘(Dijkstra)을 실행하여 최적 경로 계산하고 결과는 라우팅 테이블에 반영됩니다.
[R1]
R1#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
2.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
3.3.3.3 1 10.10.13.3 Vl 13 0 Intra-Area
4.4.4.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
10.10.12.0 1 0.0.0.0 Gi 1/47 0 Intra-Area
10.10.13.0 1 0.0.0.0 Vl 13 0 Intra-Area
10.10.24.0 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
120.2.0.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.1.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
130.3.0.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.1.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.2.3 1 10.10.13.3 Vl 13 0 Intra-Area
140.4.0.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
140.4.1.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
140.4.2.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
================================================
[R2]
R2#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
1.1.1.1 1 10.10.12.1 Gi 1/47 0 Intra-Area
3.3.3.3 1 10.10.24.3 Vl 24 0 Intra-Area
4.4.4.4 1 10.10.24.4 Vl 24 0 Intra-Area
10.10.12.0 1 0.0.0.0 Gi 1/47 0 Intra-Area
10.10.13.0 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.12.1 Gi 1/47 0
10.10.24.0 1 0.0.0.0 Vl 24 0 Intra-Area
110.1.0.1 1 10.10.12.1 Gi 1/47 0 Intra-Area
110.1.1.1 1 10.10.12.1 Gi 1/47 0 Intra-Area
110.1.2.1 1 10.10.12.1 Gi 1/47 0 Intra-Area
130.3.0.3 1 10.10.24.3 Vl 24 0 Intra-Area
130.3.1.3 1 10.10.24.3 Vl 24 0 Intra-Area
130.3.2.3 1 10.10.24.3 Vl 24 0 Intra-Area
140.4.0.4 1 10.10.24.4 Vl 24 0 Intra-Area
140.4.1.4 1 10.10.24.4 Vl 24 0 Intra-Area
140.4.2.4 1 10.10.24.4 Vl 24 0 Intra-Area
[R3]
R3#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
1.1.1.1 1 10.10.13.1 Vl 13 0 Intra-Area
2.2.2.2 1 10.10.24.2 Vl 24 0 Intra-Area
4.4.4.4 1 10.10.24.4 Vl 24 0 Intra-Area
10.10.12.0 2 10.10.24.2 Vl 24 0 Intra-Area
10.10.13.1 Vl 13 0
10.10.13.0 1 0.0.0.0 Vl 13 0 Intra-Area
10.10.24.0 1 0.0.0.0 Vl 24 0 Intra-Area
110.1.0.1 1 10.10.13.1 Vl 13 0 Intra-Area
110.1.1.1 1 10.10.13.1 Vl 13 0 Intra-Area
110.1.2.1 1 10.10.13.1 Vl 13 0 Intra-Area
120.2.0.2 1 10.10.24.2 Vl 24 0 Intra-Area
120.2.1.2 1 10.10.24.2 Vl 24 0 Intra-Area
120.2.2.2 1 10.10.24.2 Vl 24 0 Intra-Area
140.4.0.4 1 10.10.24.4 Vl 24 0 Intra-Area
140.4.1.4 1 10.10.24.4 Vl 24 0 Intra-Area
140.4.2.4 1 10.10.24.4 Vl 24 0 Intra-Area
================================================
[R4]
R4#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
1.1.1.1 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.24.2 Vl 24 0
2.2.2.2 1 10.10.24.2 Vl 24 0 Intra-Area
3.3.3.3 1 10.10.24.3 Vl 24 0 Intra-Area
10.10.12.0 2 10.10.24.2 Vl 24 0 Intra-Area
10.10.13.0 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.24.0 1 0.0.0.0 Vl 24 0 Intra-Area
110.1.0.1 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.24.2 Vl 24 0
110.1.1.1 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.24.2 Vl 24 0
110.1.2.1 2 10.10.24.3 Vl 24 0 Intra-Area
10.10.24.2 Vl 24 0
120.2.0.2 1 10.10.24.2 Vl 24 0 Intra-Area
120.2.1.2 1 10.10.24.2 Vl 24 0 Intra-Area
120.2.2.2 1 10.10.24.2 Vl 24 0 Intra-Area
130.3.0.3 1 10.10.24.3 Vl 24 0 Intra-Area
130.3.1.3 1 10.10.24.3 Vl 24 0 Intra-Area
130.3.2.3 1 10.10.24.3 Vl 24 0 Intra-Area
R1#show ip ospf database router
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router (Area 0)
LS age: 295
Options: (No TOS-capability, No DC, No DN, E)
LS type: Router
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
LS Seq Number: 0x80000028
Checksum: 0x5d94
Length: 96
Number of Links: 6
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.10.12.2
(Link Data) Router Interface address: 10.10.12.1
Number of TOS metric: 0
TOS 0 Metric: 1
...
LS age: 91
Options: (No TOS-capability, No DC, No DN, E)
LS type: Router
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
LS Seq Number: 0x80000030
Checksum: 0x3070
Length: 96
Number of Links: 6
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.10.12.2
(Link Data) Router Interface address: 10.10.12.2
Number of TOS metric: 0
TOS 0 Metric: 1
Link connected to: a Stub Network
(Link ID) Network/subnet number: 2.2.2.2
(Link Data) Network Mask: 255.255.255.255
Number of TOS metric: 0
TOS 0 Metric: 0
...
Routing 테이블
OSPF 테이블에서 OSPF로 학습한 라우팅 정보를 확인할 수 있지만, 해당 경로가 다른 라우팅 프로토콜(BGP, EIGRP 등)과 비교하여 라우팅 우선순위(Administrative Distance)에서 밀릴 경우 라우팅 테이블에 저장되지 않을 수 있습니다.
라우팅 테이블에 경로가 등록되어야 실제 트래픽 처리에 사용되므로, OSPF로 학습된 경로가 정상적으로 라우팅 테이블에 등록되었는지 확인하는 것이 중요합니다.
라우팅 테이블에서 OSPF로 학습된 경로는 O, O IA, O E1, O E2 등의 접두어로 경로 출처를 식별할 수 있습니다.
표기 | 설명 |
O | OSPF 내부 경로 (Intra-Area) 같은 Area 내에서 학습된 경로 |
O IA | OSPF Inter-Area 경로 ABR를 통해 다른 Area에서 전달된 경로 |
O E1 | OSPF External Type 1 경로 ASBR에서 재분배된 외부 경로 (내부 cost + 외부 cost) 내부 경로 비용이 반영되므로 더 세밀한 경로 선택 가능 대규모 네트워크, 정확한 경로 제어 필요 시 |
O E2 | OSPF External Type 2 경로 ASBR에서 재분배된 외부 경로 (외부 cost만 사용) 모든 라우터에서 동일한 cost로 인식되므로 경로 최적화에 불리 외부 기본 경로(Default Route) 제공 시 유용 |
[R1]
R1#show ip route ospf
...
Destination Gateway Dist/Metric Last Change
----------- ------- ----------- -----------
O 2.2.2.2/32 via 10.10.12.2, Gi 1/47 110/1 00:03:15
O 3.3.3.3/32 via 10.10.13.3, Vl 13 110/1 00:19:49
O 4.4.4.4/32 via 10.10.12.2, Gi 1/47 110/2 00:19:49
via 10.10.13.3, Vl 13
O 10.10.24.0/24 via 10.10.12.2, Gi 1/47 110/2 00:19:49
via 10.10.13.3, Vl 13
O 120.2.0.2/32 via 10.10.12.2, Gi 1/47 110/1 00:03:15
O 120.2.1.2/32 via 10.10.12.2, Gi 1/47 110/1 00:03:15
O 120.2.2.2/32 via 10.10.12.2, Gi 1/47 110/1 00:03:15
O 130.3.0.3/32 via 10.10.13.3, Vl 13 110/1 00:19:49
O 130.3.1.3/32 via 10.10.13.3, Vl 13 110/1 00:19:49
O 130.3.2.3/32 via 10.10.13.3, Vl 13 110/1 00:19:49
O 140.4.0.4/32 via 10.10.12.2, Gi 1/47 110/2 00:19:49
via 10.10.13.3, Vl 13
O 140.4.1.4/32 via 10.10.12.2, Gi 1/47 110/2 00:19:49
via 10.10.13.3, Vl 13
O 140.4.2.4/32 via 10.10.12.2, Gi 1/47 110/2 00:19:49
via 10.10.13.3, Vl 13
============================================================================
[R4]
R4#show ip route ospf
...
Destination Gateway Dist/Metric Last Change
----------- ------- ----------- -----------
O 1.1.1.1/32 via 10.10.24.2, Vl 24 110/2 00:20:36
via 10.10.24.3, Vl 24
O 2.2.2.2/32 via 10.10.24.2, Vl 24 110/1 00:04:01
O 3.3.3.3/32 via 10.10.24.3, Vl 24 110/1 00:20:36
O 10.10.12.0/24 via 10.10.24.2, Vl 24 110/2 00:20:36
O 10.10.13.0/24 via 10.10.24.3, Vl 24 110/2 00:20:36
O 110.1.0.1/32 via 10.10.24.2, Vl 24 110/2 00:20:36
via 10.10.24.3, Vl 24
O 110.1.1.1/32 via 10.10.24.2, Vl 24 110/2 00:20:36
via 10.10.24.3, Vl 24
O 110.1.2.1/32 via 10.10.24.2, Vl 24 110/2 00:20:36
via 10.10.24.3, Vl 24
O 120.2.0.2/32 via 10.10.24.2, Vl 24 110/1 00:04:01
O 120.2.1.2/32 via 10.10.24.2, Vl 24 110/1 00:04:01
O 120.2.2.2/32 via 10.10.24.2, Vl 24 110/1 00:04:01
O 130.3.0.3/32 via 10.10.24.3, Vl 24 110/1 00:20:36
O 130.3.1.3/32 via 10.10.24.3, Vl 24 110/1 00:20:36
O 130.3.2.3/32 via 10.10.24.3, Vl 24 110/1 00:20:36
Ping Test
R1에서 모든 대역으로 Ping 통신이 성공적으로 이루어진 것을 확인할 수 있습니다. OSPF를 통해 라우팅 정보가 정상적으로 교환되었으며, 각 라우터가 상대방의 IP를 학습하고 이를 경로로 사용할 수 있다는 것을 의미합니다.
R1#ping 120.2.2.2
Sending 5, 100-byte ICMP Echos to 120.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100.0 percent (5/5), round-trip min/avg/max = 0/0/0 (ms)
R1#ping 130.3.1.3
Sending 5, 100-byte ICMP Echos to 130.3.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100.0 percent (5/5), round-trip min/avg/max = 0/0/0 (ms)
R1#ping 140.4.0.4
Sending 5, 100-byte ICMP Echos to 140.4.0.4, timeout is 2 seconds:
!!!!!
Success rate is 100.0 percent (5/5), round-trip min/avg/max = 0/0/0 (ms)
R1#ping 10.10.24.4
Sending 5, 100-byte ICMP Echos to 10.10.24.4, timeout is 2 seconds:
!!!!!
Success rate is 100.0 percent (5/5), round-trip min/avg/max = 0/0/0 (ms)
링크 장애 발생 시 동적 경로 전환
OSPF(Open Shortest Path First) 라우팅 프로토콜의 특징 중 하나인 동적 경로 전환 기능을 테스트해보았습니다.
OSPF는 장애가 발생했을 때, 사전에 학습된 다른 경로로 자동으로 전환하여 통신이 지속되도록 합니다.
이러한 동작을 실제로 확인하기 위해 R2 ↔ R4 구간에 장애를 인위적으로 발생시켜 보고, 라우터가 다른 경로로 트래픽을 자동 우회하는지 확인하는 실습을 진행했습니다.
실시간으로 ping을 보내는 중에, R2 ↔ R4 사이 인터페이스를 shutdown 하여 장애 상황을 시뮬레이션합니다.
[R2]
R2(conf)#int tengigabitethernet 1/49
R2(conf-if-te-1/49)#shutdown
R2 ↔ R4 구간 인터페이스를 shutdown 하자, ping 패킷 손실이 3회 발생했습니다.
이후 OSPF가 Dead Timer 만료 전 대체 경로를 빠르게 계산하여, 다른 경로를 통해 통신이 자동으로 재개되었습니다. 추가 설정 없이도 OSPF의 다이나믹한 경로 전환 기능이 정상 동작함을 확인할 수 있었습니다.
라우팅 테이블 확인 시에도 R4로 향하는 라우팅이 R2(10.10.12.2)를 경유하는 경로가 제거 됨을 볼 수 있습니다.
[R1]
R1#ping 140.4.0.4 count 1000
Sending 1000000, 100-byte ICMP Echos to 140.4.0.4, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...!!!!!!!!!!!!!!!!!!!!!!
R1#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
2.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
3.3.3.3 1 10.10.13.3 Vl 13 0 Intra-Area
4.4.4.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.0 1 0.0.0.0 Gi 1/47 0 Intra-Area
10.10.13.0 1 0.0.0.0 Vl 13 0 Intra-Area
10.10.24.0 2 10.10.13.3 Vl 13 0 Intra-Area
120.2.0.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.1.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
130.3.0.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.1.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.2.3 1 10.10.13.3 Vl 13 0 Intra-Area
140.4.0.4 2 10.10.13.3 Vl 13 0 Intra-Area
140.4.1.4 2 10.10.13.3 Vl 13 0 Intra-Area
140.4.2.4 2 10.10.13.3 Vl 13 0 Intra-Area
다시 R2 ↔ R4 구간 인터페이스를 no shutdown 하면 R2에 대한 경로가 다시 학습된 것을 확인할 수 있습니다.
[R2]
R2(conf)#int tengigabitethernet 1/49
R2(conf-if-te-1/49)#no shutdown
==================================================
[R1]
R1#show ip ospf routes
Prefix Cost Nexthop Interface Area Type
2.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
3.3.3.3 1 10.10.13.3 Vl 13 0 Intra-Area
4.4.4.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
10.10.12.0 1 0.0.0.0 Gi 1/47 0 Intra-Area
10.10.13.0 1 0.0.0.0 Vl 13 0 Intra-Area
10.10.24.0 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
120.2.0.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.1.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
120.2.2.2 1 10.10.12.2 Gi 1/47 0 Intra-Area
130.3.0.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.1.3 1 10.10.13.3 Vl 13 0 Intra-Area
130.3.2.3 1 10.10.13.3 Vl 13 0 Intra-Area
140.4.0.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
140.4.1.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0
140.4.2.4 2 10.10.13.3 Vl 13 0 Intra-Area
10.10.12.2 Gi 1/47 0