3. Préparation des routeurs

La première étape consiste à mettre en place la topologie physique.

  • Vérifier l'installation des paquets quagga et vlan avant de brasser les postes sur les commutateurs non programmés.

    $ dpkg -l quagga vlan | grep ^ii
    ii  quagga   0.99.17-2    BGP/OSPF/RIP routing daemon
    ii  vlan     1.9-3        user mode programs to enable VLANs on your ethernet devices
    
  • Vérifier que la fonction de routage des paquets IPv4 est active au niveau noyau.

    $ cat /proc/sys/net/ipv4/ip_forward
    1
    

    Si ce n'est pas le cas, il est possible d'éditer le fichier /etc/sysctl.conf pour fixer les valeurs des paramètres de configuration des protocoles de la pile TCP/IP dans le noyau Linux. Voir la section Fonctions réseau d'une interface du support Configuration d'une interface de réseau local.

    # sysctl -p
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.ip_forward = 1
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.all.log_martians = 1
    net.ipv4.conf.all.proxy_arp = 0
    
  • Créer les VLANs sur chacun des routeurs R1, R2 et R3.

    r1:~# vconfig add eth0 12
    r1:~# vconfig add eth0 13
    
    <snip/>
    r2:~# vconfig add eth0 12
    r2:~# vconfig add eth0 23
    
    <snip/>
    r3:~# vconfig add eth0 13
    r3:~# vconfig add eth0 23
    
  • Activer les démons zebra et ospfd sur chaque routeur en éditant le fichier /etc/quagga/daemons et en remplaçant no par yes.

    r1:~# grep -v '^#' /etc/quagga/daemons
    zebra=yes
    bgpd=no
    ospfd=yes
    ospf6d=no
    ripd=no
    ripngd=no
    isisd=no
    
  • Créer les fichiers de configuration de base pour les deux démons zebra et ospfd sur chaque routeur en utilisant les patrons livrés avec le paquet quagga.

    r1:/etc/quagga# cp /usr/share/doc/quagga/examples/zebra.conf.sample zebra.conf
    r1:/etc/quagga# cp /usr/share/doc/quagga/examples/ospfd.conf.sample ospfd.conf
    
  • Éditer le patron du fichier de configuration du démon zebra en fixant les paramètres de connexion à utiliser pour y accéder.

    # cat zebra.conf
    ! -*- zebra -*-
    !
    hostname R1-zebra
    password zebra
    enable password zebra
    !
    log file /var/log/quagga/zebra.log
    
  • Éditer le patron du fichier de configuration du démon ospfd en fixant les paramètres de connexion à utiliser pour y accéder.

    # cat ospfd.conf
    ! -*- ospf -*-
    !
    hostname R1-ospfd
    password zebra
    enable password zebra
    !
    log file /var/log/quagga/ospfd.log
    
  • Compléter la configuration des interfaces dans le démon zebra de façon à fixer la bande passante de chaque interface active.

    Contrairement à un routeur «intégré» avec un système d'exploitation dédié, le démon de routage statique n'a pas directement accès aux interfaces matérielles. Or, sur un système GNU/Linux, le débit d'une interface nommée eth0 peut aller de 10Mbps à 10Gbps. Sans information spécifique du noyau, l'application «service de routage» n'a aucun moyen de connaître le débit exact de l'interface eth0. C'est la raison pour laquelle il est nécessaire de paramétrer manuellement les débits de chaque interface dans la configuration du démon zebra.

    r1:/etc/quagga# grep -1 bandwidth zebra.conf
    interface eth0
     bandwidth 100000
     ipv6 nd suppress-ra
    --
    interface eth0.12
     bandwidth 100000
     ipv6 nd suppress-ra
    --
    interface eth0.13
     bandwidth 100000
     ipv6 nd suppress-ra
    
[Avertissement] Avertissement

Ce dernier paramétrage est essentiel dans le calcul des métriques et le fonctionnement du protocole de routage OSPF. Si les calculs de métriques pour les liens actifs sont erronés, le choix des routes à emprunter pour faire transiter le trafic utilisateur entre deux routeurs peut lui aussi être erroné.