nomi di interfaccia di rete prevedibili in systemd


15

La versione recente di Ubuntu e Debian (stretch) introduce un nuovo schema di denominazione dell'interfaccia di rete.

Ora, quando eseguo l'aggiornamento da un sistema che utilizza nomi in vecchio stile come "eth0", vorrei sapere prima di avviare quale sarà il nuovo nome.

Come posso fare questo? Esiste una magica invocazione di "systemd" che posso usare per modificare / etc / network / interface prima dell'avvio (e successivamente perdere la connettività di rete)?


1
Mi sono imbattuto in questo, ed è la migliore spiegazione di come funziona che ho trovato finora: lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Risposte:


7

Sono disponibili due diversi schemi: biosdevname vs prevedibile nome dell'interfaccia di rete.

biosdevname

Biosdevname sembra essere il valore predefinito in Ubuntu. Si attiva installando il pacchetto biosdevname.

Il biosdevname di un'interfaccia può essere trovato con:

biosdevname -i eth0

Nomi di interfaccia di rete prevedibili

Credo che questo sia il valore predefinito nel tratto Debian, ma deve essere esplicitamente abilitato all'aggiornamento dalle versioni precedenti.

Il nome prevedibile per eth0 può essere trovato con:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'

Sebbene la risposta effettiva su come prevedere "prima dell'avvio di quale sarà il nuovo nome" (secondo il link fornito da @Neil) è il nuovo nome sarà lo stesso del vecchio nome , perché ci sono ancora regole udev che configurano i vecchi nomi in /etc/udev/rules.d/70-persistent-net.rules. Il collegamento fornirà una guida alla migrazione, se si desidera passare al nuovo schema di denominazione.
Tuomas,

2

Il nuovo schema è apparentemente chiamato "nomi di interfaccia di rete prevedibili" ma non sto trovando molta documentazione su come prevedere effettivamente il nome. Tutto ciò che ho trovato al riguardo punta sostanzialmente a questo commento del codice sorgente (che a sua volta punta al primo link). Dal commento, non è affatto chiaro come sapere quale schema di indirizzamento verrà utilizzato da udev per il nome del dispositivo di rete.

Per il primo collegamento, puoi disabilitarlo e usare i nomi tradizionali aggiungendo net.ifnames=0sulla riga di comando del kernel in Grub. In base a questo commento potrebbe essere necessario se si prevede di creare un'interfaccia con tag VLAN, poiché l'estensione aggiunta renderà il nome dell'interfaccia troppo lungo.

Altrimenti, potrebbe essere meglio ripetere la domanda per spiegare cosa si sta tentando di fare con il nome (ad es. Configurare l'interfaccia tramite ansible o qualcosa di simile)


2

Non sono sicuro se questo è ancora il caso con le versioni aggiornate, ma sui miei vecchi sistemi sono stato in grado di creare un file vuoto in /etc/udev/rules.d/80-net-name-slot.rulese disabiliterebbe la funzione di denominazione "prevedibile". Puoi anche creare la tua regola e nominare le interfacce da solo in base all'indirizzo mac o alle connessioni PCI / USB.


0

Questa documentazione potrebbe essere di aiuto. Vedi la sezione "Cosa è esattamente cambiato nella v197?". Sì, mi rendo conto che questo ha un valore un po 'limitato, ma potrebbe darti una strada per ulteriori ricerche.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.