{ "meta": { "title": "Nomi di interfaccia persistenti | Documentazione ProxMenux", "description": "Associa i nomi delle interfacce Proxmox (eno1, enp3s0, …) agli indirizzi MAC tramite file .link di systemd per mantenerli dopo la rinumerazione PCI, aggiornamenti del kernel e aggiunta o rimozione di altre schede di rete.", "ogTitle": "Nomi di interfaccia persistenti | Documentazione ProxMenux", "ogDescription": "Evita che i nomi delle interfacce Proxmox cambino quando modifichi l’hardware. Usa file .link di systemd basati sull’indirizzo MAC." }, "header": { "title": "Nomi di interfaccia persistenti", "description": "Genera un file .link di systemd per ogni scheda di rete fisica, associando il nome assegnato dal kernel all’indirizzo MAC della scheda. Dopo l’applicazione al prossimo riavvio, i nomi delle interfacce rimangono stabili quando aggiungi, rimuovi o sposti schede PCIe.", "section": "Rete" }, "intro": { "title": "Cosa fa", "body": "Per ogni NIC fisico sull'host, scrive un piccolo file sotto /etc/systemd/network/10-<iface>.link che dice: \"il dispositivo con questo MAC deve sempre essere chiamato questo nome\". systemd-udevd applica la regola ad ogni avvio, prima che ifupdown legga /etc/network/interfaces." }, "problem": { "heading": "Il problema che risolve", "intro": "Linux ricava i nomi predefiniti delle interfacce dalla topologia PCI: eno1 = integrata, enp3s0 = scheda sul bus PCI 3, slot 0, ecc. Lo schema dei nomi è deterministico a parità di disposizione hardware. Se la disposizione cambia, cambiano anche i nomi:", "items": [ "Aggiungere un GPU di fronte a un NIC esistente → il numero di bus NIC può cambiare → cambi di nome.", "Spostare una scheda in una diversa slot PCIe → cambia nome.", "Aggiornamento BIOS / UEFI che rienumera i dispositivi → i nomi possono cambiare.", "Sostituire una scheda difettosa con lo stesso modello in una slot diversa → cambia nome." ], "outro": "Dopo una modifica simile, /etc/network/interfaces fa ancora riferimento al nome precedente; il bridge non si attiva e l’host perde la rete. Impostare nomi persistenti impedisce che la situazione si ripeta." }, "howWorks": { "heading": "Come funziona", "arrowLabel": "per scheda di rete", "nodes": { "detectLabel": "Rileva le schede di rete fisiche", "detectDetail": "ls /sys/class/net/\nescludi vmbr / bond /\ndocker / veth / wireguard …", "readLabel": "Leggi ogni MAC", "readDetail": "cat /sys/class/net/\n '<'iface'>'/address", "writeLabel": "Scrivi file .link", "writeDetail": "/etc/systemd/network/\n 10-'<'iface'>'.link" }, "minimalIntro": "Ogni file generato è intenzionalmente minimo:", "minimalOutro": "All’avvio, systemd-udevd identifica il dispositivo tramite MAC e assegna il nome richiesto prima che intervengano altri componenti (ifupdown, denominazione predefinita del kernel). Il prefisso 10- fa caricare queste regole in anticipo, prima del file predefinito 99-default.link." }, "scope": { "heading": "Quello che viene scritto, quello che viene saltato", "headerType": "Tipo", "headerBehaviour": "Comportamento", "headerWhy": "Perché?", "rows": [ { "type": "Scheda di rete integrata / PCIe", "behaviour": "File .link scritto", "why": "Corrisponde a un dispositivo PCI reale: il caso per cui è pensato lo strumento" }, { "type": "Wi-Fi (phy80211)", "behaviour": "File .link scritto", "why": "Ha un MAC reale e benefici dalla stabilità dei nomi" }, { "type": "Ponti (vmbrX)", "behaviour": "Ignorato", "why": "Virtuale; il nome viene da /etc/network/interfaces" }, { "type": "Bond (bondX)", "behaviour": "Ignorato", "why": "Virtuale; il nome del bond è impostato da ifupdown" }, { "type": "veth / docker0 / br-XXXX", "behaviour": "Ignorato", "why": "Creato su richiesta da Docker / LXC — hardware non persistente" }, { "type": "tap / fwpr / fwln", "behaviour": "Ignorato", "why": "Creato su richiesta da Proxmox per VM/CT" }, { "type": "WireGuard / Cilium / Tailscale", "behaviour": "Ignorato", "why": "Interfacce software gestite dai propri demoni" } ] }, "safety": { "heading": "Rete di sicurezza: backup dei file .link precedenti", "intro": "Se /etc/systemd/network/ contiene già file .link da un’esecuzione precedente o da altri strumenti, questi vengono copiati in una directory di backup con data e ora prima di generare i nuovi file:", "outro": "Per tornare indietro: copiare i file dalla directory di backup e riavviare.", "rebootTitle": "Prende effetto sul prossimo riavvio, non immediatamente", "rebootBody": "Le modifiche ai file .link si applicano solo all’avvio, quando udev enumera nuovamente i dispositivi. Per questo lo strumento mostra «Le modifiche saranno applicate dopo il riavvio». Rinominare un’interfaccia in uso è rischioso e non viene tentato: un vmbr0 attivo con interfacce membro andrebbe riconfigurato atomicamente, quindi l’operazione è rimandata al prossimo avvio pulito." }, "afterReboot": { "heading": "Dopo il riavvio", "intro": "Una volta che i nomi sono bloccati, il flusso di lavoro per le future modifiche hardware è semplice:", "items": [ "Spegni, modifica l’hardware (aggiungi una scheda, cambia slot, …), poi avvia.", "Ogni NIC mantiene il suo nome precedente perché il suo MAC corrisponde a un file .link.", "Se una scheda di rete viene sostituita e ha un MAC diverso, riceve un nome predefinito del kernel (enp<bus>s<slot>); esegui di nuovo questo menu per aggiungere una voce .link per il MAC della nuova scheda." ] }, "troubleshoot": { "heading": "Risoluzione dei problemi", "emptyTitle": "\"Nessuna interfaccia fisica trovata\" dopo aver eseguito lo strumento", "emptyBody": "Il kernel non vede interfacce basate su PCI / phy80211 sull’host. Verifica con ls -l /sys/class/net/: ogni voce dovrebbe avere un collegamento simbolico device (PCI) oppure una voce phy80211 (Wi-Fi). Se mancano entrambi per una scheda di rete reale, il driver non è caricato.", "noChangeTitle": "Dopo il riavvio, i nomi non sono cambiati come previsto", "noChangeBody": "Verifica che il file esista e sia ben formato: cat /etc/systemd/network/10-<iface>.link. Poi controlla i log di udev: journalctl -u systemd-udevd -b | grep -i link. Una causa comune è un vecchio parametro del kernel net.ifnames=0 che disabilita del tutto i nomi prevedibili: rimuovilo da /etc/default/grub, esegui update-grub e riavvia.", "undoTitle": "Voglio annullare la denominazione persistente", "undoBody": "Elimina i file .link (rm /etc/systemd/network/10-*.link) oppure ripristinali dalla directory di backup creata nell’esecuzione precedente. Riavvia per applicare." }, "related": { "heading": "Correlati", "items": [ { "label": "Analisi dei bridge e riparazione guidata", "href": "/docs/network/bridge-analysis", "tailRich": " — il percorso di ripristino quando i nomi sono già cambiati." }, { "label": "Analisi della configurazione e pulizia guidata", "href": "/docs/network/config-analysis", "tail": "— rimuovere i blocchi orfani lasciati alle spalle con i cambi di nome." }, { "label": "Diagnostica", "href": "/docs/network/diagnostics", "tailRich": " — verifica i nuovi nomi con Mostra tabella di routing dopo il riavvio." } ] } }