
OSPF
개념
- 라우터의 link 상태와 link의 metric과 연관된 정보를 포함한 link-state advertisement, 즉 LSA를 이웃한 관계(neighbor)의 라우터에게 전달하는 라우팅 프로토콜
- LSA는 OSPF의 LSDB(link-state database)에 저장되어 라우팅에 사용됨
- 홍보된 링크 상태에 관한 정보는 이웃한 라우터에 홍보됨과 동시에 홍보받은 라우터와 neighbor 관계에 있는 라우터로 추가되거나 삭제되는 정보 없이 받은 LSA 그대로 재홍보됨
- 같은 영역내의 라우터들은 모두 같은 LSDB를 유지함
LSDB
- LSDB는 네트워크의 토폴로지를 제공하고, 결정적으로 라우터에게 네트워크에 대한 map을 제공함
- 모든 OSPF 라우터는 다익스트라 최단 경로 우선 알고리즘을 사용
- 이는 loop가 발생하지 않는 최단 경로 loop 토폴로지를 구축하기 위함
SPT

- 각 라우터는 본인을 SPF tree(SPT)의 최상단 또는 root로 간주함
- 모든 SPT는 OSPF 영역내에서 모든 SPT 네트워크의 목적지를 포함하고 있음
- 위의 사진은 맨 좌측의 토폴로지를 각각 R1의 시점(중앙), R4의 시점(우측)으로 나타낸 것임
다중 OSPF
- 한 라우터에서 다수의 OSPF 프로토콜 과정을 실행할 수 있음
- 생성된 OSPF들은 고유의 DB를 지니고 있음
- 각 OSPF는 서로의 경로를 학습할 수 없으며, 재분배를 하기 전까지는 불가능
- OSPF 프로세스 number는 고유하며 다른 라우터와 겹치지 말아야 함
Areas
- OSPF는 라우팅 도메인 내에서 여러 OSPF areas로 토폴로지 segment를 나눔으로써 라우팅 테이블을 위한 확장성을 지니고 있음
- Area 연동은 인터페이스 단위에서 설정됨
- Area ID는 OSPF hello packet에 포함되어 있음
- 각 인터페이스는 하나의 area에 포함될 수 있음
- 같은 OSPF 영역에 속한 라우터들은 서로 동일한 LSDB를 갖고 있음
Multiple Areas
- OSPF area는 네트워크 링크와 area 내 라우터의 증가로 확장됨
- 단일 area의 사용은 토폴로지를 단순하게 만들어 주지만 단점이 명확함
- Link의 연결이 불안정하면 모든 경로에 대한 SPT 계산이 발생
- 단일 area에서는 LSDB의 크기가 관리 불가능 수준으로 커짐
- 단일 area LSDB가 커지면 memory 낭비 문제와 SPF 계산에 더 많은 프로세스를 사용하고 계산 완수에 더 많은 시간이 걸림
- 단일 영역에서는 경로 정보에 대한 요약이 이루어지지 않음
- 사실상 OSPF 영역을 다수로 사용하는 것은 LSDB가 관리 가능한 수준의 크기를 유지하도록 돕기 위한 것임
- 만약 라우터가 다수의 area 인터페이스를 지닌다면, 라우터는 그에 해당하는 LSDB들을 가질 것임
- 한 area의 내부 토폴로지가 외부 area에서는 보이지 않음
- OSPF 영역을 다수의 area로 나누는 것은 각 area에 관한 LSDB 크기를 줄이고, SPT 계산을 더욱 빠르게 만들기 위한 것
- 그리고 link가 불안정할 때 라우터 사이에 LSDB flooding이 발생하는 것을 줄이기 위해 OSPF area를 다수로 지정하는 것임
- 라우터가 여러 area에 연결된다는 게 한 area가 다른 area에 흡수된다는 의미가 아님
Specific Area
- Area 0은 Backbone Area로 불림
- OSPF를 설계할 때, OSPF는 two-tier 계층 구조를 사용
- 모든 Area는 무조건 상위 계층(Area 0)과 연결되어 있어야 함
neighbor

