En galère sur le routage (très long)
Séb Buch
unfoundnickname at gmail.com
Mar 8 Fév 10:54:29 UTC 2011
Salut,
Avant de continuer: je n'y connais rien en routage mais il y a plusieurs
choses que je trouve bizarre dans ta configuration...
On 02/08/2011 09:15 AM, Olivier PAVILLA wrote:
> Bonjour la ML.
> [elagage]
> je dois monter une machine de monitoring qui doit avoir accès à 3
> vlans.
Dans la suite, je ne vois pas les 3 vlans: En l'occurence je ne vois que
2 sous-réseaux (172.16.99.x et 10.145.0.x)... Sauf si tu comptes la
boucle interne comme un réseau! :)
En fait si on veut jouer les maîtres capello, d'après ton fichier
interfaces, il n'y a a priori aucun vlan (réseau virtuel) définis: ce
sont des réseaux "classiques".
> J'ai installé ubuntu maverick parce que l'application netvault ne marche
> pas sur Fedora 13 ni debian lenny.
> Donc...
netvault? la solution de sauvegarde
(http://www.bakbone.com/backup_recovery.php)?
Si c'est ça, je peux aussi te suggérer backuppc
(http://backuppc.sourceforge.net/) qui est OpenSource, assez facile de
mise en place et qui marche très bien sur un réseau hétérogène.
Bref, passons à ton problème.
Pour simplifier un peu j'ai nettoyé/découpé ton fichier de configuration
pour faire ressortir les 2 interfaces ethernet utilisées: "eth0" et "eth4".
D'ailleurs questions bêtes qui n'apporte rien au sujet mais, pourquoi
"eth4" et pas simplement "eth2"?
C'est normal que "eth1" ne soit pas configurée?
Au passage, comme précisé plus haut, il n'y a *aucune* référence à un
vlan dans ta configuration, est-ce normal?
Voilà pour l'interface "eth0":
> # The primary network interface
> auto eth0
> iface eth0 inet static
> address 172.16.99.72
> netmask 255.255.255.0
> network 172.16.99.0
> broadcast 172.16.99.255
> gateway 172.16.99.250
> # dns-* options are implemented by the resolvconf package, if
> installed
> dns-nameservers 192.168.99.36 192.168.99.37
> dns-search orleans-tours.iufm.fr
> # up route add -net 10.1.0.0 netmask 255.255.255.0 gw 172.16.99.72 eth0
> # up route add -net 172.16.0.0/16 gw 172.16.99.72 eth0
> # up route add -net 172.16.45.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add -net 172.16.41.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add -net 172.16.37.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add -net 172.16.36.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add -net 172.16.28.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add -net 172.16.18.0 netmask 255.255.255.0 gw 172.16.99.72
> dev eth0
> # up route add default dev eth0
Et voilà pour l'interface "eth4":
> auto eth4
> iface eth4 inet static
> address 10.145.0.72
> netmask 255.255.255.0
> network 10.145.0.0
> broadcast 10.145.0.255
> gateway 10.145.0.200
> # dns-* options are implemented by the resolvconf package, if
> installed
> dns-nameservers 192.168.99.36 192.168.99.37
> dns-search orleans-tours.iufm.fr
>
> # up route add -net 10.45.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
> # up route add -net 10.41.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
> # up route add -net 10.37.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
> # up route add -net 10.36.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
> # up route add -net 10.28.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
> # up route add -net 10.18.0.0 netmask 255.255.255.0 gw 10.145.0.72 eth4
Petite remarque: tu pourrais très bien passer les entrées "dns" dans le
fichier resolv.conf (en les modifiant -la syntaxe n'étant pas la même)
pour éviter d'être redondant entre "eth0" et "eth4".
Première chose et qui peut éventuellement expliquer tes soucis (je ne
sais pas à quel point "route" est souple): la plupart (en fait toutes
sauf une) de tes "route add" sont mal formées.
La vrai syntaxe et celle-ci:
route add -net NETADDR netmask NETMASK gw GWADDR *dev* IF
Ce qui donne par exemple:
route add -net 10.1.0.0 netmask 255.255.255.0 gw 172.16.99.72 dev eth0
au lieu de
route add -net 10.1.0.0 netmask 255.255.255.0 gw 172.16.99.72 eth0
Une remarque concernant l'interface "eth0":
Si tu définis que c'est l'interface à utiliser par défaut pour le
routage ("route add default dev eth0") alors toutes les autres lignes de
routage pour cette interface sont inutiles et redondantes.
Pour l'interface "eth4", j'ai plus de mal à comprendre:
Toutes les routes ajoutées ont comme passerelle la machine en question
(addresse 10.145.0.72), est-ce que c'est vraiment une passerelle ou
est-ce que c'est une erreur de copier coller (la passerelle utilisée par
l'interface "eth4" étant par défaut 10.145.0.200)?
Personnellement, je prefère gérer les routes en utilisant "post-up" et
"pre-down": ça permet de créer les routes uniquement quand l'interface
censée les utiliser et configurée (et de les supprimer quand l'interface
est coupée). Je trouve ça plus propre et comme ça, je suis sûr de ne pas
avoir des "routes fantômes" qui trainent et qui ne servent à rien.
Voilà par exemple ce que cela donne pour le fichier
/etc/network/interfaces d'une machine qui a un seul port ethernet
("eth0") mais qui est reliée à 2 réseaux (un "lan" interne et un réseau
"public") via une interface virtuelle ("eth0:1"):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Primary network interface (LAN)
auto eth0
iface eth0 inet dhcp
# Public network interface (HTTP)
auto eth0:1
iface eth0:1 inet static
address 198.64.112.1
netmask 255.255.255.0
post-up route add -net 198.64.112.0 netmask 255.255.255.0 gw
198.64.112.15
pre-down route del -net 198.64.112.0 netmask 255.255.255.0 gw
198.64.112.15
##EOF##
ce qui donne les routes suivantes (désolé pour le formatage):
~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
198.64.112.0 198.64.112.15 255.255.255.0 UG 0 0 0 eth0
198.64.112.0 * 255.255.255.0 U 0 0 0 eth0
10.16.16.0 * 255.255.240.0 U 0 0 0 eth0
default 10.16.16.15 0.0.0.0 UG 100 0 0 eth0
Le résultat est que cette machine ne passe par la passerelle publique
(198.64.112.15) que pour communiquer avec le réseau 198.64.112.x
(concrètement ça se résume à la passerelle publique). Pour tout le
reste, elle passe par la passerelle 10.16.16.15.
> Un ifconfig donne ça :
> :~$ ifconfig -a
> eth0 Link encap:Ethernet HWaddr 00:0a:5e:5f:48:1c
> inet adr:172.16.99.72 Bcast:172.16.99.255 Masque:255.255.255.0
> adr inet6: fe80::20a:5eff:fe5f:481c/64 Scope:Lien
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
> Packets reçus:796 erreurs:0 :0 overruns:1 frame:0
> TX packets:511 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 lg file transmission:1000
> Octets reçus:75322 (75.3 KB) Octets transmis:33866 (33.8 KB)
> Interruption:18 Adresse de base:0x2000
>
> eth4 Link encap:Ethernet HWaddr 00:0a:5e:1f:4f:4e
> inet adr:10.145.0.72 Bcast:10.145.0.255 Masque:255.255.255.0
> adr inet6: fe80::20a:5eff:fe1f:4f4e/64 Scope:Lien
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
> Packets reçus:477 erreurs:0 :0 overruns:1 frame:0
> TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 lg file transmission:1000
> Octets reçus:54104 (54.1 KB) Octets transmis:5198 (5.1 KB)
> Interruption:16 Adresse de base:0x6000
>
> eth1-eth4 Link encap:Ethernet HWaddr 00:40:ca:21:02:15
> UP BROADCAST MULTICAST MTU:1500 Metric:1
> Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 lg file transmission:1000
> Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)
> Interruption:23
> [elagage loopback]
D'où vient cette interface "eth1-eth4"?
Ton problème étant plutôt un problème de routage, le retour de la
commande "route" serait plus utile.
Mes deux centimes,
Séb
Plus d'informations sur la liste de diffusion ubuntu-fr