Configurer une adresse IP
Adresse IP dynamique | Adresse IP statique : dhcpcd |
Adresse IP statique : /etc/network/interfaces |
Visualiser la configuration IP |
Tester |
Adresse IP dynamique
Consulter le fichier de configuration
C'est la configuration standard avec le fichier /etc/network/interfaces
d'origine :
pi@raspberrypi:~ $ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d
Pour que notre Raspberry Pi
obtienne une adresse IP
, il faut donc un serveur DHCP
actif.
Celui de votre BOX convient parfaitement, ou vous pouvez également Configurer un serveur DHCP.
Déterminer l'adresse IP obtenue
pi@raspberrypi:~ $ ip a ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.42/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0 ...
Remarque 1 : on sait à présent que l'interface Ethernet
de notre RPi
se nomme eth0
Remarque 2 : si vous obtenez une adresse IP
commençant par 169.254
, ou si la ligne commençant par inet
est absente, c'est qu'aucun serveur DHCP
ne vous a alloué une adresse IP
. Exemple :
pi@raspberrypi:~ $ ip a | grep -A2 eth0: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 169.254.170.88/16 brd 169.254.255.255 scope global noprefixroute eth0
pi@raspberrypi:~ $ ip a | grep -A2 eth0: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
Obtenir des informations sur le bail alloué
pi@raspberrypi:~ $ dhcpcd -U eth0 broadcast_address='192.168.1.255' dhcp_lease_time='86400' dhcp_message_type='5' dhcp_rebinding_time='75600' dhcp_renewal_time='43200' dhcp_server_identifier='192.168.1.254' domain_name='lan' domain_name_servers='192.168.1.254' host_name='raspberrypi' interface_mtu='1500' ip_address='192.168.1.42' network_number='192.168.1.0' routers='192.168.1.254' subnet_cidr='24' subnet_mask='255.255.255.0'
- dhcp_lease_time : durée du bail en secondes : 86400 -> 1 jour
- dhcp_server_identifier : adresse
IP
du serveurDHCP
- domain_name_servers : adresse
IP
du serveurDNS
- ip_address : adresse
IP
obtenue - routers : adresse
IP
de la passerelle - subnet_cidr : masque en notation
CIDR
. - subnet_mask : masque en notation décimale pointée
Effectuer une nouvelle demande d'adresse IP, avec recherche d'un nouveau serveur DHCP
pi@raspberrypi:~ $ sudo dhcpcd -k eth0 pi@raspberrypi:~ $ sudo dhcpcd -n eth0
Adresse IP statique
En utilisant dhcpcd
Pour configurer le Raspberry Pi
en serveur, il faut lui attribuer une adresse IP statique. Contrairement à une distribution Debian
,
le Raspberry Pi OS
recommande de modifier le ficher /etc/dhcpcd.conf
géré par le processus dhcpcd
.
Sauvegarder la configuration initiale
Les lignes commençant par #
sont des commentaires qui constituent également la documentation de /etc/dhcpcd.conf
. Il est donc utile
de sauvegarder le fichier configuration d'origine avec les commentaires puis d'utiliser un fichier sans commentaires pour avoir une meilleure vision de la configuration effectuée.
pi@raspberrypi:~ $ sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.origin pi@raspberrypi:~ $ sudo grep -E -v '^(#|$)' /etc/dhcpcd.conf.origin > dhcpcd.conf.originSansCommentaires pi@raspberrypi:~ $ sudo cp dhcpcd.conf.originSansCommentaires /etc/dhcpcd.conf
Modifier le fichier /etc/dhcpcd.conf
Exemple : l'interface eth0
est configurée de la façon suivante :
adresse IP
: 192.168.1.11
,
masque : 255.255.255.0
,
passerelle (gateway
) : 192.168.1.254
,
serveur DNS
: 192.168.1.254
.
Modifiez le fichier /etc/dhcpcd.conf
à l'aide de l'éditeur de votre choix : nano
, ...
pi@raspberrypi:~ $ sudo nano /etc/dhcpcd.conf
Résultat de la modification :
pi@raspberrypi:~ $ cat /etc/dhcpcd.conf hostname clientid persistent option rapid_commit option domain_name_servers, domain_name, domain_search, host_name option classless_static_routes option ntp_servers option interface_mtu require dhcp_server_identifier slaac private interface eth0 static ip_address=192.168.1.11/24 static routers=192.168.1.254 static domain_name_servers=192.168.1.254 static domain_name=mazone.lan
Redémarrer le Raspberry Pi
pi@raspberrypi:~ $ sudo shutdown -r now
Valider la configuration
pi@raspberrypi:~ $ ip a | grep -A2 eth0: 2: eth0: <ROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:11:22:33 brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global noprefixroute eth0
En utilisant /etc/network/interfaces
(façon Debian
)
Sauvegarder la configuration initiale
Il est conseillé de copier le fichier /etc/network/interfaces
d'origine.
pi@raspberrypi:~ $ sudo cp /etc/network/interfaces /etc/network/interfaces.origin
Modifier le fichier /etc/network/interfaces
Exemple : l'interface filaire eth0
est configurée de la façon suivante : adresse IP
: 192.168.1.11
, masque : 255.255.255.0
, passerelle (gateway
) : 192.168.1.254
, serveur DNS
: 192.168.1.254
.
Modifiez le fichier /etc/network/interfaces
à l'aide de l'éditeur de votre choix : nano
, ...
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
Résultat de la modification :
pi@raspberrypi:~ $ cat /etc/network/interfaces ... # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d ... # interface eth0 auto eth0 iface eth0 inet static address 192.168.1.11/24 gateway 192.168.1.254 dns-nameservers 192.168.1.254
Désactiver le processus dhcpcd
pi@raspberrypi:~ $ sudo systemctl disable dhcpcd pi@raspberrypi:~ $ sudo systemctl stop dhcpcd
Remarque : si le processus RPi
.
Redémarrer le Raspberry Pi
pi@raspberrypi:~ $ sudo shutdown -r now
Valider la configuration
pi@raspberrypi:~ $ ip a | grep -A2 eth0: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0
La validation de la configuration client DNS et de la passerelle est indiquée au chapitre visualiser la configuration IP
Visualiser la configuration IP
L'adresse IP et le masque
pi@raspberrypi:~ $ ip a | grep -A2 eth0: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0
La passerelle
pi@raspberrypi:~ $ ip route default via 192.168.1.254 dev eth0 onlink 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11
La configuration client DNS
pi@raspberrypi:~ $ cat /etc/resolv.conf # Generated by resolvconf nameserver 192.168.1.254
Tester
Tester la configuration IP
, en effectuant la commande ping
vers la passerelle
pi@raspberrypi:~ $ ping -c1 192.168.1.254 PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data. 64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=1.37 ms
Tester la résolution de noms (client DNS
)
- Commande
ping
vers un nom d'hôte distant
root@raspberrypi:~# ping -c 1 -W 1 www.ressourcesinformatiques.com PING ressourcesinformatiques.com (213.186.33.16) 56(84) bytes of data
On constate que, même si l'on obtient pas nécessairement de réponse au ping
car le serveur peut avoir
désactivé cette réponse, on obtient l'adresse IP 213.186.33.16
correspondant au nom www.ressourcesinformatiques.com
- Commande
dig
. Remarque : cette commande nécessite l'installation du dépôtdnsutils
à l'aide de la commandeapt-get install dnsutils
pi@raspberrypi:~ $ sudo apt-get update pi@raspberrypi:~ $ sudo apt-get install dnsutils
root@raspberrypi:~# dig ressourcesinformatiques.com ... ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63071 ... ressourcesinformatiques.com. 1772 IN A 213.186.33.16 ... ;; SERVER: 192.168.1.254#53(192.168.1.254)
Le serveur DNS d'adresse IP 192.168.1.254
a bien répondu à notre requête en nous fournissant l'adresse IP de ressourcesinformatiques.com
.
- Commande
nslookup
. Remarque : cette commande nécessite l'installation du dépôtdnsutils
à l'aide de la commandeapt-get install dnsutils
root@raspberrypi:~# nslookup ressourcesinformatiques.com Server: 192.168.1.254 Address: 192.168.1.254#53 Non-authoritative answer: Name: ressourcesinformatiques.com Address: 213.186.33.16
Le serveur DNS d'adresse IP 192.168.1.254
a bien répondu à notre requête en nous fournissant l'adresse IP de ressourcesinformatiques.com
.