« LINUX:Renommage du nom de l'interface réseau » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 47 : | Ligne 47 : | ||
Une autre méthode consiste à afficher l'ensemble du matériel et d'y repérer la partie "network" ou "Ethernet controller" avec la commande: | Une autre méthode consiste à afficher l'ensemble du matériel et d'y repérer la partie "network" ou "Ethernet controller" avec la commande: | ||
lshw | lshw | ||
ou | ou la commande: | ||
hwinfo | hwinfo | ||
Voici un extrait pour la commande "lshw": | Voici un extrait pour la commande "lshw": | ||
Ligne 60 : | Ligne 60 : | ||
version: 00 | version: 00 | ||
serial: '''00:1c:c0:92:a2:08''' | serial: '''00:1c:c0:92:a2:08''' | ||
size: | size: 1Gbit/s | ||
capacity: 1Gbit/s | capacity: 1Gbit/s | ||
width: 32 bits | width: 32 bits | ||
Ligne 85 : | Ligne 85 : | ||
resources: irq:20 memory:d3140000-d315ffff memory:d3120000-d313ffff ioport:c000(size=64) memory:d3100000-d311ffff | resources: irq:20 memory:d3140000-d315ffff memory:d3120000-d313ffff ioport:c000(size=64) memory:d3100000-d311ffff | ||
----- | ----- | ||
et pour "hwinfo": | et pour la commande "hwinfo": | ||
----- | ----- | ||
20: PCI 19.0: 0200 Ethernet controller | 20: PCI 19.0: 0200 Ethernet controller | ||
Ligne 105 : | Ligne 105 : | ||
I/O Ports: 0xf0c0-0xf0df (rw) | I/O Ports: 0xf0c0-0xf0df (rw) | ||
IRQ: 27 (573377 events) | IRQ: 27 (573377 events) | ||
HW Address: 00:1c:c0:92:a2:08 | HW Address: '''00:1c:c0:92:a2:08''' | ||
Permanent HW Address: '''00:1c:c0:92:a2:08''' | Permanent HW Address: '''00:1c:c0:92:a2:08''' | ||
Link detected: yes | Link detected: yes | ||
Ligne 135 : | Ligne 135 : | ||
Memory Range: 0xd3100000-0xd311ffff (ro,non-prefetchable,disabled) | Memory Range: 0xd3100000-0xd311ffff (ro,non-prefetchable,disabled) | ||
IRQ: 20 (23748 events) | IRQ: 20 (23748 events) | ||
HW Address: 00:1b:21:3b:b6:ea | HW Address: '''00:1b:21:3b:b6:ea''' | ||
Permanent HW Address: '''00:1b:21:3b:b6:ea''' | Permanent HW Address: '''00:1b:21:3b:b6:ea''' | ||
Link detected: yes | Link detected: yes | ||
Ligne 148 : | Ligne 148 : | ||
Nous utilisons maintenant NetworkManager pour la connectivité réseau. La configuration de ces cartes réseaux se trouvent dans le répertoire "'''/etc/NetworkManager/system-connections'''". Dans ce répertoire, nous y retrouvons deux fichiers, un par interface réseau dont voici leur contenu: | |||
Nous utilisons maintenant NetworkManager. La configuration de ces cartes réseaux se trouvent dans le répertoire "'''/etc/NetworkManager/system-connections'''". Dans ce répertoire, nous y retrouvons deux fichiers, un par interface réseau dont voici leur contenu: | |||
* "enp0s25.nmconnection" | * "enp0s25.nmconnection" | ||
---- | ---- | ||
Ligne 205 : | Ligne 200 : | ||
=Procédure= | =Procédure= | ||
Il ne suffit pas de modifier l'option "interface-name" pour atteindre notre but. | Le but est de renommer le nom de l'interface réseau ("interface-name"): | ||
* '''enp0s25''' deviendra '''eth1''' | |||
* '''enp4s0''' deviendra '''eth2''' | |||
Il ne suffit pas de modifier l'option "interface-name" dans la configuration des cartes réseaux de NetworkManager pour atteindre notre but. | |||
Ce renommage passe par trois étapes: | Ce renommage passe par trois étapes: |
Dernière version du 5 février 2023 à 13:50
→ retour aux Notions de réseau
But
Le nommage d'un interface réseau se base sur le type de matériel et sa situation relative matérielle. Dans certains cas, il est souhaitable de le renommer dans un soucis uniformisation.
J'ai rencontré cette nécessité dans les approches de FailOver et de LoadBalancing. Dans ces configurations, le matériel est au minimum dupliqué et certains paramètres de configurations doivent être identiques de part et d'autre. Ce soucis peut aussi porter sur une plus grande standardisation.
Situation initiale
Nous avons une machine comportant deux interfaces réseaux. Nous avons besoin de connaitre le nom de l'interface réseau et son adresse MAC.
Nous pouvons avoir une vue avec la commande:
ifconfig
qui donne par exemple:
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.71 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:1c:c0:92:a2:08 txqueuelen 1000 (Ethernet) RX packets 244890 bytes 44210599 (42.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 300043 bytes 73055221 (69.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xd3300000-d3320000 enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.71 netmask 255.255.255.0 broadcast 192.168.2.255 ether 00:1b:21:3b:b6:ea txqueuelen 1000 (Ethernet) RX packets 2578 bytes 215585 (210.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5064 bytes 379577 (370.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Boucle locale) RX packets 764 bytes 231198 (225.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 764 bytes 231198 (225.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Le nom des interfaces et leur adresse MAC sont mises en gras.
Une autre méthode consiste à afficher l'ensemble du matériel et d'y repérer la partie "network" ou "Ethernet controller" avec la commande:
lshw
ou la commande:
hwinfo
Voici un extrait pour la commande "lshw":
*-network description: Ethernet interface product: 82567V-2 Gigabit Network Connection vendor: Intel Corporation physical id: 19 bus info: pci@0000:00:19.0 logical name: enp0s25 version: 00 serial: 00:1c:c0:92:a2:08 size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.8-200.fc37.x86_64 duplex=full firmware=1.8-5 ip=192.168.3.71 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:27 memory:d3300000-d331ffff memory:d3320000-d3320fff ioport:f0c0(size=32)
*-network description: Ethernet interface product: 82541PI Gigabit Ethernet Controller vendor: Intel Corporation physical id: 0 bus info: pci@0000:04:00.0 logical name: enp4s0 version: 05 serial: 00:1b:21:3b:b6:ea size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 66MHz capabilities: pm pcix bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=6.1.8-200.fc37.x86_64 duplex=full ip=192.168.2.71 latency=32 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s resources: irq:20 memory:d3140000-d315ffff memory:d3120000-d313ffff ioport:c000(size=64) memory:d3100000-d311ffff
et pour la commande "hwinfo":
20: PCI 19.0: 0200 Ethernet controller [Created at pci.386] Unique ID: JNkJ.KLU3IR9TmAA SysFS ID: /devices/pci0000:00/0000:00:19.0 SysFS BusID: 0000:00:19.0 Hardware Class: network Model: "Intel 82567V-2 Gigabit Network Connection" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x10ce "82567V-2 Gigabit Network Connection" SubVendor: pci 0x8086 "Intel Corporation" SubDevice: pci 0x0024 Driver: "e1000e" Driver Modules: "e1000e" Device File: enp0s25 Memory Range: 0xd3300000-0xd331ffff (rw,non-prefetchable) Memory Range: 0xd3320000-0xd3320fff (rw,non-prefetchable) I/O Ports: 0xf0c0-0xf0df (rw) IRQ: 27 (573377 events) HW Address: 00:1c:c0:92:a2:08 Permanent HW Address: 00:1c:c0:92:a2:08 Link detected: yes Module Alias: "pci:v00008086d000010CEsv00008086sd00000024bc02sc00i00" Driver Info #0: Driver Status: e1000e is active Driver Activation Cmd: "modprobe e1000e" Config Status: cfg=new, avail=yes, need=no, active=unknown
30: PCI 400.0: 0200 Ethernet controller [Created at pci.386] Unique ID: mY_N.49XPc+GN1h3 Parent ID: 6NW+.X8LVgRV5xj5 SysFS ID: /devices/pci0000:00/0000:00:1e.0/0000:04:00.0 SysFS BusID: 0000:04:00.0 Hardware Class: network Model: "Intel PRO/1000 GT Desktop Adapter" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x107c "82541PI Gigabit Ethernet Controller" SubVendor: pci 0x8086 "Intel Corporation" SubDevice: pci 0x1376 "PRO/1000 GT Desktop Adapter" Revision: 0x05 Driver: "e1000" Driver Modules: "e1000" Device File: enp4s0 Memory Range: 0xd3140000-0xd315ffff (rw,non-prefetchable) Memory Range: 0xd3120000-0xd313ffff (rw,non-prefetchable) I/O Ports: 0xc000-0xcfff (rw) Memory Range: 0xd3100000-0xd311ffff (ro,non-prefetchable,disabled) IRQ: 20 (23748 events) HW Address: 00:1b:21:3b:b6:ea Permanent HW Address: 00:1b:21:3b:b6:ea Link detected: yes Module Alias: "pci:v00008086d0000107Csv00008086sd00001376bc02sc00i00" Driver Info #0: Driver Status: e1000 is active Driver Activation Cmd: "modprobe e1000" Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #21 (PCI bridge)
Mais la commande "ifconfig" est la plus simple, la plus connue et la plus rapide.
Nous utilisons maintenant NetworkManager pour la connectivité réseau. La configuration de ces cartes réseaux se trouvent dans le répertoire "/etc/NetworkManager/system-connections". Dans ce répertoire, nous y retrouvons deux fichiers, un par interface réseau dont voici leur contenu:
- "enp0s25.nmconnection"
[connection] id=enp0s25 uuid=fe6dcd15-bfbb-366e-8cfe-a8f51c4420bb type=ethernet autoconnect-priority=-999 interface-name=enp0s25 timestamp=1673904860 [ethernet] [ipv4] address1=192.168.1.71/24,192.168.1.1 dns=192.168.1.1; dns-search=home.dom; may-fail=false method=manual [ipv6] addr-gen-mode=eui64 method=disabled [proxy]
- "enp4s0.nmconnection"
[connection] id=enp4s0 uuid=f9fe5eaf-e746-497b-bb75-cf6215560794 type=ethernet interface-name=enp4s0 timestamp=1673954652 [ethernet] [ipv4] address1=192.168.2.71/24 method=manual [ipv6] addr-gen-mode=eui64 method=disabled [proxy]
Procédure
Le but est de renommer le nom de l'interface réseau ("interface-name"):
- enp0s25 deviendra eth1
- enp4s0 deviendra eth2
Il ne suffit pas de modifier l'option "interface-name" dans la configuration des cartes réseaux de NetworkManager pour atteindre notre but.
Ce renommage passe par trois étapes:
- Renommage matériel
- Adaptation de la configuration de NetworkManager
- Redémarrage de la machine
Renommage matériel
Il existe deux méthodes présentées ci-dessous. On prend une des deux; pas les deux.
Modification de la règle de nommage
Au niveau du système, il existe un ensemble de règles qui lors du démarrage de la machine, nomme toute pièce matérielle.
L'approche présentée ici consiste de surcharger ces règles par des règles personnelles qui ont la préséance. Cette manière est ancienne.
Les nouvelles règles sont à mettre dans le répertoire "/etc/udev/rules.d" et pour notre cas, elles doivent être placées dans le fichier "70-custom-ifnames.rules". Une carte réseau est identifiable par son adresse MAC qu'il faut lier à son nouveau nom d'interface mais la syntaxe est stricte. Ces adresses MAC sont affichées avec la commande "ifconfig" pour autant que la carte réseau soit activée.
Voici le contenu de ce fichier pour notre exemple:
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:1c:c0:92:a2:08",ATTR{type}=="1",NAME="eth1" SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:1b:21:3b:b6:ea",ATTR{type}=="1",NAME="eth2"
Intervention au niveau de Systemd
L'autre méthode passe par les processus de Systemd.
Cette surcharge se passe en ajoutant deux fichiers dans le répertoire de Systemd "/etc/systemd/network", un par interface. Comme ci-dessus, une carte réseau est identifiable par son adresse MAC qu'il faut lier à son nouveau nom d'interface; la syntaxe est stricte.
Voici le contenu de ces deux fichiers pour notre exemple:
- "10-persistent-net.link"
[Match] MACAddress=00:1c:c0:92:a2:08 [Link] Name=eth1
- "11-persistent-net.link"
[Match] MACAddress=00:1b:21:3b:b6:ea [Link] Name=eth2
Adaptation des fichiers de configuration de NetworkManager
Ci-dessus, nous avions présenté le contenu des fichiers de configuration de nos deux cartes réseaux dans NetworkManager.
Maintenant que nous avons adapté le nom au niveau matériel, il faut adapter ce nom dans ces fichiers au niveau de l'option "interface-name" qui deviennent:
- "enp0s25.nmconnection"
[connection] id=enp0s25 uuid=fe6dcd15-bfbb-366e-8cfe-a8f51c4420bb type=ethernet autoconnect-priority=-999 interface-name=eth1 timestamp=1673904860 [ethernet] [ipv4] address1=192.168.1.71/24,192.168.1.1 dns=192.168.1.1; dns-search=home.dom; may-fail=false method=manual [ipv6] addr-gen-mode=eui64 method=disabled [proxy]
- "enp4s0.nmconnection"
[connection] id=enp4s0 uuid=f9fe5eaf-e746-497b-bb75-cf6215560794 type=ethernet interface-name=eth2 timestamp=1673954652 [ethernet] [ipv4] address1=192.168.2.71/24 method=manual [ipv6] addr-gen-mode=eui64 method=disabled [proxy]
Redémarrage
Enfin il faut redémarrer la machine. Si vous n'êtes pas sûr de votre fait, soyez devant la console de l'ordinateur car s'il y a une erreur, vous n'aurez plus de connexion réseau.
Vérification
Nous pouvons vérifier ce changement avec la commande:
ifconfig
qui donne par exemple:
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.71 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:1c:c0:92:a2:08 txqueuelen 1000 (Ethernet) RX packets 244890 bytes 44210599 (42.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 300043 bytes 73055221 (69.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xd3300000-d3320000 eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.71 netmask 255.255.255.0 broadcast 192.168.2.255 ether 00:1b:21:3b:b6:ea txqueuelen 1000 (Ethernet) RX packets 2578 bytes 215585 (210.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5064 bytes 379577 (370.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Boucle locale) RX packets 764 bytes 231198 (225.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 764 bytes 231198 (225.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
→ retour aux Notions de réseau