본문 바로가기

Network

OSPF

반응형

OSPF 개념 및 정리

 

OSPF network type


Open Shortest Path First = link-state 알고리즘을 사용하는 IGP routing protocol

OSPF는 Dynamic routing protocol 중에서 link state 방식에 따른 protocol이야.
OSPF는 distance-vector routing인 RIP처럼
자신과 연결된 routing 장비의 정보만 routing table에 저장하지 않고,
network의 전반적인 모든 routing 내용들을 담고 있어.

이런 특성 때문에 protocol이 무거운 부분이 있지만,
확실한 장점은 바로 routing update에 있어
RIP처럼 주기적으로 routing update하는 방식이 아닌
network에서 변화가 발생했을 때만 LSA 라는 data를 송수신하여 link-state 변화를 광고해서
routing table을 update하는 방식이지
세부사항은 밑에 OSPF 동작과정에서 설명하도록 할께


OSPF area


OSPF를 이해하려면 area에 대한 개념을 알아둬야 해
area가 생긴 이유는 OSPF의 link-state 과정을 위한 작업 때문에 생긴 일종의 boundary 라고 볼 수 있어
OSPF는 아까 위에서 설명했듯이 변화가 발생하면 이를 모든 network에게 link-state 변화를 보고해야만 해
그렇게되면, network가 해당 정보를 update하는데 있어서 시간도 많이 소요될 뿐만 아니라
많은 data 송수신으로 인한
부하가 발생한다는 단점을 갖고 있지
이를 해결하기 위해 area라는 개념을 도입한거야
그렇게 해당 area 내에서만 link-state 정보를 송수신할 수 있도록 제한을 걸어두기 위한 장치인거야
그렇다면 area에 따른 router들의 역할들과 종류들을 알아볼께

- backbone area = area 0, OSPF에서 router들이 반드시 거쳐야하는 area
- ABR = 두개 이상의 다른 area에 소속된 router
- ASBR = 다른 routing protocol을 OSPF로 redistribute 시키는 router



R1과 R2는 동일 area에서 link-state를 위한 packet 교환을 진행하고
R2,R3,R4 또한 동일 area에서 link-state를 위한 packet 교환을 진행하고
R4,R5도 동일 area에서 link-state를 위한 packet 교환을 진행하게 돼
그리고 R2와 R4가 각각 area 13과 area 113의 link-state 정보를 backbone area의 DR인
R3에게 정보를 전달하게 돼

결론적으로 2번,4번 router가 ABR임을 알 수 있고,
5번 router가 ASBR임을 알 수 있지
만약, RIPv2 network 정보를 얻고 싶다면 어디에 redistribute를 적용해야 할까? 바로 5번이겠지?

OSPF 동작과정


OSPF가 동작하기 위해서 먼저 router 간에 neighbor라는 것을 실시해야 되는데
neighbor를 맺는 것은 인접한 router간에 맺는 행위야
이 때, OSPF neighbor를 맺기위한 조건이 있는데 다음과 같아

- 동일한 area 안에 같이 포함되어 있도록 구성
- interface간의 hello/dead interval이 동일하게 구성
- router id가 서로 중첩되면 안됨

위의 조건을 성립하면 neightbor를 맺을 선행조건에 만족하게 되고
이제 router는 neighbor router와 link-state를 관리하는 LSDB 정보를 neighbor router와 비교한 후,
두 router가 동일한 상태를 유지하기 위해 LSDB 동기화 작업을 해
그리고 이를 기반으로 해서 SPF 알고리즘을 이용하여 최적 route를 선정해서 routing table에 등록하는거야


OSPF packet 5가지


1. Hello packet: neighbor 형성 및 DR,BDR 선출에 사용하는 packet
2. DBD packet: OSPF database 동기화 검사시 사용하는 packet
3. LSR packet: router 사이에서 특정 link 상태를 요청
4. LSU packet: 새로운 문제 발생시 알림 역할 + LSU에 대한 응답으로 사용 (LSA type 7 포함)
5. LSack packet: LSU packet을 수신했음을 응답할 때 사용


OSPF LSA type 5가지


Type1: 모든 router가 생성 -> interface link state 정보
Type2: DR이 생성 -> DR의 IP 주소 정보
Type3: ABR이 생성 -> 다른 area network 정보
Type4: ABR이 생성 -> ASBR router id 정보
Type5: ASBR이 생성 -> 외부 network 정보


OSPF 상태변화


OSPF 상태변화는 다음과 같은 순서를 거쳐서 진행돼
Down state -> Init state -> Two-way state -> Exstart state -> Exchange state
-> Loading state -> Full state


- Down state: OSPF가 시작되어 hello packet을 바로 옆의 router에게 전송한 상태
hello packet을 송신은 했으나 상대로부터 수신하지 않은 상태

- Init state: neighbor router에게 hello packet을 수신했지만, 상대가 hello packet을 수신하지 못한 상태

- Two-way state: neighbor router와 정상적으로 hello packet을 주고 받은 상태

- Exstart state: neighbor 관계 성립과 LSDB 상태 동기화를 위한 단계
여기서 router-id가 높은 master router를 선정한다.

- Exchange state: 자신의 LSDB에 저장된 LSA header 정보를 DBD packet으로 생성하여
neighbor router 간에 교환하는 단계
만약 LSR이 있다면 다음 step인 loading state로 넘어가고 없을 경우에는 바로 full state로 넘어간다.
(LSR이 있다 = link-state의 변화가 발생했다.)

- Loading state: LSR에 요청 내용이 기록되어 있다면, 해당 router는 LSR packet을 neighbor router에게 전송
특정 LSA 정보를 요청하는 단계라고 볼 수 있어
이를 수신한 router는 LSA 정보를 LSU packet으로 생성 후 routing update 실시

- Full state: neighbor router끼리 routing update가 모두 완료된 상태
이제 두 router 간의 LSDB 상태가 서로 같은 상태가 된 것이다.



Control plane Data plane management plane


1. control plane: 일종의 정책이나 background에서 protocol을 만들고 정책을 만드는 역할
2. data plane: control palne에서 만들어진 정책에 따라 data와 traffic을 실질적으로 송수신하는데
packet들에 대해 forwarding하는 과정
3. management plane: software나 router 장비 자체의 관리를 담당하는 plane

만약 route가 여러가지일 경우에 routing table에는 어떤 경로가 올라오게 되고
그 과정은 어떻게 될 것인지 궁금하다면 이렇게 생각해보면 될 것 같아

기본적으로 router ospf 1, network x.x.x.x area [number]...... 처럼
명령어를 통해서 routing protocol 설정을 하면 이는management plane에서 진행하는 작업이고
해당 protocol이 실행되는 부분은 control plane이야
이제 여러가지 정책들을 적용하고 routing table에 최적 경로를 올리기 위해 거치는 물리적인 부분은
data plane에서 진행하는 작업이라고 생각하면 될 것 같아
밑에 그림을 보면 좀 더 이해하기 쉬울꺼야!




오늘은 여기까지 ~

반응형

'Network' 카테고리의 다른 글

Failover (Active-Standby)  (1) 2022.11.08
Failover link, stateful link  (0) 2022.11.08
3-tier architecture  (2) 2022.11.07
Layer 3 skills (HSRP)  (0) 2022.11.07
Layer 2 skills  (0) 2022.11.07