Gestion des routes

Création de réseaux virtuels

Objectif : vous avez déjà créé, avec VirtualBox, une machine virtuelle installée sous CentOS. Pour l'instant cette machine est reliée au réseau via un mécanisme de translation d'adresses (à vérifier dans la partie réseau de la configuration de votre machine virtuelle). Pour l'extérieur la machine virtuelle n'existe pas et le traffic semble provenir de la machine physique. Nous allons maintenant créer un réseau virtuel qui regroupera la machine virtuelle et la machine physique.

  1. Commencez par créer un réseau virtuel privé (menu Fichier / paramètres / réseau de VirtualBox). Si votre machine porte le numéro X, ce réseau privé sera numéroté par 192.168.X et l'adresse IP de la machine physique sur ce réseau virtuel sera 192.168.X.10
  2. Activez dans VirtualBox le serveur DHCP sur ce réseau privé. Donnez-lui l'adresse 192.168.X.20 et fixez la plage de distribution des adresses de 192.168.X.100 à 192.168.X.200
  3. Changez la configuration de la carte réseau de votre machine virtuelle (bouton Configuration de VirtualBox) et associez-là au réseau virtuel privé
  4. Faites démarrer votre machine virtuelle:
    +-------------+                 +-------------------+
    | Machine     |                 |       Machine     |
    | Virtuelle  eth0 ---------- vboxnet0   Physique   eth0 ---------
    | VirtualBox  |                 |                   |
    +-------------+                 +-------------------+
           192.168.X.100       192.168.X.10        192.168.0.X
    
  5. Vérifiez sur la machine physique la présence des deux interfaces (commande ifconfig) et des routes correspondantes (commande route).
  6. Vérifiez sur la machine virtuelle la présence de l'interface eth0 et son adresse IP.
  7. Vérifiez que les deux machines soient capables de dialoguer en passant par le réseau privé.
  8. Ajoutez sur votre machine virtuelle la route par défaut en choisissant 192.168.0.X comme passerelle :
    route add default gw 192.168.X.10
    

Routage entre réseaux privés

Objectif : Permettre aux machines virtuelles de dialoguer entre-elles en passant par les machines physiques.

  1. Vous devez faire cet exercice en collaboration avec un autre étudiant.
  2. Soit 192.168.0.Y le numéro de l'autre machine physique. Ajoutez sur votre machine physique une route permettant d'atteindre le réseau 192.168.Y.0/24 en passant par la machine 192.168.0.Y qui fait office de routeur.
  3. l'autre étudiant doit faire l'opération symétrique sur sa machine physique.
  4. Vérifiez que vous pouvez atteindre la machine 192.168.Y.10 (carte vboxnet0 de l'autre machine).
  5. Activez la fonction de routage des paquets du noyau Linux :
    sysctl -w net.ipv4.ip_forward=1
    
  6. Vous devez être capable à partir de votre machine physique d'atteindre la machine virtuelle 192.168.Y.100
  7. Vous devez également être capable à partir de votre machine virtuelle 192.168.X.100 d'atteindre la machine virtuelle 192.168.Y.100

Utilisez le serveur DHCP

Objectif : Utiliser le "vrai" serveur DHCP pour distribuer les adresses aux machines virtuelles.

  1. Arrêtez votre VM, supprimez l'option serveur DHCP du réseau virtuel privé de VirtualBox et arrêtez VirtualBox.
  2. installez (sur votre MP) le serveur DHCP :
    yum -y install dhcp
    
  3. ajoutez ces lignes dans le fichier /etc/dhcp/dhcpd.conf :
    subnet 192.168.X.0 netmask 255.255.255.0 {
      range 192.168.X.100 192.168.X.200;
      #option domain-name-servers ns1.internal.example.org;
      #option domain-name "internal.example.org";
      option subnet-mask  255.255.255.0;
      option routers      192.168.X.10;
      default-lease-time  600;
      max-lease-time      7200;
    }
    
  4. Lancez le service et observez les traces :
    service dhcp start
    tail -f /var/log/messages
    
  5. Lancez VirtualBox puis votre VM. Vous devez voir dans les traces la demande d'allocation d'adresse IP de votre VM. Vérifiez que le réseau de votre VM est bien configuré (adresse IP et route par défaut).
  6. Clonez votre VM et tentez le lancement de deux VM.

Routeur et translation d'adresses

En utilisant la chaîne POSTROUTING de la table nat faites en sorte que la MP devienne un routeur qui accepte la translation d'adresses (cible SNAT) mais uniquement pour la MV.

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