====== Une réseau pour xen ======
===== Architecture réseau =====
+----------------------------------+ +---------------|
| [dom0] +------------+ | | [domU] |
| | | | | |
| lan0-+ +-vif1-+---+-eth0/eth0.0 |
| | | | | |
| | [bridge] | | | |
| | | | +---------------+
internet---+-eth0 | | |
| | | | +---------------+
| | | | | [domU] |
| | | | | |
| dummy0-+ +-vif2-+---+-eth0 |
| | | | | |
| +------------+ | | |
+----------------------------------+ +---------------+
L’architecture est basée sur un bridge interne (lanbr0) associé à une interface fictive (dummy0).
Les domU pourront dialoguer entre elles et avec la domO via un réseau privé géré par le bridge.
Pour les domU qui seront accessible depuis internet, les flux entrant par l'interface eth0 de la dom0 seront routés vers le bridge qui prendra en charge automatiquement le transfert vers la domU dont l'interface eth0.0 est associé à la bonne adresse IP public.
Pour les domU qui ne seront pas accessible depuis internet, la dom0 servira de passerelle via du masquerading.
===== Interface fictive dummy0 =====
== Vérifier que le module dummy est activé ==
# lsmod | grep dummy
dummy 12717 0
#
== Activer le module dummy ==
# modprobe dummy
#
== Activer le module dummy au boot ==
Dans le fichier /etc/modules mettre :
dummy
== Créer l'interface ==
Fichier /etc/network/interfaces.d/07-dummy
# Interfaces fictives pour le bridge
iface dummy0 inet manual
L'interface dummy0 n'a pas besoin d'être montée pour que le bridge fonctionne, d'ou le paramètre "manual"
===== Bridge lan0 =====
== Créer l'interface ==
Fichier /etc/network/interfaces.d/07-dummy.conf
# Démarrage automatique du bridge
auto lan0
# Interface/pont pour le réseau interne
iface lan0 inet static
address 10.1.1.254
netmask 255.255.255.0
network 10.1.0.0
broadcast 10.1.1.255
bridge_ports dummy0
bridge_maxwait 5
bridge_stp off
bridge_fd 0
post-up /sbin/ip route add 1.2.3.4 via 10.1.1.254
pre-down /sbin/ip route del 1.2.3.4 via 10.1.1.254
== Lancer le bridge ==
Le bridge démarre automatiquement, mais pour éviter de rebooter :
# ifup lan0
Waiting for lan0 to get ready (MAXWAIT is 5 seconds).
#
== Contrôler le fonctionnement ==
# ifconfig lan0
lan0 Link encap:Ethernet HWaddr 8e:78:68:db:ca:df
inet adr:10.1.1.254 Bcast:10.1.1.255 Masque:255.255.255.0
adr inet6: fe80::8c78:68ff:fedb:cadf/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 B) TX bytes:6808 (6.6 KiB)
#
# ping 10.1.1.254
PING 10.1.1.254 (10.1.1.254) 56(84) bytes of data.
64 bytes from 10.1.1.254: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 10.1.1.254: icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from 10.1.1.254: icmp_seq=3 ttl=64 time=0.027 ms
64 bytes from 10.1.1.254: icmp_seq=4 ttl=64 time=0.031 ms
^C
--- 10.1.1.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.026/0.028/0.031/0.002 ms
#
===== Déclarer le bridge pour xen =====
Dans le fichier /etc/xen/xl.conf :
...
# default bridge device to use with vif-bridge hotplug scripts
vif.default.bridge="lan0"
...
===== Remarques =====
Le paquet bridge-utils est installé en même temps que le paquet xen-system