[ Accueil ] [ Routage simple ] [ Routage NAT ] [ jouons... ]
Dans cet exemple, nous avons un cas extrêmement simple :
Dans le réseau bleu, Saturne, d'adresse IP 192.168.0.2, envoie un ping sur Neptune, qui se trouve dans le réseau rouge avec l'IP 192.168.1.3 |
Machine sous Debian Woody.
saturne:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:00:E8:78:9A:1F inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2674831 errors:7 dropped:559 overruns:7 frame:0 TX packets:1880271 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2193374824 (2.0 GiB) TX bytes:932807313 (889.5 MiB) Interrupt:10 Base address:0xa000 lo Link encap:Local Loopback...
Observez bien les deux adresses qui vont nous être utiles par la suite :
HW addr :00:00:E8:78:9A:1F inet addr:192.168.0.2
saturne:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.9 0.0.0.0 UG 0 0 0 eth0
Notez la route par défaut :
Il faut passer par eth0 et joindre le noeud 192.1686.0.9.
Egalement sous Debian Woody.
neptune:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:A0:C9:E0:2B:7B inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:527923 errors:0 dropped:0 overruns:0 frame:0 TX packets:422325 errors:0 dropped:0 overruns:0 carrier:0 collisions:21182 txqueuelen:100 RX bytes:269846768 (257.3 MiB) TX bytes:240923195 (229.7 MiB) Interrupt:11 Base address:0x5000 lo Link encap:Local Loopback...
Observez bien ici aussi les deux adresses qui vont nous être utiles par la suite :
HW addr : 00:A0:C9:E0:2B:7B inet addr:192.168.1.3
neptune:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Notez là encore la route par défaut :
Il faut passer par eth0 et joindre le noeud 192.168.1.1.
Sous Mandrake 9.0.
Là, ça va être un peu plus compliqué, il y a deux interfaces réseau :
[root@helios root]# ifconfig eth0 Lien encap:Ethernet HWaddr 00:20:18:B9:49:37 inet adr:192.168.0.9 Bcast:192.168.0.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4338949 errors:0 dropped:0 overruns:0 frame:0 TX packets:4968746 errors:0 dropped:0 overruns:0 carrier:0 collisions:11750 lg file transmission:100 RX bytes:503746782 (480.4 Mb) TX bytes:547552476 (522.1 Mb) Interruption:9 Adresse de base:0x5000 eth1 Lien encap:Ethernet HWaddr 00:20:AF:4A:66:00 inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4403671 errors:0 dropped:0 overruns:0 frame:0 TX packets:3762159 errors:0 dropped:0 overruns:0 carrier:0 collisions:34316 lg file transmission:100 RX bytes:2763013200 (2635.0 Mb) TX bytes:2646670391 (2524.0 Mb) Interruption:5 Adresse de base:0x210 lo Lien encap:Boucle locale...
Notons les adresses utiles pour chaque réseau :
HW addr :00:20:18:B9:49:37 inet adr:192.168.0.9
Pour le réseau 192.168.0.0
HWaddr 00:20:AF:4A:66:00 inet adr:192.168.1.1
Pour le réseau 192.168.1.0
[root@helios root]# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Notez que cette machine n'est qu'un routeur, son unique rôle, simplifié à l'extrême, est d'interconnecter les deux réseaux 192.168.0.0 et 192.168.1.0
Aucune route par défaut n'est indiquée ici.
Tout ce que nous observons, c'est que Helios sait que :
C'est bien, mais ça ne suffit pas pour que Helios fonctionne comme un routeur. Nous avons un peu besoin d'IPtables :
iptables -A FORWARD -j ACCEPT # c'est pas bien compliqué...
Il faut aussi s'assurer que l'on a autorisé le noyau à faire le routage :
echo 1 > /proc/sys/net/ipv4/ip_forward
Et ça va router...
saturne:~# ping -c 1 neptune PING neptune.eme.org (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=254 time=1.2 ms --- neptune.eme.org ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 1.2/1.2/1.2 ms
Si le ping passe, c'est que ça route.
Juste pour le fun :
neptune:~# ping -c 1 saturne PING saturne.eme.org (192.168.0.2): 56 data bytes 64 bytes from 192.168.0.2: icmp_seq=0 ttl=254 time=1.1 ms --- saturne.eme.org ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 1.1/1.1/1.1 ms
Ca marche aussi dans l'autre sens.
On regarde tout ça avec des sniffers, l'un sur le réseau bleu et l'autre sur le réseau rouge.
saturne:~# ping -c 1 neptune
Les traces qui suivent ont été expurgées de ce qui nous est inutile ici.
Tout ce qu'il est important d'observer est surligné
Frame 1 ... Ethernet II Destination: 00:20:18:b9:49:37 Source: 00:00:e8:78:9a:1f Type: IP (0x0800) Internet Protocol, Src Addr: saturne.eme.org (192.168.0.2), Dst Addr: neptune.eme.org (192.168.1.3) ... Time to live: 64 Protocol: ICMP (0x01) ... Internet Control Message Protocol Type: 8 (Echo (ping) request) ... Frame 2 ... Ethernet II Destination: 00:00:e8:78:9a:1f Source: 00:20:18:b9:49:37 Type: IP (0x0800) Internet Protocol, Src Addr: neptune.eme.org (192.168.1.3), Dst Addr: saturne.eme.org (192.168.0.2) ... Time to live: 254 Protocol: ICMP (0x01) ... Internet Control Message Protocol Type: 0 (Echo (ping) reply) |
Frame 1 ... Ethernet II Destination: 00:a0:c9:e0:2b:7b Source: 00:20:af:4a:66:00 Type: IP (0x0800) Internet Protocol, Src Addr: saturne.eme.org (192.168.0.2), Dst Addr: neptune.eme.org (192.168.1.3) ... Time to live: 63 Protocol: ICMP (0x01) ... Internet Control Message Protocol Type: 8 (Echo (ping) request) ... Frame 2... Ethernet II Destination: 00:20:af:4a:66:00 Source: 00:a0:c9:e0:2b:7b Type: IP (0x0800) Internet Protocol, Src Addr: neptune.eme.org (192.168.1.3), Dst Addr: saturne.eme.org (192.168.0.2) ... Time to live: 255 Protocol: ICMP (0x01) ... Internet Control Message Protocol Type: 0 (Echo (ping) reply) |
Vous avez noté les points fondamentaux :
Autrement dit :
Et voilà le travail.
Jouons avec traceroute :
saturne:~# traceroute -I -n neptune
traceroute to neptune.eme.org (192.168.1.3), 30 hops max, 38 byte packets
1 192.168.0.9 0.824 ms 0.741 ms 0.740 ms
2 192.168.1.3 1.246 ms 0.922 ms 0.968 ms
neptune:~# traceroute -I -n saturne
traceroute to saturne.eme.org (192.168.0.2), 30 hops max, 38 byte packets
1 192.168.1.1 0.902 ms 0.705 ms 0.675 ms
2 192.168.0.2 1.108 ms 1.033 ms 1.008 ms
Bien entendu, nous passons toujours par Helios au "hop" 1, quelque soit le sens du traceroute, mais nous le voyons du côté bleu avec l'IP 192.168.0.9 et du côté rouge avec l'IP 192.168.1.1
Ca vous étonne ?