본문 바로가기
네트워크/BGP

BGP Message Header

by 최개미의 세계 2024. 5. 21.
728x90
반응형

1. BGP Message Type Summary

Type Name Description
1 Open ❍ 두 BGP 라우터 간에 TCP Session이 구성된 후, Open Message를 사용하여 BGP Peer 연결을 시도
❍ 자신의 정보(AS, Router-ID, Hold Time)를 Peer에게 전송
2 Update ❍ Update Message를 전송하여 BGP Peer 간에 라우팅 정보를 교환
3 Notification ❍ BGP에 관련된 Error 발생 시, Notification Message를 전송
4 Keepalive ❍ BGP 공통 Header로만 구성
❍ BGP 라우터 간에 Health Check 하는 것이 목적
❍ 기본적으로 Hold Time의 1/3로 구성
 - Nokia 7750 SR OS는 Active Hold Timer의 1/3로 자동 구성
5 Route Refresh ❍ 예전에 BGP Peer가 광고한 경로를 재전송할 때 사용
❍ 현재 일반적인 BGP v4에서 미사용
  • RFC 4271에 BGPv4 및 Message Type 1~4가 정의
  • RFC 2918에 Message Type 5가 정의

 

 

2. BGP Message Header

1) BGP 공통 Header

Field Description
Marker 옛날 버전과 호환성을 위해 Header에 계속 존재
 - 옛날 버전에서는 MD5 인증 사용 용도로 표시
 - 모두 1로 설정 시, 인증을 사용하지 않는다는 의미
BGPv4(RFC 4271)에서 더 이상 사용되지 않으며 Field를 모두 1로 구성
Length 공통 Header를 포함한 BGP Message의 Total Length
19 ~ 4096 byte
Type 1 : Open Message
2 : Update Message
3 : Notification Message
4 : Keepalive Message
5 : Route-Refresh Message

 

2) BGP Open Message

Field Description
Version 현재 BGPv4를 사용하며 BGP Peer와 정보 불일치 시, BGP Peer 불가능
BGP Neighbor와 정보 불일치 시, BGP Session 성립 불가능
AS 송신지의 AS를 표시
Hold Time Hold Time 동안 Keepalive or Update Message를 수신하지 않으면 BGP Peer 해제
 - Keepalive 또는 Update 메시지 수신 시, Hold Time 값을 0으로 Reset
두 라우터 간에 구성된 값을 비교하여 작은 값으로 적용
 - Nokia 7750 SR은 기본적으로 90s로 설정되며 Keepalive Message는 30s마다 전송
 - Cisco IOS는 기본적으로 180s로 설정되며 Keepalive Message는 60s마다 전송
 - RFC 4721에는 큰 값으로 구성한다고 표시
BGP-ID BGP Router-ID( BGP-ID)
Optional Length ❍ Optional Field의 Length를 표시
0 = Optional Field가 없음을 의미
Optional Option Field를 이용하여 Authentication, MP-BGP, Graceful-Restart를 지원

 

 

3) BGP Update Message

Field Description
Withdrawn Routes
Length
Withdrawn Route Field의 Length
❍ 해당 값이 0이면 Withdrawn Route Field가 없음을 의미
Withdrawn Routes ❍ 이전에 광고했던 Route List(BGP Table에서) 중 제거되어야 하는 모든 NRLI를 나열
 - 즉, BGP 테이블에서 제거되어야 하는 모든 NLRI를 나열
❍ 1byte의 Length 및 가변 길이의 Prefix(Prefix 당 4byte)로 표시
Total Path Attribute
Length
❍ Path Attribute Field의 Total Length
❍ 값이 0이면 NLRI Field 정보가 없음을 의미
Path Attribute ❍ NLRI에 대한 BGP Attribute 정보를 표시
❍ Flag 및 TVL(Attribute Type, Attribute Length, Attribute Value) 형태로 표시
 - Flag는 해당 Attribute 처리 방법을 알려주는 정보
Network Layer
Reachability
Information
❍ 새로운 NLRI가 추가되거나 Attribute가 변경된 NLRI에 대한 정보를 나열
❍ 1byte의 Length 및 가변 길이의 Prefix(Prefix 당 4byte)로 표시

 

Field Description
Flag ❍ O(Option)
 - 0 : Well-known
 - 1 : Optional
❍ T(Transitive)
 - 0 : Non-Transitive
 - 1 : Transitive
❍ P(Partial)
 - 0 : Complete
 - 1 : Partial
❍ Extended Length
 - 0 : Attribute Length가 1 Octet
 - 1 : Attribute Length가 2 Octet
Attribute Type ❍ 1 : Origin
❍ 2 : AS-Path
❍ 3 : Next-Hop
❍ 4 : MED
❍ 5 : Local-Preference
  • Update Message로 광고되는 Prefix에 대한 정보(Network IP Address)를 NLRI(Network Layer Reachability Information)로 명칭

 

  • 1.1.1.1/32 NLRI를 광고하기 위한 Update Message
  • Cisco는 Nokia와 달리 MED를 설정하지 않아도 Update Message에 MED Field를 추가하여 전달

 

  • NLRI에 대한 Flag 및 Attribute(TLV) 정보를 표시

 

  • BGP Table에서 1.1.1.1/32 NLRI 정보를 제거하기 위한 Update Message

 

4) BGP Keepalive Message

  • Established State에서 Update(Advertised 또는 Withdrawn) 할 Route가 없을 때 주기적인 Keepalive Message를 사용

 

5) BGP Notification Message

Field Description
Error Code ❍ 1 : Message Header Error
❍ 2 : Open Message Error
❍ 3 : Update Message Error
❍ 4 : Hold Timer Expired
❍ 5 : Finite State Machine Error
❍ 6 : Session Cease
Error Sub-Code ❍ Error Code에 대한 자세한 내용
❍ Message Header Error Sub-Code
 - 1 : Connection Not Synchronized
 - 2 : Bad Message Length
 - 3 : Bad Message Type
❍ OPEN Message Error Sub-Code
 - 1 : Unsupported Version Number
 - 2 : Bad Peer AS
 - 3 : Bad BGP Identifier
 - 4 : Unsupported Optional Parameter
 - 6 : Unacceptable Hold Time
❍ UPDATE Message Error Sub-Code
 - 1 : Malformed Attribute List
 - 2 : Unrecognized Well-known Attribute
 - 3 : Missing Well-known Attribute
 - 4 : Attribute Flags Error
 - 5 : Attribute Length Error
 - 6 : Invalid ORIGIN Attribute
 - 8 : Invalid NEXT_HOP Attribute
 - 9 : Optional Attribute Error
 - 10 : Invalid Network Field
 - 11 : Malformed AS_PATH
Diagnostic Data ❍ Error에 대한 자세한 내용
  • BGP Error 발생 시, Notification Message가 전송되고 BGP Peer 및 TCP Session 종료
  • Notification Message를 수신하면 해당 BGP Peer 및 TCP Session이 제거되고 BGP Peer에게 수신한 모든 항목이 BGP Table에서 제거되며 Update Message(Route Withdrawals가 포함)를 다른 BGP Peer로 전송
  • BGP Error Code가 있으며 각 Error Code에는 Sub-Type이 존재

 

  • AS Number Mismatch 시, 발생되는 Notification Message
  • Error Code(2)는 Open Message Error를 의미하고 Error Sub-Code(2)는 Bad Peer AS를 의미하고 Peer AS가 2라는 것을 의미

 

728x90
반응형