 |
|
 |
|
|
|
| Sujet |
Adresse IP |
Date |
17-04-2004 |
|
| Titre |
Routage IP - On construit des routes ! |
Section |
Dev Reseau |
|
| Article |
Outils disponible pour TCP/IP
Lorsqu'on installe le protocole TCP/IP sur une station ou un serveur de base Unix, Linux ou Mac OSX, les outils permettant de tracer et vérifier la configuration TCP/IP sont les suivants :
arp
Visualiser la table ARP de l'ordinateur et détecter les entrées invalides. Il existe un utilitaire TCP/IP qui fournit la correspondance entre l'adresse IP d'une station (ou tout autre composant réseau TCP/IP) et son adresse MAC (adresse physique), c'est arp. En général, on tape arp -a qui fournit la liste des composants réseau vus sur le sous-réseau courant.
dig
Cet outil permet d'effectuer des recherches dans toutes les pages du site de l'UQAM accessibles au public. Il s'agit d'une version traduite et adaptée par le Registrariat, du moteur de recherche ht://Dig développé à l'Université d'État de San Diego.
host
Montre ordinateur ou nœud IP et leur configuration
hostname
Afficher le nom de l'ordinateur ou nœud IP
netstat
Afficher l'état des statistiques du protocole et l'état des connexions TCP/IP
nslookup
Vérifier les enregistrements, les alias, les host du domaine, les services des host du domaine et les informations du système d'exploitation en interrogeant les serveurs de nom de domaine internet.
ping
Vérifie la bonne configuration TCP/IP et s'assurer qu'un ordinateur TCP/IP distant et bien disponible.
route
Affiche la table de routage IP et ajouter/supprimer des itinéraires IP
traceroute
Vérifie l'itinéraire vers un système distant.
Prendre un terminal et taper par exemple arp puis Entrer (arp -h pour avoir la syntaxe complète).
Avec Mac OSX Panther vous aurez :
BiPro-1-25-Ghz:~ administrateur$ arp -h
arp: illegal option -- h
usage: arp [-n] hostname
arp [-n] -a
arp -d hostname [pub]
arp -d -a
arp -s hostname ether_addr [temp] [pub]
arp -S hostname ether_addr [temp] [pub]
arp -f filename
BiPro-1-25-Ghz:~ administrateur$
Prendre un terminal et taper par exemple route puis Entrer (route -h pour avoir la syntaxe complète).
Avec Linux Fedora Core 2 vous aurez :
[root@serveur root]# route -h
Syntaxe: route [-nNvee] [-FC] [<AF>] Liste les tables de routage noyau
route [-v] [-FC] {add|del|flush} ... Modifie la table de routage pour AF.
route {-h|--help} [<AF>] Utilisation dACtaillACe pour l'AF spACcifiAC.
route {-V|--version} Affiche la version/auteur et termine.
-v, --verbose mode verbeux
-n, --numeric don't resolve names
-e, --extend display other/more information
-F, --fib display Forwarding Information Base (default)
-C, --cache affiche le cache de routage au lieu de FIB
<AF>=Use '-A <af>' or '--<af>'; default: inet
Liste les familles d'adresses possibles (supportant le routage):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
Principe du routage en TCP/IP
Pour que deux host TCP/IP puissent échanger des trames (ou datagrammes), chacun doit connaître une route allant de l'un à l'autre, ou utiliser des passerelles par défaut qui connaissent cette route.
Plusieurs problèmes se posent régulièrement pour la connexion de deux hosts :
• Les machines ne sont pas accessibles physiquement (réseaux physiques différents)
• Les machines font partie du même réseau physique mais sont isolées par Firewall
• Les machines n'arrivent pas à faire la correspondance entre leur nom et leur adresse IP
• Les machines connaissent leur nom et adresse IP mais n'arrivent pas à se connecter
Dans tous les cas, la première chose à tester est que les hosts se voient bien en utilisant la commande PING. Ensuite on regarde, selon le cas listé plus haut où l'on se trouve :
• Dans ce cas, il faut bien sur connecter physiquement les deux réseaux physiques en ajoutant un routeur, une passerelle (ordinateur configuré en passerelle ou routeur) ou tout appareil permettant d'assurer la continuité physique du réseau global.
• Dans le cas où les machines sont physiquement sur le même réseau mais qu'elles sont isolées logiquement par un firewall, il faut ajouter des routes logiques pour assurer le routage des datagrammes d'un sous-réseau logique à un autre sous-réseau. Il faut alors paramètrer au firewall comment router les datagrammes en ajoutant manuellement des routes (voir table de routage IP ). En effet,
même si le firewall voit les deux hosts sur le réseau physique, ce n'est pas pour cela qu'il assurera le routage des trames.
• Il est facile de vérifier la résolution de l'adresse IP du nom d'host, en effectuant un PING sur l'adresse IP du nom de l'host. Si cette commande échoue alors que la commande PING adresse IP de cet host aboutit, c'est qu'il y a un problème de résolution. Il faut alors vérifier :
• Si les host sont configurés pour se servir d'un serveur DNS pour leur résolution de nom, vérifier la liste des noms d'hosts déclarés dans le serveur DNS auquel ils se réfèrent. Il est probable que l'host auquel on cherche à se connecter n'a pas été déclaré dans le serveur DNS.
• Si les host ne se réfèrent pas à un serveur DNS, il faut alors spécifier à chacun d'eux la correspondance entre nom d'host et adresse IP dans un fichier HOSTS, qui doit alors être présent sur chaque host.
• Si la résolution fonctionne, vérifier que les deux host voient bien leur passerelle par défaut (un petit PING suffira) et que cette passerelle est bien celle sensée router les datagrammes. Si tel est le cas et que la connexion est impossible entre les deux hosts, c'est que la passerelle ne route pas les datagrammes. Pour cela, vérifier les routes de la passerelle et éventuellement ajouter la route pour
spécifier la manière de router les datagrammes entre les deux hosts (rare) ou plutôt les deux sous-réseaux logiques. Cette route est à ajouter à la table de routage de la passerelle (c'est elle qui s'occupe du routage des paquets) : le firewall par exemple ou le routeur.
On peut dailleurs accéder au routage à de toute station ou serveur ayant le protocole TCP/IP.
Pour afficher la table de routage IP d'un Unix, ouvrir un terminal de commandes et taper par exemple route puis Entrer.
Avec Linux Fedora Core 2 vous aurez :
[root@serveur root]# route
Table de routage IP du noyau
Destination
|
Passerelle
|
Genmask
|
Indic
|
Metric
|
Ref
|
Use
|
Iface |
192.168.0.0
|
*
|
255.255.255.0
|
U
|
0
|
0
|
0
|
eth0
|
172.16.1.0
|
*
|
255.255.255.0
|
U
|
0
|
0
|
0
|
eth0
|
192.0.0.0
|
*
|
255.255.0.0
|
U
|
0
|
0
|
0
|
eth1
|
169.254.0.0
|
*
|
255.255.0.0
|
U
|
0
|
0
|
0
|
eth1
|
127.0.0.0
|
*
|
255.0.0.0
|
U
|
0
|
0
|
0
|
lo
|
default
|
192.0.1.2
|
0.0.0.0
|
UG
|
0
|
0
|
0
|
eth1
|
[root@serveur root]#
Interprétation :
Destination ou Network adress
Ce champ correspond a l'adresse de destination. Ce champ peut contenir:
• Une adresse machine
• Une adresse de sous-réseau
• Une adresse de réseau
• Une passerelle par défaut
Genmask ou Netmask
Ce champ définit la portion d'adresse réseau qui correspond à l'itinéraire. Le masque étant codé en binaire, un "1" spécifie que l'adresse doit correspondre (un "0" veut dire qu'il n'est pas nécessaire que l'adresse corresponde). Par exemple, 255.255.255.255 correspond à un ordinateur, car tous les bits de l'adresse doivent correspondre. Ce qui veut dire que l'adresse de destination du paquet à router
doit correspondre exactement à l'adresse réseau pour que cet itinéraire soit utilisé.
Autre exemple, une adresse de réseau 172.16.8.0 a un masque de réseau de 255.255.192.0. Ce masque précise que les deux premiers octets de l'adresse doivent correspondre exactement. En binaire, 192 correspond à 0x11000000, ce qui veut dire que les deux premiers bits du troisième octet doivent correspondre aussi. C'est un masque de réseau pour un itinéraire de sous-réseau.
Passerelle ou Gateway adress
Ce champ indique ou le paquet doit être envoyé. Cela peut correspondre à une carte réseau locale ou à un routeur du sous-réseau local.
Iface ou Interface (loopback)
Ce champ correspond à l'adresse de la carte réseau qui émet le paquet. 127.0.0.1 est l'adresse de rebouclage logiciel.
Metric
Ce champ correspond au nombre de nœuds à franchir pour atteindre la destination. Tout élément d'un réseau local est un nœud et chaque routeur traversé est un nœud supplémentaire. Ce champ permet de déterminer le meilleur itinéraire.
Ajouter une route à la table de routage IP
Pour ajouter une route à la table de routage d'un serveur ou d'une station :
Route Add -p 199.199.41.0 mask 255.255.255.0 199.199.40.1 metric 2
La route ci-dessus précise que, pour atteindre le sous-réseau 199.199.41.0 avec un masque de 255.255.255.0, il faut passer par la passerelle 199.199.40.1 et qu'il faudra traverser deux nœuds.
ATTENTION !
Si on n'ajoute pas -p comme commutateur, la route disparaîtra au prochain reboot de la machine ! Ce commutateur impose que cette route soit enregistrée de manière permanente.
Autre exemple :
Route Add -p 62.160.38.11 mask 255.255.255.255 192.168.0.5
La route précédente est une translation d'adresse pour une machine : en effet, le masque 255.255.255.255 impose que l'adresse entière de la destination doit correspondre, il s'agit donc d'un host. En l'occurrence, cet host est 192.168.0.5. Ainsi, cette route signifie que lorsqu'on accède, par exemple d'Internet, sur l'adresse 62.160.38.11, on redirige en fait vers l'adresse interne 192.168.0.5.
Remarque
Les routes se modifient en général sur les passerelles (serveurs servant de routeur, firewalls, routeurs physiques, etc...) qui sont les machines se chargeant physiquement du routage des datagrammes. Un host normal du réseau n'a pas à router ses datagrammes lui-même, il doit seulement pouvoit faire sa résolution de nom d'host d'adresse IP pour savoir adresser l'host distant.
|
| Auteur |
| Eric, Littérature & Web |
 |
|
|
|
|
 |
|
 |
|
|