• Aucun résultat trouvé

Con guration du reseau TCP/IP

5.8 Con guration des interfaces reseau

5.8.2 Interfaces Ethernet

La con guration d'une interface Ethernet est tres semblable a celle de l'interface loopback, elle demande juste quelques parametres supplementaires si vous employez des sous-reseaux.

A (( La biere virtuelle)), nous avons subdivise le reseau IP, qui etait a l'origine de

classe B, en reseaux de classe C. Pour que l'interface reconnaisse ce fait, nous devons appeler ifcon g de la maniere suivante:

# ifconfig eth0 gueuze netmask 255.255.255.0

Cette commande assigne l'adresse IP de

gueuze

(

172.16.1.2

) a l'interface eth0. Si nous avions omis le masque reseau, ifcon g l'aurait deduit de la classe de l'adresse reseau, ce qui aurait donne

255.255.0.0

. Une petite veri cation nous donne mainte- nant:

# ifconfig eth0

eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1

RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0

Vous pouvez voir que ifcon g initialise automatiquement l'adresse de di usion (le champBcastci-dessus) selon la methode usuelle, en mettant a 1 tous les bits de la

partie h^ote de l'adresse reseau. De plus, le MTU ((( Maximum Transfer Unit)), la

taille maximale des trames Ethernet que le noyau generera pour cette interface) a ete positionne a 1500 octets. Toutes ces valeurs peuvent ^etre forcees par des options speciales que nous decrirons plus tard.

Tout comme avec l'interface loopback, nous devons installer une entree dans la table de routage pour informer le noyau de ce reseau accessible par eth0. Chez nos brasseurs virtuels, il faudra donc taper la commande route suivante:

# route add -net 172.16.1.0

6:Par exemple, toutes les applications basees sur les RPC utilisent l'interfaceloopbackpour s'en-

A premiere vue, cela semble tenir de la magie, puisqu'il n'appara^t pas clairement comment route peut detecter par quelle interface cette route doit passer. Pourtant, le truc est simple: le noyau regarde toutes les interfaces qui ont ete con gurees et compare l'adresse de destination (

172.16.1.0

dans ce cas) avec la partie reseau de l'adresse de l'interface (c'est-a-dire, un((ET))bit a bit entre l'adresse de l'interface

et le masque reseau). La seule qui correspond est eth0.

Mais qu'est-ce que cette option-netest donc censee faire? Elle est utilisee car route

peut traiter aussi bien des routes vers des reseaux que des routes vers de simples h^otes (comme vous l'avez vu plus haut dans le cas de

localhost

). Lorsqu'on lui passe une adresse en notation sur 4 octets, le programme tente de deviner s'il s'agit d'un reseau ou d'un h^ote, en regardant les bits de la partie h^ote. Si cette partie h^ote de l'adresse vaut zero, route considere qu'il s'agit d'un reseau; et d'une adresse d'h^ote dans le cas contraire. Par consequent, route penserait que

172.16.1.0

est un h^ote et non pas un reseau, car le programme ne sait pas que nous utilisons un sous-reseau. Nous devons donc lui indiquer explicitement qu'il s'agit d'un reseau, en lui passant l'option-net.

Bien s^ur, la commande ci-dessus est un peu penible a taper, et peut entra^ner des fautes de frappe. Une approche plus pratique consiste a employer les noms de reseaux que nous avons de nis dans le chier /etc/networks auparavant. Du coup, notre com- mande devient plus lisible; et l'on peut m^eme supprimer l'option-netpuisque route

sait maintenant que

172.16.1.0

correspond a un reseau.

# route add biere-net

Maintenant que nous avons termine les etapes de base de la con guration, nous al- lons veri er que notre interface Ethernet fonctionne correctement. Choisissez un h^ote connecte a votre reseau local, par exemple

kro

, et tapez:

# ping kro

PING kro: 64 byte packets

64 bytes from 172.16.1.1: icmp_seq=0. time=11. ms 64 bytes from 172.16.1.1: icmp_seq=1. time=7. ms 64 bytes from 172.16.1.1: icmp_seq=2. time=12. ms 64 bytes from 172.16.1.1: icmp_seq=3. time=3. ms ^C

----gueuze.bibine.com PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss round-trip (ms) min/avg/max = 3/8/12

Si vous ne voyez pas quelque chose ressemblant a cela sur votre ecran, c'est sans nul doute que quelque chose ne va pas. Si vous rencontrez un taux inhabituel de paquets perdus, il s'agit probablement d'un probleme materiel, comme des resistances de terminaison absentes, un c^ablage incorrect, voire... l'oubli de connecter la machine au reseau. Si vous ne recevez aucun paquet, testez la con guration de l'interface par la commande netstat. Les statistiques sur les paquets emis et recus aches par ifcon g devraient vous indiquer si, au moins, des datagrammes ont ete envoyes. Si vous avez

un acces physique a la machine distante, allez voir egalement les statistiques qu'elle indique. Vous pourrez ainsi determiner exactement ou les paquets se sont perdus. De plus, veri ez les informations de routage par la commande route pour voir si les deux h^otes sont correctement con gures a ce niveau. Invoquee sans arguments, route ache la totalite de la table de routage du noyau (l'option-nlui fait acher les adresses IP

au lieu des noms des machines):

# route -n

Kernel routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

127.0.0.1 * 255.255.255.255 UH 1 0 112 lo

172.16.1.0 * 255.255.255.0 U 1 0 10 eth0

La signi cation detaillee de ces champs est expliquee plus loin, dans la section(( La

commande netstat)). La colonneFlagcontient une liste des drapeaux positionnes pour

chaque interface:Usigni e qu'elle est active, etHindique que l'adresse de destination

est un h^ote. Si le drapeauHest mis alors que vous vouliez que cette route soit une route

reseau, il vous faut retaper la commande route avec l'option-net. Pour veri er qu'une

route est utilisee, testez si la valeur indiquee dans le champ Usede l'avant-derniere

colonne s'incremente entre deux invocations de ping.