Cela peut vous paraître surprenant, mais iproute2 est déjà configuré ! Les commandes courantes ifconfig et route utilisent déjà les appels système avancés d'iproute2, mais essentiellement avec les options par défaut (c'est-à-dire ennuyeuses).
L'outil ip est central, et nous allons lui demander de nous montrer les interfaces.
[ahu@home ahu]$ ip link list 1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: dummy: <BROADCAST,NOARP> mtu 1500 qdisc noop link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff 4: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 10 link/ppp
La sortie peut varier, mais voici ce qui est affiché pour mon routeur NAT (NdT : traduction d'adresse) chez moi. J'expliquerai seulement une partie de la sortie, dans la mesure où tout n'est pas directement pertinent.
La première interface que nous voyons est l'interface
loopback
. Bien que votre ordinateur
puisse fonctionner sans, je vous le déconseille. La taille de
MTU (unité maximum de
transmission) est de 3924 octets, et loopback
n'est pas supposé être mis en file
d'attente, ce qui prend tout son sens dans la mesure où cette
interface est le fruit de l'imagination de votre noyau.
Je vais passer sur l'interface dummy
pour l'instant, et il se peut qu'elle ne
soit pas présente sur votre ordinateur. Il y a ensuite mes deux
interfaces physiques, l'une du côté de mon modem câble, l'autre
servant mon segment ethernet à la maison. De plus, nous voyons une
interface ppp0
.
Notons l'absence d'adresses IP. Iproute déconnecte les concepts de « liens » et « d'adresses IP ». Avec l'IP aliasing, le concept de l'adresse IP canonique est devenu, de toute façon, sans signification.
ip nous montre bien, cependant, l'adresse MAC, l'identifiant matériel de nos interfaces ethernet.
[ahu@home ahu]$ ip address show 1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo 2: dummy: <BROADCAST,NOARP> mtu 1500 qdisc noop link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/8 brd 10.255.255.255 scope global eth0 4: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 10 link/ppp inet 212.64.94.251 peer 212.64.94.1/32 scope global ppp0
Cela contient plus d'informations : ip montre toutes nos adresses, et
à quelles cartes elles appartiennent. inet
signifie Internet (IPv4). Il y a beaucoup
d'autres familles d'adresses, mais elles ne nous concernent pas
pour le moment.
Examinons l'interface eth0
de plus
près. Il est dit qu'elle est reliée à l'adresse internet
10.0.0.1/8
. Qu'est-ce que cela
signifie ? Le /8 désigne le nombre de bits réservés à l'adresse
réseau. Il y a 32 bits, donc il reste 24 bits pour désigner une
partie de notre réseau. Les 8 premiers bits de 10.0.0.1
correspondent à 10.0.0.0
, notre adresse réseau, et notre masque de
sous-réseau est 255.0.0.0
.
Les autres bits repèrent des machines directement connectées à
cette interface. Donc, 10.250.3.13
est
directement disponible sur eth0
, comme
l'est 10.0.0.1
dans notre exemple.
Avec ppp0
, le même concept existe,
bien que les nombres soient différents. Son adresse est
212.64.94.251
, sans masque de
sous-réseau. Cela signifie que vous avez une liaison point à point
et que toutes les adresses, à l'exception de 212.64.94.251
, sont distantes. Il y a cependant
plus d'informations. En effet, on nous dit que de l'autre côté du
lien, il n'y a encore qu'une seule adresse, 212.64.94.1
. Le /32 nous précise qu'il n'y a pas
de « bits
réseau ».
Il est absolument vital que vous compreniez ces concepts. Référez-vous à la documentation mentionnée au début de ce HOWTO si vous avez des doutes.
Vous pouvez aussi noter qdisc
, qui
désigne la gestion de la mise en file d'attente (Queueing Discipline). Cela deviendra vital plus
tard.
Nous savons maintenant comment trouver les adresses 10.x.y.z
, et nous sommes capables d'atteindre
212.64.94.1
. Cela n'est cependant pas
suffisant, et nous avons besoin d'instructions pour atteindre le
monde. L'Internet est disponible via notre connexion
PPP, et il se trouve que
212.64.94.1
est prêt à propager nos
paquets à travers le monde, et à nous renvoyer le résultat.
[ahu@home ahu]$ ip route show 212.64.94.1 dev ppp0 proto kernel scope link src 212.64.94.251 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1 127.0.0.0/8 dev lo scope link default via 212.64.94.1 dev ppp0
Cela se comprend de soi-même. Les 4 premières lignes donnent
explicitement ce qui était sous-entendu par ip address show
, la dernière
ligne nous indiquant que le reste du monde peut être trouvé via
212.64.94.1
, notre passerelle par
défaut. Nous pouvons voir que c'est une passerelle à cause du mot
« via », qui nous indique que nous avons
besoin d'envoyer les paquets vers 212.64.94.1
, et que c'est elle qui se chargera de
tout.
En référence, voici ce que l'ancien utilitaire route nous propose :
[ahu@home ahu]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 212.64.94.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 212.64.94.1 0.0.0.0 UG 0 0 0 ppp0