Ho capito il concetto di base di come utilizzare /etc/network/interfaces
, ma tutto quello che trovo online sono esempi, esempi dopo lesempio, da cui posso copiare e incollare. Quello che mi manca è una spiegazione della sintassi, una spiegazione del significato dei comandi e di quale ordine richiedono i comandi. Voglio capire, perché la maggior parte delle volte il copia-incolla non è sufficiente, perché non sto lavorando su una macchina nuova, quindi non posso semplicemente sovrascrivere le configurazioni esistenti perché romperebbe un sacco di cose. man interfaces
non è stato molto utile poiché è scritto molto complicato.
Esempi di domande che ho: cosa fa inet
in una riga iface
significa esattamente (non sono riuscita nemmeno a trovarla nella pagina di manuale), cosa significa manual
in un iface
la riga significa esattamente (molti esempi lo usano, ma secondo la 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?
Commenti
Rispondi
Dividiamolo in pezzi, per renderlo più facile da capire /etc/network/interfaces
:
Livello di collegamento + opzioni del tipo di interfaccia (generalmente la prima di ogni stanza dellinterfaccia e chiamata famiglia di indirizzi + metodo da interfaces(5)
manpage):
auto interface
– Avvia le interfacce allavvio. Ecco perché linterfaccia lo
utilizza questo tipo di configurazione di collegamento.
allow-auto interface
– Come auto
allow-hotplug interface
– Avvia linterfaccia quando viene rilevato un evento” hotplug “. Nel mondo reale, questo viene utilizzato nelle stesse situazioni di auto
ma la differenza è che aspetterà un evento come “essere rilevato da udev hotplug api” o “cavo collegato” . Vedi “ Informazioni correlate (hotplug) ” per ulteriori informazioni.
Queste opzioni sono praticamente opzioni di “livello 2”, che impostano gli stati dei collegamenti sulle interfacce e non sono correlati al “livello 3” (instradamento e indirizzamento). Ad esempio, potresti avere unaggregazione di link in cui linterfaccia bond0 deve essere attiva qualunque sia lo stato del collegamento e i suoi membri potrebbero essere attivi dopo un evento di stato del collegamento:
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 link aggregation e le interfacce verranno aggiunte e rimosse negli stati del collegamento via cavo.
Tipi di interfaccia più comuni:
Tutte le opzioni seguenti sono un suffisso per uninterfaccia definita (iface <Interface_family>
). Fondamentalmente la iface eth0
crea una stanza chiamata eth0
su un dispositivo Ethernet . iface ppp0
dovrebbe creare uninterfaccia point-to-point e potrebbe avere diversi modi per acquisire indirizzi come inet wvdial
che inoltrerà la configurazione di questa interfaccia allo script wvdialconf
. La tupla inet
/ inet6
+ option
definirà la versione di protocollo IP che verrà utilizzato e il modo in cui verrà configurato questo indirizzo (static
, dhcp
, scripts
…). I manuali Debian in linea ti daranno maggiori dettagli su questo.
Opzioni sulle interfacce Ethernet:
inet static
– Definisce un indirizzo IP statico.
inet manual
– Non definisce un indirizzo IP per uninterfaccia. Generalmente utilizzato da interfacce che sono membri di bridge o aggregazione, interfacce che devono funzionare in modalità promiscua ( ad esempio mirroring delle porte o TAP di rete ) o su cui è configurato un dispositivo VLAN. È un modo per mantenere attiva linterfaccia senza un indirizzo IP.
inet dhcp
– Acquisisci indirizzo IP tramite 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 mostrerà eth0
e creerà un interfaccia VLAN chiamata vlan10
che elaborerà il tag numero 10 su un frame Ethernet.
Opzioni comuni allinterno di una stanza dellinterfaccia (layer 2 e 3):
address
– Indirizzo IP per uninterfaccia configurata con IP statico
netmask
– Maschera di rete. Può essere omesso se si utilizza lindirizzo 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 questo ragazzo.
vlan-raw-device
– Su uninterfaccia VLAN, definisce il suo “padre”.
bridge_ports
– Su uninterfaccia bridge, definisci i suoi membri.
down
– Utilizza il seguente comando per disattivare linterfaccia invece di ifdown
.
post-down
– Azioni intraprese subito dopo che linterfaccia è disattivata.
pre-up
– Azioni prima che linterfaccia sia attiva.
up
– Utilizza il seguente comando per aggiornare linterfaccia invece di ifup
. Sta alla tua immaginazione utilizzare qualsiasi opzione disponibile su iputils
. Ad esempio, potremmo utilizzare up ip link set $IFACE up mtu 9000
per abilitare frame jumbo durante i up
operazione (invece di utilizzare lopzione mtu
stessa). Puoi anche chiamare qualsiasi altro software come up sleep 5; mii-tool -F 100baseTx-FD $IFACE
per forzare 100 Mbps Full duplex 5 secondi dopo lattivazione dellinterfaccia.
hwaddress ether 00:00:00:00:00:00
– Cambia lindirizzo mac dellinterfaccia invece di usare quello che è hardcoded nella rom o generato da algoritmi. Puoi utilizzare la parola chiave random
per ottenere un indirizzo mac casuale.
dns-nameservers
: indirizzi IP dei server dei nomi. Richiede il pacchetto resolvconf
. È un modo per concentrare tutte le informazioni in /etc/network/interfaces
invece di utilizzare /etc/resolv.conf
per le configurazioni relative al DNS. Non modificare manualmente il file di configurazione resolv.conf
poiché verrà modificato dinamicamente dai programmi nel sistema.
dns-search example.net
– Aggiungi example.net come dominio alle query dellhost, creando lFQDN. Opzione domain
di /etc/resolv.conf
wpa-ssid
– Wireless: imposta un SSID WPA wireless.
mtu
– MTU . mtu 9000
= Frame jumbo. Utile se la tua macchina Linux è collegata a switch che supportano dimensioni MTU maggiori. Può violare alcuni protocolli (ho avuto brutte esperienze con snmp e jumbo frame).
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 si hanno 2 percorsi verso un host, e questo costringerà il pacchetto a tornare da dove è venuto (stessa interfaccia, usando i suoi percorsi). Esempio: sei connesso alla tua lan (192.168.1.1/24
) e hai un server dlna con uninterfaccia sulla tua lan (192.168.1.10/24
) e altro 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 tornerà da dove proveniva. Maggiori informazioni qui .
Alcune di queste opzioni non sono opzionali. Debian avviserà se metti un indirizzo IP su uninterfaccia senza maschera di rete, ad esempio.
Puoi trovare altri buoni esempi di configurazione di rete qui .
Informazioni correlate :
Link che contengono informazioni relative a /etc/network/interfaces
file di configurazione di rete:
- HOWTO: sicurezza wireless – WPA1, WPA2, LEAP e così via .
- Come posso collegare due interfacce con ip / iproute2? .
- Che cosè un evento hotplug dallinterfaccia?
Commenti
- Grazie, questo aiuta molto.
inet
ha qualcosa a che fare con " Internet "?Ho letto da qualche parte che significa solo " IPv4 " einet6
significa " IPv6 ", ma il termine " inet " è davvero fonte di confusione quando lo vedi e lo confondi con labbreviazione di " internet ". E i nomi che si usano, comeeth0
, sono definiti o posso sceglierli io stesso? Se ho più di un adattatore LAN, come faccio a sapere qualeeth
appartiene a quale adattatore LAN? - Entrambi. Insieme definiscono il metodo di acquisizione dellindirizzo IP (dhcp, statico, script ppp, nessun indirizzo) e la versione del protocollo IP (
inet
= v4 einet6
= v6). I nomi delle interfacce dipendono in gran parte dalla distribuzione che stai utilizzando e dal modo in cui è configuratoudev
. Debian utilizzaeth*
ewlan*
per cavi e interfacce wireless. Fedora utilizza lo schema biosdevname doveem0
è la prima interfaccia Ethernet incorporata sulla scheda madre ep<slot>p<eth port>
il nome di un PCI nic. Puoi correggere i nomi di rete in/etc/udev/rules.d/70-persistent-net.rules
o creare un alias suinterfaces
. - Riguardo a " gateway: il gateway predefinito di un server. fai attenzione a usare solo uno di questo tipo. " È uno per stanza o uninterfaccia gateway tra tutte le stanze?
- Dovrebbe essere un gateway tra tutte le stanze, oppure avrai problemi con il percorso predefinito. Per lavorare con multi gateway / multi link, saranno necessarie alcune riflessioni con iptables + contrassegno pacchetto + regole ip.
-
allow-hotplug
non attende in background " eventi " collegati tramite cavo su porte Ethernet e non lo ha mai fatto. unix.stackexchange.com/a/520633/29483
Risposta
Vorrei anche aggiungere che:
- interfaces è per i servizi ifup / ifdown.
- Quando usi allow-hotplug non inizierà con ifup / ifdown, bcos devi usare flag –allow = hotplug.
Puoi tenere traccia di cosa è accade con ifup usando il flag –verbose.
Non ne sono sicuro al 100%, ma sembra che fondamentalmente quando ifup viene chiamato u eseguirà tutto da / etc / network / interfaces con up … se non diversamente specificato.
Non so bene come si relaziona a: rete di servizi …
Sarebbe bello se qualcuno indicasse cosa sta succedendo dopo la chiamata:
service networking restart
in relazione a ifup / ifdown.
Risposta
Se devi aggiungere opzioni quando utilizzi il pacchetto resolvconf
, cioè su Ubuntu metti quella configurazione in /etc/resolvconf/resolv.conf.d/base
:
# /etc/resolvconf/resolv.conf.d/base options timeout:1 attempts:1 rotate
manual
significa che ifupdown don ' Per risolverli, devi farlo da solo manualmente.