Configuration du réseau

Ubuntu est livré avec un certain nombre d’utilitaires graphiques pour configurer vos périphériques réseau. Ce document s’adresse aux administrateurs de serveurs et se concentrera sur la gestion de votre réseau en ligne de commande.

Interfaces Ethernet

Les interfaces Ethernet sont identifiées par le système à l’aide de noms d’interface réseau prévisibles. Ces noms peuvent apparaître comme eno1 ou enp0s25. Cependant, dans certains cas, une interface peut toujours utiliser le style de dénomination eth# du noyau.

Identifier les interfaces Ethernet

Pour identifier rapidement toutes les interfaces Ethernet disponibles, vous pouvez utiliser la commande ip comme indiqué ci-dessous.

ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0 valid_lft 3257sec preferred_lft 3257sec inet6 fe80::216:3eff:fee2:5242/64 scope link valid_lft forever preferred_lft forever

Une autre application qui peut aider à identifier toutes les interfaces réseau disponibles sur votre système est la commande lshw. Cette commande fournit plus de détails autour des capacités matérielles d’adaptateurs spécifiques. Dans l’exemple ci-dessous, lshw montre une seule interface Ethernet avec le nom logique de eth0 ainsi que des informations sur le bus, des détails sur le pilote et toutes les capacités prises en charge.

sudo lshw -class network *-network description: Ethernet interface product: MT26448 vendor: Mellanox Technologies physical id: 0 bus info: [email protected]:01:00.0 logical name: eth4 version: b0 serial: e4:1d:2d:67:83:56 slot: U78CB.001.WZS09KB-P1-C6-T1 size: 10Gbit/s capacity: 10Gbit/s width: 64 bits clock: 33MHz capabilities: pm vpd msix pciexpress bus_master cap_list ethernet physical fibre 10000bt-fd configuration: autonegotiation=off broadcast=yes driver=mlx4_en driverversion=4.0-0 duplex=full firmware=2.9.1326 ip=192.168.1.1 latency=0 link=yes multicast=yes port=fibre speed=10Gbit/s resources: iomemory:24000-23fff irq:481 memory:3fe200000000-3fe2000fffff memory:240000000000-240007ffffff

Noms logiques des interfaces Ethernet

Les noms logiques des interfaces peuvent également être configurés via une configuration netplan. Si vous souhaitez contrôler quelle interface reçoit un nom logique particulier, utilisez les clés match et set-name. La clé match est utilisée pour trouver un adaptateur en fonction de certains critères comme l’adresse MAC, le pilote, etc. Ensuite, la touche set-name peut être utilisée pour changer le périphérique au nom logique souhaité.

network: version: 2 renderer: networkd ethernets: eth_lan0: dhcp4: true match: macaddress: 00:11:22:33:44:55 set-name: eth_lan0

Paramètres de l’interface Ethernet

ethtool est un programme qui affiche et modifie les paramètres de la carte Ethernet tels que l’auto-négociation, la vitesse du port, le mode duplex et le Wake-on-LAN. Voici un exemple de la façon d’afficher les fonctions prises en charge et les paramètres configurés d’une interface Ethernet.

sudo ethtool eth4Settings for eth4: Supported ports: Supported link modes: 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: 10000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: internal Auto-negotiation: off Supports Wake-on: d Wake-on: d Current message level: 0x00000014 (20) link ifdown Link detected: yes

Adressage IP

La section suivante décrit le processus de configuration de l’adresse IP et de la passerelle par défaut de vos systèmes nécessaires pour communiquer sur un réseau local et sur Internet.

Attribution d’une adresse IP temporaire

Pour des configurations réseau temporaires, vous pouvez utiliser la commande ip qui se trouve également sur la plupart des autres systèmes d’exploitation GNU/Linux. La commande ip vous permet de configurer des paramètres qui prennent effet immédiatement, cependant ils ne sont pas persistants et seront perdus après un redémarrage.

Pour configurer temporairement une adresse IP, vous pouvez utiliser la commande ip de la manière suivante . Modifiez l’adresse IP et le masque de sous-réseau pour qu’ils correspondent aux exigences de votre réseau.

