Gute detaillierte Erklärung der Syntax von / etc / network / interfaces?


139

Ich habe das grundlegende Konzept der Verwendung verstanden /etc/network/interfaces, aber alles, was ich online finde, sind Beispiele, Beispiel für Beispiel, aus denen ich kopieren und einfügen kann. Was ich vermisse, ist eine Erklärung der Syntax, eine Erklärung der Bedeutung der Befehle und welche Reihenfolge die Befehle erfordern. Ich möchte verstehen, dass das Kopieren und Einfügen in der Regel nicht ausreicht, da ich nicht an einem neuen Computer arbeite. Daher kann ich vorhandene Konfigurationen nicht einfach überschreiben, da dies viele Probleme verursachen würde. man interfaceswar nicht sehr hilfreich, da es sehr kompliziert geschrieben ist.

Beispielfragen, die ich habe: Was bedeutet inetin einer ifaceZeile genau (ich konnte es nicht einmal in der Manpage finden), was bedeutet manualin einer ifaceZeile genau (viele Beispiele verwenden es, aber laut Manpage benötigt es dann eine zusätzliche Konfigurationsdatei, welche die Beispiele fehlen), wann verwende oder brauche ich sie? Wann nicht? Was passiert genau mit den Schnittstellen, wenn ich eine Brücke erstelle?


4
Auf der Manpage steht, dass nach dem Schnittstellennamen die von der Schnittstelle verwendete Adressfamilie steht. "inet" ist der Name für IPv4, inet6 für ipv6. Es gibt auch ipx, x25, appletalk ..., obwohl ifupdown nur mit inet / inet6 / ipx umgeht, wie in der Manpage erklärt. manualbedeutet, dass, wenn updown nichts dagegen unternimmt, Sie es manuell tun müssen.
Stéphane Chazelas

Antworten:


169

Nun, lassen Sie es uns in Teile zerlegen, um das Verständnis zu erleichtern /etc/network/interfaces:

Optionen für Verknüpfungsebene + Schnittstellentyp (im Allgemeinen die erste jeder Schnittstellenzeilengruppe und aufgerufene Adressfamilie + Methode nach interfaces(5)Hilfeseiten):

auto interface- Starten Sie die Schnittstelle (n) beim Booten. Aus diesem Grund verwendet die loSchnittstelle diese Art der Verbindungskonfiguration.

allow-auto interface - Gleich wie auto

allow-hotplug interface- Starten Sie die Schnittstelle, wenn ein "Hotplug" -Ereignis erkannt wird. In der realen Welt wird dies in den gleichen Situationen verwendet, autoaber der Unterschied besteht darin, dass es auf ein Ereignis wie "von udev hotplug api erkannt" oder "kabelgebunden" wartet. Weitere Informationen finden Sie unter " Related Stuff (Hotplug) ".

Diese Optionen sind so ziemlich "Layer 2" -Optionen, die Verbindungszustände auf Schnittstellen einrichten, und stehen in keinem Zusammenhang mit "Layer 3" (Routing und Adressierung). Als Beispiel könnten Sie eine Link-Aggregation haben, bei der die bond0-Schnittstelle unabhängig vom Link-Status aktiv sein muss und deren Mitglieder nach einem Link-Status-Ereignis aktiv sein können:

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

Auf diese Weise erstelle ich eine Link-Aggregation und die Schnittstellen werden hinzugefügt und bei Kabelverbindungszuständen entfernt.

Häufigste Schnittstellentypen:

Alle folgenden Optionen sind ein Suffix für eine definierte Schnittstelle ( iface <Interface_family>). Grundsätzlich iface eth0wird eine Zeilengruppe erstellt, die eth0auf einem Ethernet-Gerät aufgerufen wird. iface ppp0sollte eine Punkt-zu-Punkt- Schnittstelle erstellen, und es könnte verschiedene Möglichkeiten zum Abrufen von Adressen geben inet wvdial, um die Konfiguration dieser Schnittstelle an das wvdialconfSkript weiterzuleiten . Das Tupel inet/ inet6+ optionwird die Version des definiert IP - Protokolls , das verwendet wird , und die Art und Weise dieser Adresse ( so konfiguriert werden static, dhcp, scripts...). In den Online-Debian-Handbüchern erfahren Sie mehr darüber.