- 맨 처음부터 Down인 경우는 잘 없음
- neighbor 관계 맺는 과정
- hello packet 전송
- 통신 방식이 무엇인지(uni, multi, broad), 해당 패킷을 전송한 기기의 정보가 담겨 있음
- hello packet을 받은 기기에서 hello packet을 보낸 기기로 자신의 정보를 담은 hello packet을 전송
- 2번 과정을 마치면 2-way 상태로 봄
- 2-way 관계를 맺은 후, hello packet을 먼저 전송한 기기에서 다시 hello packet 전송(그러나 처음과는 다르게 unicast 통신으로 전송)
- DR/BDR 선출
- OSPF DB 정보 교환
- 서로의 DB 정보를 교환하는 상태를 ExChange라고 함
- LSR, LSU, LSACK 등을 교환하는 상태를 Loading이라고 함
- ExChange와 Loading은 공존할 수 있음
- 모든 정보 교환이 끝날 때, 라우터는 Full 상태가 됨
secondaries
- secondary 네트워크에 홍보를 할지 말지 결정하는 명령어
secondaries non
- 위의 설정은 secondary 네트워크에 자신을 홍보하지 않겠다는 의미
- 결과적으로 seconday 네트워크와는 neighbor를 맺지 않음
Passive Interface
- passive interface를 설정한 구역으로는 라우팅 정보가 전송되지 않음
- 외부 네트워크와 직접적인 연결이 없는 end device로 향하는 경로에 passive interface 거의 필수적으로 설정
OSPF Interface

- 특정 인터페이스가 어느 Area에 속하는지, 네트워크 타입이 뭔지, hello packet interval 등에 대한 정보가 표시됨

- ospf interface의 정보를 간략화 하여 표시
External OSPF Routes
- Type 1, Type 2는 각각 동일 네트워크 라우터에 대한 정보, DR에서 생성한 네트워크에 대한 정보가 담겨 있음
- Type 1이 Type 2보다 우선시 됨
- Type 1 metric은 재분배 metric 값과 ASBR까지의 총 경로 metric값을 더하여 라우팅 테이블에 표시
- Type 2 metric은 오직 재분배 metric과 동일, ASBR 라우터까지 30 hop만큼 떨어져 있다고 가정하고 metric 계산
- Type 3는 ASBR 라우터로부터 들어온 다른 Area 네트워크 정보
- 네트워크, cost, ABR에 대한 정보가 담겨져 있음
- summary LSA라고 함
- E1과 E2의 차이
- E1은 E1 cost + ASBR cost 값을 계산하여 가장 작은 값을 라우팅 테이블에 표시
- E2는 E2 cost 비교 후, cost 값이 동일하면 ASBR까지의 cost 값을 계산하여 가장 작은 값을 라우팅 테이블에 표시
Forwarding Address
- EIGRP 네트워크와 연결된 두 대의 라우터가 있고, 각각 회선의 BW가 100, 10 Mbps일 때 재분배 명령어만 넣은 상황
- OSPF-EIGRP 재분배 라우터에서 EIGRP 구역 인터페이스에는 아직 홍보를 하지 않음
- 여기까지 설정하면 OSPF 라우터의 Forwarding Address가 설정되지 않음 (Forwarding Address = 0.0.0.0)
- 이후 EIGRP 구역 인터페이스에 OSPF로 자신을 홍보하면?
- Forwarding Address가 가장 가까운 거리에 존재하는 EIGRP 라우터의 인터페이스 주소로 설정됨
Default Route Advertisement
- OSPF는 기본적으로 default route에 대해서 재분배 정보를 갖고 올 수 없음
- 명령어를 통해 default route에 대한 정보를 본인 너머로 전달하도록 설정
default-information originate [always] [metric metric value] [metric-type type-value]
- RIB으로 default route의 정보가 라우팅 테이블에 저장되어 있어야 위의 명령어가 동작함
- External Type5의 E2로 홍보됨
- always 옵션은 ASBR이 아니어도 설정 가능
DR/BDR

