Ho compreso il concetto di base di come usare /etc/network/interfaces
, ma tutto ciò che trovo online sono esempi, esempio dopo esempio, da cui posso copiare e incollare. Quello che mi manca è una spiegazione della sintassi, una spiegazione del significato dei comandi e quale ordine richiedono i comandi. Voglio capire, perché la maggior parte delle volte il copia-incolla non è sufficiente, perché non sto lavorando su una nuova macchina, quindi non posso semplicemente sovrascrivere le configurazioni esistenti perché si romperebbero molte cose. man interfaces
non è stato molto utile poiché è scritto molto complicato.
Esempi di domande che ho:cosa significa inet
in un iface
riga significa esattamente (non riuscivo nemmeno a trovarlo nella manpage), cosa significa manual
in un iface
la riga significa esattamente (molti esempi lo usano, ma secondo manpage ha bisogno di un file di configurazione aggiuntivo, che gli esempi non presentano), quando li uso o ne ho bisogno? Quando no? Quando creo un bridge, cosa succede esattamente alle interfacce?
Risposta accettata:
Bene, separiamolo in pezzi, per facilitare la comprensione di /etc/network/interfaces
:
Opzioni livello di collegamento+tipo di interfaccia (generalmente la prima di ogni stanza dell'interfaccia e chiamata famiglia di indirizzi + metodo da interfaces(5)
pagine man):
auto interface
– Avviare le interfacce all'avvio. Ecco perché lo
interfaccia utilizza questo tipo di configurazione di collegamento.
allow-auto interface
– Come auto
allow-hotplug interface
– Avviare l'interfaccia quando viene rilevato un evento "hotplug". Nel mondo reale, viene utilizzato nelle stesse situazioni di auto
ma la differenza è che attenderà un evento come "essere rilevato da udev hotplug api" o "cavo collegato". Vedere "Cose correlate (hotplug)" per ulteriori informazioni.
Queste opzioni sono praticamente opzioni di "livello 2", che impostano gli stati dei collegamenti sulle interfacce e non sono correlate con "livello 3" (routing e indirizzamento). Ad esempio potresti avere un'aggregazione di link in cui l'interfaccia bond0 deve essere attiva qualunque sia lo stato del link e i suoi membri potrebbero essere attivi dopo un evento di stato del link:
auto bond0
iface bond0 inet manual
down ip link set $IFACE down
post-down rmmod bonding
pre-up modprobe bonding mode=4 miimon=200
up ip link set $IFACE up mtu 9000
up udevadm trigger
allow-hotplug eth0
iface eth0 inet manual
up ifenslave bond0 $IFACE
down ifenslave -d bond0 $IFACE 2> /dev/null
allow-hotplug eth1
iface eth1 inet manual
up ifenslave bond0 $IFACE
down ifenslave -d bond0 $IFACE 2> /dev/null
Quindi, in questo modo creo un'aggregazione di collegamenti e le interfacce verranno aggiunte ad essa e rimosse negli stati dei collegamenti via cavo.
Tipi di interfaccia più comuni:
Tutte le opzioni seguenti sono un suffisso per un'interfaccia definita (iface <Interface_family>
). Fondamentalmente il iface eth0
crea una stanza chiamata eth0
su un dispositivo Ethernet. iface ppp0
dovrebbe creare un'interfaccia point-to-point e potrebbe avere diversi modi per acquisire indirizzi come inet wvdial
che inoltrerà la configurazione di questa interfaccia a wvdialconf
sceneggiatura. La tupla inet
/inet6
+ option
definirà la versione del protocollo IP che verrà utilizzato e il modo in cui verrà configurato questo indirizzo (static
, dhcp
, scripts
…).
I manuali Debian online ti forniranno maggiori dettagli al riguardo.
Opzioni sulle interfacce Ethernet:
inet static
– Definisce un indirizzo IP statico.
inet manual
– Non definisce un indirizzo IP per un'interfaccia. Generalmente utilizzato da interfacce che sono membri bridge o di aggregazione, interfacce che devono funzionare in modalità promiscua (ad es. mirroring delle porte o TAP di rete ) o avere un dispositivo VLAN configurato su di essi. È un modo per mantenere attiva l'interfaccia senza un indirizzo IP.
inet dhcp
– Acquisire l'indirizzo IP tramite il protocollo DHCP.
inet6 static
– Definisce un indirizzo IPv6 statico.
Esempio:
# Eth0
auto eth0
iface eth0 inet manual
pre-up modprobe 8021q
pre-up ifconfig eth0 up
post-down ifconfig eth0 down
# Vlan Interface
auto vlan10
iface vlan10 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
vlan-raw-device eth0
ip_rp_filter 0
Questo esempio porterà eth0
up e crea un'interfaccia VLAN chiamata vlan10
che elaborerà il tag numero 10 su un frame Ethernet.
Opzioni comuni all'interno di una stanza dell'interfaccia (livello 2 e 3):
address
– Indirizzo IP per un'interfaccia configurata con IP statico
netmask
– Maschera di rete. Può essere omesso se si utilizza l'indirizzo cidr. Esempio:
iface eth1 inet static
address 192.168.1.2/24
gateway 192.168.1.1
gateway
– Il gateway predefinito di un server. Fai attenzione a usare solo uno di questi tizi.
vlan-raw-device
– Su un'interfaccia VLAN, definisce il suo "padre".
bridge_ports
– Su un'interfaccia bridge, definirne i membri.
down
– Usa il comando seguente per disattivare l'interfaccia invece di ifdown
.
post-down
– Azioni eseguite subito dopo l'arresto dell'interfaccia.
pre-up
– Azioni prima che l'interfaccia sia attiva.
up
– Usa il comando seguente per aumentare l'interfaccia invece di ifup
. Sta alla tua immaginazione usare qualsiasi opzione disponibile su iputils
. Come esempio potremmo usare up ip link set $IFACE up mtu 9000
per abilitare i frame jumbo durante il up
operazione (invece di usare mtu
opzione stessa). Puoi anche chiamare qualsiasi altro software come up sleep 5; mii-tool -F 100baseTx-FD $IFACE
per forzare 100Mbps Full duplex 5 secondi dopo che l'interfaccia è attiva.
hwaddress ether 00:00:00:00:00:00
– Cambia l'indirizzo mac dell'interfaccia invece di usare quello che è hardcoded nella rom o generato da algoritmi. Puoi utilizzare la parola chiave random
per ottenere un indirizzo mac randomizzato.
dns-nameservers
– Indirizzi IP dei server dei nomi. Richiede il resolvconf
pacchetto. È un modo per concentrare tutte le informazioni in /etc/network/interfaces
invece di usare /etc/resolv.conf
per le configurazioni relative al DNS.
Non modificare il resolv.conf
file di configurazione manualmente
poiché verrà modificato dinamicamente dai programmi nel sistema.
dns-search example.net
– Aggiungi example.net come dominio alle query dell'host, creando l'FQDN. Opzione domain
di /etc/resolv.conf
wpa-ssid
– Wireless:imposta un SSID WPA wireless.
mtu
– Dimensioni MTU. mtu 9000
=Cornice gigante. Utile se la tua scatola Linux è collegata a switch che supportano dimensioni MTU più grandi. Può violare alcuni protocolli (ho avuto brutte esperienze con snmp e frame jumbo).
wpa-psk
– Wireless:imposta un PSK con codifica esadecimale per il tuo SSID.
ip_rp_filter 1
– Filtro percorso inverso abilitato. Utile in situazioni in cui hai 2 percorsi verso un host, e questo costringerà il pacchetto a tornare da dove è arrivato (stessa interfaccia, usando i suoi percorsi). Esempio:sei connesso sulla tua lan(192.168.1.1/24
) e hai un server dlna con un'interfaccia sulla tua lan(192.168.1.10/24
) e altra interfaccia su dmz per eseguire attività amministrative(172.16.1.1/24
). Durante una sessione ssh dal tuo computer a dlna dmz ip, le informazioni devono tornare a te, ma si bloccheranno per sempre perché il tuo server dlna proverà a fornire la risposta direttamente attraverso la sua interfaccia lan. Con rp_filter abilitato, assicurerà che la connessione torni da dove proveniva. Maggiori informazioni qui.
Alcune di queste opzioni non sono opzionali. Debian ti avviserà se metti un indirizzo IP su un'interfaccia senza netmask, per esempio.
Puoi trovare altri buoni esempi di configurazione di rete qui.
Cose correlate :
Collegamenti che contengono informazioni relative a /etc/network/interfaces
file di configurazione di rete:
- HOWTO:sicurezza wireless – WPA1, WPA2, LEAP, ecc.
- Come posso collegare due interfacce con ip/iproute2?.
- Che cos'è un evento hotplug dall'interfaccia?