Mise en place de VLAN

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Un réseau local virtuel, communément appelé VLAN (pour Virtual LAN), est un réseau informatique logique indépendant. De nombreux VLAN peuvent coexister sur un même commutateur réseau (switch).

2 Installation

Vous devez d'abord vérifier si le VLAN est compilé en module ou intégré au kernel :

Command grep
> grep -i 8021q < /boot/config-2.6.32-21-generic
CONFIG_VLAN_8021Q=m

Ici il est en tant que module, je vais donc l'activer à chaud :

Command modprobe
modprobe 8021q

Puis l'intégrer pour qu'il se l'intégrer dans le fichier module pour qu'il se charge automatiquement au démarrage :

Configuration File /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
 
8021q
...

Ensuite je vais devoir installer le package vlan :

Command aptitude
aptitude install vlan

3 Configuration

Pour configurer mon vlan, c'est assez simple également. Je dois évidemment savoir sur quelle interface physique (br0 ici) je vais créer mon vlan (110) puis à chaud je peux créer mon vlan comme ceci :

Command vconfig
vconfig add eth0 110

Ensuite je configure les IP :

Command ifconfig
ifconfig eth0.110 192.168.110.1/24

Puis on l'ajoute en dur dans la conf des cartes réseaux :

Configuration File /etc/network/interfaces
# VLAN 110 DMZ
iface eth0.110 inet static
    address 192.168.110.1
    netmask 255.255.255.0
    broadcast 192.168.110.255
    vlan_raw_device eth0

3.1 OpenVZ

Voici un exemple qui fonctionne avec OpenVZ, mais qui fonctionne très bien pour d'autres cas d'utilisation classique.

Vous pouvez avoir besoin de créer des vlan dans vos VE. Ca fonctionne même très bien avec une interface bridgée. Pour se faire, sur la machine host, vous devez avoir un vlan de configuré (pour la mise en place, utilisez cette documentation). Pour ceux qui souhaitent quand même un exemple :

Configuration File /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet manual
 
# The bridged interface
auto vmbr0
iface vmbr0 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        gateway 192.168.100.254
        broadcast 192.168.100.255
        network 192.168.100.0
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
 
# The DMZ Vlan 110
auto vmbr0.110
iface vmbr0.110 inet static
	address 192.168.110.1
	netmask 255.255.255.0
	broadcast 192.168.110.255
	vlan_raw_device vmbr0

Cet exemple est fait avec une interface bridgée car j'ai du KVM qui tourne dessus, mais rien ne vous oblige à ce qu'elle le soit.

Ensuite, lorsque vous créez votre VE, vous n'avez rien de plus à faire lors de la création de votre interface réseau pour votre VE. Lancez ensuite la création de votre VE et n'oubliez pas d'installer le package "vlan" pour pouvoir créer un accès vlan au sein même de votre VE. Voici encore une fois de quoi vous donner une idée de la conf réseau du VE :

Configuration File /etc/vz/conf/VEID.conf
...
CONFIG_CUSTOMIZED="yes"
VZHOSTBR="vmbr0"
IP_ADDRESS=""
NETIF="ifname=eth0,mac=00:18:50:FE:EF:0B,host_ifname=veth101.0,host_mac=00:18:50:07:B8:F4"

Pour la conf du VE, c'est preque identique que pour la machine host, il va falloir créer une interface vlan sur l'interface principale (pas besoin encore une fois d'avoir l'interface principale de configurée, seulement la vlan suffit). Pour les plus perplexes, voici un exemple de configuration dans un VE :

Configuration File /etc/network/interfaces
# This configuration file is auto-generated.
# WARNING: Do not edit this file, your changes will be lost.
# Please create/edit /etc/network/interfaces.head and /etc/network/interfaces.tail instead,
# their contents will be inserted at the beginning and at the end
# of this file, respectively.
#
# NOTE: it is NOT guaranteed that the contents of /etc/network/interfaces.tail
# will be at the very end of this file.
 
# Auto generated lo interface
auto lo
iface lo inet loopback
 
# VE interface
auto eth0
iface eth0 inet manual
 
# VLAN 110 interface
auto eth0.110
iface eth0.110 inet static
	address 192.168.110.2
	netmask 255.255.255.0
	gateway 192.168.110.254
	broadcast 192.168.110.255
	vlan_raw_device eth0

3.2 KVM

We will need to use etables (iptables for bridged interfaces). Install this :

Command aptitude
aptitude install ebtables

Check you etables configuration :

Configuration File /etc/default/ebtables
EBTABLES_LOAD_ON_START="yes"
EBTABLES_SAVE_ON_STOP="yes"
EBTABLES_SAVE_ON_RESTART="yes"

And enable VLAN tagging on bridged interfaces :

Command ebtables
ebtables -t broute -A BROUTING -i eth0 -p 802_1Q -j DROP

Configuration File /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interfaceallow-hotplug eth0auto eth0iface eth0 inet manual auto eth0.110iface eth0.110 inet manual        vlan_raw_device eth0 
# The bridged interface
auto vmbr0
iface vmbr0 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        network 192.168.100.0
        broadcast 192.168.100.255
        gateway 192.168.100.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.100.254
        dns-search deimos.fr
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
 
auto vmbr0.110iface vmbr0.110 inet static        address 192.168.110.1        netmask 255.255.255.0        bridge_ports eth0.190        bridge_stp off        bridge_maxwait 0        bridge_fd 0

4 Ressources

http://linux-net.osdl.org/index.php/VLAN
Documentation sur les VLAN