Une fois la configuration physique des interfaces réalisées, la configuration réseau d'une machine peut s'effectuer :
en ligne de commande, avec des instructions de bas niveau :
Voir ici, pour une présentation de l'ensemble des commandes
Ici, pour la configuration d'une connexion internet "filaire"
Ici, pour la configuration d'une connexion internet "wifi"
avec un fichier de configuration (etc/network/interfaces), voir ici
Quelques notions préalables sur les réseaux sont résumées ci-après.
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.
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
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
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.
Pour désigner une plage d'adresses, deux types de notation sont utilisées :
Dans la notation CIR,par exemple,192.168.0.0/16
l'adresse IP avant la barre de fraction / définit la première adresse du sous-réseau
le nombre après la barre de fraction / représente le nombre de bits de poids fort communs à toutes les adresses du réseau
Dans l'exemple présent,
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 :
lorsque le bit du masque est égal à un, les adresses du sous-réseau ont leur bit égal à celui de l'adresse IP de référence
Lorsque le bit du masque est égal à zéro, les adresses du sous-réseau prennent la valeur 0 et 1
Exemples :
Le masque du groupe 192.168.0.0/16 est 255.255.0.0
Le masque du groupe 192.168.0.0/24 est 255.255.255.0
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
default désigne toute adresse réseau (comprise donc entre 0.0.0.0 et 255.255.255.255)
loopback désigne la boucle locale
link-local désigne le lien local
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 :
L'adresse 127.0.0.1, permet d'accéder directement à la boucle locale
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
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
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
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.
La table de routage d'une machine indique comment atteindre une destination en fonction
de l'adresse de destination (sur la boucle locale, le réseau local, internet,..)
de l'interface physique disponible (ethernet, wifi, ..)
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
La seconde ligne indique que les adresses 169.254.xxx.xxx, (correspondant au réseau local sur lequel est connecté la machine), sont atteignables directement (sans passerelle) en utilisant l'interface machine eth0 d'adresse 10.0.2.15