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

Implementer le routage Inter-VLAN

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ériqueInterfaceAdresse IPv4Adresse IPv6IPv6 Link-Local
R1G0/010.1.13.1/242001:db8:acad:10d1::1/64fe80::1:1
R1G0/310.1.3.1/242001:db8:acad:1013::1/64fe80::1:2
DS1G1/010.1.13.13/242001:db8:acad:10d1::d1/64fe80::d1:1
DS1VLAN5010.2.50.1/242001:db8:acad:1050::d1/64fe80::d1:2
DS1VLAN6010.2.60.1/242001:db8:acad:1060::d1/64fe80::d1:3
R3G0/110.1.3.3/242001:db8:acad:1013::3/64fe80::3:1
R3G0/0.7510.3.75.1/242001:db8:acad:3075::1/64fe80::3:2
R3G0/0.8510.3.85.1/242001:db8:acad:3085::1/64fe80::3:3
DS2VLAN7510.3.75.14/242001:db8:acad:3075::d2/64fe80::d2:1
PC1NIC10.2.50.50/242001:db8:acad:1050::50/64EUI-64
PC2NIC10.2.60.50/242001:db8:acad:1060::50/64EUI-64
PC3NIC10.3.75.50/242001:db8:acad:3075::50/64EUI-64
PC4NIC10.3.85.50/242001:db8:acad:3085::50/64EUI-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