Vous êtes sur la page 1sur 17

Interface logique

Si les pilotes priphriques de blocs et de caractres sont monts en tant que fichiers dans le dossier /dev, il nen est pas de mme pour les interfaces rseau. Vous accdez ces derniers par le biais dun nom logique tel que eth0, eth1. Eth pour Ethernet et la valeur numrique 0 pour la premire carte, 1 pour la seconde carte et ainsi de suite... Selon la distribution, une interface sans fil peut avoir comme nom logique eth0 ou bien wlan0. Wlan pour wireless LAN. Cette obtention de nom est ralise par le gestionnaire de priphriques udev. Pour sassurer que linterface ait le mme nom de faon persistante chaque dmarrage, une entre est crite dans le fichier 70-persistent-net.rules situ dans le dossier /etc/udev/rules.d. Ce fichier est gnr automatiquement par le script /lib/udev/write_net_rules. Voici son contenu :

# cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key.

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:03.0 (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*" ATTR{address}=="08:00:27:d4:90:6e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:08.0 (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bd:db:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" Signification des principales directives : Directive SUBSYSTEM=="net" Description Le gestionnaire de priphriques pas des cartes rseau.

udev ignore les priphriques qui ne sont

DRIVERS=="?*" ATTR{address}

Ignore les VLAN et les interfaces virtuelles. Spcifie ladresse MAC de la carte rseau.

Directive ATTR{dev_id} ATTR{type}=="1"

Description Spcifie lidentifiant du priphrique. Sil existe plusieurs interfaces virtuelles, les paramtres sont uniquement assigns linterface primaire. Nom du priphrique donn par le noyau. Spcifie le nom de linterface assigner.

KERNEL=="eth*" NAME La commande Syntaxe

udevadm info affiche les informations dun priphrique depuis la base de donnes udev.

udevadm info <options> Options ncessaires : Option Description courte -a -p Exemple longue --attribute-walk --path Affiche les proprits de

sysfs concernant le priphrique spcifi.

Spcifie le priphrique afficher dans sysfs.

# udevadm info -a -p /sys/class/net/eth0/

Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device.

looking at device /devices/pci0000:00/0000:00:03.0/net/eth0: KERNEL=="eth0" SUBSYSTEM=="net" DRIVER=="" ATTR{addr_assign_type}=="0" ATTR{addr_len}=="6" ATTR{dev_id}=="0x0"

ATTR{ifalias}=="" ATTR{iflink}=="2" ATTR{ifindex}=="2" ATTR{type}=="1" ATTR{link_mode}=="0" ATTR{address}=="08:00:27:1a:1a:48" ATTR{broadcast}=="ff:ff:ff:ff:ff:ff" ATTR{carrier}=="1" ATTR{speed}=="1000" ATTR{duplex}=="full" ATTR{dormant}=="0" ATTR{operstate}=="up" ATTR{mtu}=="1500" ATTR{flags}=="0x1003" ATTR{tx_queue_len}=="1000" ATTR{netdev_group}=="0"

looking at parent device /devices/pci0000:00/0000:00:03.0: KERNELS=="0000:00:03.0" SUBSYSTEMS=="pci" DRIVERS=="e1000" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x100e" ATTRS{subsystem_vendor}=="0x8086" ATTRS{subsystem_device}=="0x001e" ATTRS{class}=="0x020000" ATTRS{irq}=="19"

ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000, 00000000,000000,00000000,00000000,00000000,00000000,00000000,

00000000,00000000,00000000,00000003" ATTRS{local_cpulist}=="0-1" ATTRS{numa_node}=="-1" ATTRS{dma_mask_bits}=="32" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{enable}=="1" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}==""

looking at parent device /devices/pci0000:00: KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""

1. Activer/dsactiver une interface


La commande Syntaxe

ifconfig permet aussi dactiver ou de dsactiver une interface.

ifconfig <interface> <options> Options ncessaires : Option up down ce eth0 : Active linterface mentionne. Dsactive linterface mentionne. Dsacti vez linterfa Description Exempl e

# ifconfig eth0 down Activez linterface eth0 :

# ifconfig eth0 up

ifconfig ne ngocie pas un bail dhcp ou ne rengocie pas le bail en cours. Dans ce cas, vous devez utiliser les commandes ifup et ifdown.
Syntaxes

ifup <interface>

ifdown <interface> ifup -a Options utiles : Option Description courte -a longue --all Active toutes les interfaces dfinies dans le fichier

/etc/network/interfaces.
Exemple Activez linterface eth0 :

# ifup eth0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:1a:1a:48 Sending on Sending on LPF/eth0/08:00:27:1a:1a:48 Socket/fallback

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPOFFER from 10.0.2.2 DHCPACK from 10.0.2.2 bound to 10.0.2.15 -- renewal in 35932 seconds. La trame DHCPDISCOVER sur le port UDP 67 effectue un broadcast en utilisant ladresse 255.255.255.255 pour trouver un serveur DHCP disponible, lequel rpond par la trame DHCPREQUEST. La machine Linux accepte loffre par la trame DHCPOFFER. Laffaire est conclue par le serveur DHCP avec la trame DHCPACK. Dsactivez linterface eth0 :

# ifdown eth0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium.

All rights reserved. For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:1a:1a:48 Sending on Sending on LPF/eth0/08:00:27:1a:1a:48 Socket/fallback

DHCPRELEASE on eth0 to 10.0.2.2 port 67 La trame DHCPRELEASE libre le bail.

2. Configurer une interface


La configuration des interfaces rseau diffre. Nous avons dun ct Debian et Ubuntu et de lautre ct CentOS.

a. Configurer Debian et Ubuntu


La configuration est dans un fichier unique nomm

interfaces situ dans le dossier /etc/network :

# cat /etc/network/interfaces # 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

# The primary network interface auto eth0 iface eth0 inet dhcp

# The 2nd network interface auto eth1 iface eth1 inet static address 192.168.1.100 netmask 255.255.255.0

gateway 192.168.1.254 Le tableau ci-dessous explique les entres de Entre auto <interface> iface <nom_config> loopback iface dhcp <nom_config> inet

/etc/network/interfaces :
Description

Dmarre linterface lors du boot. La configuration de linterface de loopback (127.0.0.1).

inet

La configuration IP est dynamique (client DHCP).

iface <nom_config> static

inet

La configuration IP est statique. Les options address, netmask et gateway sont alors ncessaires pour dfinir les paramtres. Excute une commande avant dactiver linterface. Excute une commande aprs lactivation de linterface.

pre-up post-up

b. Configurer CentOS
Il existe un fichier de configuration par interface dans le dossier /etc/sysconfig/network-scripts. Le fichier est nomm de la faon suivante ifcfg-<interface> :

# ls -1 /etc/sysconfig/network-scripts/ifcfg* /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-lo Voici le contenu du fichier de linterface de loopback :

# cat /etc/sysconfig/network-scripts/ifcfg-lo DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 # If youre having problems with gated making 127.0.0.0/8 a martian, # you can change this to something else (255.255.255.255, for example) BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback De mme, pour linterface eth1 :

# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=08:00:27:61:1B:3F TYPE=Ethernet UUID=ef71420f-0c55-4409-ba89-9a347e11e811 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp Le tableau ci-dessous explique les entres des fichiers de configuration rseau : Entre DEVICE IPADDR NETMASK NETWORK BROADCAST ONBOOT HWADDR NM_CONTROLLED Nom logique du priphrique. Adresse IP. Masque de sous-rseau. Adresse de rseau. Adresse de broadcast. Active si yes ; dsactive si no. Adresse matrielle (adresse MAC). Si yes, le priphrique est gr par le dmon. Network Manager. si no, le priphrique est gr manuellement par son fichier de configuration. Indique le protocole de dmarrage : none : aucun protocole. Description

BOOTPROTO

dhcp : utiliser le protocole DHCP.


USERCTL Si Si ETHTOOL_OPTS

yes, tous les utilisateurs peuvent grer linterface rseau. no, seul le superutilisateur peut grer linterface.

Dfinit des options Ethernet. Par exemple : ETHTOOL_OPTS="autoneg off speed 1000 duplex full" La valeur ON ou OFF de autoneg active ou dsactive lautongociation.

speed spcifie la vitesse 10, 100 ou 1000 en Mb/s. duplex peut avoir la valeur full ou half.
c. Utilitaire ethtool
Lutilitaire ethtool gre la configuration des interfaces rseau. Cet outil nest pas install par dfaut sur Debian et Ubuntu contrairement CentOS.

d. Interface virtuelle
Vous pouvez crer une interface virtuelle pour associer une deuxime adresse IP une carte rseau. Il suffit dajouter au nom logique un :0 pour la premire interface virtuelle, un :1 pour la seconde et ainsi de suite... Par exemple : eth0:0. Exemple avec CentOS

Allez dans le dossier ifcfg-eth0:0 :

/etc/sysconfig/network-scripts et copiez le fichier ifcfg-eth0 en

# cp ifcfg-eth0 ifcfg-eth0:0 Vrifiez :

# ls -1 ifcfg-eth* ifcfg-eth0 ifcfg-eth0:0 Le fichier

ifcfg-eth0 contient ceci :

# cat ifcfg-eth0 DEVICE=eth0 HWADDR=08:00:27:61:1B:3F TYPE=Ethernet UUID=ef71420f-0c55-4409-ba89-9a347e11e811 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp Il ne reste plus qu modifier les paramtres de linterface virtuelle dans le fichier ifcfg-eth0:0 avec un diteur de texte :

# cat ifcfg-eth0:0 DEVICE=eth0:0 TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.0.150 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 BROADCAST=10.0.0.255 NETWORK=10.0.0.0 USERCTL=no ONBOOT=yes

Ensuite, redmarrez le service rseau :

# service network restart Arrt de linterface eth0 : Arrt de linterface loopback : Activation de linterface loopback : Activation de linterface eth0 : Dfinition des informations IP pour eth0. fait. [ Vrifiez : OK ] [ [ [ OK OK OK ] ] ]

# ifconfig eth0:0 eth0:0 Link encap:Ethernet inet adr:10.0.0.150 HWaddr 08:00:27:61:1B:3F Bcast:10.0.0.255 Masque:255.255.255.0 Metric:1

UP BROADCAST RUNNING MULTICAST

MTU:1500

3. Adressage IPv4
Pour vous aider calculer une adresse IP, vous pouvez utiliser CentOS.

ipcalc. Il est nativement install dans

ipcalc <adresse_IP> <masque> Pas doptions pour cette commande. Exemple Vous avez une adresse IP 172.16.33.1/19. Vous voulez savoir dans quel sous-rseau vous vous situez :

# ipcalc 172.16.33.1/19 Address: Netmask: Wildcard: => Network: HostMin: HostMax: 172.16.32.0/19 172.16.32.1 172.16.63.254 10101100.00010000.001 00000.00000000 10101100.00010000.001 00000.00000001 10101100.00010000.001 11111.11111110 10101100.00010000.001 11111.11111111 172.16.33.1 10101100.00010000.001 00001.00000001

255.255.224.0 = 19 11111111.11111111.111 00000.00000000 0.0.31.255 00000000.00000000.000 11111.11111111

Broadcast: 172.16.63.255

Hosts/Net: 8190

Class B, Private Internet

a. Adresse IPv4 statique


Dans ce chapitre, nous avons indiqu que ladresse IP tait stocke dans un fichier de configuration et que ifconfig permet de consulter ladresse MAC et ladresse IP.

Ifconfig peut aussi attribuer la vole une adresse IP.


Syntaxe

ifconfig <interface> <adresse> netmask <masque> ifconfig <interface> <adresse/masque> Pas doptions pour cette commande. Exemple Vous devez attribuer ponctuellement ladresse IP 172.18.65.3/19 linterface regardons les caractristiques de cette adresse :

eth0. Avec ipcalc,

# ipcalc 172.18.65.3/19 Address: Netmask: Wildcard: => Network: HostMin: HostMax: 172.18.64.0/19 172.18.64.1 172.18.95.254 10101100.00010010.010 00000.00000000 10101100.00010010.010 00000.00000001 10101100.00010010.010 11111.11111110 10101100.00010010.010 11111.11111111 Class B, Private Internet 172.18.65.3 10101100.00010010.010 00001.00000011

255.255.224.0 = 19 11111111.11111111.111 00000.00000000 0.0.31.255 00000000.00000000.000 11111.11111111

Broadcast: 172.18.95.255 Hosts/Net: 8190

Maintenant, affectez ladresse linterface

eth0 :

# ifconfig eth0 172.18.65.3/19 Vrifiez le rsultat :

# ifconfig eth0 eth0 Link encap:Ethernet inet adr:172.18.65.3 Masque:255.255.224.0 HWaddr 08:00:27:1a:1a:48 Bcast:172.18.95.255

adr inet6: fe80::a00:27ff:fe1a:1a48/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:857 errors:0 dropped:0 overruns:0 frame:0 TX packets:885 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:749507 (731.9 KiB) TX bytes:90277 (88.1 KiB)

b. Adressage IPv4 dynamique


Pendant lexcution de ifup et de ifdown, un bail DHCP est ngoci en plus de lactivation de linterface. Si vous souhaitez uniquement la ngociation dun bail, vous disposez de la commande dhclient. Syntaxe

dhclient <interface> <option> Option utile : Option courte -v Exemple Vous souhaitez que linterface Mode verbeux. Description

eth0 recontacte un serveur DHCP :

# dhclient eth0 -v Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:1a:1a:48 Sending on Sending on LPF/eth0/08:00:27:1a:1a:48 Socket/fallback

DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPACK from 10.0.2.2 RTNETLINK answers: File exists bound to 10.0.2.15 -- renewal in 40872 seconds.

c. Supprimer ladresse IPv4


Pour supprimer ladresse IP affecte une interface, utilisez Syntaxe

ip addr flush.

ip addr flush <interface> Pas doptions pour cette commande. Exemple Supprimez ladresse de linterface

eth0 :

# ip addr flush eth0 Vrifiez avec ifconfig :

# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 08:00:27:1a:1a:48 MTU:1500 Metric:1

UP BROADCAST RUNNING MULTICAST

RX packets:863 errors:0 dropped:0 overruns:0 frame:0 TX packets:922 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:751987 (734.3 KiB) TX bytes:96125 (93.8 KiB)

4. Passerelle par dfaut


La passerelle par dfaut est tout simplement ladresse qui permet lordinateur de communiquer avec dautres rseaux. Pour connatre les routes dune machine Linux, utilisez les commandes netstat ou route. Syntaxe

netstat -r Pas doptions pour cette commande. Syntaxe

route -n Pas doptions pour cette commande. Exemples Avec

netstat :

# netstat -r

Table de routage IP du noyau Destination Iface default eth0 10.0.2.0 eth0 192.168.56.0 * eth1 Avec 255.255.255.0 U 0 0 0 * 255.255.255.0 U 0 0 0 10.0.2.2 0.0.0.0 UG 0 0 0 Passerelle Genmask Indic MSS Fentre irtt

route :

# route -n Table de routage IP du noyau Destination Iface 0.0.0.0 eth0 10.0.2.0 eth0 192.168.56.0 eth1 Pour accder au rseau 10.0.2.0/24 via linterface 0.0.0.0 255.255.255.0 U 0 0 0 0.0.0.0 255.255.255.0 U 0 0 0 10.0.2.2 0.0.0.0 UG 0 0 0 Passerelle Genmask Indic Metric Ref Use

eth0, la machine nutilisera pas de passerelle. eth1, la machine nutilisera pas de passerelle

Pour accder au rseau 192.168.56.0/24 via linterface galement.

Pour les autres rseaux, la passerelle par dfaut utilise sera 10.0.2.2.

5. Rsolution de noms dhtes


Une adresse MAC est lie une adresse IP. Cest le rle du protocole ARP de rsoudre ladresse logique en adresse physique. Ce fonctionnement est natif dans TCP/IP. Une adresse IP est lie un nom dhtes. La rsolution de nom seffectue par le biais dun fichier /etc/hosts ou par un client DNS qui interroge sur le rseau un serveur DNS.

Le FQDN est le nom absolu de la machine tandis que lalias est son nom relatif. Le suffixe DNS reprsente lespace de nom dans lequel la machine se situe. La concatnation de lalias et du suffixe DNS donne le FQDN. Un nom canonique pointe vers un alias et fournit un nom supplmentaire. Ainsi, une machine Linux peut avoir diffrents noms correspondant des services rseaux.

a. Tester la rsolution de noms


Les utilitaires Syntaxe

dig et nslookup testent la rsolution des noms en adresses IP.

dig <nom> Pas doptions pour cette commande. Syntaxe

nslookup <nom> Pas doptions pour cette commande. Exemples Rsolution du nom www.google.com avec

dig :

# dig www.google.com

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> www.google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56273 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;www.google.com. IN A

;; ANSWER SECTION: www.google.com. www.google.com. www.google.com. 37 37 37 IN IN IN A A A 173.194.66.99 173.194.66.103 173.194.66.104

www.google.com. www.google.com. www.google.com.

37 37 37

IN IN IN

A A A

173.194.66.105 173.194.66.106 173.194.66.147

;; Query time: 4 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Tue Sep 24 19:06:24 2013 ;; MSG SIZE rcvd: 128

Rsolution du nom www.google.com avec

nslookup :

# nslookup www.google.com Server: Address: 8.8.8.8 8.8.8.8#53

Non-authoritative answer: Name: www.google.com

Address: 173.194.66.105 Name: www.google.com

Address: 173.194.66.106 Name: www.google.com

Address: 173.194.66.147 Name: www.google.com

Address: 173.194.66.99 Name: www.google.com

Address: 173.194.66.103 Name: www.google.com

Address: 173.194.66.104

b. Fichiers de configuration
Le fichier

/etc/resolv.conf contient les adresses des serveurs DNS que le client DNS va utiliser :

# cat /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4 Le fichier

/etc/nsswitch.conf dtermine lordre de rsolution :

# grep hosts /etc/nsswitch.conf hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Les arguments sont traits de gauche droite pour la directive Argument files mdns4_minimal [NOTFOUND=return]

hosts: :

Description Lit les noms statiques dans le fichier

/etc/hosts.

Rsout les noms en utilisant le multicast DNS. Si le processus mdns4_minimal renvoie une rponse non trouv (NOTFOUND) alors le systme ne doit pas continuer chercher une rponse. Effectue une requte unicast DNS.

dns mdns4

Effectue une requte multicast DNS.