Interconnexion de VLAN par un routeur ‘on a stick’

Rappels

✗ Tout hôte situé sur un réseau local (LAN) reçoit tout le trafic de diffusion en provenance de
chaque hôte présent sur ce même réseau.
✗ Un réseau local virtuel (VLAN) est un LAN distribué sur des switchs (OSI – niveau 2).
✗ Pour pouvoir interconnecter des VLAN, il faut utiliser un routeur (OSI – niveau 3).
✗ Le routeur ne route que si la source est sur un réseau différent de la destination.
✗ Un hôte sur le VLAN ‘X’ doit donc appartenir à un réseau IP différent d’un hôte situé sur le
VLAN ‘Y’.
✗ A chaque VLAN doit correspondre un réseau IP , le routeur inter-connecte les différents
réseaux IP, donc les différents VLAN.

Méthodes d’interconnexion

Lorsqu’un VLAN est reparti sur plusieurs commutateurs, il faut interconnecter les commutateurs par un lien spécifique, appelé ‘Trunk’.  Sur un lien de type ‘Trunk’, les données Ethernet sont modifiées par ajout d’une information sur la trame, de manière à indiquer le VLAN d’appartenance, c’est le ‘vlan tag’. L’information ajoutée est une balise IEEE 802.1q ou CISCO isl.

Les ports des commutateurs utilisés pour assurer le passage inter-vlan sont donc spécifiques afin de décoder l’information de ‘vlan tag’, on parle de port ‘multi-VLAN’ ou port ‘Trunk’. Pour passer des informations d’un Vlan à un autre, le routeur récupère l’information ‘vlan tag’ pour définir s’il doit router ou pas. Toute trame reçue par un commutateur, sans marquage ‘vlan tag’ est considéré comme appartenant au VLAN natif du port Trunk (par défaut, le VLAN 1).

Le routeur doit donc être connecté à un port ‘Trunk’ du commutateur et doit lui même disposer d’un port ‘Trunk’ permettant d’agréger les VLAN. Le routeur peut disposer que d’une seule connexion physique pour réaliser l’agrégation de ports sur plusieurs liens logiques, cette technique est appelée ‘router-on-a-stick’.

Le routeur doit donc posséder d’autant d’interfaces logiques qu’il existe de VLAN à interconnecter. Lorsque les données entre le routeur d’interconnexion des VLAN et le commutateur circulent, on parle de flux ‘out-to-the-router-and-back’.

Notion d’interface logique

Une interface logique est une sous-interface attachée à une interface physique. Plusieurs interfaces logiques peuvent coexister sur une même interface physique. Pour permettre le routage inter VLAN avec des interfaces logiques, chaque sous-interface doit donc appartenir à un VLAN distinct et posséder une adresse IP sur ce VLAN.

Utilisation des trunks

Les liens Trunks sont avant tout utiles aux commutateurs pour assurer la propagation des informations de VLAN, lorsque ces derniers sont répartis sur plusieurs commutateurs. Il est possible d’établir une liaison avec un Trunk directement vers un PC, si la carte réseau du poste est compatible. Dans ce cas, le PC récupère le trafic de l’ensemble des VLAN, ce qui est très utile dans le cas d’unserveur devant être accessible depuis plusieurs VLAN.

Lorsque le Trunk est établi entre un commutateur et un routeur, cela permet d’assurer (au travers du routeur) la fonction de routage des VLAN. L’ensemble du trafic destiné à tous les VLAN est regroupé sur un même lien, il faut veiller à dimensionner la bande passante en conséquence.

Routage inter-VLAN avec un routeur GNU/Linux

Sur le poste Linux servant de routeur inter-Vlan, on configure une interface Ethernet physique comme plusieurs interfaces logiques. Chaque interface logique doit être déclarée dans un VLAN distinct.

ifconfig eth0 192.168.2.2 broadcast 192.168.2.255 netmask 255.255.255.0

Configuration IEEE 802.1Q sur le Routeur GNU/Linux

Afin de traiter les flux 802.1q , l’interface physique du routeur doit être configurée en mode vlan
802.1q.

apt-get install vlan

Pour créer le vlan  »100 » et le rattacher à l’interface eth0.100 :

vconfig add eth0 100

Le système répond :

Added VLAN with VID == 100 to IF -:eth0:-

Pour voir la nouvelle interface (eth0.100)

ifconfig -a

Le système répond :

eth0 Lien encap:Ethernet HWaddr 00:0C:6E:B7:09:46
inet adr:192.168.2.2 Bcast:192.168.2.255 Masque:255.255.255.0
adr inet6: fe80::20c:6eff:feb7:946/64 Scope:Lien
eth0.100 Lien encap:Ethernet HWaddr 00:0C:6E:B7:09:46
BROADCAST MULTICAST MTU:1500 Metric:1

Pour voir les adresses des cartes :

ip addr ls

Le système répond :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UNKNOWN qlen 1000
link/ether 00:21:97:2a:a0:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global eth0
inet6 fe80::221:97ff:fe2a:a0d4/64 scope link
valid_lft forever preferred_lft forever
4: eth0.100@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state
DOWN
link/ether 00:21:97:2a:a0:d4 brd ff:ff:ff:ff:ff:ff

Il reste a affecter une adresse IP à l’interface eth0.100

ifconfig eth0.100 192.168.100.1

Pour rendre la configuration permanente, il faut ajouter les entrées suivantes au fichier  »/etc/network/interfaces » :

auto eth0.100
iface eth0.100 inet static
address 192.168.100.1
netmask 255.255.255.0
broadcast 192.168.100.255

Dés lors, on peut afficher la table de routage :

route -n

Le système répond :

Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.100
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

ou bien par la commande :

ip route ls

Le système répond :

192.168.100.0/24 dev eth0.100 proto kernel scope link src 192.168.100.1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.24 metric 1
169.254.0.0/16 dev eth0 scope link metric 1000
default via 192.168.1.1 dev eth0 proto static

Il faut reproduire la configuration d’autres sous-interfaces, pour déclarer d’autres VLAN, en fonction des besoins ainsi que sur les commutateurs CISCO.

Activation de la fonction routage

Il est nécessaire que la machine Linux puisse router les paquets réseau. Pour cela, il faut déclencher la fonction de routage en activant le commutateur de routage. Le commutateur de routage est un fichier comportant soit la valeur ‘0’ soit la valeur ‘1’. echo ‘1’ > /proc/sys/net/ipv4/ip_forward

Après avoir activé le routage au niveau noyau, il faut mettre en oeuvre la fontion NAT sortant ‘ip masquerade’ :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Cette règle réalise une traduction d’adresse source. Tout paquet IP sortant par l’interface eth0 voit son adresse IP source réécrite avec l’adresse IP de l’interface.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s