[Router] OSPF 3: 패킷 종류

OSPF 동작과정을 보면 각 상태마다 다른 패킷을 주고 받는다.
패킷은 Hello, DDP, LSR, LSU, LSAck으로 총 5가지를 사용한다.
이 글에선 5가지 패킷에 대해 알아본다.

[OSPF의 패킷 종류]

┌ Hello 패킷

├ DDP / DBD 패킷

├ LSR 패킷

├ LSU 패킷

└ LSAck 패킷

0. OSPF 공통 패킷

OSPF의 모든 5가지 패킷은 항상 공통으로 들어가는 헤더가 있다.

Version: OSPF 버전에 대한 필드값이다. ( 2 or3 )
Type: OSPF 패킷 타입에 대한 필드값이다.( 1: Hello, 2: DDP, 3: LSR, 4: LSU, 5: LSAck)
Packet Length: 패킷에 대한 길이를 바이트로 표시한다. 헤더 24바이트도 포함시킨다.
Router-id: 이 패킷을 보내는 라우터의 Router-id이다.
Area-id: 이 패킷이 속한 Area 번호이다.
Checksum: 에러검출을 위한 체크섬 값이다.
AuType: 인증타입 필드값이다.
                 패스워드 미사용: 0, Plain-text 사용: 1, MD5 사용: 2
Authentication: 패킷 무결성 확인을 위한 인증 데이터이다.

1. Hello 패킷

라우터가 처음 Neighbor를 구성하거나 Neighbor 관계 유지를 위해 주기적으로 교환할 때, 사용되는 패킷이다. Hello 패킷의 목적지 IP는 멀티캐스트 224.0.0.5이다.

Network Mask: 본인 네트워크의 Subnet Mask
Hello Interval / Dead Interval: 패킷 주기 (수정 가능)
Options: 라우터가 지원하는 선택적 OSPF 기능을 나타낸다.
Router Priority: DR/BDR 선출할 때 사용한다. 기본값은 1이고, 0~255 사이 숫자를 넣을 수 있다.
DR: DR라우터의 Router-id이다. 없으면 0.
BR: BDR라우터의 Router-id이다. 없으면 0.
Neighbor: 인접 라우터의 Hello 패킷을 받고 Neighbor List에 등록한 Neighbor 목록이다.

* DR/BDR 선출 시 Router Priority가 0일 경우 선출될 수 없으며, 높은 순서대로 DR/DBR이 선출된다.
** 네트워크 타입 별 패킷 주기
– Hello Timer / Dead Timer  (Dead Timer는 Hello Timer의 4배다.)
Point-to-Point Type : 10 / 40
Broadcast Type: 10 / 40
Non-broadcast Type: 30 / 120
Point-to-Multipoint Type: 30/ 120

2. DDP / DBD 패킷

■ Database Description Packet || Database Description

라우터 자신의  LSA와 Neighbor LSA를 “Link State Database”에 저장한다. 이 LSDB 안의 LSA들을 요약한게 바로 DDP(DBD) 패킷이다.

Interface MTU: 외부로 가는 interface의 MTU
Options:
I-bit: DDP 패킷에서 첫번째 패킷인지 확인하는 필드값이다. 첫번째 패킷이면 1, 두번째 패킷부터 0이다.
M-bit: DDP패킷에서 마지막 패킷인지 확인하는 필드값이다. 마지막 패킷이면 0, 마지막 패킷이 아니라면 1이다.
MS-bit: Master 라우터 / Slave 라우터 구별하는 필드값이다. Master는 1, Slave는 0이다.
DD Sequence Number: DDP 패킷이 순서대로 보관되도록 매기는 데 사용되는 필드이다. 1씩 증가한다.
LSA Header: 패킷을 보내는 라우터의 LSDB에 대한 정보가 담겨있다.

3. LSR 패킷

■ Link State Request

Neighbor로부터 DDP(DBD)를 수신한 후 자신에게 없는 LSA가 있을 때, 상세 LSA를 요청하는 패킷이다.

LS Type: LSA 타입이 들어간 필드값이다.
Link State ID: LSA 타입에 따라 다르다.
Advertising Router: LSR 패킷을 받는 라우터의 Router-id이다.

4. LSU 패킷

■ Link State Update

LSR 패킷을 받았거나 라우팅에 변동이 생기면, 해당 정보를 전송할 때 사용하는 패킷이다.

#LSAs: LSU 패킷에 담긴 LSA의 개수이다.
LSAs: LSA에 대한 전체 정보가 담겨있다.

5. LSAck 패킷

■ Link State Acknowledgement

DDP 패킷, LSU패킷을 정상적으로 수신하면 잘 받았다는 의미에서 사용되는 패킷이다.

LSA Header: LSA을 잘 받았다는 내용이 담겨있다.

여기까지가 OSPF의 5가지 패킷에 대한 내용이다. 근데 DDP 패킷이나 LSU 패킷 필드에 보면 ‘LSA’라는게 있는데 이게 뭘까?..
다음에는 LSA에 대해 알아봐야겠다!

참고 및 그림 출처: OSPF Packet Types – Google

2 thoughts on “[Router] OSPF 3: 패킷 종류”

답글 남기기

이메일 주소는 공개되지 않습니다.