이 문서에서는 BGP 업데이트 그룹에서 느린 피어를 식별하고 느린 피어를 업데이트 그룹 밖으로 영구적으로 또는 일시적으로 이동할 수 있는 BGP(Border Gateway Protocol) 느린 피어 기능을 사용하여 느린 피어 문제를 해결하는 방법에 대해 설명합니다.
이 섹션에서는 느린 피어 기능 및 업데이트 그룹 사용에 대한 개요를 제공합니다.
느린 피어 기능은 업데이트 그룹에 사용됩니다.업데이트 그룹은 동일한 아웃바운드 정책으로 BGP 피어를 그룹화하기 위해 사용되는 동적 방법입니다.업데이트 그룹의 이점은 메시지를 한 번 포맷하기 위해 그룹 정책을 사용한 다음, 그룹 내의 다른 구성원에게 복제되고 전송된다는 것입니다.이 방법은 각 피어에 대해 BGP 업데이트를 별도로 포맷할 필요 이상으로 효율적입니다.
이 방법을 구현할 때 아웃바운드 정책이 변경되면 피어 그룹은 업데이트 그룹당 변경됩니다.업데이트 그룹은 AF(Address Family)별로 구성됩니다.
다음은 AF IPv4 유니캐스트를 위한 서로 다른 업데이트 그룹에 있는 두 BGP 피어의 예이며 AF VPNv4에 대해 동일한 업데이트 그룹을 사용하는 예입니다.
R2#show ip bgp update-group
BGP version 4 update-group 1, external, Address Family: IPv4 Unicast
Has 1 member (* indicates the members currently being sent updates):
10.1.3.4
BGP version 4 update-group 2, external, Address Family: IPv4 Unicast
Has 1 member (* indicates the members currently being sent updates):
10.1.2.3
R2#show ip bgp vpnv4 all update-group
BGP version 4 update-group 1, external, Address Family: VPNv4 Unicast
Has 2 members (* indicates the members currently being sent updates):
10.1.2.3 10.1.3.4
업데이트 그룹에 포함된 BGP 피어의 수가 증가하면 업데이트 그룹의 효율성이 향상됩니다.일반적으로 내부 BGP(BGP) 피어는 동일한 아웃바운드 정책을 갖습니다.iBGP의 경우 RR(Route Reflector)에는 많은 iBGP 피어가 있을 수 있습니다.따라서 대규모 업데이트 그룹이 생성됩니다.PE(Provider Edge) 라우터는 하나의 VRF(Virtual/Routing Forwarding)에서 CE(Customer Edge) 라우터에 대한 eBGP(external BGP) 피어를 많이 포함할 수 있습니다. PE 라우터는 VRF 인터페이스에서 CE 라우터를 사용하는 피어링뿐만 아니라 대규모 업데이트 그룹을 가질 수 있습니다.
저속 피어는 라우터가 업데이트 그룹에서 오랜 기간(분 단위) 동안 BGP 업데이트 메시지를 생성하는 속도를 따라잡을 수 없는 피어입니다.그 이유는 지속적인 네트워크 문제일 수 있습니다.네트워크 이유는 패킷 손실 및/또는 로드된 링크 또는 BGP 세션의 처리량 문제일 수 있습니다.또한 BGP 피어는 CPU의 측면에서 과부하가 발생할 수 있으며 필요한 속도로 TCP 연결을 서비스할 수 없습니다.
느린 피어는 전체 업데이트 그룹의 BGP 컨버전스에 영향을 줍니다.한 BGP 피어가 느리면 전체 업데이트 그룹의 속도가 느려집니다.따라서 다른 업데이트 그룹 멤버도 컨버전스가 느려집니다.따라서 문제를 해결해야 합니다.
느린 피어를 식별하여 업데이트 그룹에서 이동할 수 있습니다.이 작업을 완료하려면 해당 BGP 피어에 대한 아웃바운드 정책을 변경할 수 있습니다.그러나 이는 수동 작업입니다.먼저 속도가 느린 피어를 식별한 다음 업데이트 그룹에서 이동해야 합니다.저속 피어 기능으로 자동으로 이 작업을 수행할 수 있으므로 사용자 개입이 필요하지 않습니다.
느린 피어 기능에는 세 가지 부분이 있습니다.
이러한 프로세스는 다음 섹션에서 자세히 설명합니다.
느린 피어 기능은 업데이트 그룹에서 느린 피어를 탐지합니다.각 업데이트 그룹에는 전송 전에 포맷된 BGP 업데이트가 임시로 저장되는 캐싱 대기열이 있습니다.
다음은 이러한 업데이트 그룹 캐시의 예입니다.
R2#show ip bgp replication
Current Next
Index Members Leader MsgFmt MsgRepl Csize Version Version
1 1 10.1.1.1 0 0 0/100 6/0
2 3 10.1.2.3 2 6 0/1000 6/0
3 1 10.1.2.6 3 0 0/100 6/0
캐시의 크기는 동적으로 계산되며 다음에 따라 달라집니다.
한 피어(느린 피어)가 BGP 메시지를 다른 멤버만큼 빠르게 인식하지 않을 때 한 업데이트 그룹에서 전송을 대기하는 포맷된 BGP 업데이트 수입니다.캐시 제한에 도달하면 새 메시지를 대기열에 추가할 수 있는 할당량이 그룹에 더 이상 없습니다.일부 메시지가 느린 피어에서 확인될 때까지 캐시를 축소할 때까지 새 메시지를 포맷할 수 없습니다. 이렇게 하면 BGP 피어가 금지되고 그룹의 더 빠른 구성원에게 새 메시지(업데이트 또는 탈퇴)를 보낼 수 없습니다.따라서 업데이트 그룹의 모든 피어의 컨버전스가 느려집니다.
저속 피어 기능이 저속 피어를 식별하기 위해 BGP 업데이트 타임스탬프 및 피어 TCP 매개변수를 참조합니다.
저속 피어 탐지는 기본적으로 비활성화되어 있습니다.느린 피어 탐지를 활성화하려면 다음 방법 중 하나를 사용합니다.
bgp slow-peer detection [threshold]
[no] bgp slow-peer detection
neighbor {/ } slow-peer detection [threshold < seconds >]
[no] neighbor {/ } slow-peer detection
slow-peer detection [threshold < seconds >]
[no] slow-peer detection
슬로우 피어가 탐지되면 다음과 유사한 syslog 메시지가 인쇄됩니다.
%BGP-5-SLOWPEER_DETECT: Neighbor IPv4 Unicast 10.1.6.7 has been detected
as a slow peer.
슬로우 피어를 보기 위해 다음 show 명령을 입력할 수 있습니다.
다음은 slow 키워드를 사용할 때의 show 명령 출력 예입니다.
R2#show ip bgp update-group summary slow
Summary for Update-group 1, Address Family IPv4 Unicast
Summary for Update-group 2, Address Family IPv4 Unicast
Summary for Update-group 3, Address Family IPv4 Unicast
Summary for Update-group 4, Address Family IPv4 Unicast
BGP router identifier 10.1.6.2, local AS number 2
BGP table version is 966013, main routing table version 966013
BGP main update table version 966013
50000 network entries using 6050000 bytes of memory
50000 path entries using 2600000 bytes of memory
5001/5000 BGP path/bestpath attribute entries using 700140 bytes of memory
5000 BGP AS-PATH entries using 183632 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 9533772 total bytes of memory
BGP activity 208847/158847 prefixes, 508006/458006 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.6.7 4 7 165 50309 0 0 100 00:10:35 0
출력에 표시된 대로 피어 10.1.6.7은 AF IPv4 유니캐스트의 느린 피어입니다.다른 AF에는 슬로우 피어가 표시되지 않습니다.
탐지 타이머가 현재 실행되는지 여부와 해당 값을 확인하려면 다음 명령을 입력합니다.
R2#show ip bgp update-group
BGP version 4 update-group 3, external, Address Family: IPv4 Unicast
BGP Update version : 116013/0, messages 164 queue 164, not converged
Private AS number removed from updates to this neighbor
Update messages formatted 5948, replicated 11589
Number of NLRIs in the update sent: max 249, min 1
Minimum time between advertisement runs is 30 seconds
Slow-peer detection timer (expires in 111 seconds)
Has 3 members (* indicates the members currently being sent updates):
10.1.4.5 10.1.5.6 10.1.6.7
예제 출력에 표시된 것처럼 탐지 타이머가 시작되었습니다.업데이트 그룹 캐시가 꽉 차면 탐지 타이머가 시작됩니다.
이 예에서는 슬로우 피어가 탐지되었지만 느린 피어 탐지 타이머가 만료된 후에만 업데이트 그룹 밖으로 이동한다는 것을 확인할 수 있습니다.
R2#show ip bgp update-group
â¦
BGP version 4 update-group 3, external, Address Family: IPv4 Unicast
BGP Update version : 516013/566013, messages 357 queue 357, not converged
Private AS number removed from updates to this neighbor
Update messages formatted 27044, replicated 53645
Number of NLRIs in the update sent: max 249, min 0
Minimum time between advertisement runs is 30 seconds
Slow-peer detection timer (expires in 20 seconds)
Has 3 members (* indicates the members currently being sent updates)
(1 dynamically detected as slow):
*10.1.4.5 *10.1.5.6 10.1.6.7
슬로우 피어 탐지 기능이 활성화되지 않은 경우 슬로우 피어를 수동으로 식별해야 합니다.먼저 업데이트 그룹에 있는 피어의 테이블 버전 및 출력 대기열을 확인합니다.
R2#show ip bgp update-group 3 summary
Summary for Update-group 3, Address Family IPv4 Unicast
BGP router identifier 10.1.6.2, local AS number 2
BGP table version is 552583, main routing table version 552583
BGP main update table version 552583
37870 network entries using 4582270 bytes of memory
37870 path entries using 1969240 bytes of memory
5002/3788 BGP path/bestpath attribute entries using 700280 bytes of memory
5001 BGP AS-PATH entries using 183656 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 7435446 total bytes of memory
BGP activity 158847/108847 prefixes, 295876/258006 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.4.5 4 5 77 26840 516013 0 0 01:07:12 0
10.1.5.6 4 6 69 26833 516013 0 0 01:00:30 0
10.1.6.7 4 7 79 26761 516013 0 194 00:45:42 0
이 예에서는 피어의 테이블 버전(TblVer)이 기본 BGP 테이블 버전과 일치하는지 아니면 항상 뒤처졌는지 확인합니다.둘째, 출력 대기열 값이 매우 높은 피어를 하나 이상 확인합니다.그들이 느린 동료일 가능성이 높습니다.
의심되는 저속 BGP 피어를 볼 때 다음 질문을 고려하십시오(BGP 세션의 양쪽에서).
예를 들면 다음과 같습니다.
R2#show ip bgp neighbors 10.1.6.7
BGP neighbor is 10.1.6.7, remote AS 7, external link
Member of peer-group group3 for session parameters
BGP version 4, remote router ID 10.1.6.7
BGP state = Established, up for 00:56:09
Last read 00:00:43, last write 00:00:17, hold time is 180, keepalive interval
is 60 seconds
Keepalives are temporarily in throttle due to closed TCP window
Neighbor capabilities:
Route refresh: advertised and received(new)
Address family IPv4 Unicast:
advertised and received
Message statistics
InQ depth is 0
OutQ depth is 0 Partial message pending
Sent Rcvd
Opens: 5 4
Notifications: 0 0
Updates: 29004 0
Keepalives: 0 1426
Route Refresh: 0 0
Total: 30336 1431
Default minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
BGP table version 250001, neighbor version 200001/250001
Output queue size : 410
Index 3, Offset 0, Mask 0x8
3 update-group member
group3 peer-group member
Inbound soft reconfiguration allowed
Private AS number removed from updates to this neighbor
Inbound path policy configured
Route map for incoming advertisements is eBGP-in
Sent Rcvd
Prefix activity: ---- ----
Prefixes Current: 2596 0
Prefixes Total: 102624 0
Implicit Withdraw: 28 0
Explicit Withdraw: 100000 0
Used as bestpath: n/a 0
Used as multipath: n/a 0
Outbound Inbound
Local Policy Denied Prefixes: -------- -------
Total: 0 0
Maximum prefixes allowed 20000
Threshold for warning message 80%, restart interval 300 min
Number of NLRIs in the update sent: max 249, min 0
Last detected as dynamic slow peer: never
Dynamic slow peer recovered: never
Oldest update message was formatted: 00:02:24
Address tracking is enabled, the RIB does have a route to 10.1.6.7
Connections established 4; dropped 3
Last reset 00:57:39, due to User reset
Transport(tcp) path-mtu-discovery is enabled
Connection state is ESTAB, I/O status: 1, unread input bytes: 0
Connection is ECN Disabled
Mininum incoming TTL 0, Outgoing TTL 1
Local host: 10.1.6.2, Local port: 20298
Foreign host: 10.1.6.7, Foreign port: 179
Connection tableid (VRF): 0
Enqueued packets for retransmit: 15, input: 0 mis-ordered: 0 (0 bytes)
Event Timers (current time is 0x4A63D14):
Timer Starts Wakeups Next
Retrans 697 29 0x4A6590C
TimeWait 0 0 0x0
AckHold 64 63 0x0
SendWnd 0 0 0x0
KeepAlive 0 0 0x0
GiveUp 0 0 0x0
PmtuAger 128 127 0x4A64CB7
DeadWait 0 0 0x0
Linger 0 0 0x0
iss: 130287252 snduna: 131516888 sndnxt: 131532233 sndwnd: 16384
irs: 1184181084 rcvnxt: 1184182346 rcvwnd: 15123 delrcvwnd: 1261
SRTT: 20122 ms, RTTO: 20440 ms, RTV: 318 ms, KRTT: 0 ms
minRTT: 20028 ms, maxRTT: 20796 ms, ACK hold: 200 ms
Status Flags: none
Option Flags: nagle, path mtu capable, higher precendence
Datagrams (max data segment is 1460 bytes):
Rcvd: 922 (out of order: 0), with data: 65, total data bytes: 1261
Sent: 1463 (retransmit: 29 fastretransmit: 1),with data: 1391, total
data bytes: 1245129
이 섹션에서는 다양한 시나리오에서 느린 피어 기능과 관련된 이동 프로세스에 대해 설명합니다.
느린 피어는 느린 피어 기능 없이 수동으로 새 업데이트 그룹으로 이동할 수 있습니다.
슬로우 피어 기능을 사용하기 전에 슬로우 피어를 식별한 다음 수동으로 업데이트 그룹 밖으로 이동해야 했습니다.이 작업은 해당 BGP 피어의 아웃바운드 정책 변경과 함께 완료됩니다.이 아웃바운드 정책은 사용되는 다른 정책과 달라야 합니다. 현재 존재하는 다른 업데이트 그룹으로 저속 피어가 이동하지 않도록 하고 문제를 해당 업데이트 그룹으로 이동해야 합니다. 적용할 수 있는 가장 좋은 변경 사항은 실제 정책에 영향을 미치지 않는 것입니다.예를 들어, 특정 AF 아래에 있는 피어의 MRAI(Minimum Route Advertisement Interval)를 변경할 수 있습니다.
다음은 느린 피어 기능을 사용할 수 없을 때 느린 피어의 수동 이동을 보여 주는 예입니다.
RR1#debug ip bgp groups
BGP groups debugging is on
RR1(config)#router bgp 1
RR1(config-router)#address-family vpnv4
RR1(config-router-af)#neighbor 10.100.1.3 advertisement-interval 3
BGP-DYN(4): 10.100.1.3 cannot join update-group 1 due to an advertisement-interval
mismatch
BGP(4): Scheduling withdraws and update-group membership change for 10.100.1.3
BGP(4): Resetting 10.100.1.3's version for its transition out of update-group 1
BGP-DYN(4): 10.100.1.3 cannot join update-group 1 due to an advertisement-interval
mismatch
BGP-DYN(4): Removing 10.100.1.3 from update-group 1
BGP-DYN(4): 10.100.1.3 cannot join update-group 1 due to an advertisement-interval
mismatch
BGP-DYN(4): Created update-group 0 from neighbor 10.100.1.3
BGP-DYN(4): Adding 10.100.1.3 to update-group 0
하나의 피어를 업데이트 그룹에서 새 업데이트 그룹으로 이동하려면 고정 느린 피어로 구성할 수 있습니다.슬로우 피어가 여러 개인 경우 동일한 아웃바운드 정책을 사용하는 고정 슬로우 피어가 동일한 슬로우 업데이트 그룹에 배치됩니다.
느린 피어를 정적으로 이동하려면 다음 명령을 사용하여 구성할 수 있습니다.
[no] neighbor {/ } slow-peer split-update-group static
[no] slow-peer split-update-group static
느린 피어 이동은 기본적으로 비활성화되어 있습니다.느린 피어 이동을 활성화하려면 다음 방법 중 하나를 통해 이를 구성할 수 있습니다.
bgp slow-peer split-update-group dynamic [permanent]
[no] bgp slow-peer split-update-group dynamic
neighbor {/ } slow-peer split-update-group dynamic [permanent]
[no] neighbor {/ } slow-peer split-update-group dynamic
slow-peer split-update-group dynamic [permanent]
[no] slow-peer split-update-group dynamic
고정 느린 피어 및 동적 느린 피어가 동일한 느린 피어 업데이트 그룹에 있습니다.이 예에서는 느린 업데이트 그룹에서 하나의 느린 피어를 볼 수 있습니다.
R2#show ip bgp update-group
â¦
BGP version 4 update-group 4, external, Address Family: IPv4 Unicast
BGP Update version : 0/566013, messages 100 queue 100, not converged
Slow update group
Private AS number removed from updates to this neighbor
Update messages formatted 2497, replicated 0
Number of NLRIs in the update sent: max 10, min 1
Minimum time between advertisement runs is 30 seconds
Has 1 member (* indicates the members currently being sent updates)
(1 dynamically detected as slow):
*10.1.6.7
느린 피어는 더 이상 느린 피어가 아닌 것으로 확인되면 원래 업데이트 그룹(아웃바운드 정책과 일치)에서 다시 그룹화할 수 있습니다(속도 증가). 느린 피어 업데이트 그룹이 통합되면 복구 타이머가 시작됩니다.복구 타이머가 만료되면 느린 피어가 다시 일반 업데이트 그룹으로 이동됩니다.
느린 피어가 원래 업데이트 그룹(즉, 복구)으로 다시 이동되면 이와 유사한 syslog 메시지가 인쇄됩니다.
%BGP-5-SLOWPEER_RECOVER: Slow peer IPv4 Unicast 10.1.6.7 has recovered.
복구 타이머가 현재 실행되는지 여부와 값을 확인하려면 다음 명령을 입력합니다.
R2#show ip bgp update-group
BGP version 4 update-group 1, external, Address Family: IPv4 Unicast
BGP Update version : 165973/0, messages 0 queue 0, converged
Route map for outgoing advertisements is dummy
Update messages formatted 0, replicated 0
Number of NLRIs in the update sent: max 0, min 0
Minimum time between advertisement runs is 30 seconds
Slow-peer recovery timer (expires in 16 seconds)
Has 1 member (* indicates the members currently being sent updates):
10.1.1.1
이 예에서 복구 타이머는 값이 16초인 경우 속도가 느린 피어가 16초 후에 원래 업데이트 그룹으로 다시 이동될 수 있음을 나타냅니다.
이 예에서는 느린 피어 상태에서 복구된 피어를 볼 수 있습니다.
R2#show ip bgp neighbor 10.1.6.7
BGP neighbor is 10.1.6.7, remote AS 7, external link
Member of peer-group group3 for session parameters
BGP version 4, remote router ID 10.1.6.7
â¦
3 update-group member
group3 peer-group member
â¦
Number of NLRIs in the update sent: max 249, min 0
Last detected as dynamic slow peer: 00:12:49
Dynamic slow peer recovered: 00:01:57
Oldest update message was formatted: 00:00:55
다음과 같은 명령을 사용하여 느린 피어 상태를 수동으로 지울 수 있습니다.
이러한 명령을 사용하면 피어가 원래 업데이트 그룹으로 다시 이동됩니다.
느린 피어 탐지 및 이동 설정을 보려면 show ip bgp internal 명령을 입력합니다.
R2#show ip bgp internal
Time left for bestpath timer: 593 secs
Address-family IPv4 Unicast, Mode : RW
Table Versions : Current 622091, RIB 622091
Start time : 00:00:01.168 Time elapsed 01:21:56.740
First Peer up in : 00:00:07 Exited Read-Only in : 00:02:16
Done with Install in : 00:02:26 Last Update-done in : never
0 updates expanded
Attribute list queue size: 0
Slow-peer detection is enabled Threshold is 300 seconds
Slow-peer split-update-group dynamic is enabled
BGP Nexthop scan:-
penalty: 0, Time since last run: never, Next due in: none
Max runtime : 0 ms Latest runtime : 0 ms Scan count: 0
BGP General Scan:-
Max runtime : 14572 ms Latest runtime : 14572 ms Scan count: 78
BGP future scanner version: 79
BGP scanner version: 0