sudo ip addr add 10.102.66.200/24 dev enp0s25

L’ip peut ensuite être utilisée pour configurer la liaison en amont ou en aval.

ip link set dev enp0s25 upip link set dev enp0s25 down

Pour vérifier la configuration de l’adresse IP de enp0s25, vous pouvez utiliser la commande ip de la manière suivante.

ip address show dev enp0s2510: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0 valid_lft 2857sec preferred_lft 2857sec inet6 fe80::216:3eff:fee2:5242/64 scope link valid_lft forever preferred_lft forever6

Pour configurer une passerelle par défaut, vous pouvez utiliser la commande ip de la manière suivante . Modifiez l’adresse de la passerelle par défaut pour qu’elle corresponde aux exigences de votre réseau.

sudo ip route add default via 10.102.66.1

Pour vérifier votre configuration de passerelle par défaut, vous pouvez utiliser la commande ip de la manière suivante.

ip route showdefault via 10.102.66.1 dev eth0 proto dhcp src 10.102.66.200 metric 10010.102.66.0/24 dev eth0 proto kernel scope link src 10.102.66.20010.102.66.1 dev eth0 proto dhcp scope link src 10.102.66.200 metric 100 

Si vous avez besoin de DNS pour votre configuration réseau temporaire, vous pouvez ajouter des adresses IP de serveur DNS dans le fichier /etc/resolv.conf. En général, il n’est pas recommandé de modifier directement /etc/resolv.conf, mais il s’agit d’une configuration temporaire et non persistante. L’exemple ci-dessous montre comment entrer deux serveurs DNS dans /etc/resolv.conf, qui devraient être changés en serveurs appropriés pour votre réseau. Une description plus longue de la bonne façon persistante de faire la configuration du client DNS se trouve dans une section suivante.

nameserver 8.8.8.8nameserver 8.8.4.4

Si vous n’avez plus besoin de cette configuration et que vous souhaitez purger toute la configuration IP d’une interface, vous pouvez utiliser la commande ip avec l’option flush comme indiqué ci-dessous.

ip addr flush eth0

Note

La purge de la configuration IP à l’aide de la commande ip n’efface pas le contenu de /etc/resolv.conf. Vous devez supprimer ou modifier ces entrées manuellement, ou redémarrer, ce qui devrait également entraîner la réécriture de /etc/resolv.conf, qui est un lien symbolique vers /run/systemd/resolve/stub-resolv.conf.

Attribution dynamique d’adresses IP (client DHCP)

Pour configurer votre serveur afin qu’il utilise DHCP pour l’attribution dynamique d’adresses, créez une configuration netplan dans le fichier /etc/netplan/99_config.yaml. L’exemple ci-dessous suppose que vous configurez votre première interface Ethernet identifiée comme enp3s0.

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true

La configuration peut ensuite être appliquée à l’aide de la commande netplan.

sudo netplan apply

Attribution d’adresse IP statique

Pour configurer votre système afin d’utiliser l’attribution d’adresse statique, créez une configuration netplan dans le fichier /etc/netplan/99_config.yaml. L’exemple ci-dessous suppose que vous configurez votre première interface Ethernet identifiée comme eth0. Modifiez les valeurs des adresses, de la passerelle4 et des serveurs de noms pour répondre aux exigences de votre réseau.

network: version: 2 renderer: networkd ethernets: eth0: addresses: - 10.10.10.2/24 gateway4: 10.10.10.1 nameservers: search: addresses: 

La configuration peut ensuite être appliquée à l’aide de la commande netplan.

sudo netplan apply

Interface de bouclage

L’interface de bouclage est identifiée par le système comme lo et a une adresse IP par défaut de 127.0.0.1. Elle peut être visualisée à l’aide de la commande ip.

ip address show lo1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever

Résolution de noms

La résolution de noms, en ce qui concerne les réseaux IP, est le processus de mappage des adresses IP aux noms d’hôtes, ce qui facilite l’identification des ressources sur un réseau. La section suivante explique comment configurer correctement votre système pour la résolution de noms à l’aide du DNS et des enregistrements de noms d’hôtes statiques.