Optionen für Ethernet-Schnittstellen:

inet static - Definiert eine statische IP-Adresse.

inet manual- Definiert keine IP-Adresse für eine Schnittstelle. Wird im Allgemeinen von Schnittstellen verwendet, die Bridge- oder Aggregationsmitglieder sind, Schnittstellen, die im Promiscuous-Modus betrieben werden müssen ( z. B. Port Mirroring oder Netzwerk-TAPs ) oder auf denen ein VLAN-Gerät konfiguriert ist. Auf diese Weise bleibt die Schnittstelle ohne IP-Adresse erhalten.

inet dhcp - Beziehen Sie die IP-Adresse über das DHCP-Protokoll.

inet6 static - Definiert eine statische IPv6-Adresse.

Beispiel:

# 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

In diesem Beispiel wird eth0eine VLAN-Schnittstelle aufgerufen und erstellt vlan10, die die Tag-Nummer 10 in einem Ethernet-Frame verarbeitet.

Häufige Optionen in einer Schnittstellenzeilengruppe (Layer 2 und 3):

address - IP-Adresse für eine statische IP-konfigurierte Schnittstelle

netmask- Netzwerkmaske. Kann weggelassen werden, wenn Sie eine cidr-Adresse verwenden. Beispiel:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway- Das Standard-Gateway eines Servers. Achten Sie darauf, nur einen dieser Typen zu verwenden.

vlan-raw-device - Definiert auf einer VLAN-Schnittstelle den "Vater".

bridge_ports - Definieren Sie auf einer Bridge-Schnittstelle deren Mitglieder.

down- Verwenden Sie den folgenden Befehl, um die Schnittstelle herunterzufahren ifdown.

post-down - Aktionen, die unmittelbar nach dem Ausfall der Schnittstelle ausgeführt werden.

pre-up - Aktionen, bevor die Schnittstelle aktiv ist.

up- Verwenden Sie den folgenden Befehl, um die Schnittstelle zu aktualisieren ifup. Es liegt in Ihrer Phantasie, alle verfügbaren Optionen zu verwenden iputils. Als Beispiel könnten wir verwenden up ip link set $IFACE up mtu 9000, um Jumbo-Frames während des upVorgangs zu aktivieren (anstatt die mtuOption selbst zu verwenden). Sie können auch jede andere Software aufrufen, die up sleep 5; mii-tool -F 100baseTx-FD $IFACE5 Sekunden nach dem Hochfahren der Schnittstelle 100 Mbit / s Vollduplex erzwingen möchte .

hwaddress ether 00:00:00:00:00:00- Ändern Sie die Mac-Adresse der Schnittstelle, anstatt die zu verwenden, die fest in rom codiert oder durch Algorithmen generiert wurde. Sie können das Schlüsselwort verwenden random, um eine zufällige MAC-Adresse zu erhalten.

dns-nameservers- IP-Adressen von Nameservern. Benötigt das resolvconfPaket. Auf diese Weise können Sie alle Informationen konzentrieren, /etc/network/interfacesanstatt sie /etc/resolv.conffür DNS-bezogene Konfigurationen zu verwenden. Bearbeiten Sie die resolv.confKonfigurationsdatei nicht manuell, da sie von Programmen im System dynamisch geändert wird.

dns-search example.net- Fügen Sie example.net als Domain an die Abfragen des Hosts an und erstellen Sie den FQDN. Option domainvon/etc/resolv.conf

wpa-ssid - Drahtlos: Richten Sie eine drahtlose WPA-SSID ein.

mtu- MTU- Größe. mtu 9000= Jumbo Frame. Nützlich, wenn Ihre Linux-Box mit Switches verbunden ist, die größere MTU-Größen unterstützen. Kann einige Protokolle brechen (ich hatte schlechte Erfahrungen mit snmp und Jumbo-Frames).

wpa-psk - Drahtlos: Legen Sie ein hexadezimal codiertes PSK für Ihre SSID fest.

