Este documento descreve como resolver um problema de peer lento com o uso do recurso BGP (Border Gateway Protocol) de peer lento, que identifica um peer lento em um grupo de atualização BGP e pode mover o peer lento para fora do grupo de atualização permanente ou temporariamente.
Esta seção fornece uma visão geral do recurso de peer lento e do uso de grupos de atualização.
O recurso de peer lento é usado em grupos de atualização. Um grupo de atualização é um método dinâmico que é usado para agrupar peers BGP com a mesma política de saída. O benefício dos grupos de atualização é que a política de grupo é usada para formatar mensagens uma vez, e depois elas são replicadas e transmitidas aos outros membros do grupo. Esse método é mais eficiente do que a necessidade de formatar atualizações BGP para cada peer separadamente.
Quando esse método é implementado, se a política de saída for alterada, os grupos de peer mudam por grupo de atualização. Os grupos de atualização são formados por família de endereços (AF).
Aqui está um exemplo de dois peers BGP em diferentes grupos de atualização para unicast AF IPv4, mas com o mesmo grupo de atualização para 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
O grupo de atualização torna-se mais eficiente à medida que o número de peers BGP incluídos no grupo de atualização aumenta. Normalmente, os peers BGP internos (iBGP) têm a mesma política de saída. Para o iBGP, um refletor de rota (RR) pode ter muitos peers iBGP; portanto, ele terá grandes grupos de atualização. Os roteadores Provider Edge (PE) podem ter muitos peers BGP externos (eBGP) em direção aos roteadores Customer Edge (CE) em um Virtual/Routing Forwarding (VRF). Os roteadores PE também podem ter grandes grupos de atualização para os pares com roteadores CE nas interfaces VRF.
Um peer lento é um peer que não pode acompanhar a taxa na qual o roteador gera mensagens de atualização de BGP durante um período prolongado (em ordem de minutos) em um grupo de atualização. O motivo para isso pode ser problemas de rede persistentes. Os motivos da rede podem ser a perda de pacotes e/ou links carregados, ou problemas de throughput com as sessões BGP. Além disso, um peer BGP pode estar muito carregado em termos de CPU e não pode atender à conexão TCP na velocidade necessária.
Os peers lentos afetam a convergência de BGP do grupo de atualização completo. Se um peer de BGP estiver lento, isso fará com que todo o grupo de atualização fique lento. O resultado é que os outros membros do grupo de atualização também terão uma convergência mais lenta. Por isso, a questão deve ser resolvida.
Você pode identificar o peer lento e movê-lo para fora do grupo de atualização. Para concluir esta tarefa, você pode alterar a política de saída para esse peer BGP; no entanto, esta é uma tarefa manual. Primeiro, você deve identificar o peer que está lento e depois movê-lo para fora do grupo de atualização. O recurso de peer lento pode fazer isso automaticamente, para que não seja necessária nenhuma intervenção do usuário.
Há três partes no recurso peer lento:
Esses processos são descritos com mais detalhes nas seções a seguir.
O recurso de peer lento detecta peers lentos em um grupo de atualização. Cada grupo de atualização tem uma fila de cache, onde as atualizações de BGP formatadas são temporariamente armazenadas antes da transmissão.
Aqui está um exemplo desse cache de grupo de atualização:
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
O tamanho do cache é calculado dinamicamente e depende de:
O número de atualizações de BGP formatadas que aguardam transmissão pode ser criado em um grupo de atualização quando um peer (o lento) não reconhece as mensagens de BGP tão rapidamente quanto os outros membros. Quando o limite de cache é atingido, o grupo não tem mais cota para colocar novas mensagens em fila. Nenhuma mensagem nova pode ser formatada até que o cache seja reduzido (até que algumas mensagens sejam confirmadas pelos pares lentos). Isso proíbe o peer BGP e não permite que ele envie novas mensagens (atualizações ou retiradas) para os membros mais rápidos do grupo. Assim, isso retarda a convergência de todos os pares no grupo de atualização.
Para que o recurso de peer lento identifique um peer lento, ele se refere aos timestamps de atualização do BGP e aos parâmetros TCP do peer.
Por padrão, a detecção lenta do peer é desativada. Para habilitar a detecção de peer lenta, use um destes métodos:
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
Quando um peer lento é detectado, uma mensagem de syslog semelhante a esta é impressa:
%BGP-5-SLOWPEER_DETECT: Neighbor IPv4 Unicast 10.1.6.7 has been detected
as a slow peer.
Você pode inserir estes comandos show para exibir os pares lentos:
Aqui está um exemplo de saída do comando show quando a palavra-chave lenta é usada:
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
Como mostrado na saída, o peer 10.1.6.7 é um peer lento para o unicast AF IPv4. Os outros AFs não mostram nenhum par lento.
Para verificar se o temporizador de detecção está em execução no momento e seu valor, insira este comando:
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
Como mostrado na saída do exemplo, o temporizador de detecção foi iniciado. O temporizador de detecção inicia quando o cache do grupo de atualização está cheio.
Neste exemplo, você pode ver que um peer lento é detectado, mas ele só sai do grupo de atualização depois que o temporizador de detecção de peer lento expira:
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
Se o recurso de detecção de peer lento não estiver habilitado, você deve identificar o peer lento manualmente. Primeiro, verifique a versão da tabela e a fila de saída dos peers no grupo de atualização:
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
Neste exemplo, verifique se a versão da tabela (TblVer) dos peers alcançou a versão principal da tabela BGP ou se está sempre atrás. Em segundo lugar, verifique se há um ou mais peers com valores de fila de saída muito altos. É provável que estes sejam os pares lentos.
Quando você visualizar a suspeita de peer BGP lento, considere estas perguntas (em ambos os lados da sessão BGP):
Aqui está um exemplo:
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
Esta seção descreve o processo de movimento em relação ao recurso peer lento em vários cenários.
Um peer lento pode ser movido manualmente para um novo grupo de atualizações sem o recurso de peer lento.
Antes do recurso de peer lento estar disponível, você era solicitado a identificar o peer lento e depois movê-lo para fora do grupo de atualização manualmente. Isso é concluído com uma alteração na política de saída desse peer BGP. Essa política de saída deve ser diferente de qualquer outra que seja usada, pois você deve garantir que o peer lento não se mova para outro grupo de atualização que existe atualmente (e mova o problema para esse grupo de atualização). A melhor alteração que você pode aplicar é aquela que não afeta a política real. Por exemplo, você pode alterar o MRAI (Minimum Route Advertisement Interval, Intervalo mínimo de anúncio de rota) do peer (sob o AF específico).
Aqui está um exemplo que mostra o movimento manual de um peer lento quando o recurso de peer lento não está disponível:
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
Para mover um peer de um grupo de atualização para um novo grupo de atualização, você pode configurá-lo como um peer estático lento. Se houver vários peers lentos, os peers lentos estáticos com a mesma política de saída serão colocados no mesmo grupo de atualização lento.
Para mover um peer lento estaticamente, você pode configurá-lo com o uso destes comandos:
[no] neighbor {/ } slow-peer split-update-group static
[no] slow-peer split-update-group static
Por padrão, o movimento lento de peer é desativado. Para habilitar o movimento lento de peer, você pode configurá-lo através de um destes métodos:
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
Os peers lentos estáticos e os peers lentos dinâmicos estão no mesmo grupo de atualização de peer lento. Neste exemplo, você pode ver um peer lento em um grupo de atualização lenta:
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
Um peer lento pode ser agrupado sob seu grupo de atualização original (que corresponde à política de saída) quando for confirmado que ele não é mais um peer lento (ele é capturado). O temporizador de recuperação começa quando o grupo de atualização de peer lento convergiu. Quando o temporizador de recuperação expira, o peer lento é movido de volta para o grupo de atualização regular.
Quando um peer lento é movido de volta para o grupo de atualização original (isso significa uma recuperação), uma mensagem de syslog semelhante a esta é impressa:
%BGP-5-SLOWPEER_RECOVER: Slow peer IPv4 Unicast 10.1.6.7 has recovered.
Para verificar se o temporizador de recuperação está em execução no momento e o valor, insira este comando:
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
Neste exemplo, o temporizador de recuperação, com um valor de 16 segundos, indica que um peer possivelmente lento pode voltar ao seu grupo de atualização original em 16 segundos.
Neste exemplo, você pode ver um peer que se recuperou do status de peer lento:
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
O status lento do peer pode ser limpo manualmente com estes comandos:
Com o uso desses comandos, o peer é movido de volta para o grupo de atualização original.
Insira o comando show ip bgp internal para exibir as configurações de detecção e movimento lentas de peer:
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
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
16-Jun-2015 |
Versão inicial |