Buona spiegazione dettagliata della sintassi / etc / network / interfaces?


139

Ho capito il concetto basilare di come usare /etc/network/interfaces, ma tutto quello 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é il più delle volte copia-incolla non è sufficiente, perché non sto lavorando su una nuova macchina, quindi non posso semplicemente sovrascrivere le configurazioni esistenti perché si rompono molte cose. man interfacesnon è stato molto utile dal momento che è scritto molto complicato.

Domande di esempio che ho: cosa significa esattamente inetin una ifaceriga (non riuscivo nemmeno a trovarlo nella manpage), cosa significa esattamente manualin una ifaceriga (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?


4
La pagina man dice che ciò che viene dopo il nome dell'interfaccia è la famiglia di indirizzi che l'interfaccia utilizza. "inet" è il nome per IPv4, inet6 per ipv6. C'è anche ipx, x25, appletalk ..., anche se ifupdown si occupa solo di inet / inet6 / ipx come spiega la pagina man. manualsignifica che ifupdown non fa nulla al riguardo, devi farlo manualmente.
Stéphane Chazelas,

Risposte:


169

Bene, separiamolo in pezzi, per rendere più facile la comprensione /etc/network/interfaces:

Livello di collegamento + opzioni del tipo di interfaccia (generalmente la prima di ogni stanza dell'interfaccia e chiamata famiglia di indirizzi + metodo da interfaces(5)manpage):

auto interface- Avvia l'interfaccia (e) all'avvio. Ecco perché l' lointerfaccia utilizza questo tipo di configurazione di collegamento.

allow-auto interface - Uguale a auto

allow-hotplug interface- Avviare l'interfaccia quando viene rilevato un evento "hotplug". Nel mondo reale, questo viene utilizzato nelle stesse situazioni automa la differenza è che attenderà un evento come "essere rilevato da udev hotplug api" o "cable linked". Vedere "Informazioni correlate (hotplug) " per ulteriori informazioni.

Queste opzioni sono praticamente opzioni "layer 2", che configurano gli stati dei collegamenti sulle interfacce e non sono correlate con "layer 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 dello 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 iface eth0crea una stanza chiamata eth0su un dispositivo Ethernet. iface ppp0dovrebbe creare un'interfaccia punto-punto e potrebbe avere diversi modi per acquisire indirizzi del genere inet wvdialinoltrando la configurazione di questa interfaccia allo wvdialconfscript. La tupla inet/ inet6+ optiondefinirà la versione del protocollo IP che verrà utilizzato e il modo in cui sarà configurato questo indirizzo ( static, dhcp, scripts...). I manuali Debian online ti daranno maggiori dettagli al riguardo.

Opzioni su 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 esempio mirroring delle porte o TAP di rete ) o su cui è configurato un dispositivo VLAN. È un modo per mantenere attiva l'interfaccia senza un indirizzo IP.

inet dhcp - Acquisire l'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 farà eth0apparire e creerà un'interfaccia VLAN chiamata vlan10che elaborerà il tag numero 10 su un frame Ethernet.

Opzioni comuni all'interno di una stanza di interfaccia (layer 2 e 3):

address - Indirizzo IP per un'interfaccia configurata IP statica

netmask- Maschera di rete. Può essere utilizzato 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 ragazzi.

vlan-raw-device - Su un'interfaccia VLAN, definisce il "padre".

bridge_ports - Su un'interfaccia bridge, definirne i membri.

down- Utilizzare il comando seguente per chiudere l'interfaccia anziché ifdown.

post-down - Azioni intraprese subito dopo l'interruzione dell'interfaccia.

pre-up - Azioni prima che l'interfaccia sia attiva.

up- Utilizzare il comando seguente per accedere all'interfaccia anziché ifup. Spetta alla tua immaginazione utilizzare qualsiasi opzione disponibile su iputils. Ad esempio, potremmo utilizzare up ip link set $IFACE up mtu 9000per abilitare i frame jumbo durante l' upoperazione (invece di utilizzare l' mtuopzione stessa). Puoi anche chiamare qualsiasi altro software come up sleep 5; mii-tool -F 100baseTx-FD $IFACEforzare Full Duplex a 100 Mbps 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 in rom, o generato da algoritmi. Puoi usare la parola chiave randomper ottenere un indirizzo mac casuale.

dns-nameservers- Indirizzi IP dei nameserver. Richiede il resolvconfpacchetto. È un modo per concentrare tutte le informazioni /etc/network/interfacesanziché utilizzarle /etc/resolv.confper le configurazioni relative al DNS. Non modificare resolv.confmanualmente il file di configurazione 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 domaindi/etc/resolv.conf

wpa-ssid - Wireless: imposta un SSID WPA wireless.

mtu- Dimensioni MTU . mtu 9000= Jumbo Frame. Utile se il tuo box Linux è collegato con switch che supportano dimensioni MTU più grandi. Può rompere alcuni protocolli (ho avuto brutte esperienze con i frame snmp e jumbo).

wpa-psk - Wireless: imposta un PSK con codifica esadecimale per il tuo SSID.

ip_rp_filter 1- Filtro inverso percorso abilitato. Utile in situazioni in cui hai 2 route verso un host, e questo costringerà il pacchetto a tornare da dove è arrivato (stessa interfaccia, usando i suoi percorsi). Esempio: sei connesso a lan ( 192.168.1.1/24) e hai un server dlna con un'interfaccia su lan ( 192.168.1.10/24) e un'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 resteranno bloccate per sempre perché il tuo server dlna proverà a fornire la risposta direttamente attraverso la sua interfaccia lan. Con rp_filter abilitato, si assicurerà che la connessione torni da dove proviene. Maggiori informazioni qui .

Alcune di queste opzioni non sono opzionali. Debian ti avviserà se, ad esempio, inserisci un indirizzo IP su un'interfaccia senza una maschera di rete.

Puoi trovare altri buoni esempi di configurazione di rete qui .

Cose correlate :

Collegamenti con informazioni relative al /etc/network/interfacesfile di configurazione di rete:


Grazie, questo aiuta molto. Non inetha nulla a che fare con "internet"? Ho letto da qualche parte che significa solo "IPv4" e inet6significa "IPv6", ma il termine "inet" è davvero confuso quando lo vedi e lo confondi con l'abbreviazione di "internet". E i nomi che uno usa, come eth0, sono definiti o posso sceglierli da solo? Se ho più di un adattatore LAN, come faccio a sapere quale ethappartiene a quale adattatore LAN?
Foo Bar,

2
Entrambi. Insieme definiscono il metodo di acquisizione dell'indirizzo IP (dhcp, static, ppp script, no address) e la versione del protocollo ip ( inet= v4 e inet6= v6). I nomi delle interfacce dipendono praticamente dalla distribuzione che stai utilizzando e dal modo in cui udevè configurato. Debian utilizza eth*e wlan*interfacce via cavo e wireless. Fedora utilizza lo schema biosdevname in cui si em0trova la prima interfaccia Ethernet integrata sulla scheda madre e p<slot>p<eth port>il nome di un PCI nic. È possibile correggere i nomi di rete /etc/udev/rules.d/70-persistent-net.ruleso creare alias su interfaces.

2
Per quanto riguarda "gateway - il gateway predefinito di un server. Fai attenzione a usare solo uno di questi tipi". È una per stanza o un'interfaccia gateway tra tutte le stanze?
ctbrown,

2
Dovrebbe essere un gateway tra tutte le stanze o, avrai problemi con il tuo percorso predefinito. Per lavorare con multi gateway / multi link, saranno necessarie alcune riflessioni con iptables + marcatura dei pacchetti + regole ip.

Una piccola query, se in questo file, ho iface eth0 inet statico e quindi se scrivo un campo IP contro indirizzo, questo significa che questo IP particolare che ho appena scritto verrebbe collegato all'indirizzo MAC del mio sistema?
k10,

0

Vorrei anche aggiungere che:

  • interfacce è per i servizi ifup / ifdown.
  • Quando usi allow-hotplug non si avvierà con ifup / ifdown, perché devi usare flag --allow = hotplug.

Puoi tenere traccia di ciò che sta accadendo con ifup usando --verbose flag.

Non sono sicuro al 100% di questo, ma sembra che fondamentalmente quando viene chiamato ifup eseguirai tutto da / etc / network / interfaces con up ... se non diversamente specificato.

Non so come si rapporta a: servizio di rete ...

Sarebbe bello se qualcuno indicasse cosa sta succedendo dopo la chiamata:

service networking restart

in relazione a ifup / ifdown.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.