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

  • Man-sidan säger vad som kommer efter gränssnittsnamnet är adressfamiljen som gränssnittet använder. " inet " är namnet på IPv4, inet6 för ipv6. Där ' s också ipx, x25, appletalk …, men ifupdown hanterar bara inet / inet6 / ipx som mansidan förklarar. manual betyder att ifupdown inte ' för att inte göra något åt dem, du måste göra det själv manuellt.

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:

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 " och inet6 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, som eth0, är dessa definierade eller kan jag välja dem själv? Om jag har mer än en LAN-adapter, hur vet jag vilken eth 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 och inet6 = v6). Gränssnittsnamnen beror ganska mycket på distributionen du använder och hur udev är konfigurerat. Debian använder eth* och wlan* till kabel- och trådlösa gränssnitt. Fedora använder biosdevname-schemat där em0 är det första inbyggda Ethernet-gränssnittet på ditt moderkort och p<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 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *