====== QUAGGA ======
===== Objectifs =====
Nous avons utilisé jusqu'ici les équipements Cisco, dans la suite du document nous vous proposons de découvrir une solution de routage logicielle appelée Quagga.
Avantages :
Logiciel libre.
Plateforme supportée : gnu/Linux, FreeBSD, NetBSD, OpenBSD, Mac OSX.
L'un de ses intérêts est de proposer des commandes très proches des commande Cisco.
Quagga supporte les protocoles : IPv4, IPv6
Quagga supporte les protocoles de routage : RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, IS-IS, BGP-4, and BGP-4.
Quagga offre de nombreuses fonctionnalités de filtrage très flexibles.
Nous mettrons en situation cette solution dans deux cas pratiques :
Routage statique.
Routage dynamique avec RIP.
===== Topologie =====
==== Plan d’adressage =====
{{:cours:activite2:quagga.png|}}
==== Configuration ====
R1, R2, R3 :
Routeurs Quagga
OS : Debian 7.1
RAM : 128 Mo
CPU : 1
DD : 3 Go
S1, S2, S3 :
Machine clientes
OS : Debian 7.1
RAM : 128 Mo
CPU : 1
DD : 3 Go
===== Installation =====
⇒ Installer une machine Debian sans interface graphique avec les caractéristiques proposées.
⇒ Installer les paquets suivants : ssh, tcpdump et quagga
Configuration
Quagga
⇒ Créer les fichiers suivants :
<code=bash>
#nano /etc/quagga/zebra.conf
#nano /etc/quagga/ripd.conf
</code>
⇒ Modifier le fichier /etc/quagga/deamon, en mettant à yes les champs suivants :
<code=bash>
zebra=yes
ripd=yes
</code>
Configuration de VTYSH
⇒ Copier et Modifier le fichier /etc/quagga/vtysh.conf :
<code=bash>
#cp /usr/share/doc/quagga/examlples/vtysh.conf.sample /etc/quagga/vtysh.conf
</code>
<note><code=bash>! service intergrated-vtysh-config
hostname Rx
username root nopassword</code></note>
Remplacer Rx avec le nom du routeur : R1, R2 ou R3
⇒ Positionner les droits sur les fichiers :
<code=bash>
# chown quagga:quaggavty /etc/quagga/*.conf
# chmod 640 /etc/quagga/*.conf
</code>
⇒ Configurer l'environnement :
<code=bash>
# echo VTYSH_PAGER=more > /etc/environement
</code>
<note>Sous DEBIAN; il faut aussi modifier le bash.bashrc en exportant cette variable : export VTYSH_PAGER=more
</note>
===== Configuration des interfaces réseaux =====
⇒ En vous basant sur la topologie, entrer la configuration des interfaces réseau dans le fichier /etc/network/interfaces.
===== Transformer la machine en routeur =====
<code=bash>
#echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
</code>
===== Test et création des clones =====
⇒ Démarrer le service quagga :
<code=bash>
# service quagga start
root@quagga1:~# service quagga start
Loading capability module if not yet done.
Starting Quagga daemons (prio:10): zebra ripd.
Starting Quagga monitor daemon: watchquagga.
</code>
⇒ Faire un test :
<code=bash>
root@quagga1:~# vtysh
Hello, this is Quagga (version 0.99.22.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
quagga1#
</code>
<code=bash>
quagga1# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, A - Babel,
> - selected route, * - FIB route
C>* 100.0.0.0/8 is directly connected, eth1
R>* 101.0.0.0/8 [120/2] via 102.0.0.2, eth2, 00:02:20
C>* 102.0.0.0/8 is directly connected, eth2
C>* 127.0.0.0/8 is directly connected, lo
C>* 192.168.1.0/24 is directly connected, eth0
R>* 192.168.2.0/24 [120/3] via 102.0.0.2, eth2, 00:02:20
R>* 192.168.3.0/24 [120/2] via 102.0.0.2, eth2, 00:02:20
</code>
votre sortie sera différente.
⇒ Arrêter le routeur modèle R1.
⇒ Cloner deux autres machines, R2 et R3 depuis le routeur modèle.
<note warning>3 fichiers sont a modifier /etc/hosts, /etc/hostname et /etc/quagga/vtysh.conf</note>
⇒ Démarrer les routeur R2 et R3.
⇒ Configurer les routeur R2 et R3 selon la topologie.
⇒Détails des fichiers /etc/network/interfaces
==== R1 ====
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 100.0.0.1
netmask 255.0.0.0
auto eth2
iface eth2 inet static
address 102.0.0.1
netmask 255.0.0.0
==== R2 ====
auto eth0
iface eth0 inet static
address 192.168.2.254
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 100.0.0.2
netmask 255.0.0.0
auto eth2
iface eth2 inet static
address 101.0.0.1
netmask 255.0.0.0
==== R3 ====
auto eth0
iface eth0 inet static
address 192.168.3.254
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 101.0.0.2
netmask 255.0.0.0
auto eth2
iface eth2 inet static
address 102.0.0.2
netmask 255.0.0.0
===== Préparation des machines clientes : S1, S2 et S3 =====
==== Installation ====
⇒ Installer une machine Debian sans interface graphique avec les caractéristiques proposées.
⇒ Installer le paquet suivant : ssh
Configuration
Configuration des interfaces réseaux
En vous basant sur la topologie et pour chaque machine :
⇒ Entrer la configuration de l'interface réseau dans le fichier /etc/network/interfaces.
⇒ Configurer la routes par défaut.
==== Route Statique ====
=== R1 ===
R1(config)# ip route 192.168.2.0 255.255.255.0 100.0.0.2
R1(config)# ip route 192.168.3.0 255.255.255.0 102.0.0.2
=== R2 ===
R2(config)# ip route 192.168.1.0 255.255.255.0 100.0.0.1
R2(config)# ip route 192.168.3.0 255.255.255.0 101.0.0.2
=== R3 ===
R3(config)# ip route 192.168.2.0 255.255.255.0 101.0.0.1
R3(config)# ip route 192.168.1.0 255.255.255.0 102.0.0.1
==== RIP ====
<note warning>Effacer les routes statiques</note>
=== R1 ===
conf t
router rip
network 192.168.1.0/24
network 100.0.0.0/8
network 102.0.0.0/8
passive-interface eth0
=== R2 ===
conf t
router rip
network 192.168.2.0/24
network 100.0.0.0/8
network 101.0.0.0/8
passive-interface eth0
=== R3 ===
conf t
router rip
network 192.168.2.0/24
network 101.0.0.0/8
network 102.0.0.0/8
passive-interface eth0
===== Intégration d'une quatrième interface INTERNET =====
==== Topologie ====
{{:cours:activite2:quagga_1.png|}}
==== Installation ====
⇒ modifier /etc/network/interfaces pour faire correspondre la topologie
⇒ Mettre en place la translation d’adressage
<code=bash>
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
</code>
⇒ Vérifiez la bonne prise en compte de la règle par :
<code=bash>
iptables -t nat -L
</code>
⇒ Activer la translation d’adresses (NAT) au démarrage :
⇒ Inscrivez la ligne suivante juste avant exit 0 mais après la ligne concernant le routage dans le fichier /etc/rc.local :
<code=bash>
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
</code>
⇒ Relancez votre système et vérifiez à nouveau l’existence de la règle NAT à l’aide de la commande vue plus haut.
==== Détails running-config ====
=== R1 ===
!
hostname R1
!
debug rip packet
!
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface eth2
ipv6 nd suppress-ra
!
interface eth3
ipv6 nd suppress-ra
!
interface lo
!
router rip
version 2
redistribute kernel
network 100.0.0.0/8
network 102.0.0.0/8
network 192.168.1.0/24
network 192.168.254.0/24
passive-interface eth0
!
ip forwarding
!
line vty
!
end
=== R2 ===
hostname R2
!
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface eth2
ipv6 nd suppress-ra
!
interface lo
!
router rip
version 2
network 100.0.0.0/8
network 101.0.0.0/8
network 192.168.2.0/24
passive-interface eth0
!
ip forwarding
!
line vty
!
end
=== R3 ===
!
hostname R3
!
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface eth2
ipv6 nd suppress-ra
!
interface lo
!
router rip
version 2
network 101.0.0.0/8
network 102.0.0.0/8
network 192.168.3.0/24
passive-interface eth0
!
ip forwarding
!
line vty
!
end