728x90
반응형
1. BGP Timer
Timer | Description |
Connect Retry Counter |
❍ BGP Peer가 Peer Session을 설정하려고 시도한 횟수를 의미 |
Connect Retry Timer |
❍ TCP Session이 설정되면 Connect Retry Timer가 중지 ❍ TCP Session을 설정하려는 첫 번째 시도가 실패하면 Connect Retry Timer가 만료된 후 BGP는 다시 TCP Session을 설정하려고 시도 ❍ Connect Retry Timer를 길게 설정하면 Peer 관계가 Flapping으로 인한 Route Flapping이 억제 ❍ Nokia 7750 SR OS Default Value : 120s |
Delay Open Timer |
❍ TCP Session Flapping 발생 시, Resource를 소비하는 문제를 보완하고자 Open Message를 전송하기 전 Delay Time을 지정 ❍ RFC에는 Delay Open Timer의 내용이 있지만 Google Search 결과 Nokia, Cisco, Juniper 등 여러 Vendor에서 구현이 안 된 것으로 파악 |
Hold Time | ❍ BGP Session 종료 전, Keepalive 또는 Update Message 수신을 기다리는 시간 ❍ RFC 4271에 따라 0 또는 3s 이상이어야 구동 가능 - 0s로 설정 시, Peer와의 연결이 영구적으로 구성 - 0s로 설정 시, Keepalive Message는 미송신 ❍ Hold Time은 Open Message를 통해 전송 - Nokia 7750 SR OS Default Value : 90s - Cisco Default Value : 180s |
Keepalive | ❍ 해당 Timer가 만료되면 Keepalive Message를 송신 ❍ 해당 Timer 구성이 잘못된 경우, Hold Timer의 1/3로 자동 설정 - Keepalive 값이 Hold Timer 값보다 클 경우, 해당 ❍ Hold Time 값이 0일 경우, Keepalive 값은 무시 ❍ 일반적으로 Keepalive Timer는 Hold Timer의 1/3 - Nokia 7750 SR OS Default Value : 30s - Cisco Default Value : 60s ❍ Keepalive Timer는 Peer 간에 협상되지 않으며 Local에서 구성 ❍ Nokia 7750 SR OS는 자동으로 Active Hold Timer의 1/3로 구성 |
2. BGP Neighbor State
1) BGP Neighbors Phase
- BGP Neighbor는 2단계로 성립
Phase | Description |
TCP | ❍ BGP Peering을 시작하기 위해 TCP 179번을 사용해 BGP Peer IP Address로 TCP Session을 시도 ❍ BGP Neighbor State 중에 Idle, Connect, Active State가 이에 해당 |
BGP | ❍ BGP Neighbor State 중에 Open Sent, Open Confirm, Established State가 이에 해당 |
2) BGP Neighbor State Diagram
State | Description |
Idle | ❍ Initial BGP Peer State를 의미 - New BGP Peer를 구성하거나 BGP Peer 재설정 ❍ Remote BGP Neighbor에 대해 TCP 연결을 시도하는 단계 - TCP 연결 시도가 성공하면 Connect State로 변경 - TCP 연결 시도에 실패하면 Idle State를 유지 (라우팅 테이블에 BGP Peer에 대한 Network IP 정보가 없는 경우) ❍ TCP 연결 시도 성공이란 TCP Packet(SYN Flag)를 전송한 것을 의미 |
Connect | ❍ 해당 상태에서 TCP Connect가 완료되기를 기다리는 상태 ❍ Remote Peer와 TCP Connect를 설정하려고 시도할 때 BGP State |
Active | ❍ TCP Connect가 실패한 경우 ❍ Passive TCP Establishment Option이 활성화된 경우 |
Open Sent | ❍ Open Message를 보내고 Peer의 Open Message를 기다리는 BGP State ❍ Negotiated Hold Time 값이 0이면 Hold Timer 및 Keepalive Timer가 시작되지 않음 ❍ 수신한 Open Message에서 Error가 없으면 Keepalive Message를 전송하고 Keepalive 및 Hold Timer가 시작 - Error란 Open Message에 잘못된 정보(Version, ASN 등 Error Code)가 있는 경우를 의미 ❍ BGP가 ASN을 확인하기 때문에 eBGP 또는 iBGP를 사용할지 여부를 결정하는 상태 - 수신한 AS Field가 Local AS와 같으면 ‘Internal’이고, 다르면 ‘External’ |
Open Confirm | ❍ Open Message를 수신하고 Keepalive Message를 전송한 후 Peer로부터 Keepalive Message를 기다리는 BGP State |
Established | ❍ BGP Peer로부터 Keepalive Message를 수신한 BGP State ❍ BGP Peer에게 Update Message 전송이 가능한 상태 |
- RFC 4271에는 Negotiated Hold Timer의 값은 양단의 Peer에 구성된 Hold Timer 중 큰 값으로 결정된다고 표시
- Nokia 7750 SR Negotiated Hold Timer의 값은 양단의 Peer에 구성된 Hold Timer 중 작은 값으로 결정
3. Detailed BGP Neighbor State
1) Idle State
State | Description |
Idle → Idle |
❍ TCP Connect 시도 실패 |
Idle → Connect |
❍ TCP Connect 시도 성공 - BGP Resource 초기화 - Connect Retry Counter를 0으로 변경 - Connect Retry Timer를 초깃값에서 시작 |
Idle → Active |
❍ Passive TCP Establishment Option이 활성화된 경우 - BGP Resource 초기화 - Connect Retry Counter를 0으로 변경 - Connect Retry Timer를 시작 |
2) Connect State
State | Description |
Connect → Connect |
❍ Connect Retry Timer Expires - TCP Session 종료 - Connect Retry Timer 재시작 - TCP Connect 재시도 ❍ TCP Connect 성공(Delay Open Timer Disable) - Connect Retry Timer를 중지하고 0으로 설정 - Peer에게 Open Message를 전송 - Open Sent State로 변경 ❍ TCP Connect 성공 - Connect Retry Timer를 중지하고 0으로 설정 - Delay Open Timer를 초깃값으로 설정 - Connect State를 유지 |
Connect → Idle |
❍ 관리자가 Peer Connection을 수동으로 중지 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer 및 Connect Retry Counter를 0으로 설정 |
Connect → Active |
❍ TCP Connect 실패 - Connect Retry Timer를 초깃값으로 재시작 |
Connect → Open Sent |
❍ Delay Open Timer Expires - Connect Retry Timer 및 Delay Open Timer를 0으로 고정 - Peer에게 Open Message를 전송 - Hold Timer Negotiate |
3) Active State
State | Description |
Active → Active |
❍ TCP Connect 성공 시, Delay Open Timer를 확인 - Connect Retry Timer를 중지하고 0으로 변경 - Delay Open Timer를 초깃값으로 변경 - Active State를 유지 |
Active → Idle |
❍ 관리자가 Peer Connection을 수동으로 중지 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer 및 Connect Retry Counter를 0으로 설정 |
Active → Connect |
❍ Connect Retry Timer Expires - Connect Retry Timer를 초깃값으로 재시작 - TCP Connect 재시도 |
Active → Open Sent |
❍ TCP Connect 성공(Delay Open Timer Disable) - Connect Retry Timer를 0으로 설정 - BGP Resource 초기화 - Peer에게 Open Message를 전송 ❍ Delay Open Timer Expires - Connect Retry Timer 및 Delay Open Timer를 0으로 고정 - Peer에게 Open Message를 전송 - Hold Timer Negotiate |
4) Open Sent State
State | Description |
Open Sent → Idle |
❍ 관리자가 Peer Connection을 수동으로 중지 - Cease Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer 및 Connect Retry Counter를 0으로 설정 ❍ BGP Message에서 Event 발견 / Hold Timer Expires Event - 적절한 Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 ❍ Notification Message 수신 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 |
Open Sent → Active |
❍ TCP Connection Failure Notice를 수신 - BGP Session 종료 - Connect Retry Timer를 재시작 - 예시) Peer가 TCP FIN Flag를 전송하여 FIN/ACK로 응답하는 경우 - 예시) TCP Session Timeout이 발생하는 경우 |
Open Sent → Open Confirm |
❍ Open Message 수신 후, Message에 Error가 없을 경우 - Keepalive Message를 전송 - Hold Timer 및 Keepalive Timer를 결정 |
5) Open Confirm State
State | Description |
Open Confirm → Open Confirm |
❍ Keepalive Timer Expires - Keepalive Message 전송 - Keepalive Timer 재시작 |
Open Confirm → Idle |
❍ 관리자가 Peer Connection을 수동으로 중지 - Cease Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 0으로 설정 ❍ BGP Message에서 Event 발견 / Hold Timer Expires Event - 적절한 Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 ❍ Notification Message 수신 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 ❍ TCP Session Connection Failure Notice를 수신 - BGP Session 종료 - Connect Retry Timer를 재시작 - 예시) Peer가 TCP FIN Flag를 전송하여 FIN/ACK로 응답하는 경우 - 예시) TCP Session Timeout이 발생하는 경우 |
Open Confirm → Established |
❍ Keepalive Message 수신 - Hold Timer 초깃값으로 재시작 |
6) Established State
State | Description |
Established → Idle |
❍ 공통적으로 해당 Connection과 관련된 모든 Route를 삭제 ❍ 관리자가 Peer Connection을 수동으로 중지 - Cease Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 0으로 설정 ❍ BGP Message에서 Event 발견 / Hold Timer Expires Event - 적절한 Error Code가 포함된 Notification Message를 전송 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 ❍ Notification Message 수신 - TCP Session을 종료 - Delay Open Timer를 포함한 모든 BGP Resource 해제 - Connect Retry Timer를 중지하고 0으로 설정 - Connect Retry Counter를 1씩 증가 ❍ TCP Session Connection Failure Notice를 수신 - BGP Session 종료 - Connect Retry Timer를 재시작 - 예시) Peer가 TCP FIN Flag를 전송하여 FIN/ACK로 응답하는 경우 - 예시) TCP Session Timeout이 발생하는 경우 |
Established → Established |
❍ Keepalive Timer Expires(Negotiated Hold Time이 0이 아닌 경우) - Keepalive Message 전송 및 Keepalive Timer 재시작 ❍ Keepalive, Update Message 수신 - Negotiated Hold Time이 0이 아닌 경우, Hold Timer를 재시작 ❍ Keepalive, Update Message 송신 - Negotiated Hold Time이 0이 아닌 경우, Keepalive Timer를 재시작 |
4. BGP Neighbor 확인(Nokia 7750 SR)
1) show router bgp neighbor
- 'Last Error' Field : BGP Neighbor에서 마지막으로 발생한 BGP Error 및 Sub-Code를 표시
'Last Event' Field List | |
State | Description |
Start | ❍ BGP Peer를 초기화 |
Stop | ❍ BGP Peer를 비활성화 |
Open | ❍ TCP Connection Opened |
Close | ❍ TCP Connection Closed |
OpenFail | ❍ TCP Connection Failure |
Error | ❍ TCP Connection Error |
ConnectRetry | ❍ Connect Retry Timer Expire |
HoldTime | ❍ Hold Time Timer Expire |
KeepAlive | ❍ Keepalive Timer Expire |
RecvOpen | ❍ OPEN Message 수신 |
RevKeepalive | ❍ Keepalive Message 수신 |
RecvUpdate | ❍ Update Message 수신 |
RecvNotify | ❍ Notification Message 수신 |
None | ❍ Event가 발생하지 않음 |
5. BGP Session Clear(Nokia 7750 SR)
- 'clear router bgp neighbor x.x.x.x' 명령어로 Neighbor Clear 가능
- 'clear router bgp protocol' 명령어로 BGP Protocol Clear 가능
1) Soft Option
- clear 명령어로 인한 서비스 영향을 감소
Option | Description |
Soft | ❍ 지정된 BGP Neighbor는 Local-RIB의 모든 경로를 재계산 |
Soft-Inbound | ❍ 지정된 BGP Neighbor는 RIB-In의 모든 경로를 재계산 |
728x90
반응형
'네트워크 > BGP' 카테고리의 다른 글
BGP Attribute Weight(Cisco IOL) (0) | 2024.05.26 |
---|---|
BGP Route Tie-Breaker (0) | 2024.05.25 |
BGP Attribute Categories (0) | 2024.05.24 |
Troubleshooting BGP Neighbor and BGP Route Advertisement (0) | 2024.05.23 |
BGP Message Header (0) | 2024.05.21 |
BGP Confederation Sample Configuration(Cisco IOL) (0) | 2024.03.24 |
BGP Confederation Sample Configuration(Nokia 7750 SR) (0) | 2024.03.23 |
Introduction to BGP Confederation (0) | 2024.03.22 |