Inleiding
In dit document wordt beschreven hoe u problemen met fluctuerende BGP-routes (Border Gateway Protocol) kunt troubleshooten die worden veroorzaakt door een recursieve fout in routering.
Voorwaarden
Vereisten
Er zijn geen specifieke vereisten van toepassing op dit document.
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
In dit document wordt beschreven hoe u problemen met fluctuerende BGP-routes (Border Gateway Protocol) kunt troubleshooten die worden veroorzaakt door een recursieve fout in routering.
Vaak voorkomende symptomen van recursieve routingfout in BGP zijn:
Raadpleeg dit netwerkdiagram bij gebruik van dit document:
Netwerkdiagram
Raadpleeg deze configuraties bij het gebruik van dit document:
RTR-A |
hostname RTR-A
!
interface Loopback0
ip address 10.10.10.10 255.255.255.255
!
interface Serial8/0
ip address 192.168.16.1 255.255.255.252
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.20.20.20 remote-as 2
neighbor 10.20.20.20 ebgp-multihop 2
neighbor 10.20.20.20 update-source Loopback0
!
ip route 10.20.20.0 255.255.255.0 192.168.16.2
|
RTR-B |
hostname RTR-B
!
interface Loopback0
ip address 10.20.20.20 255.255.255.255
!
interface Ethernet0/0
ip address 172.16.1.1 255.255.255.0
!
interface Serial8/0
ip address 192.168.16.2 255.255.255.252
!
router bgp 2
no synchronization
bgp log-neighbor-changes
network 10.20.20.20 mask 255.255.255.255
network 172.16.1.0 mask 255.255.255.0
neighbor 10.10.10.10 remote-as 1
neighbor 10.10.10.10 ebgp-multihop 2
neighbor 10.10.10.10 update-source Loopback0
no auto-summary
!
ip route 10.10.10.0 255.255.255.0 192.168.16.1
! |
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Probleem
Symptomen
Deze twee symptomen worden waargenomen met recursieve routeringsmislukking:
RTR-A#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - ISIS level-1, L2 - ISIS level-2, ia - ISIS inter are
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B 10.20.20.20/32 [20/0] via 10.20.20.20, 00:00:35
S 10.20.20.0/24 [1/0] via 192.168.16.2
172.16.0.0/24 is subnetted, 1 subnets
B 172.16.1.0 [20/0] via 10.20.20.20, 00:00:35
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
192.168.16.0/30 is subnetted, 1 subnets
C 192.168.16.0 is directly connected, Serial8/0
Opmerking: Het is handig om de show ip route te gebruiken | omvatten, 00:00 bevel om flappende routes te observeren wanneer u grote routingstabellen behandelt.
Nadat u ongeveer een minuut hebt gewacht, veranderen de resultaten van de opdracht van de show ip route in dit beeld:
RTR-A#show ip route
[..]
Gateway of last resort is not set
10.0.0.0/24 is subnetted, 1 subnets
S 10.20.20.0 [1/0] via 192.168.16.2
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
192.168.16.0/30 is subnetted, 1 subnets
C 192.168.16.0 is directly connected, Serial8/0
Opmerking: de BGP-routes ontbreken in de vorige routeringstabel.
-
Wanneer de BGP-routes in de routeringstabel staan, mislukt de verbinding met die netwerken.
Om dit waar te nemen, wanneer de routeringstabel van RTR-A BGP-geleerde route 172.16.1.0/24 in zijn routeringstabel heeft, pingt u om geldige host 172.16.1.1 te ontvangen.
RTR-A#show ip route 172.16.1.0
Routing entry for 172.16.1.0/24
Known via "bgp 1", distance 20, metric 0
Tag 2, type external
Last update from 10.20.20.20 00:00:16 ago
Routing Descriptor Blocks:
* 10.20.20.20, from 10.20.20.20, 00:00:16 ago
Route metric is 0, traffic share count is 1
AS Hops 1
RTR-A#ping 172.16.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
RTR-A#
Recursieve routingfout
Op RTR-A, zie de route richting de BGP peer 10.20.20.20. De route fladdert constant tussen de twee volgende hop elke minuut of zo.
RTR-A#show ip route 10.20.20.20
Routing entry for 10.20.20.20/32
Known via "bgp 1", distance 20, metric 0
Tag 2, type external
Last update from 10.20.20.20 00:00:35 ago
Routing Descriptor Blocks:
* 10.20.20.20, from 10.20.20.20, 00:00:35 ago
Route metric is 0, traffic share count is 1
AS Hops 1
De route naar het BGP peer IP-adres wordt geleerd door BGP zelf, waardoor er een recursieve routing fout ontstaat.
Na ongeveer een minuut verandert de route in:
RTR-A#show ip route 10.20.20.20
Routing entry for 10.20.20.0/24
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.16.2
Route metric is 0, traffic share count is 1
Oorzaken van recidiverend routingfalen
Deze stappen beschrijven de oorzaak van recursieve routeringsfouten:
-
Raadpleeg de configuratie van RTR-A. In deze configuratie, wordt een statische route 10.20.20.0/24 gevormd om aan de direct verbonden volgende-hop 192.168.16.2 te richten. Met deze statische route wordt een BGP-sessie met peer RTR-B 10.20.20.20 ingesteld.
-
Rtr-B kondigt BGP-routes 172.16.1.0/24 en 10.20.20.20/32 aan naar RTR-A met zijn loopback IP-adres 10.20.20.20 als de volgende hop.
-
Rtr-A ontvangt BGP-routes aangekondigd door Rtr-B en probeert de 10.20.20.20/32 te installeren. Dit is specifieker dan 10.20.20.0/24, die reeds in RTR-A als statische route wordt gevormd. Omdat de langste overeenkomende route de voorkeur heeft, wordt 10.20.20.20/32 geprefereerd boven 10.20.20.0/24. Raadpleeg Routeselectie in Cisco-routers voor meer informatie. De geïnstalleerde route 10.20.20.20/32 heeft volgende-hop van 10.20.20.20 (RTR-B peering IP-adres) in de routeringstabel. Dit leidt tot recursieve routeringsmislukking aangezien de route naar 10.20.20.20/32 een volgende-hop van zich heeft.
Om de reden te begrijpen waarom recursieve routing in deze bepaalde situatie mislukt, moet u begrijpen hoe het routingalgoritme werkt. Voor om het even welke niet direct-verbonden route in de routeringstabel waarvan het volgende hopIP adres geen direct-verbonden interface van de router is, kijkt het algoritme recursief in de routeringstabel tot het een direct-verbonden interface vindt waaraan het de pakketten kan door:sturen.
In deze specifieke situatie leert Rtr-A een route naar het niet-direct-verbonden netwerk 10.20.20.20/32 met een niet-direct-verbonden volgende hop van 10.20.20.20 (zelf). Het routingalgoritme loopt in een recursieve routinglusmislukking omdat het geen direct-verbonden interface kan vinden waarnaar om pakketten te verzenden die voor 10.20.20.20/32 worden bestemd.
-
De router ontdekt dat deze niet-direct-verbonden route 10.20.20.20/32 een recursieve routeringsmislukking heeft en 10.20.20.20/32 uit de routeringstabel trekt. Derhalve worden alle BGP-geleerde routes met het volgende hopIP-adres 10.20.20.20 ook uit de routeringstabel verwijderd.
-
Het hele proces herhaalt zich uit stap 1. U kunt dit bevestigen als u het opdracht debug ip routing uitgeeft.
Opmerking:Voordat u een debug-opdracht uitvoert, voert u de debug-opdracht uit tegen een toegangscontrolelijst (ACL) voor een specifiek netwerk om de uitvoer van debug te beperken. In dit voorbeeld, vorm ACL om te beperken debug output.
RTR-A(config)#access-list 1 permit 10.20.20.20
RTR-A(config)#access-list 1 permit 172.16.1.0
RTR-A(config)#end
RTR-A#debug ip routing 1
IP routing debugging is on for access list 1
00:29:50: RT: add 10.20.20.20/32 via 10.20.20.20, bgp metric [20/0]
00:29:50: RT: add 172.16.1.0/24 via 10.20.20.20, bgp metric [20/0]
00:30:45: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:45: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:45: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:46: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:46: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:48: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:48: RT: recursion error routing 10.20.20.20 - probable routing loop
00:30:50: RT: del 10.20.20.20/32 via 10.20.20.20, bgp metric [20/0]
00:30:50: RT: delete subnet route to 10.20.20.20/32
00:30:50: RT: del 172.16.1.0/24 via 10.20.20.20, bgp metric [20/0]
00:30:50: RT: delete subnet route to 172.16.1.0/24
-
Als de routerecursie continu mislukt, wordt deze foutmelding weergegeven:
%COMMON_FIB-SP-6-FIB_RECURSION: 10.71.124.25/32 has too many (8) levels of
recursion during setting up switching info
%COMMON_FIB-SP-STDBY-6-FIB_RECURSION: 10.71.124.25/32 has too many (8)
levels of recursion during setting up switching info
Dit komt door de TCP-hertransmissies op een MPLS-netwerk. Als een BGP keepalive bericht eens heeft ontbroken en naar BGP Peer verzonden omdat de vervoerverbinding neer is, aanvaardt de buurBGP Peer geen verdere keepalive pakketten alhoewel TCP het ontbroken bericht door de reserveweg opnieuw overbrengt, en het uiteindelijk leidt tot BGP peer neer met holdtime verlooping. Dit probleem wordt alleen gezien wanneer MPLS op Catalyst 6500 of Cisco 7600 is geconfigureerd. Deze informatie is opgenomen in Cisco bug-id CSCsj89544 .
Opmerking: alleen geregistreerde Cisco-gebruikers kunnen toegang krijgen tot interne bug-informatie en andere tools.
Oplossing
De oplossing(en) voor dit probleem worden in deze details toegelicht.
Voeg een specifieke statische route in RTR-A toe voor het BGP peer IP-adres (in dit geval 10.20.20.20).
RTR-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
RTR-A(config)#ip route 10.20.20.20 255.255.255.255 192.168.16.2
De configuratie van een statische route voor prefix 10.20.20.20/32 zorgt ervoor dat een dynamisch-geleerde BGP-route 10.20.20.20/32 niet wordt geïnstalleerd in de routeringstabel en vermijdt zo de recursieve routeringsituatie. Raadpleeg Routeselectie in Cisco-routers voor meer informatie.
Opmerking: wanneer EBGP-peers zijn geconfigureerd om elkaar te bereiken met standaardroutes, wordt de BGP-buurt niet weergegeven. Dit wordt gedaan om route het klappen en het verpletteren van lijnen te vermijden.
Ping aan 172.16.1.1 bevestigt de oplossing.
RTR-A#ping 172.16.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/24/40 ms
Routebeperking
Routedemping is een BGP-functie die is ontworpen om de doorgifte van flappende routes over een internetwerk te minimaliseren. De aanbevolen waarden van de ISP zijn de standaardwaarden op Cisco IOS® en u hoeft deze opdracht alleen te configureren om deze in te schakelen.
router bgp <AS number>
bgp dampening
De dempingcommando hebgp stelt de standaardwaarden in voor de dempende parameters zoals Halftime= 15 minuten, hergebruik = 750, Onderdrukking = 2000 en Max Onderdrukking Time= 60. Deze waarden kunnen door de gebruiker worden geconfigureerd, maar Cisco raadt aan ze ongewijzigd te laten.
Gerelateerde informatie