Réseau Ethernet

Une fois la configuration physique des interfaces réalisées, la configuration réseau d'une machine peut s'effectuer :

Quelques notions préalables sur les réseaux sont résumées ci-après.

1 - Adresses

1.1 - Adresses IP v4

Les adresses IP v4 sont des nombres sur 32 bits. Ils sont habituellement présentés sous la forme de 4 groupes de 8 bits séparés par des points, chaque groupe de 8 bits étant représenté par sa valeur décimale entre 0 et 255, par exemple 127.0.0.1.

1.2 - Ports

L'adresse d'un service réseau, serveur web par exemple, se compose d'une adresse IP et d'un numéro de port, qui permet d'identifier le services réseau parmi tous ceux qui peuvent transiter sur une même adresse IP. Les numéros de port sont compris entre 0 et 65536.

Sur un serveur, on pourra ainsi avoir :

Les numéros de ports entre 0 et 1023 sont réservés à des services standards, par exemple :

21 - FTP - Transfert de fichiers
22 - SSH - SSH remote login protocol
25 - SMTP - Envoi de courrier
53 - DNS - Serveur de noms
80 - HTTP - Serveur web
110 - Pop3 - Réception de courrier
123 - ntp - Protocole temps réseau
143 - imap - Procole d'accès messagerie internet
631 - ipp - Serveur d'impression

Lorsque dans une commande, le port "standard" est utilisé, il est souvent possible de l'omettre. Ainsi, dans le cas d'un service web, il est possible d'omettre le numéro de port 80, celui-ci étant implicite pour le navigateur.

Ainsi, les commandes suivantes de chargement d'une page web hébergée en 127.0.0.1, sont équivalentes, :

$ iceweasel 127.0.0.1:80
$ iceweasel 127.0.0.1

1.3 - Alias

Le fichier hosts permet de définir des alias pour les adresses IP. Le fichier hosts contient initialement, un nombre réduit d'alias, par exemple :

$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

où debian est, dans le cas présent, le nom d'hôte (hostname) de la machine.

Il est possible d'y ajouter des alias pour les adresses (fixes) fréquemment utilisées, machine (si adresse fixe), routeur internet, imprimantes réseaux, ... et de les utiliser à la place des adresses IP dans les commandes, par exemple, les commandes suivantes sont équivalentes :

$ iceweasel 127.0.0.1
$ iceweasel localhost

1.4 - Noms d'hôte

On distingue

$ cat /etc/hostname
debian2

qui apparaît, dans l'invite de commande, après l'arobas :

root@debian2:/# 

et se retrouve également défini en tant qu'alias dans le fichier hosts (voir ci-dessus). Ce nom n'est pas propre à la machine et plusieurs machines peuvent avoir le même nom d'hôte sur un réseau.

Le nom d'hôte "long" est à rajouter dans le fichier hosts, soit à l'adresse 127.0.0.1 si la machine n'a pas d'adresse IP fixe, soit à l'adresse IP de la machine si celle-ci est fixe :

127.0.1.1      debian.mon_domaine.org debian

ou

10.0.2.15 debian.mon_domaine.org debian

Dans cet exemple, debian est le nom d'hôte court et mon_domaine.org est le nom du réseau.

1.5 - Plage d'adresses

Pour désigner une plage d'adresses, deux types de notation sont utilisées :

1.5.1 Notation CDIR

Dans la notation CIR,par exemple,192.168.0.0/16

Dans l'exemple présent,

1.5.2 Notation Masques

Un masque, associé à une adresse IP, permet également de définir un sous-réseau. Le masque est un nombre sur 32 bits. Il est généralement représenté de la même façon qu'une adresse IP v4, par 4 nombres successifs compris entre 0 et 255, séparés par des points (.)

Les adresses du sous-réseau sont construites "bit à bit" à partir de l'adresse IP de référence et le masque :

Exemples :

2 - Réseaux

2.1 - Alias réseaux

Le fichier /etc/networks permet d'affecter un nom logique à un réseau. Par défaut, le fichier networks contient :

$ cat /etc/networks
default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0

2.2 - Boucle locale

La boucle locale est un réseau virtuel (sans interfaces physiques), "interne à la machine" sur laquelle communiquent les services réseaux de la machine. La boucle locale a pour adresses 127.0.0.0/8, correspondant aux adresses de 127.0.0.0 à 127.255.255.255. Dans cette gamme, les serveurs sont libres de décider des adresses auxquelles ils seront liées (bind).

loopback est un alias pour la boucle locale :

$ cat /etc/networks |grep 127
loopback 127.0.0.0

Deux adresses sont particulièrement utilisées :

Par défaut, ces adresses ont des alias définis dans le fichier hosts :

$ cat /etc/hosts |grep 127
127.0.0.1 localhost
127.0.1.1 debian

2.3 - Lien local

Les adresses 169.254.0.0 à 169.254.255.255 sont réservées à l'attribution d'adresses selon le protocole mDNS/DNS-ND. Ce protocole permet à des machines de communiquer, sur un réseau local, en l'absence de configuration par adresse statique ou de serveur dhcp. Ces adresses sont ignorées par les routeurs et ne peuvent pas être utilisées pour communiquer en dehors du réseau local.

Ce protocole est implanté sous Linux par "avahi".

# aptitude install avahi-autoipd
# aptitude install avahi-daemon

2.4 - Réseau local

Les réseaux locaux sont des sous-réseaux domestiques ou d'entreprises, sur lesquels les machines peuvent communiquer entre elles sans passer par internet. Chaque machine est identifiée sur ce réseau par une adresse IP appartenant au sous-réseau. Les sous-réseaux utilisent les gammes d'adresse suivante :

A 10.0.0.0/8
B 172.16.0.0/12
C 192.168.0.0/16

2.5 - Réseau internet

Chaque machine reliée en direct à internet (sans passer par un réseau local) possède au moins une adresse IP. Celle-ci est unique et est comprise dans la gamme 0.0.0.0 à 255.255.255.255 moins les adresses réservées à la boucle locale et aux réseaux locaux.

2.6 - Table de routage

La table de routage d'une machine indique comment atteindre une destination en fonction

Chaque ligne de la table de routage s'explore l'une après l'autre jusqu'à trouver celle(s) correspondant à l'adresse recherchée.

Exemple :

$ ip route
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
169.254.0.0/16 dev eth0 scope link metric 1000

La table de routage comprend ici trois lignes