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: 패킷 종류”