- DR은 실제로 존재하는 것이 아닌 가상의 역할이고 puseudonode(실제로 존재하지 않는 라우터)를 DR 기능을 담당하는 라우터로 설정하고 실제 OSPF 네트워크에서 DR로 선출되는 라우터는 puseudonode와 직접적으로 연결되어 DR 기능을 한다는 개념
- priority를 0으로 설정하면 DR/BDR 후보에 오르지 않고 무조건 Drother로 남겠다는 의미
Network Type
- Multi Access인지, P2P인지 비교 & Broadcast(Multicast)를 할 수 있는지, 할 수 없는지 비교
- Multi Access라면 DR/BDR 선출 가능
- P2P면 DR/BDR 선출 X, DR/BDR 선출 불가능
- Broadcast를 할 수 있으면 224.0.0.5로 전송 가능
- 불가능하다면 neighbor 명령어를 통해 unicast로 특정 기기로만 통신
- 라우터 사이의 서브넷 마스크가 달라도 루프백 주소의 서브넷 마스크가 같으면 서로 neighbor를 맺을 수도 있고, 터널도 생성할 수 있음
- 라우터의 루프백 인터페이스를 /32로 주고 다른 /32 주소를 가진 라우터와 터널을 생성할 때, 루프백 라우터의 실제 인터페이스 주소가 /24라고 하더라도 터널이 생성됨
LAB
-
토폴로지

-
OSPF에 관한 실험
- Forwarding Address 확인
- 재분배 경로 metric 조정
OSPF Network Type

- Multi-Access(Broadcast, Nonbroadcast) Network Type은 DR/BDR 선출 가능
- Broadcast
- 224.0.0.5 주소로 통신
- hello packet 교환, DR/BDR 선출 가능
- Nonbroadcast
- 224.0.0.5 주소로 통신 불가능
- 모든 packet을 unicast로 전달
- neighbor 명령어로 neighbor를 수동으로 설정해 주어야 함
- P2P
- 1:1 형태의 네트워크
- Broadcast 통신 가능
- Point to multipoint
- 1:N의 형태를 하고 있으나, 실제로는 여러 point to point 형태의 네트워크가 하나로 묶인 듯한 형태
- 원래는 Broadcast 통신 불가능
- 여러 옵션을 통해 Broadcast 통신이 가능하게 만듦(map 기반의 broadcast)
- Point to multipoint 네트워크 타입에서 nonbroadcast 옵션은 더 사용하지 않음
Failure Detection
Timers
- Hello Timer, Dead Interval Timer
- 라우터 사이의 Timer 시간을 맞춰 주어야 함
- 만약 일정 시간(Dead Interval Timer) 동안 hello packet을 받지 못하면 neighbor 관계 끊어짐
Authentication Types
- Plain text
- dead interval timer 시간 안에 plain text 인증이 완료되어야 함
- 그렇지 않으면 neighbor 관계 끊어짐
- MD5 cryptographic hash
- MD5 key 값이 같아야 함
- plain text도 동일
Advanced OSPF
Link-State Advertisement
-
Type 1, router
-
Type 2, network
- area 기반의 broadcast segment를 참고하여 라우터 지정
-
Type 3, summary
- 다른 네트워크의 network prefix 홍보
-
Type 4, ASBR summary
-
Type 5, AS external
- OSPF로 재분배 된 network prefix 홍보
-
Type 7, local NSSA area로 재분배 된 network prefix 홍보
-
Type 1, 2는 같은 area, 네트워크
-
Type 3는 다른 area
-
Type 4는 ASBR의 위치 특정
-
Type 5, 7은 외부 네트워크
-
LSA의 Aging Time은 기기가 LSA를 한번씩 확인할 때마다 증가

-
Type 4의 내용은 다른 네트워크를 거칠 때마다 달라짐
- ASBR이 존재하는 네트워크에서 ASBR의 위치를 모르는 네트워크로 LSA를 전송할 때, 존재하지 않던 Type 4를 생성(ASBR의 위치 기록)
- Type 4 LSA를 받은 네트워크에서 다음 네트워크로 LSA가 전송될 때, Type 4의 정보는 ASBR에 대한 직접적인 정보가 아닌 ASBR로 가는 경로를 알고 있는 ABR에 대한 정보를 Type 4 LSA로 만들어 전송

LAB2-LSA
- 토폴로지
