Jag förstod det mycket grundläggande begreppet hur man använder /etc/network/interfaces
, men allt jag hittar online är exempel, exempel efter exempel, som jag kan kopiera och klistra in från. Vad jag saknar är en förklaring av syntaxen, en förklaring av betydelsen av kommandona och vilken ordning kommandona kräver. Jag vill förstå det, för det mesta räcker det inte med att kopiera och klistra in, för jag jobbar inte på en ny maskin, så jag kan inte bara skriva över befintliga konfigurationer eftersom det skulle bryta en massa saker. man interfaces
var inte särskilt hjälpsam eftersom det är skrivet mycket komplicerat.
Exempel på frågor jag har: vad har inet
i en iface
rad betyder exakt (jag kunde inte ens hitta den på manpage), vad betyder manual
i en iface
raden betyder exakt (många exempel använder den, men enligt manpage behöver den en extra konfigurationsfil då, vilka exemplen inte presenterar), när använder eller behöver jag dem? När inte? När jag skapar en bro, vad exakt händer med gränssnitten?
Kommentarer
Svara
Tja, låt oss dela upp den i bitar för att göra det lättare att förstå /etc/network/interfaces
:
Länklager + alternativ för gränssnitttyp (vanligtvis den första av varje gränssnittsstrof och kallas adressfamilj + metod av interfaces(5)
manpages):
auto interface
– Starta gränssnittet vid start. Därför använder gränssnittet lo
den här typen av länkkonfiguration.
allow-auto interface
– Samma som auto
allow-hotplug interface
– Starta gränssnittet när en” hotplug ”-händelse upptäcks. I den verkliga världen används detta i samma situationer som auto
men skillnaden är att den väntar på en händelse som ”detekteras av udev hotplug api” eller ”kabellänkad” . Se ” Relaterade saker (hotplug) ” för ytterligare information.
Dessa alternativ är ganska mycket ”lager 2” -alternativ, ställer in länktillstånd på gränssnitt, och är inte relaterade till ”lager 3” (routing och adressering). Som ett exempel kan du ha en länkaggregering där bond0-gränssnittet måste vara uppe oavsett länktillståndet och dess medlemmar kan vara uppe efter en länktillståndshändelse:
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
Så på det här sättet skapar jag en länkaggregering och gränssnitten läggs till den och tas bort vid kabellänkningstillstånd.
Vanligaste gränssnitstyper:
Alla alternativ nedan är ett suffix till ett definierat gränssnitt (iface <Interface_family>
). I grund och botten skapar iface eth0
en strofe kallad eth0
på en Ethernet-enhet . iface ppp0
ska skapa ett point-to-point gränssnitt, och det kan ha olika sätt att skaffa adresser som inet wvdial
som vidarebefordrar konfigurationen av detta gränssnitt till wvdialconf
skript. Tupeln inet
/ inet6
+ option
definierar versionen av IP-protokoll som kommer att användas och hur denna adress kommer att konfigureras (static
, dhcp
, scripts
…). online-Debian-handböcker ger dig mer information om detta.
Alternativ för Ethernet-gränssnitt:
inet static
– Definierar en statisk IP-adress.
inet manual
– Definierar inte en IP-adress för ett gränssnitt. Används vanligtvis av gränssnitt som är brygg- eller aggregeringsmedlemmar, gränssnitt som behöver fungera i promiskuöst läge ( t.ex. portspegling eller nätverks-TAP ), eller har en VLAN-enhet konfigurerad på dem. Det är ett sätt att hålla gränssnittet uppe utan en IP-adress.
inet dhcp
– Skaffa IP-adress via DHCP-protokoll.
inet6 static
– Definierar en statisk IPv6-adress.
Exempel:
# 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
Detta exempel tar upp eth0
och skapar en VLAN-gränssnitt kallat vlan10
som behandlar taggnummer 10 på en Ethernet-ram.
Vanliga alternativ i ett gränssnittsstrof (lager 2 och 3):
address
– IP-adress för ett statiskt IP-konfigurerat gränssnitt
netmask
– Nätverksmask. Kan utelämnas om du använder cidr-adress. Exempel:
iface eth1 inet static address 192.168.1.2/24 gateway 192.168.1.1
gateway
– Serverns standardgateway. Var noga med att bara använda en av den här killen.
vlan-raw-device
– I ett VLAN-gränssnitt definieras dess ”far”.
bridge_ports
– På ett brygggränssnitt definierar du dess medlemmar.
down
– Använd följande kommando för att nere gränssnittet istället för ifdown
.
post-down
– Åtgärder som vidtas direkt efter att gränssnittet är nere.
pre-up
– Åtgärder innan gränssnittet är uppe.
up
– Använd följande kommando för att höja gränssnittet istället för ifup
. Det är upp till din fantasi att använda valfritt alternativ på iputils
. Som ett exempel kan vi använda up ip link set $IFACE up mtu 9000
för att aktivera jumbo-ramar under up
operation (istället för att använda alternativet mtu
). Du kan också ringa någon annan programvara som up sleep 5; mii-tool -F 100baseTx-FD $IFACE
för att tvinga 100 Mbps Full duplex 5 sekunder efter att gränssnittet är uppe.
hwaddress ether 00:00:00:00:00:00
– Ändra gränssnittets mac-adress istället för att använda den som är hårdkodad till rom eller genereras av algoritmer. Du kan använda nyckelordet random
för att få en randomiserad mac-adress.
dns-nameservers
– IP-adresser för namnservrar. Kräver paketet resolvconf
. Det är ett sätt att koncentrera all information i /etc/network/interfaces
istället för att använda /etc/resolv.conf
för DNS-relaterade konfigurationer. Redigera inte konfigurationsfilen resolv.conf
eftersom den kommer att ändras dynamiskt av program i systemet.
dns-search example.net
– Lägg till exempel.net som domän till frågor från värden, skapa FQDN. Alternativ domain
av /etc/resolv.conf
wpa-ssid
– Trådlöst: Ställ in en trådlöst WPA SSID.
mtu
– MTU storlek. mtu 9000
= Jumbo-ram. Användbart om din Linux-låda är ansluten med växlar som stöder större MTU-storlekar. Kan bryta några protokoll (jag hade dåliga erfarenheter av snmp- och jumbo-ramar).
wpa-psk
– Trådlös: Ställ in en hexadecimal kodad PSK för ditt SSID.
ip_rp_filter 1
– Omvänd sökfilter aktiverat. Användbar i situationer där du har två rutter till en värd, och detta tvingar paketet att komma tillbaka från det det kom (samma gränssnitt, med hjälp av dess rutter). Exempel: Du är ansluten till din lan (192.168.1.1/24
) och du har en dlna-server med ett gränssnitt på din lan (192.168.1.10/24
) och andra gränssnitt på dmz för att utföra administrativa uppgifter (172.16.1.1/24
). Under en ssh-session från din dator till dlna dmz ip måste informationen komma tillbaka till dig, men kommer att hänga för alltid eftersom din dlna-server kommer att försöka leverera svaret direkt via dess lan-gränssnitt. Med rp_filter aktiverat kommer det att säkerställa att anslutningen kommer tillbaka från varifrån den kom. Mer information här .
Några av dessa alternativ är inte valfria. Debian varnar du om du till exempel placerar en IP-adress på ett gränssnitt utan nätmask.
Du kan hitta fler bra exempel på nätverkskonfiguration här .
Relaterade saker :
Länkar som har information relaterad till /etc/network/interfaces
nätverkskonfigurationsfil:
- HOWTO: Trådlös säkerhet – WPA1, WPA2, LEAP, etc .
- Hur kan jag överbrygga två gränssnitt med ip / iproute2? .
- Vad är en hotplug-händelse från gränssnittet?
Kommentarer
- Tack, det här hjälper mycket. Har
inet
något att göra med " internet "?Jag läste något om att det bara betyder " IPv4 " ochinet6
betyder " IPv6 ", men termen " inet " är verkligen förvirrande när du ser det och förväxlar det med kort för " internet ". Och namnen man använder, someth0
, är dessa definierade eller kan jag välja dem själv? Om jag har mer än en LAN-adapter, hur vet jag vilkeneth
som tillhör vilken LAN-adapter? - Båda. Tillsammans definierar de metoden för IP-adressförvärv (dhcp, statiska, ppp-skript, ingen adress) och version av ip-protokollet (
inet
= v4 ochinet6
= v6). Gränssnittsnamnen beror ganska mycket på distributionen du använder och hurudev
är konfigurerat. Debian användereth*
ochwlan*
till kabel- och trådlösa gränssnitt. Fedora använder biosdevname-schemat därem0
är det första inbyggda Ethernet-gränssnittet på ditt moderkort ochp<slot>p<eth port>
namnet på en PCI-nic. Du kan fixa nätverksnamn vid/etc/udev/rules.d/70-persistent-net.rules
eller skapa alias påinterfaces
. - Angående " gateway – serverns standardgateway. var försiktig med att bara använda en av den här killen. " Är det en per strofe eller ett gatewaygränssnitt bland alla strofer?
- Bör vara en gateway bland alla strofer, eller kommer du att ha problem med din standardrutt. För att arbeta med multi gateway / multi-länk behövs en del tankar med iptables + paketmarkering + ip-regler.
-
allow-hotplug
väntar inte i bakgrunden på " kabellänkade " händelser på Ethernet-portar, och det har det aldrig gjort. unix.stackexchange.com/a/520633/29483
Svar
Jag vill också tillägga att:
- gränssnitt är för ifup / ifdown-tjänster.
- När du använder allow-hotplug kommer det inte att börja med ifup / ifdown, bcos u behöver använda flagga –allow = hotplug.
U kan spåra vad som är händer med ifup med –verbose-flaggan.
Jag är inte 100% säker på detta, men det verkar som om i princip när ifup kallas kommer du att köra allt från / etc / nätverk / gränssnitt med upp … om inte annat anges.
Jag är inte säker på hur det rör sig om: servicenätverk …
Skulle vara trevligt om någon skulle peka på vad som händer efter samtal:
service networking restart
i förhållande till ifup / ifdown.
Svar
Om du behöver lägga till alternativ när du använder paketet resolvconf
, dvs på Ubuntu lägger du den konfigurationen i /etc/resolvconf/resolv.conf.d/base
:
# /etc/resolvconf/resolv.conf.d/base options timeout:1 attempts:1 rotate
manual
betyder att ifupdown inte ' för att inte göra något åt dem, du måste göra det själv manuellt.