Configuration du client DNS

Traditionnellement, le fichier /etc/resolv.conf était un fichier de configuration statique qui avait rarement besoin d’être modifié ou qui était automatiquement modifié via les crochets du client DCHP. Systemd-resolved gère la configuration du serveur de noms, et il faut interagir avec lui par le biais de la commande systemd-resolve. Netplan configure systemd-resolved pour générer une liste de serveurs de noms et de domaines à mettre dans /etc/resolv.conf, qui est un lien symbolique:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Pour configurer le résolveur, ajoutez les adresses IP des serveurs de noms qui sont appropriés pour votre réseau au fichier de configuration netplan. Vous pouvez également ajouter une liste de recherche de suffixes DNS facultative pour correspondre aux noms de domaine de votre réseau. Le fichier résultant pourrait ressembler à ce qui suit:

network: version: 2 renderer: networkd ethernets: enp0s25: addresses: - 192.168.0.100/24 gateway4: 192.168.0.1 nameservers: search: addresses: 

L’option de recherche peut également être utilisée avec plusieurs noms de domaine afin que les requêtes DNS soient ajoutées dans l’ordre dans lequel elles sont saisies. Par exemple, votre réseau peut avoir plusieurs sous-domaines à rechercher ; un domaine parent de example.com, et deux sous-domaines, sales.example.com et dev.example.com.

Si vous avez plusieurs domaines que vous souhaitez rechercher, votre configuration pourrait ressembler à ce qui suit :

network: version: 2 renderer: networkd ethernets: enp0s25: addresses: - 192.168.0.100/24 gateway4: 192.168.0.1 nameservers: search: addresses: 

Si vous essayez d’envoyer un ping à un hôte portant le nom de server1, votre système interrogera automatiquement le DNS pour son nom de domaine pleinement qualifié (FQDN) dans l’ordre suivant :

  1. server1.example.com

  2. server1.sales.example.com

  3. server1.dev.example.com

Si aucune correspondance n’est trouvée, le serveur DNS fournira un résultat de notfound et la requête DNS échouera.

Noms d’hôtes statiques

Les noms d’hôtes statiques sont des mappages nom d’hôte-IP définis localement et situés dans le fichier /etc/hosts. Les entrées du fichier hosts auront la priorité sur le DNS par défaut. Cela signifie que si votre système tente de résoudre un nom d’hôte et qu’il correspond à une entrée dans /etc/hosts, il ne tentera pas de rechercher l’enregistrement dans DNS. Dans certaines configurations, en particulier lorsque l’accès à Internet n’est pas nécessaire, les serveurs qui communiquent avec un nombre limité de ressources peuvent être commodément configurés pour utiliser des noms d’hôtes statiques au lieu du DNS.

Voici un exemple de fichier hosts où un certain nombre de serveurs locaux ont été identifiés par des noms d’hôtes simples, des alias et leurs noms de domaine pleinement qualifiés (FQDN) équivalents.

127.0.0.1 localhost127.0.1.1 ubuntu-server10.0.0.11 server1 server1.example.com vpn10.0.0.12 server2 server2.example.com mail10.0.0.13 server3 server3.example.com www10.0.0.14 server4 server4.example.com file

Note

Dans l’exemple ci-dessus, remarquez que chacun des serveurs a reçu des alias en plus de leurs noms propres et de leurs FQDN. Le serveur1 a été mappé au nom vpn, le serveur2 est désigné par mail, le serveur3 par www et le serveur4 par file.

Configuration du commutateur de service de nom

L’ordre dans lequel votre système sélectionne une méthode de résolution des noms d’hôtes en adresses IP est contrôlé par le fichier de configuration du commutateur de service de nom (NSS) /etc/nsswitch.conf. Comme mentionné dans la section précédente, généralement les noms d’hôtes statiques définis dans le fichier /etc/hosts des systèmes ont la priorité sur les noms résolus à partir du DNS. Ce qui suit est un exemple de la ligne responsable de cet ordre de recherche des noms d’hôtes dans le fichier /etc/nsswitch.conf.

