In questa come in quasi tutte le situazioni la spessa operazione può essere fatta in molti modi, ad esempio utilizzando ifupdown (che non useremo), uno dei motivi è che il pacchetto net-tools che contiene anche ifconfig non viene piu installato di default nel sistema base di Debian. Sebbene ifup e ifdown siano comunque presenti nel sistema.
Nomi delle schede
I nomi vengono assegnati da un servizio che si chiama udev,
i primi due o tre caratteri dipendono dal tipo di scheda: "en"" sono le ethernet, "wl" sono le schede wireless
e su alcune schede madri "eno" sono le ethernet on-board.
Il numero dopo p
è il bus e quello dopo s
è lo slot.
Per trovare quali schede di rete ci sono è possibile analizzare il buffer dei messaggi del kernel (usando
dmesg
) per poi filtrare i messaggi che ci servono
(serve egrep per fare la ricerca di due cose diverse in un comando in maniera semplice):
dmesg | egrep 'enp|wlp|eno'
Una alternativa veloce per avere l'elenco dei device di rete:
ls /sys/class/net/
oppure anche
lspci [-v]
Se quello che serve è un elenco delle interfacce wireless c'è un comando apposito:
iw dev
Configurazione della rete con systemd
systemd-networkd
è il servizio che si occupa delle reti (systemd-networkd.service),
legge i file in /etc/systemd/network/ (e anche in altre posizioni) che terminano in .network
(ogni connessione in un file diverso), il servizio va abilitato perché per default è disattivo.
Esempio di file per una configurazione base
[Match] Name=enp2s11 [Network] Description=quello che vuoi Address=10.0.0.5/24 Gateway=10.0.0.1 DNS=192.168.1.7 Domains=aspix.it
In caso serva che la rete sia configurata da un DHCP nella sezione Network al posto di tutta la configurazione di IP basta ggiungere
DHCP=yes
Stato della rete con networkctl
Il comando che ci permette di avere informazioni sullo stato della rete
è networkctl
(per poterlo utilizzare serve di avere il servizio
systemd-networkd attivo). Per avere un breve elenco dei link attivi:
networkctl list --all
Se invece servono più informazioni:
networkctl status --all
Al posto del parametro "--all" è possibile mettere il nome di una interfaccia specifica.
Se nella riga "State" compare "degraded" vuol dire che il collegamento è attivo ma non c'è un IP assegnato (ma magari un link-local sì però), normalmente deve essere "routable".
Stato della rete con ip
IL comando ip si trova nel pacchetto iproute2
( che nelle intenzioni sostituisce net-tools).
La prima riga del suo manuale riporta: "show / manipulate routing, devices, policy routing and tunnels"
ha tantissimi comandi, per avere informazioni su un comando basta scrivere:
ip <comando> help
per avere un elenco delle connessioni:
ip link [list]
per spegnere/accendere una scheda
ip link set eth0 up ip link set eth0 down
per vedere gli indirizzi assegnati alle interfacce:
ip addr
per la tabella di routing:
ip route
per vedere la ARP:
ip neigh show
per cancellare uno dei vicini dalla cache ARP:
ip neigh delete 1.2.3.4 dev eth0
interfacce wireless
informazioni
Il comando che si occupa in generale delle interfacce wireless è iw, ad esempio per vedere lo stato di un link:
iw dev nome_interfaccia link
interfacce wireless spente
Le interfacce wireless (almeno sui portatili) hanno un tasto per spegnerle fisicamente per vedere lo stato delle interfacce:
rfkill list
Per eventualmente abilitare le interfacce
Per alcuni portatili non basta spostare lo switch di accensione: nel caso dell'aspire one di acer ad esempio va tenuto verso destra mentre si accende il computer
configurazione con systemd+iwd
Una ottima guida è quella di Arch per systemd-networkd e per iNet wireless daemon.
In pratica basta piccola configurazione per systemd-networkd, in pratica solo rete con DHCP. Iwd si configura da linea di comando in pochissimi passi e memorizza le configurazioni.
DNS
Il modo più facile è scrivere un breve file /etc/resolv.conf
nameserver 8.8.8.8
Forse più utile lasciare quello vuoto e abilitare il servizio systemd-resolved
pacchetti da tenere d'occhio
Alcuni pacchetti servono per semplifare la gestione della erete... per gli utenti... normali. Per le nostre esigenze è più semplice disinstallarli per avere un sistema minimale senza interazioni difficili da tenere sotto controllo.
- ifupdown è parte dl il vecchio sistema che viene comunque installato ancora da Debian. Se viene rimosso (o disabilitato il servizio networking.service che a giudicare dalla documentazione di riferimento "man:interfaces(5)" attiva le interfacce di rete usando il vecchio sistema) e abilitato systemd-networkd la rete funziona comunque, compresa quella wireless. Se il sistema usa anche /etc/network/interfaces per configurare una connessione systemd non la configura.
- isc-dhcp-client da verifiche empiriche configura l'IP in DHCP anche in presenza di una configurazione per systemd-networkd (che forse parte dopo?)
- network-manager crea problemi (es genera /etc/resolv.conf vuoto) disinstallarlo non pare avere controindicazioni
- dhcpcd se è in esecuzione da una doppia configurazione alle schede di rete con degli indirizzi ip link local (nella rete 169.254.0.0/16) creando problemi (ad esempio il routing non va). Basta disabilitare il servizio relativo che a quello che vedo (2017-03-23, stretch) viene attivato in /etc/rc2.d/.
- wicd a quel che vedo crea problemi pure lui ma da vedere meglio
- net-tools programmi tipo ifconfig... non dovrebbe servire
Bibliografia
Archlilnux wiki: Wireless network configuration
Acer Aspire ONE no WIFI in Ubuntu due to hardware switch state
Archlinux wiki: Wired and wireless adapters on the same machine