Objectifs de certification
ENCOR 350-401
1.7 Differentiate hardware and software switching mechanisms
- 1.7.a Process and CEF
- 1.7.b MAC address table and TCAM
- 1.7.c FIB vs. RIB
CCNP Lab 01-01-02 Implementer le routage Inter-VLAN
Ce lab CCNP est adapté à l’environnement GNS3 et aux périphériques IOSv et IOSvL2.
1. Description du lab
Les méthodes utilisées pour déplacer les paquets et les trames d’une interface à l’autre ont changé au fil des ans. Dans ce laboratoire CCNP, on propose de configurer le routage inter-VLAN sous ses différentes formes, puis d’examiner les différentes tables utilisées pour prendre les décisions de transfert.
1.1. Architectures de transfert
- Cisco Express Forwarding (CEF) est un mécanisme de commutation propriétaire cisco par défaut sur les périphériques qui utilisent leur CPU comme les routeurs logiciels (Software CEF) ou ceux comme les routeurs matériels (Hardware CEF) qui utilisent des ASICs (Application-specific integrated circits) et des NPUs (Network processing units) pour procéder aux décisions de transfert.
- Ternary content addressable memory (TCAM): Table sur un switch gérée par le matériel qui permet d’évaluer un paquet sur plus d’un champs. Il s’agit d’une extension de l’architecture CAM.
- Software CEF ets fondé sur la table “Forwarding Information Base” (FIB) - directement construite sur la table de routage - et l’“Adjacency” table ou Adjacency Information Base (AIB) - construite sur base des tables des protocoles de couche 2 et ARP/ND en indiquant un prochain saut de couche 2.
- Template Switch Database Manager (SDM) est un modèle d’allocation des ressources pour les tables TCAM des switches Cisco.
1.2. Quelle est la différence entre FIB et RIB ?
La Forwarding Information Base (FIB) est l’information réelle qu’un périphérique de routage/commutation utilise pour choisir l’interface qu’un paquet donné utilisera pour la sortie. Par exemple, la FIB peut être programmée de telle sorte qu’un paquet lié à une destination 192.168.1.0/24 soit envoyé par le port physique ethernet1/2. Il peut y avoir plusieurs FIB sur un périphérique pour le transfert unicast ou la vérification RPF multicast, différents protocoles (ip, mpls, ipv6) mais la fonction de base est la même : critères de sélection (généralement la destination) et application à l’interface de sortie/encapsulation. Les FIB individuelles peuvent également être partitionnées pour obtenir des tables de transfert indépendantes concurrentes (c’est-à-dire des VRF).
Chaque FIB est programmée par une ou plusieurs Routing Information Bases (RIB). La RIB est une sélection d’informations de routage apprises via une définition statique ou un protocole de routage dynamique. Les algorithmes utilisés dans les différentes RIB varient ; ainsi, par exemple, les moyens par lesquels BGP ou OSPF déterminent les meilleurs chemins potentiels varient considérablement. Les moyens par lesquels plusieurs RIB sont programmés dans un ensemble commun de FIB dans une périphérique varient selon l’implémentation, mais c’est là que des concepts comme la distance administrative sont utilisés (par exemple, si des chemins identiques sont appris via eBGP et OSPF, eBGP est généralement préféré pour l’injection de FIB). Encore une fois, les RIB peuvent aussi être potentiellement partitionnées pour permettre des vrf multiples, etc.1
1.3. Commandes de diagnostic sur les interfaces
Couche 1 / couche 2 :
show interfaces status
show interfaces trunk
ARP / ND :
show ip arp
show ipv6 neighbors
Couche 3 :
show ip interface brief
show ipv6 interface brief
show ip route
show ipv6 route
1.4. Toplogie
On trouve trois types de périphériques :
- 2 routeurs Cisco IOS :
Cisco IOSv 15.7(3)M3
- 2 switches Cisco IOS :
Cisco IOSvL2 15.2.1
- 4 PCs
Les zones de couleurs indiquent l’appartenance à un même domaine de broadcast dans lesquels les interfaces sont voisines. Ainsi les interfaces dans une même zone de couleur communiquement directement entre elles dans un même domaine de broadcast avec les adresses de couche 2 comme les adresses MAC. Ces interfaces appartiennent à un seul domaine IPv4, éventuellement à un (ou plusieurs domaines IPv6). Grâce au routage IP, on peut établir une connectivité de bou en bout, d’une extrémité du réseau à une autre extrémité, entre des points qui sont dans des domaines de broadcast distincts par exemple de PC3 à PC2.
La topologie suggère que DS1 soit configuré comme switch L3, capable de réaliser des tâches de routage IP et que DS2 soit configuré comme switch L2 alors que R3 réalise le routage entre les VLANs 75 et 85 grâce à un Trunk monté entre DS1 (interface g1/0) et R3 (interface g0/0).
1.5. Plan d’adressage
Périphérique | Interface | Adresse IPv4 | Adresse IPv6 | IPv6 Link-Local |
---|---|---|---|---|
R1 | G0/0 | 10.1.13.1/24 | 2001:db8:acad:10d1::1/64 | fe80::1:1 |
R1 | G0/3 | 10.1.3.1/24 | 2001:db8:acad:1013::1/64 | fe80::1:2 |
DS1 | G1/0 | 10.1.13.13/24 | 2001:db8:acad:10d1::d1/64 | fe80::d1:1 |
DS1 | VLAN50 | 10.2.50.1/24 | 2001:db8:acad:1050::d1/64 | fe80::d1:2 |
DS1 | VLAN60 | 10.2.60.1/24 | 2001:db8:acad:1060::d1/64 | fe80::d1:3 |
R3 | G0/1 | 10.1.3.3/24 | 2001:db8:acad:1013::3/64 | fe80::3:1 |
R3 | G0/0.75 | 10.3.75.1/24 | 2001:db8:acad:3075::1/64 | fe80::3:2 |
R3 | G0/0.85 | 10.3.85.1/24 | 2001:db8:acad:3085::1/64 | fe80::3:3 |
DS2 | VLAN75 | 10.3.75.14/24 | 2001:db8:acad:3075::d2/64 | fe80::d2:1 |
PC1 | NIC | 10.2.50.50/24 | 2001:db8:acad:1050::50/64 | EUI-64 |
PC2 | NIC | 10.2.60.50/24 | 2001:db8:acad:1060::50/64 | EUI-64 |
PC3 | NIC | 10.3.75.50/24 | 2001:db8:acad:3075::50/64 | EUI-64 |
PC4 | NIC | 10.3.85.50/24 | 2001:db8:acad:3085::50/64 | EUI-64 |
2. Construire le réseau et configuration de départ
2.1. Configuration de départ du routeur R1
no ip domain lookup
hostname R1
line con 0
exec-timeout 0 0
logging synchronous
exit
banner motd # This is R1, Inter-VLAN Routing Lab #
2.2. Configuration de départ du routeur R3
no ip domain lookup
hostname R3
line con 0
exec-timeout 0 0
logging synchronous
exit
banner motd # This is R3, Inter-VLAN Routing Lab #
2.3. Configuration de départ du switch DS1
no ip domain lookup
hostname DS1
line con 0
exec-timeout 0 0
logging synchronous
exit
banner motd # This is DS1, Inter-VLAN Routing Lab #
interface range g0/0-3, g1/1-3, g2/2-3, g3/0-2
shutdown
2.4. Configuration de départ du switch DS2
no ip domain lookup
hostname DS2
line con 0
exec-timeout 0 0
logging synchronous
exit
banner motd # This is DS2, Inter-VLAN Routing Lab #
interface range g0/0-3, g1/1-3, g2/2-3, g3/0-2
shutdown
3. Configurer et vérifier le routage Inter-VLAN sur un Switch Layer 3
3.1: Sur DS1, configurer le routage Inter-VLAN
Activer le routage IPv4 et le routage IPv6 :
ip routing
ipv6 unicast-routing
Créer les Vlans 50 et 60 :
vlan 50
name Group50
vlan 60
name Group60
exit
Assigner le vlan 50 à l’interface g2/2 et le vlan 60 à l’interface g2/3 :
interface g2/2
switchport mode access
switchport access vlan 50
no shutdown
exit
interface g2/3
switchport mode access
switchport access vlan 60
no shutdown
exit
Configurer les SVI (Switched Virtual Interfaces) des vlans 50 et 60 :
interface vlan 50
ip address 10.2.50.1 255.255.255.0
ipv6 address fe80::d1:2 link-local
ipv6 address 2001:db8:acad:1050::d1/64
no shutdown
exit
interface vlan 60
ip address 10.2.60.1 255.255.255.0
ipv6 address fe80::d1:3 link-local
ipv6 address 2001:db8:acad:1060::d1/64
no shutdown
exit
Enregistrer la configuration :
end
write memory
Configurer le PC1 (RHEL8) :
sudo hostnamectl set-hostname PC1
sudo nmcli c mod "System eth0" ipv4.method manual ipv4.addresses 10.2.50.50/24
sudo nmcli c mod "System eth0" ipv4.gateway 10.2.50.1
sudo nmcli c mod "System eth0" ipv6.method manual ipv6.addresses 2001:db8:acad:1050::50/64
sudo nmcli c mod "System eth0" ipv6.gateway fe80::d1:2
sudo nmcli c up "System eth0"
ip a show eth0
Configurer le PC2 (RHEL8) :
sudo hostnamectl set-hostname PC2
sudo nmcli c mod "System eth0" ipv4.method manual ipv4.addresses 10.2.60.50/24
sudo nmcli c mod "System eth0" ipv4.gateway 10.2.60.1
sudo nmcli c mod "System eth0" ipv6.method manual ipv6.addresses 2001:db8:acad:1060::50/64
sudo nmcli c mod "System eth0" ipv6.gateway fe80::d1:3
sudo nmcli c up "System eth0"
ip a show eth0
Sur PC1 tenter de joindre PC2 en IPv4 (10.2.60.1
) :
[root@PC1 ~]# ping -c2 10.2.60.1
PING 10.2.60.1 (10.2.60.1) 56(84) bytes of data.
64 bytes from 10.2.60.1: icmp_seq=1 ttl=255 time=3.45 ms
64 bytes from 10.2.60.1: icmp_seq=2 ttl=255 time=3.29 ms
--- 10.2.60.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 3.287/3.366/3.445/0.079 msping6 2001:db8:acad:1060::50
Sur PC1 tenter de joindre PC2 en IPv6 (2001:db8:acad:1060::50
) :
[root@PC1 ~]# ping6 -c2 2001:db8:acad:1060::50
PING 2001:db8:acad:1060::50(2001:db8:acad:1060::50) 56 data bytes
64 bytes from 2001:db8:acad:1060::50: icmp_seq=1 ttl=63 time=3.18 ms
64 bytes from 2001:db8:acad:1060::50: icmp_seq=2 ttl=63 time=7.16 ms
--- 2001:db8:acad:1060::50 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 3.181/5.172/7.164/1.992 ms
Sur DS1, vérifier la table de commutation:
show mac address-table dynamic
DS1#show mac address-table dynamic
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
50 0c33.b074.0000 DYNAMIC Gi2/2
60 0c15.1a4d.0000 DYNAMIC Gi2/3
Total Mac Addresses for this criterion: 2
3.2. Sur DS1, configurer un “routed port” et le routage IP
Désactiver “switchport” transforme le port en interface qui supporte la couche 3 :
interface g1/0
no switchport
ip address 10.1.13.13 255.255.255.0
ipv6 address fe80::d1:1 link-local
ipv6 address 2001:db8:acad:10d1::d1/64
no shutdown
exit
Créer les routes par défaut qui pointent sur R1:
ip route 0.0.0.0 0.0.0.0 10.1.13.1
ipv6 route ::/0 2001:db8:acad:10d1::1
Enregister la configuration :
end
write memory
3.3. Sur R1, configurer l’adressage des interfaces et le routage IP
Activer le routage IPv6 :
ipv6 unicast-routing
Configurer l’interface qui connecte DS1 :
interface g0/0
ip address 10.1.13.1 255.255.255.0
ipv6 address fe80::1:1 link-local
ipv6 address 2001:db8:acad:10d1::1/64
no shutdown
exit
Configurer l’interface qui connecte R3 :
interface g0/3
ip address 10.1.3.1 255.255.255.0
ipv6 address fe80::1:2 link-local
ipv6 address 2001:db8:acad:1013::1/64
no shutdown
exit
Configurer le routage IPv4/IPv6 vers les Vlans 50 et 60 :
ip route 10.2.0.0 255.255.0.0 10.1.13.13
ipv6 route 2001:db8:acad:1050::/64 2001:db8:acad:10d1::d1
ipv6 route 2001:db8:acad:1060::/64 2001:db8:acad:10d1::d1
Les routes par défaut pointent sur R3 :
ip route 0.0.0.0 0.0.0.0 10.1.3.3
ipv6 route ::/0 2001:db8:acad:1013::3
Enregistrer la configuration :
end
write memory
Sur PC1, tenter de joindre en IPv4 l’interface g0/0 de R1 (10.1.13.1
) :
[root@PC1 ~]# ping -c2 10.1.13.1
PING 10.1.13.1 (10.1.13.1) 56(84) bytes of data.
64 bytes from 10.1.13.1: icmp_seq=1 ttl=254 time=6.40 ms
64 bytes from 10.1.13.1: icmp_seq=2 ttl=254 time=5.44 ms
--- 10.1.13.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 5.442/5.919/6.397/0.483 ms
Sur PC1, tenter de joindre en IPv6 l’interface g0/0 de R1 (2001:db8:acad:1013::1
) :
[root@PC1 ~]# ping6 -c2 2001:db8:acad:1013::1
PING 2001:db8:acad:1013::1(2001:db8:acad:1013::1) 56 data bytes
64 bytes from 2001:db8:acad:1013::1: icmp_seq=1 ttl=63 time=14.8 ms
64 bytes from 2001:db8:acad:1013::1: icmp_seq=2 ttl=63 time=6.43 ms
--- 2001:db8:acad:1013::1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 6.432/10.614/14.797/4.183 ms
4. Configurer et vérifier le routage Inter-VLAN sur un routeur
Veuillez vérifier le modèle SDM sur DS2.
show sdm prefer
Désactiver le routage IPv4 :
no ip routing
4.1. Configurer les VLANs sur DS2
Créer les vlans 75 et 80, ainsi que le vlan natif 999 :
vlan 75
name Group75
vlan 85
name Group85
vlan 999
name NativeVLAN
exit
Assigner l’interface g2/2 au vlan 75 et assigner l’interface 2/3 au vlan 85 :
interface g2/2
switchport mode access
switchport access vlan 75
no shutdown
exit
interface g2/3
switchport mode access
switchport access vlan 85
no shutdown
exit
Créer une interface de gestion uniquement pour le vlan 75 :
interface vlan75
ip address 10.3.75.14 255.255.255.0
ipv6 address fe80::d2:1 link-local
ipv6 address 2001:db8:acad:3075::d2/64
no shutdown
exit
Configurer le port g1/0 en Trunk :
interface g1/0
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 999
switchport trunk allowed vlan 75,85,999
no shutdown
exit
Enregistrer la configuration :
end
write memory
4.2. Configurer le routage Inter-VLAN sur R3
Sur R3, activer le routage IPv6 :
ipv6 unicast-routing
Configurer l’interface g0/0 de R3 en trunk :
interface g0/0
no shutdown
exit
interface g0/0.75
encapsulation dot1q 75
ip address 10.3.75.1 255.255.255.0
ipv6 address fe80::3:2 link-local
ipv6 address 2001:db8:acad:3075::1/64
no shutdown
exit
interface g0/0.85
encapsulation dot1q 85
ip address 10.3.85.1 255.255.255.0
ipv6 address fe80::3:3 link-local
ipv6 address 2001:db8:acad:3085::1/64
no shutdown
exit
interface g0/0.999
encapsulation dot1q 999 native
no shutdown
exit
Enregistrer la configuration :
end
write memory
Configurer le PC3:
sudo hostnamectl set-hostname PC3
sudo nmcli c mod "System eth0" ipv4.method manual ipv4.addresses 10.3.75.50/24
sudo nmcli c mod "System eth0" ipv4.gateway 10.3.75.1
sudo nmcli c mod "System eth0" ipv6.method manual ipv6.addresses 2001:db8:acad:3075::50/64
sudo nmcli c mod "System eth0" ipv6.gateway fe80::3:2
sudo nmcli c up "System eth0"
ip a show eth0
Configurer le PC4:
sudo hostnamectl set-hostname PC4
sudo nmcli c mod "System eth0" ipv4.method manual ipv4.addresses 10.3.85.50/24
sudo nmcli c mod "System eth0" ipv4.gateway 10.3.85.1
sudo nmcli c mod "System eth0" ipv6.method manual ipv6.addresses 2001:db8:acad:3085::50/64
sudo nmcli c mod "System eth0" ipv6.gateway fe80::3:3
sudo nmcli c up "System eth0"
ip a show eth0
Tenter le joindre en IPv4 (10.3.85.1
) le PC4 à partir de PC3 :
[root@PC3 ~]# ping -c2 10.3.85.1
PING 10.3.85.1 (10.3.85.1) 56(84) bytes of data.
64 bytes from 10.3.85.1: icmp_seq=1 ttl=255 time=5.90 ms
64 bytes from 10.3.85.1: icmp_seq=2 ttl=255 time=8.57 ms
--- 10.3.85.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 5.899/7.234/8.570/1.338 ms
Tenter le joindre en IPv6 (2001:db8:acad:3085::50
) le PC4 à partir de PC3 :
[root@PC3 ~]# ping6 -c2 2001:db8:acad:3085::50
PING 2001:db8:acad:3085::50(2001:db8:acad:3085::50) 56 data bytes
64 bytes from 2001:db8:acad:3085::50: icmp_seq=1 ttl=63 time=13.2 ms
64 bytes from 2001:db8:acad:3085::50: icmp_seq=2 ttl=63 time=9.81 ms
--- 2001:db8:acad:3085::50 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 9.812/11.491/13.170/1.679 ms
4.3. Configurer le routage statique pour activer la connectivité de bout en bout
Sur R3, configurer l’interface qui connecte R1 :
interface g0/1
ip address 10.1.3.3 255.255.255.0
ipv6 address fe80::3:1 link-local
ipv6 address 2001:db8:acad:1013::3/64
no shutdown
exit
Configurer les routes par défaut qui pointent sur R1, tout trafic qui n’est pas local est transféré sur R1 :
ip route 0.0.0.0 0.0.0.0 10.1.3.1
ipv6 route ::/0 2001:db8:acad:1013::1
Enregistrer la configuration :
end
write memory
Sur PC3 tenter de joindre en IPv4 PC2 (10.2.60.1
) :
[root@PC3 ~]# ping -c2 10.2.60.1
PING 10.2.60.1 (10.2.60.1) 56(84) bytes of data.
64 bytes from 10.2.60.1: icmp_seq=1 ttl=253 time=9.88 ms
64 bytes from 10.2.60.1: icmp_seq=2 ttl=253 time=12.8 ms
--- 10.2.60.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 9.880/11.322/12.765/1.446 ms
Sur PC3 tenter de joindre en IPv6 PC2 (2001:db8:acad:1060::50
) :
[root@PC3 ~]# ping6 -c2 2001:db8:acad:1060::50
PING 2001:db8:acad:1060::50(2001:db8:acad:1060::50) 56 data bytes
64 bytes from 2001:db8:acad:1060::50: icmp_seq=1 ttl=61 time=19.9 ms
64 bytes from 2001:db8:acad:1060::50: icmp_seq=2 ttl=61 time=9.86 ms
--- 2001:db8:acad:1060::50 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 9.860/14.857/19.855/4.998 ms
5. Examiner les tables CEF
L’objectif de Cisco Express Forwarding est d’accélérer le processus de transfert des données d’une interface à une autre. Dans ce but, un maximum de données est précompilé dans deux tables, la Forwarding Information Base (FIB) et la Adjacency Table.
5.1. Table CEF
show ip cef
R1#show ip cef
Prefix Next Hop Interface
0.0.0.0/0 10.1.3.3 GigabitEthernet0/3
0.0.0.0/8 drop
0.0.0.0/32 receive
10.1.3.0/24 attached GigabitEthernet0/3
10.1.3.0/32 receive GigabitEthernet0/3
10.1.3.1/32 receive GigabitEthernet0/3
10.1.3.3/32 attached GigabitEthernet0/3
10.1.3.255/32 receive GigabitEthernet0/3
10.1.13.0/24 attached GigabitEthernet0/0
10.1.13.0/32 receive GigabitEthernet0/0
10.1.13.1/32 receive GigabitEthernet0/0
10.1.13.13/32 attached GigabitEthernet0/0
10.1.13.255/32 receive GigabitEthernet0/0
10.2.0.0/16 10.1.13.13 GigabitEthernet0/0
127.0.0.0/8 drop
224.0.0.0/4 drop
224.0.0.0/24 receive
240.0.0.0/4 drop
255.255.255.255/32 receive
5.2. Table d’adjacence
show adjacency
R1#show adjacency
Protocol Interface Address
IP GigabitEthernet0/0 10.1.13.13(10)
IPV6 GigabitEthernet0/0 2001:DB8:ACAD:10D1::D1(11)
IPV6 GigabitEthernet0/0 FE80::D1:1(2)
IP GigabitEthernet0/3 10.1.3.3(10)
IPV6 GigabitEthernet0/3 2001:DB8:ACAD:1013::3(10)
IPV6 GigabitEthernet0/3 FE80::3:1(2)
show adjacency detail
R1#show adjacency detail
Protocol Interface Address
IP GigabitEthernet0/0 10.1.13.13(10)
2 packets, 196 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C0509BC00040C9E917800000800
ARP
IPV6 GigabitEthernet0/0 2001:DB8:ACAD:10D1::D1(11)
2 packets, 236 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C0509BC00040C9E9178000086DD
IPv6 ND
IPV6 GigabitEthernet0/0 FE80::D1:1(2)
0 packets, 0 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C0509BC00040C9E9178000086DD
IPv6 ND
IP GigabitEthernet0/3 10.1.3.3(10)
Protocol Interface Address
994 packets, 86500 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C46583F00010C9E917800030800
ARP
IPV6 GigabitEthernet0/3 2001:DB8:ACAD:1013::3(10)
2 packets, 236 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C46583F00010C9E9178000386DD
IPv6 ND
IPV6 GigabitEthernet0/3 FE80::3:1(2)
0 packets, 0 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0C46583F00010C9E9178000386DD
IPv6 ND
Références
- Cisco Networking Academy, CCNP Enterprise: Core Networking (ENCOR) v8 Lab Manual, L1.1.2 Lab - Implement Inter-VLAN Routing, Cisco Press, 2020
- Edgeworth B., Wallace K., Hucaby D., Gooley J., Garza Rios R., CCNP and CCIE Enterprise Core ENCOR 350-401 Official Cert Guide, Chapter 1 Packet Forwarding, Cisco Press, 2019