Introduction
Ce document décrit les problèmes qui empêchent le voisinage BGP d'être correctement établi.
Conditions préalables
Exigences
Aucune exigence spécifique n'est associée à ce document.
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Conventions
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Informations générales
Les routeurs BGP peuvent échanger des informations de routage uniquement lorsqu'ils établissent une connexion homologue entre eux. L'établissement de l'homologue BGP commence par la création d'une connexion TCP entre les périphériques. Une fois la connexion TCP établie, les périphériques BGP tentent de créer une session BGP par l'échange de messages BGP Open, où ils échangent la version BGP, le numéro de système autonome, le temps d'attente et l'identificateur BGP.
Sur le processus d'établissement d'homologue BGP, plusieurs choses peuvent empêcher un voisinage BGP d'être correctement établi. Ce document discute certaines de ces raisons possibles pour ce problème :
Diagramme du réseau
Utilisez ce schéma de réseau comme exemple pour les trois premières causes :
Diagramme du réseau
Problème
Instruction Neighbor Incorrecte
La commande show ip bgp summary sur le routeur R1-AGS montre que la session est active.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.10.2 4 400 0 0 0 0 0 never Active
Les configurations sont les suivantes :
R1-AGS |
R6-2500 |
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Serial1
ip address 10.10.10.1 255.255.255.0
!
router bgp 400
neighbor 10.10.10.2 remote-as 400
neighbor 10.10.10.2 update-source Loopback0
!
ip route 10.1.1.1 255.255.255.255 10.10.10.2 |
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0
ip address 10.10.10.2 255.255.255.0
!
router bgp 400
neighbor 10.10.10.1 remote-as 400
neighbor 10.10.10.1 update-source Loopback0
!
ip route 10.2.2.2 255.255.255.255 10.10.10.1 |
Les commandes debug ip bgp et debug ip tcp transactions montrent l'échec de la connexion TCP.
Débogages sur le routeur R1-AGS :
BGP: 10.10.10.2 open active, local address 10.2.2.2
TCB00135978 created
TCB00135978 setting property 0 16ABEA
TCB00135978 bound to 10.2.2.2.11039
TCP: sending SYN, seq 3797113156, ack 0
TCP0: Connection to 10.10.10.2:179, advertising MSS 1460
TCP0: state was CLOSED -> SYNSENT [11039 -> 10.10.10.2(179)]
TCP0: state was SYNSENT -> CLOSED [11039 -> 10.10.10.2(179)]
TCP0: bad seg from 10.10.10.2 -- closing connection: seq 0 ack 3797113157 rcvnxt 0 rcvwnd 0
TCP0: connection closed - remote sent RST
TCB00135978 destroyed
BGP: 10.10.10.2 open failed: Connection refused by remote host
TCP: sending RST, seq 0, ack 1965664223
TCP: sent RST to 10.1.1.1:11016 from 10.10.10.1:179
Débogages sur le routeur R6-2500 :
TCP: sending RST, seq 0, ack 3797113157
TCP: sent RST to 10.2.2.2:11039 from 10.10.10.2:179
BGP: 10.10.10.1 open active, local address 10.1.1.1
TCB001E030C created
TCB001E030C setting property TCP_WINDOW_SIZE (0) 194F7A
TCB001E030C setting property TCP_TOS (11) 194F79
TCB001E030C bound to 10.10.1.1.11016
TCP: sending SYN, seq 1965664222, ack 0
TCP0: Connection to 10.10.10.1:179, advertising MSS 1460
TCP0: state was CLOSED -> SYNSENT [11016 -> 10.10.10.1(179)]
TCP0: state was SYNSENT -> CLOSED [11016 -> 10.10.10.1(179)]
TCP0: bad seg from 10.10.10.1 -- closing connection: seq 0 ack 1965664223 rcvnxt 0 rcvwnd 0
TCP0: connection closed - remote sent RST
TCB 0x1E030C destroyed
BGP: 10.10.10.1 open failed: Connection refused by remote host
Solution
Afin de remédier à cette situation, corrigez l'adresse de bouclage dans l'instruction neighbor ou supprimez la commande update-source de la configuration.
Dans cet exemple, l'adresse est corrigée.
R1-AGS |
R6-2500 |
router bgp 400
neighbor 10.1.1.1 remote-as 400
neighbor 10.1.1.1 update-source Loopback0
!
ip route 10.1.1.1 255.255.255.255 10.10.10.2
|
router bgp 400
neighbor 10.2.2.2 remote-as 400
neighbor 10.2.2.2 update-source Loopback0
!
ip route 10.2.2.2 255.255.255.255 10.10.10.1
|
La commande show ip bgp summary montre que le routeur R1-AGS est dans l'état établi.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.1 4 400 3 3 1 0 0 00:00:26 0
Problème
Aucune route vers l'adresse de voisinage n'existe ou la route par défaut est utilisée pour atteindre l'homologue
La commande show ip bgp summary sur le routeur R1-AGS montre que la session est actuellement active.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.1 4 400 0 0 0 0 0 never Active
Les configurations sont les suivantes :
R1-AGS |
R6-2500 |
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Serial1
ip address 10.10.10.1 255.255.255.0
!
router bgp 300
neighbor 10.1.1.1 remote-as 400
neighbor 10.1.1.1 ebgp-multihop 2
neighbor 10.1.1.1 update-source Loopback0 |
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0
ip address 10.10.10.2 255.255.255.0
!
router bgp 400
neighbor 10.2.2.2 remote-as 300
neighbor 10.2.2.2 ebgp-multihop 2
neighbor 10.2.2.2 update-source Loopback0 |
Si vous exécutez des commandes debug, il indique qu'il n'y a pas de route vers le voisin.
Débogages sur le routeur R1-AGS :
BGP: 10.1.1.1 open active, delay 9568ms
BGP: 10.1.1.1 multihop open delayed 19872ms (no route)
BGP: 10.1.1.1 multihop open delayed 12784ms (no route)
Débogages sur le routeur R6-2500 :
BGP: 10.2.2.2 open active, delay 6531ms
BGP: 10.2.2.2 multihop open delayed 14112ms (no route)
BGP: 10.2.2.2 multihop open delayed 15408ms (no route)
Solution
La solution est d'inclure une route vers le tronçon suivant dans l'instruction BGP neighbor. Selon la situation, vous pouvez utiliser une route statique ou dynamique. Dans un environnement BGP interne (iBGP) où vous avez plus de contrôle, vous pouvez propager la route de manière dynamique à l'aide d'un protocole de routage. Dans une situation BGP externe (eBGP), il est recommandé de configurer une route statique pour atteindre le saut suivant.
Remarque : utilisez la commande neighbor ebgp-multihop uniquement lorsque l'adresse IP à laquelle vous appairez sur votre homologue eBGP n'est pas directement connectée.
Dans cet exemple, une route statique est utilisée.
R1-AGS |
R6-2500 |
router bgp 300
neighbor 10.1.1.1 remote-as 400
neighbor 10.1.1.1 ebgp-multihop 2
neighbor 10.1.1.1 update-source Loopback0
!
ip route 10.1.1.1 255.255.255.255 10.10.10.2
|
router bgp 400
neighbor 10.2.2.2 remote-as 300
neighbor 10.2.2.2 ebgp-multihop 2
neighbor 10.2.2.2 update-source Loopback0
!
ip route 10.2.2.2 255.255.255.255 10.10.10.1
|
La commande show ip bgp summary montre que le routeur R1-AGS est dans l'état établi.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.1 4 400 3 3 1 0 0 00:00:26 0
Remarque : une route par défaut ne sera jamais utilisée pour établir une session BGP (iBGP/eBGP), et vous voyez la même sortie (aucune route) dans les débogages, bien que vous puissiez envoyer une requête ping au voisin BGP. La solution est à nouveau d'ajouter une route au voisin BGP.
Problème
Commande Update-source manquante sous BGP
La commande show ip bgp summary sur le routeur R1-AGS montre que la session est active.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.1 4 400 0 0 0 0 0 never Active
Les configurations sont les suivantes :
R1-AGS |
R6-2500 |
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Serial1
ip address 10.10.10.1 255.255.255.0
!
router bgp 400
neighbor 10.1.1.1 remote-as 400
!
ip route 10.1.1.1 255.255.255.255 10.10.10.2 |
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0
ip address 10.10.10.2 255.255.255.0
!
router bgp 400
neighbor 10.2.2.2 remote-as 400
!
ip route 10.2.2.2 255.255.255.255 10.10.10.1 |
Si vous exécutez des commandes debug, cela indique que la connexion TCP échoue.
Débogages sur le routeur R1-AGS :
TCP: sending RST, seq 0, ack 2248020754
TCP: sent RST to 10.10.10.2:11018 from 10.2.2.2:179
BGP: 10.1.1.1 open active, local address 10.10.10.1
TCB0016B06C created
TCB0016B06C setting property 0 16ADEA
TCB0016B06C bound to 10.10.10.1.11042
TCP: sending SYN, seq 4099938541, ack 0
TCP0: Connection to 10.1.1.1:179, advertising MSS 536
TCP0: state was CLOSED -> SYNSENT [11042 -> 10.1.1.1(179)]
TCP0: state was SYNSENT -> CLOSED [11042 -> 10.1.1.1(179)]
TCP0: bad seg from 10.1.1.1 -- closing connection: seq 0 ack 4099938542 rcvnxt 0 rcvwnd 0
TCP0: connection closed - remote sent RST
TCB0016B06C destroyed
BGP: 10.1.1.1 open failed: Connection refused by remote host
Débogages sur le routeur R6-2500 :
BGP: 10.2.2.2 open active, local address 10.10.10.2
TCB00194800 created
TCB00194800 setting property TCP_WINDOW_SIZE (0) E6572
TCB00194800 setting property TCP_TOS (11) E6571
TCB00194800 bound to 10.10.10.2.11018
TCP: sending SYN, seq 2248020753, ack 0
TCP0: Connection to 10.2.2.2:179, advertising MSS 556
TCP0: state was CLOSED -> SYNSENT [11018 -> 10.2.2.2(179)]
TCP0: state was SYNSENT -> CLOSED [11018 -> 10.2.2.2(179)]
TCP0: bad seg from 10.2.2.2 -- closing connection: seq 0 ack 2248020754 rcvnxt 0 rcvwnd 0
TCP0: connection closed - remote sent RST
TCB 0x194800 destroyed
BGP: 10.2.2.2 open failed: Connection refused by remote host
TCP: sending RST, seq 0, ack 4099938542
TCP: sent RST to 10.10.10.1:11042 from 10.1.1.1:179
Solution
Afin de résoudre ce problème, soit configurez la commande update-source sur les deux routeurs, soit supprimez la commande update-source et changez l'instruction neighbor sur les deux routeurs. Voici des exemples de ces deux solutions.
La commande update-source est configurée sur les deux routeurs :
R1-AGS |
R6-2500 |
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Serial1
ip address 10.10.10.1 255.255.255.0
!
router bgp 400
neighbor 10.1.1.1 remote-as 400
neighbor 10.1.1.1 update-source Loopback0
!
ip route 10.1.1.1 255.255.255.255 10.10.10.2 |
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0
ip address 10.10.10.2 255.255.255.0
!
router bgp 400
neighbor 10.2.2.2 remote-as 400
neighbor 10.2.2.2 update-source Loopback0
!
ip route 10.2.2.2 255.255.255.255 10.10.10.1 |
La commande show ip bgp summary montre que le routeur R1-AGS est dans l'état établi.
R1-AGS(9)#
show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.2.2.2 4 400 3 3 1 0 0 00:00:26 0
Vous n'avez besoin d'utiliser la commande update-source que quand quelqu'un est en train d'appairer votre adresse de bouclage. Ceci est vrai pour un homologue iBGP et un homologue eBGP.
Ici, la commande update-source est supprimée et l'instruction neighbor est modifiée sur les deux routeurs.
R1-AGS |
R6-2500 |
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Serial1
ip address 10.10.10.1 255.255.255.0
!
router bgp 400
neighbor 10.10.10.2 remote-as 400
|
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0
ip address 10.10.10.2 255.255.255.0
!
router bgp 400
neighbor 10.10.10.1 remote-as 400
|
La commande show ip bgp summary montre que le routeur R1-AGS est dans l'état établi.
R1-AGS(9)#show ip bgp summary
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.10.2 4 400 3 3 1 0 0 00:00:26 0
Informations connexes