Se usate Fedora dovrete dire addio ai file ifcfg con NetworkManager

4

Uno dei tratti più caratteristici e distintivi di una distribuzione rispetto ad un’altra è sempre stata la configurazione del sistema, e in particolare delle interfacce di rete.

Tradizionalmente Red Hat (e figlie) ha sempre fatto affidamento sul comando ifcfg e i relativi file di configurazione /etc/sysconfig/network-scripts/ifcfg-, uno per ogni scheda di rete. A questi, che si occupano di IP e DNS, si affiancano le rotte in /etc/sysconfig/network-scripts/route-.
Debian (e derivate) ha sempre preferito ifconfig, con le configurazioni in /etc/network/interfaces – o sperati in file singoli /etc/network/interfaces.d.
Anche fra distribuzioni sentite vicine ci possono essere differenze. Per esempio, Arch è spesso stata definita la versione compilata di Gentoo, ma la prima usa l’utility netctl e la seconda netifrc. Mentre systemd propone la sua networkd – che almeno avrebbe il vantaggio di non essere legato ad una distro specifica.
Ci fermiamo qui ma avete capito che si potrebbe andare avanti a lungo.

Confusi? Beh, è normale: la frammentazione è evidentemente altissima, francamente eccessiva.
Già qualcosa come 3 anni fa auspicavamo un metodo standard, che ancora non c’è, ma forse ci stiamo muovendo nella direzione giusta.

Da qualche anno il comando ritenuto standard per la configurazione delle interfacce è ip, e praticamente tutte le distribuzioni hanno adeguato i propri tool per poterlo usare, installandolo anche di default.
Semmai, talvolta, è stata creata un’utility alternativa, come NetPlan, di Ubuntu. In realtà questo strumento vuol essere generico, popolando a sua volta i file usati da altri tool, come systemd-networkd, ma nella pratica è il punto in cui intervenire.

Red Hat ha scelto da tempo NetworkManager, che ormai è lo standard per qualsiasi desktop. Ma per non rompere la compatibilità con i vecchi metodi, NetworkManager, oltre ai suoi keyfile, può usare anche i file ifcfg.
Fedora ha una proposta è semplice: rimuovere il supporto per i vetusti file ifcfg, e affidarsi alla sola configurazione di NetworkManager.

La scelta non si basa solo su “nuovo è meglio“, ma ha risvolti importanti sulla qualità del software e il suo mantenimento. Una frase salta all’occhio nel dettaglio della proposta:

Given the complexities stemming from historical legacy of ifcfg files not being designed (or documented) in a particularly forward-looking way, this has been a huge and complex effort with all the downsides: The ifcfg support code is huge (130K lines, not counting the enormous test suite) and has constantly been a source of bugs.

Date le complessità derivanti dall’eredità storica dei file ifcfg di non essere stati progetta (o documentati) in modo particolarmente lungimirante, questo è stato un impegno complesso ed enorme, con tutti i lati negativi: il codice per il supporto di ifcgf è gigantesco (130K linee, senza contare l’enorme suite per i test) ed è stato costantemente una fonte di bug.

Quindi non solo la rimozione del supporto a qualcosa che non ha più senso di esistere sarà indolore, ma porterà a vantaggi di stabilità (meno bug) e qualità (meno lavoro disperso), oltre a maggior sicurezza (meno linee di codice vuol dire meno meccanismi potenzialmente sfruttabili).

Il supporto finora presente non sarà semplicemente buttato via. Sarà disponibile in pacchetto aggiuntivo a parte, sebbene non installato di default. In questa maniera, chi ancora fa affidamento sui file ifcfg, potrà continuare ad usarli. Ma la strada ormai è tracciata – e meno male!

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

4 risposte a “Se usate Fedora dovrete dire addio ai file ifcfg con NetworkManager”

  1. Avatar michele
    michele

    Perché non usano networkd? Systemd non era la cura per tutti i mali della frammentazione?

  2. Avatar Marco Bonfiglio
    Marco Bonfiglio

    tl;dr networkd potrebbe essere unificante, ma solo per le distro prettamente server.

    networkd ha un’architettura a file statici e semplici, coi quali fa – opinione prettamente personale – un buon lavoro su macchine headless, o comunque con interfacce di rete la cui configurazione non cambia spesso.

    L’architettura di NetworkManager, tramite D-BUS, permette di avere vari client, attivi anche in contemporanea, con capacità di gestione. Ne sono esempio l’interfaccia per GNOME, quella per KDE, la testuale o la CLI di comandi specifici.
    Per queste ragioni NetworkManager è più adatto ad un Desktop.

    In casa Fedora/Red Hat, che prevedono spesso un’interfaccia grafica, e per cui sviluppano NetworkManager, ha senso puntare su di esso come strumento standard delle impostazioni di rete.

    Personalmente credo che l’uso dei due strumenti, nei due ambiti, sia la soluzione più corretta. Magari consentendo, ma non richiedendo, l’uso di NetPlan o simili. In futuro niente vieta poi a NetworkManager di usare networkd come backend…
    Se dalla giungla attuale si arrivasse a questi due come alternative omnipresenti, sarebbe già un buona standardizzazione.

  3. Avatar Ivan Guerreschi
    Ivan Guerreschi

    Non mi vergogno a dire che per ogni distribuzione GNU/Linux, è relativi software per la configurazione delle interfacce di rete, ho un quaderno dove ho appuntato le configurazioni che uso abitualmente, altrimenti sarei perso.
    Quindi ben vengano networkd e NetworkManager come standard.

  4. Avatar michele
    michele

    grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *