Updated Modifié

Rendu des TPs

Les TPs sont évalués par un contrôle continu, ie par des rendus de TP (en début d’année) ainsi qu’un projet (en fin de semestre). Vous devez rendre votre compte-rendu individuel pour ce TP (sur AMETICE) au plus tard mardi 18/10 à 18h00. Vous accompagnerez votre CR, le cas échéant, d’une archive contenant les fichiers (Vagrantfile, config.yml, …) définissant vos VMs.

1. Corrigé du TP n°1

Avant de continuer, vérifier que la box est bien installée

$ vagrant box list
m1reseaux                       (virtualbox, 0)

Si vous ne l’avez jamais fait, et avez donc des problèmes de quotas, changer l’endroit où virtualbox stocke ses images-disques.

VBoxManage setproperty machinefolder "/tmp"

Se reporter à la FAQ en cas de souci avec les VMs

Télécharger le corrigé du TP précédent. Dans chaque répertoire, faire

vagrant up

Lire puis appliquer la configuration ansible (en root dans la VM).

VM # ansible-playbook -c local -v /vagrant/config.yml

Vérifier que tout fonctionne correctement.

2. Un Réseau IPv6

Créer un dossier nommé tp2,

$ mkdir tp2

Créer trois nouvelles machines VM1-6, VM2-6 et VM3-6 sous Debian dotées des interfaces réseaux et associées aux LANs indiqué sur le schéma.

On va voir dans la section suivante comment configurer VM2-6 comme routeur IPv6 entre les deux LAN.

2.1. Configuration des Machines

Important: Bien penser à désactiver IPv4 dans chaque configuration créée.

Il est préférable de déterminer et tester les paramètres en utilisant l’interface graphique. Une fois ces paramètres déterminés, vous pouvez faire la configuration en ansible. Si vous faites directement la configuration en ansible, alors bien lire préalablement cette partie.

NB Vous devrez rendre la configuration ansible.

On prendra pour adresses:

  • pour tout le LAN1-6 : fc00:1234:1::/64
  • pour tout le LAN2-6 : fc00:1234:2::/64
  • IP VM1-6 : fc00:1234:1::1
  • IP VM2-6 : fc00:1234:1::2
  • IP VM2-6 : fc00:1234:2::2
  • IP VM3-6 : fc00:1234:2::3
  1. De quel type d’adresses s’agit-il ?

  2. On n’oubliera pas d’activer le drapeau de routage ip_forward pour IPv6 par

    VM2-6:~$ sudo sysctl -w net.ipv6.conf.all.forwarding=1
    

    ou bien directement dans /etc/sysctl.conf (voir TP1 pour la configuration sous Debian)

2.2. Vérifications

  1. Vérifier qu’on a bien accès à toutes les autres machines depuis chacune en utilisant ping6.
  2. Les tables de routage peuvent être affichées avec ip -6 route.
  3. Faire une capture du trafic sur VM2-6 et vérifier que le trafic correspond fonctionnellement à celui de ARP adapté à IPv6.

3. Configuration Réseau Semi-Automatique

3.1. Nouvelle configuration

Dans l’interface pour la configuration réseau, on choisira “Automatique/adresses seulement” pour VM1-6 et VM3-6. La machine VM2-6 conservera la même configuration et va être configurée pour fournir automatiquement les adresses aux deux autres.

3.2. Configuration de VM2-6

  • Installer radvd qui annoncera route et adresses aux autres VMs. Remettre VM2-6 avec la route par défaut de vagrant, vérifier que le DNS fonctionne
    VM2-6:~$ sudo dhclient eth0
    
  • puis faire
    VM2-6:~$ sudo apt-get install radvd
    
    Si le DNS ne fonctionne pas, il vous faudra le configurer via l’interface graphique. Pour savoir quelle valeur entrer, vous pouvez vous inspirer de ce qui est configuré sur votre machine hôte, qui est du même OS que les VMs. Indice: voir le fichier /etc/resolv.conf.
  • Le service refuse de se lancer c’est normal.
  • Si ne n’est déjà le cas, activer le forwarding ipv6
    VM2-6:~$ sudo sysctl -w net.ipv6.conf.all.forwarding=1
    
  • Il faut ensuite configurer le service pour qu’il fonctionne. Pour cela on crée un fichier /etc/radvd.conf avec
    VM2-6:~$ sudoedit /etc/radvd.conf
    
    Si l’interface de VM2-6 face à VM3-6 est eth2 alors on écrit
    interface eth2
    {
      AdvSendAdvert on;
      MaxRtrAdvInterval 30;
      prefix fc00:1234:2::/64
      {
        AdvValidLifetime 300;
        AdvPreferredLifetime 120;
      };
    };
    
    
  • Démarrer le service
    VM2-6:~$ sudo service radvd start
    
  • Vérifier que VM3-6 obtient bien une adresse IPv6
  • Ajouter la configuration correspondante à fc00:1234:1::/64 dans /etc/radvd.conf
  • Recharger la configuration pour le service
    VM2-6:~$ sudo service radvd restart
    
  • Vérifier que VM1-6 obtient bien une adresse IPv6 et faire des ping6 vers VM2-6, ainsi que VM3-6.

4. Configuration de fichiers et de services avec ansible

4.1. Remarque Importante

Les appels de configuration sont en général non idempotents, ceci signifie qu’effectuer deux fois la commande ne donnera pas nécessairement le même résultat.

Par exemple, lorsque l’on efface la route par défaut avec

    # suppression route par défaut (de vagrant)
    - shell: ip route del default

Le second appel à ansible-playbook va provoquer une erreur (puisque la route n’est plus présente.) Une solution, pendant la phase de développement, est d’utiliser l’option ignore_errors.

    # suppression route par défaut (de vagrant)
    - shell: ip route del default
      ignore_errors: true # permet à ansible de continuer même en cas d'erreur

4.2. Configuration IPv6

La configuration statique des adresses IPv6 se fait de la même manière qu’en IPv4. Pour utiliser la configuration automatique, on pourra paramétrer method6.

  - name: Configuration automatique de ``VM1-6``/eth1
    nmcli:
      type: ethernet
      conn_name: eth1 via ansible
      ifname: eth1
      state: present
      autoconnect: true
      method6: auto

Rappel: cette configuration doit ensuite être activée explicitement.

4.3. Installations de Fichiers

On pourra utiliser la syntaxe suivante pour installer le fichier de configuration radvd.conf:

  - name: fichier de configuration radvd.conf
    copy: 
      src: /vagrant/radvd.conf
      dest: /etc/radvd.conf:
      owner: root
      group: root
      mode: '0644'

Et pour installer et activer le service, il faudra

  - name: Installer radvd
    package:
      name: radvd
      state: present

  - name: Démarrer le service radvd
    service:
      name: radvd
      state: started

Donner les deux configurations ansible correspondantes au mode statique ou automatique. On pourra également se référer à la documentation.

Vérifier ces configurations en partant de machine “neuves” avec

$ vagrant destroy
$ vagrant up