ip_rp_filter 1- Reverse Path Filter aktiviert. Nützlich in Situationen, in denen Sie 2 Routen zu einem Host haben, und dies das Paket zwingt, von dort zurückzukehren, wo es herkam (dieselbe Schnittstelle, die ihre Routen verwendet). Beispiel: Sie sind mit Ihrem LAN ( 192.168.1.1/24) verbunden und haben einen DLNA-Server mit einer Schnittstelle in Ihrem LAN ( 192.168.1.10/24) und einer anderen Schnittstelle in DMZ, um administrative Aufgaben auszuführen ( 172.16.1.1/24). Während einer SSH-Sitzung von Ihrem Computer zu dlna dmz ip müssen die Informationen an Sie zurückgesendet werden, bleiben jedoch für immer hängen, da Ihr dlna-Server versucht, die Antwort direkt über die LAN-Schnittstelle zu übermitteln. Wenn rp_filter aktiviert ist, wird sichergestellt, dass die Verbindung von dort zurückkommt, wo sie herkommt. Mehr Infos hier .

Einige dieser Optionen sind nicht optional. Debian warnt Sie, wenn Sie beispielsweise eine IP-Adresse auf eine Schnittstelle ohne Netzmaske setzen.

Weitere gute Beispiele für die Netzwerkkonfiguration finden Sie hier .

Verwandte Sachen :

Links mit Informationen zur /etc/network/interfacesNetzwerkkonfigurationsdatei:


Danke, das hilft sehr. Hat inetdas irgendwas mit "Internet" zu tun? Ich habe irgendwie gelesen, dass es nur "IPv4" und inet6"IPv6" bedeutet, aber der Begriff "inet" ist wirklich verwirrend, wenn man es sieht und mit der Abkürzung "Internet" verwechselt. Und die Namen, die man benutzt, eth0sind definiert oder kann ich sie selbst auswählen? Wenn ich mehr als einen LAN-Adapter habe, wie kann ich feststellen, welcher ethzu welchem ​​LAN-Adapter gehört?
Foo Bar

2
Beide. Zusammen definieren sie die Methode der IP-Adresserfassung (DHCP, Static, PPP-Skripte, keine Adresse) und die Version des IP-Protokolls ( inet= v4 und inet6= v6). Die Namen der Benutzeroberfläche hängen weitgehend von der von Ihnen verwendeten Distribution ab und die Art und Weise udevist konfiguriert. Debian verwendet eth*und wlan*für Kabel- und Funkschnittstellen. Fedora verwendet das Schema biosdevname, bei dem em0es sich um die erste integrierte Ethernet-Schnittstelle auf Ihrem Motherboard handelt, und p<slot>p<eth port>den Namen für eine PCI-Karte. Sie können Netzwerknamen unter festlegen /etc/udev/rules.d/70-persistent-net.rulesoder einen Alias ​​erstellen interfaces.

2
In Bezug auf "Gateway - das Standard-Gateway eines Servers. Seien Sie vorsichtig, wenn Sie nur einen dieser Typen verwenden." Ist das eine pro Zeilengruppe oder eine Gateway-Schnittstelle unter allen Zeilengruppen?
Ctbrown

2
Sollte ein Gateway unter allen Zeilengruppen sein, oder Sie haben Probleme mit Ihrer Standardroute. Um mit Multi-Gateway / Multi-Link zu arbeiten, sind einige Überlegungen zu iptables + Paketmarkierung + IP-Regeln erforderlich.

Eine kleine Abfrage, wenn ich in dieser Datei iface eth0 inet static habe und dann ein IP-Adressfeld schreibe, bedeutet dies, dass diese bestimmte IP, die ich gerade geschrieben habe, an die MAC-Adresse meines Systems gebunden wird?
k10

0

Ich würde auch hinzufügen, dass:

  • interfaces ist für ifup / ifdown-Dienste.
  • Wenn Sie allow-hotplug verwenden, startet es nicht mit ifup / ifdown. Sie müssen flag --allow = hotplug verwenden.

Sie können mithilfe des Flags --verbose verfolgen, was mit ifup geschieht.

Ich bin mir nicht 100% sicher, aber es scheint, dass wenn ifup aufgerufen wird, alles von / etc / network / interfaces mit up ausgeführt wird ... wenn nicht anders angegeben.

Ich weiß nicht, wie es sich bezieht: Service-Networking ...

Wäre nett, wenn jemand darauf hinweisen würde, was nach dem Anruf passiert:

service networking restart

in Bezug auf ifup / ifdown.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.