8 – la configuration du réseau

Ici nous abordons une partie un peu délicate. La configuration du réseau pour notre cloud. Dans un premier temps nous n’aurons que deux réseaux. Un réseau d’admin et un réseau public que nous appellerons respectivement  admin et wan. Le réseau d’admin sera dans le vlan 101 et le wan sera directement sur un pont branché sur la carte lan.  Le tout sera isolé.

Un excellent article sur l’isolation des ponts : ici

Le réseau d’admin sera utilisé pour l’administration en ssh des machines virtuelles de notre cloud. On fera aussi passer dedans les mails, le backup et le monitoring. Nous verrons par la suite comment faire en sorte que ce réseau d’admin qui interconnecte toutes nos machines virtuelles ne soit pas un vecteur d’attaque.

Nous avons donc deux cartes réseaux :

  1. enp0s31f6 qui sera la carte qui tiendra tout les vlan que nous appellerons l’interface lan
  2. enp6s0 qui sera la carte connecté au réseau public wan

Installation des paquets nécessaires :

# apt install bridge-utils vlan sysfsutils

Configuration des vlan et chargement du module

# modprobe 8021q && echo 8021q >> /etc/modules
# grep -q PLUS_VID /proc/net/vlan/config || vconfig set_name_type VLAN_PLUS_VID

Voici les divers fichiers de configurations.
Le premier /etc/network/interfaces ne change pas. Vérifier juste que la carte qui est configuré est bien celle de votre wan :

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp6s0
iface enp6s0 inet dhcp

Ensuite dans le répertoire /etc/network/interfaces.d/ nous allons créer trois fichiers. Un wan, un lan et un admin :

Tout d’abord on monte l’interface lan mais sans lui donner d’adresse ip. Ce n’est pas utile. Elle ne sera qu’une interface matérielle qui servira de support à nos vlans

# cat lan
auto enp0s31f6
iface enp0s31f6 inet manual

On la démarre

# ifup enp0s31f6

Ensuite l’interface wan qui est un bridge sur l’interface lan

# cat wan
auto wan
iface wan inet manual
        bridge_ports enp0s31f6
        post-up bridge vlan del dev wan vid 1 self

On la démarre

# ifup wan

On vérfie qu’elle est bien la et bien configuré

# brctl show
bridge name	bridge id		STP enabled	interfaces
wan		8000.e0d55e14d5f1	no		enp0s31f6

Et enfin le vlan 101 sur l’interface lan qui sera ensuite utilisé comme interface pour le bridge admin a qui on donne une ip. Cette ip sera l’ip dans le réseau d’admin de l’hypverviseur.

# cat admin 
auto vlan101
iface vlan101 inet manual
	vlan-raw-device enp0s31f6

auto admin
iface admin inet static
	address 192.168.101.10
	netmask 255.255.255.0
	broadcast 192.168.101.255
    bridge_ports  vlan101
    post-up bridge vlan del dev admin vid 1 self

Enfin on démarre l’interface d’admin

# ifup vlan101

On vérifie qu’on a bien notre vlan 101

# cat /proc/net/vlan/config
VLAN Dev name	 | VLAN ID
Name-Type: VLAN_NAME_TYPE_PLUS_VID_NO_PAD
vlan101        | 101  | enp0s31f6

Et que notre bridge est correctement configuré

# brctl show
bridge name	bridge id		STP enabled	interfaces
admin		8000.e0d55e14d5f1	no		vlan101
wan		8000.e0d55e14d5f1	no		enp0s31f6

Enfin on vérifie que notre configuration ip est bien celle attendu :

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d8:5d:4c:80:45:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.24/24 brd 192.168.0.255 scope global enp6s0
       valid_lft forever preferred_lft forever
3: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master wan state UP group default qlen 1000
    link/ether e0:d5:5e:14:d5:f1 brd ff:ff:ff:ff:ff:ff
4: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e0:d5:5e:14:d5:f1 brd ff:ff:ff:ff:ff:ff
5: vlan101@enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master admin state UP group default qlen 1000
    link/ether e0:d5:5e:14:d5:f1 brd ff:ff:ff:ff:ff:ff
6: admin: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e0:d5:5e:14:d5:f1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.10/24 brd 192.168.101.255 scope global admin
       valid_lft forever preferred_lft forever
  1. la loopback : 127.0.0.1
  2. notre interface wan avec l’adresse ip de notre réseau public donnée par le dhcp de votre box internet par exemple ici 192.168.0.24
  3. notre interface lan sans ip sur laquelle repose nos vlans
  4. notre bridge wan par lequel nos vm accèderont au réseau public
  5. notre vlan d’admin
  6. notre interface d’admin avec une ip dans notre réseau d’admin ici 192.168.101.10 dans le réseau 192.168.101.0/24

Vous trouverez ici le playbook ansible qui permet de faire toute cette configuration automatiquement.

A noter que ce playbook prend comme adresse ip de l’interface d’admin les derniers digit non nul du hostname. Par exemple si votre hyperviseur s’appelle machin-hv023. Son ip sur le réseau d’admin sera 192.168.101.23.

A noter aussi que dans ce playbook plusieurs variables sont configurables.

ansible-playbook -u root network.xml

Dans le prochain post nous configurerons libvirt pour que nos machines virtuelles utilisent ces réseaux

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *