Connexion réseau filaire

L'objectif est de configurer une connexion réseau en utilisant les outils de configuration réseau "bas niveau", dans le cadre d'une machine disposant d'une connexionEthernet filaire reliée à un réseau local.Deux méthodes sont décrites : méthode "rapide" utilisant un serveur DHCP disponible sur le réseau local, méthode avec configuration manuelle de l'adresse et de la route.

Les différentes étapes sont décrites pas à pas, pour faciliter l'identification d'un problème éventuel. Dans la pratique, toutes ces étapes ne sont généralement pas nécessaires et la configuration se résume à quelques commandes.

1 - Préparation

1.1 - Installer les paquets

Télécharger et installer les paquets manquants par rapport à la liste suivante :

# aptitude install iproute2 iw wpasupplicant isc-dhcp-client dnsutils bind9-host host

1.2 - Vérifier la configuration matérielle de l'interface

$ ls /sys/class/net
eth0 lo wlan0
$ ls -la /sys/class/net/eth0
lrwxrwxrwx 1 root root 0 mars 16 11:34 /sys/class/net/eth0 -> ../../devices/pci0000:00/0000:00:03.0/net/eth0
$ lspci -k |grep -A2 net
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
Subsystem: Intel Corporation PRO/1000 MT Desktop Adapter
Kernel driver in use: e1000

Comme indiqué (Kernel driver in use), le module (e1000) est chargé, ce que l'on peut vérifier avec la commande lsmod :

$ lsmod |grep e1000
e1000 122545 0

1.3 - Vérifier la boucle lo

$ ip link show lo |grep lo:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
# ip link set dev lo up
$ ping -c2 127.0.0.1 |grep loss
2 packets transmitted, 2 received, 0% packet loss, time 999ms

1.4 - Désactiver les services réseau

Si l'objectif est d'établir une connexion "manuelle", il est préférable d'éliminer les interférences possibles avec d'éventuels autres services ou gestionnaires de réseau actifs, tels que wicd ou NetworkManager. Pour cela, vérifier le statut des services correspondants :

$ systemctl -a |grep -E 'wicd|networking|NetworkManager'
networking.service loaded active running LSB: Raise network interfaces.
wicd.service loaded active running LSB: Starts and stops Wicd
# aptitude purge wicd-daemon

# systemctl stop networking

1.5 - Effacer les traces d'une configuration préalable

De même, si l'objectif est d'établir une connexion "à partir de zéro", sans interférence avec une configuration préalable, désactiver l'interface eth0 et purger les adresses et routes réseaux :

# ip link set dev eth0 down

# ip -s -s address flush dev eth0

# ip -s -s route flush dev eth0

# ip -s -s neigh flush dev eth0

2 - Configuration par DHCP

# ip link set eth0 up
$ ip link show eth0 |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
# dhclient eth0
# ip address show eth0 |grep inet
inet 10.0.2.15/32 scope global eth0
$ ip route
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 scope link src 10.0.2.15
$ ping -c2 10.0.2.2
2 packets transmitted, 2 received, 0% packet loss, time 999ms
$ ping -c2 8.8.8.8 |grep loss
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
$ ping -c 2 www.google.fr |grep loss
2 packets transmitted, 2 received, 0% packet loss, time 1002ms

3 - Configuration "manuelle"

# ip link set eth0 up
$ ip link show eth0 |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
# ip address add 10.0.2.15/16 dev eth0
$ ip address show eth0 |grep inet
inet 10.0.2.15/32 scope global eth0
# ip route add 10.0.2.0/24 src 10.0.2.15 dev eth0      # spécifier proto static ??
$ ping -c2 10.0.2.2
2 packets transmitted, 2 received, 0% packet loss, time 999ms
# ip route add default via 10.0.2.2 dev eth0
$ ip route 
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 scope link src 10.0.2.15
$ ping -c2 8.8.8.8 |grep loss
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
$ cat /etc/resolv.conf 
# echo nameserver 8.8.8.8 > /etc/resolv.conf
# echo nameserver 8.8.4.4 >> /etc/resolv.conf
$ ping -c 2 www.google.fr |grep loss
2 packets transmitted, 2 received, 0% packet loss, time 1002ms