Introduction
Cisco IOS reste la référence opérateur pour les routeurs d'edge en France. Que tu aies un ISR 4000, un CSR 1000v virtuel sur VMware/KVM, un Catalyst 8000 ou un 8200/8300, la config BGP+GRE est quasiment identique. Ce tuto te donne le squelette validé pour un Remote Transit IP VeryCloud.
Prérequis
- Un routeur Cisco IOS / IOS-XE avec IP publique fixe
- Le mail technique VeryCloud avec :
PUB_VC: endpoint VeryCloud du tunnel169.254.X.1/30: peer-IP v4 VeryCloud2a0e:XXXX:XXXX::0/127: peer-IP v6 VeryCloudMD5_SECRETsi tu as choisi l'auth MD5
- Ton ASN (public ou
64512-65534privé) - Tes préfixes IPv4 et IPv6
- Accès CLI privileged
Étape 1 : Sauvegarder la config existante
enable
copy running-config startup-config
copy startup-config flash:backup-pre-transit.cfg
Étape 2 : Activer IPv6 routing si pas déjà fait
configure terminal
!
ipv6 unicast-routing
ipv6 cef
!
exit
Étape 3 : Créer l'interface Tunnel GRE
configure terminal
!
interface Tunnel0
description "VeryCloud Remote Transit IP - GRE"
ip address 169.254.X.2 255.255.255.252
ipv6 address 2a0e:XXXX:XXXX::1/127
ip mtu 1476
ip tcp adjust-mss 1436
ipv6 mtu 1456
tunnel source GigabitEthernet0/0/0
tunnel destination PUB_VC
tunnel mode gre ip
no shutdown
!
exit
Notes :
tunnel source: interface ou IP publique de TON routeur (préfère une interface au cas où l'IP change)ip mtu 1476: 1500 - 24 (header GRE)ip tcp adjust-mss 1436: MSS clamping pour TCP (1476 - 20 IP - 20 TCP)- IPv6 MTU = 1456 (1500 - 24 GRE - 20 IPv4 outer... attention, dépend de la version IOS, ajuster si besoin)
Étape 4 : Tester le tunnel
end
show interface Tunnel0
ping 169.254.X.1
ping ipv6 2a0e:XXXX:XXXX::0
Si ça répond → tunnel OK. Sinon vérifier PUB_VC et que ta source GigabitEthernet0/0/0 a bien une IP publique joignable de l'extérieur.
Étape 5 : Préfixes statiques pour annonce
configure terminal
!
ip route 192.0.2.0 255.255.255.0 Null0
ip route 198.51.100.0 255.255.255.0 Null0
ipv6 route 2001:DB8::/32 Null0
!
exit
Routes vers Null0 = équivalent du blackhole : la route existe dans la RIB pour permettre l'annonce BGP, le trafic sans route plus spécifique va au null.
Étape 6 : Prefix-lists pour filtrage
configure terminal
!
! Prefixes qu'on annonce (export)
ip prefix-list TO-VC-V4 seq 10 permit 192.0.2.0/24
ip prefix-list TO-VC-V4 seq 20 permit 198.51.100.0/24
ipv6 prefix-list TO-VC-V6 seq 10 permit 2001:DB8::/32
! Filtre bogons en entree (import) - non exhaustif, exemples
ip prefix-list NO-BOGONS seq 10 deny 0.0.0.0/8 le 32
ip prefix-list NO-BOGONS seq 20 deny 10.0.0.0/8 le 32
ip prefix-list NO-BOGONS seq 30 deny 127.0.0.0/8 le 32
ip prefix-list NO-BOGONS seq 40 deny 169.254.0.0/16 le 32
ip prefix-list NO-BOGONS seq 50 deny 172.16.0.0/12 le 32
ip prefix-list NO-BOGONS seq 60 deny 192.0.2.0/24 le 32
ip prefix-list NO-BOGONS seq 70 deny 192.168.0.0/16 le 32
ip prefix-list NO-BOGONS seq 80 deny 198.18.0.0/15 le 32
ip prefix-list NO-BOGONS seq 100 permit 0.0.0.0/0 le 24
ipv6 prefix-list NO-BOGONS6 seq 10 deny ::/0 ge 49
ipv6 prefix-list NO-BOGONS6 seq 20 permit ::/0 le 48
!
exit
Étape 7 : Route-maps
configure terminal
!
route-map TO-VC permit 10
match ip address prefix-list TO-VC-V4
exit
route-map TO-VC6 permit 10
match ipv6 address prefix-list TO-VC-V6
exit
route-map FROM-VC permit 10
match ip address prefix-list NO-BOGONS
exit
route-map FROM-VC6 permit 10
match ipv6 address prefix-list NO-BOGONS6
exit
!
exit
Étape 8 : Configurer eBGP
configure terminal
!
router bgp 65000
bgp router-id 192.0.2.1
bgp log-neighbor-changes
no bgp default ipv4-unicast
timers bgp 30 90
!
! Neighbor IPv4
neighbor 169.254.X.1 remote-as 198825
neighbor 169.254.X.1 description "VeryCloud Transit v4"
neighbor 169.254.X.1 password MD5_SECRET
neighbor 169.254.X.1 ebgp-multihop 2
!
! Neighbor IPv6
neighbor 2a0e:XXXX:XXXX::0 remote-as 198825
neighbor 2a0e:XXXX:XXXX::0 description "VeryCloud Transit v6"
neighbor 2a0e:XXXX:XXXX::0 password MD5_SECRET
neighbor 2a0e:XXXX:XXXX::0 ebgp-multihop 2
!
! Address-family v4
address-family ipv4
network 192.0.2.0 mask 255.255.255.0
network 198.51.100.0 mask 255.255.255.0
neighbor 169.254.X.1 activate
neighbor 169.254.X.1 soft-reconfiguration inbound
neighbor 169.254.X.1 route-map FROM-VC in
neighbor 169.254.X.1 route-map TO-VC out
neighbor 169.254.X.1 maximum-prefix 5000
exit-address-family
!
! Address-family v6
address-family ipv6
network 2001:DB8::/32
neighbor 2a0e:XXXX:XXXX::0 activate
neighbor 2a0e:XXXX:XXXX::0 soft-reconfiguration inbound
neighbor 2a0e:XXXX:XXXX::0 route-map FROM-VC6 in
neighbor 2a0e:XXXX:XXXX::0 route-map TO-VC6 out
neighbor 2a0e:XXXX:XXXX::0 maximum-prefix 1000
exit-address-family
!
exit
Notes :
ebgp-multihop 2est utile car le peer-IP du tunnel n'est pas sur une interface directement connectée à la même /24 que ton IP physiquepassworddoit être identique des deux côtésnetworkannonce uniquement les préfixes pour lesquels une route existe dans la RIB
Étape 9 : Sauvegarder
end
write memory
Étape 10 : Vérifier les sessions
show ip bgp summary
BGP router identifier 192.0.2.1, local AS number 65000
BGP table version is 12, main routing table version 12
1 network entries using 248 bytes of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
169.254.X.1 4 198825 1234 567 12 0 0 01:23:45 1
State/PfxRcd qui affiche un nombre (1 = default route reçue) = session établie.
Pour IPv6 :
show bgp ipv6 unicast summary
Étape 11 : Vérifier les routes
! Routes reçues
show ip bgp neighbors 169.254.X.1 received-routes
show bgp ipv6 unicast neighbors 2a0e:XXXX:XXXX::0 received-routes
! Routes annoncées
show ip bgp neighbors 169.254.X.1 advertised-routes
show bgp ipv6 unicast neighbors 2a0e:XXXX:XXXX::0 advertised-routes
! Table BGP
show ip bgp
show bgp ipv6 unicast
! RIB
show ip route bgp
show ipv6 route bgp
Tu dois voir la default route 0.0.0.0/0 via 169.254.X.1 dans show ip route.
Dépannage
show ip bgp summary : neighbor en Idle ou Active
- Tunnel pas UP :
show interface Tunnel0 ping 169.254.X.1échoue- ACL bloque TCP/179 :
show access-list
Established mais PfxRcd: 0
- Côté VeryCloud, pas d'annonce envoyée
- Soft-reconfiguration :
clear bgp ipv4 unicast 169.254.X.1 soft inpour forcer un refresh
Tes préfixes pas annoncés
network 192.0.2.0 mask 255.255.255.0sans route correspondante dans RIB → vérifieshow ip route 192.0.2.0- Route-map TO-VC trop restrictive
MD5 auth failed
- Mot de passe identique des 2 côtés exactement
- Capture :
debug ip bgp 169.254.X.1→ tu verras le password mismatch - Désactive debug :
undebug allaprès troubleshoot
Hold time expired
- Tunnel instable (MTU/PMTU)
- Vérifie
ip mtuetip tcp adjust-msssur le tunnel
Commandes utiles
show ip bgp summary
show bgp ipv6 unicast summary
show ip bgp neighbors 169.254.X.1
show ip bgp 0.0.0.0/0
show ip route bgp
show interface Tunnel0
show ip tcp tcb ! Sessions TCP, utile pour voir port 179
! Soft reset (sans coupure)
clear bgp ipv4 unicast 169.254.X.1 soft in
clear bgp ipv4 unicast 169.254.X.1 soft out
! Hard reset
clear ip bgp 169.254.X.1
! Debug (à activer/désactiver vite)
debug ip bgp 169.254.X.1
debug ip bgp events
undebug all
Conclusion
Cisco IOS + tunnel GRE + eBGP = la combo classique du Remote Transit IP. La config tient en une centaine de lignes une fois propre. Les pièges sont sur le MTU/MSS, le ebgp-multihop, et le MD5. Suis ce squelette et tu seras UP en moins d'une heure.
Pour aller plus loin : BFD pour failover sous-seconde, communautés BGP pour traffic engineering, RPKI via Cisco RPKI server, redondance multi-PoP via 2 tunnels.


