hosts: files mdns4_minimal dns mdns4
  • files tente d’abord de résoudre les noms d’hôtes statiques situés dans /etc/hosts.

  • mdns4_minimal tente de résoudre le nom à l’aide de Multicast DNS.

  • signifie que toute réponse de notfound par le processus mdns4_minimal précédent doit être traitée comme faisant autorité et que le système ne doit pas essayer de poursuivre la chasse à la réponse.

  • dns représente une requête DNS unicast héritée.

  • mdns4 représente une requête DNS multidiffusion.

Pour modifier l’ordre des méthodes de résolution de noms mentionnées ci-dessus, vous pouvez simplement changer la chaîne hosts : à la valeur de votre choix. Par exemple, si vous préférez utiliser l’ancien DNS Unicast par rapport au DNS Multicast, vous pouvez modifier la chaîne dans /etc/nsswitch.conf comme indiqué ci-dessous.

hosts: files dns mdns4_minimal mdns4

Pontage

Pontage de plusieurs interfaces est une configuration plus avancée, mais très utile dans de multiples scénarios. Un scénario consiste à configurer un pont avec plusieurs interfaces réseau, puis à utiliser un pare-feu pour filtrer le trafic entre deux segments de réseau. Un autre scénario consiste à utiliser un pont sur un système doté d’une seule interface pour permettre aux machines virtuelles d’accéder directement au réseau extérieur. L’exemple suivant couvre ce dernier scénario.

Configurer le pont en modifiant votre configuration netplan qui se trouve dans /etc/netplan/:

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no bridges: br0: dhcp4: yes interfaces: - enp3s0

Note

Entrez les valeurs appropriées pour votre interface physique et votre réseau.

Maintenant, appliquez la configuration pour activer le pont :

sudo netplan apply

La nouvelle interface de pont devrait maintenant être opérationnelle. Le brctl fournit des informations utiles sur l’état du pont, contrôle quelles interfaces font partie du pont, etc. Voir man brctl pour plus d’informations.

networkd-dispatcher for pre-up, post-up, etc. hook scripts

Les utilisateurs de l’ancien ifupdown peuvent être familiers avec l’utilisation de scripts hook (par exemple pre-up, post-up, etc.) dans leur fichier d’interfaces. La configuration de Netplan ne prend actuellement pas en charge les scripts de crochet dans sa définition de configuration.

Au lieu de réaliser cette fonctionnalité avec le networkd renderer, les utilisateurs peuvent utiliser networkd-dispatcher. Le paquet fournit aux utilisateurs et aux paquets des points d’accrochage lorsque des états spécifiques du réseau sont atteints pour aider à réagir à l’état du réseau.

Note : Si ce n’est pas sur Ubuntu Server, mais Desktop le réseau est piloté par Network Manager – dans ce cas, vous auriez besoin de scripts NM Dispatcher à la place.

La FAQ de Netplan propose un excellent tableau qui compare les timings des événements entre ifupdownsystemd-networkdnetwork-manager

Il est important de savoir que ces crochets s’exécutent de manière asychrone, c’est-à-dire qu’ils ne bloqueront pas la transition vers un autre état.

La FAQ Netplan propose également un exemple sur la conversion d’un ancien crochet ifupdown en networkd-dispatcher.

Ressources

  • La page Ubuntu Wiki Network a des liens vers des articles couvrant une configuration réseau plus avancée.

  • Le site web netplan a des exemples et une documentation supplémentaires.

  • La page de manuel netplan a plus d’informations sur netplan.

  • La page de manuel systemd-resolve a des détails sur la commande systemd-resolve.

  • La page de manuel systemd-resolved a plus d’informations sur le service systemd-resolved.

  • Pour plus d’informations sur le pontage, voir la page d’exemples netplan.io et la page Networking-Bridge de la Fondation Linux.

Dernière mise à jour il y a 5 mois. Aidez à améliorer ce document dans le forum.

.