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

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

Ich habe das grundlegende Konzept der Verwendung verstanden /etc/network/interfaces, aber alles, was ich online finde, sind Beispiele, ein Beispiel nach dem anderen, die 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 es verstehen, weil Kopieren und Einfügen meistens nicht ausreicht, da ich nicht an einer neuen Maschine arbeite und daher nicht einfach vorhandene Konfigurationen überschreiben kann, weil das eine Menge kaputt machen 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 ist dann eine zusätzliche Konfigurationsdatei erforderlich, die in den Beispielen nicht vorhanden ist), wann verwende oder brauche ich sie? Wann nicht? Wenn ich eine Brücke erstelle, was genau passiert mit den Schnittstellen?

Antwort1

Nun, teilen wir es in Teile auf, damit es leichter verständlich ist /etc/network/interfaces:

Verbindungsschicht+Schnittstellentypoptionen (im Allgemeinen die erste jeder SchnittstelleStropheund aufgerufene Adressfamilie + Methode durchinterfaces(5)manpages):

auto interface– Starten Sie die Schnittstelle(n) beim Booten. Aus diesem Grund loverwendet die Schnittstelle diese Art der Verknüpfungskonfiguration.

allow-auto interface- Gleich wieauto

allow-hotplug interface– Starten Sie die Schnittstelle, wenn ein „Hotplug“-Ereignis erkannt wird. In der Praxis wird dies in denselben Situationen verwendet wie, autoaber der Unterschied besteht darin, dass auf ein Ereignis wie „von udev hotplug api erkannt“ oder „Kabel verbunden“ gewartet wird. Siehe „Ähnliches (Hotplug)" für weitere Informationen.

Diese Optionen sind im Wesentlichen „Layer 2“-Optionen, die Verbindungszustände auf Schnittstellen einrichten, und haben nichts mit „Layer 3“ (Routing und Adressierung) zu tun. Sie könnten beispielsweise eine Linkaggregation haben, bei der die Bond0-Schnittstelle unabhängig vom Verbindungszustand aktiv sein muss und ihre Mitglieder nach einem Verbindungszustandsereignis 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 eineLink-Aggregationund die Schnittstellen werden je nach Kabelverbindungsstatus hinzugefügt und entfernt.

Die gängigsten Schnittstellentypen:

Alle unten aufgeführten Optionen sind Suffixe für eine definierte Schnittstelle ( iface <Interface_family>). Im Grunde iface eth0wird einStropheeth0über ein Ethernet-Gerät aufgerufen werden iface ppp0.Punkt zu PunktSchnittstelle, und es könnte verschiedene Möglichkeiten geben, Adressen zu erhalten, so inet wvdialdass die Konfiguration dieser Schnittstelle an wvdialconfdas Skript weitergeleitet wird. Das Tupel inet/ inet6+ optiondefiniert die Version derIP-Protokolldie verwendet wird und wie diese Adresse konfiguriert wird ( static, dhcp, scripts...). DieOnline-Debian-Handbücherwird Ihnen hierzu nähere Einzelheiten mitteilen.

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 (zB Port Mirroring oder Netzwerk-TAPs) oder lassen Sie ein VLAN-Gerät darauf konfigurieren. So bleibt die Schnittstelle auch ohne IP-Adresse aktiv.

inet dhcp– IP-Adresse über das DHCP-Protokoll beziehen.

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

Dieses Beispiel öffnet eth0und erstellt einVLAN-Schnittstelleaufgerufen vlan10, das die Tag-Nummer 10 in einem Ethernet-Frame verarbeitet.

Allgemeine Optionen innerhalb einer Schnittstellenstrophe (Ebene 2 und 3):

address– IP-Adresse für eine statisch 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 eines davon zu verwenden.

vlan-raw-device– Definiert auf einer VLAN-Schnittstelle deren „Vater“.

bridge_ports– Definieren Sie auf einer Brückenschnittstelle deren Mitglieder.

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

post-down– Maßnahmen, die unmittelbar nach dem Ausfall der Schnittstelle ergriffen werden.

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

up– Verwenden Sie den folgenden Befehl, um die Schnittstelle anstelle von zu aktivieren ifup. Es bleibt Ihrer Fantasie überlassen, welche Optionen auf verfügbar sind iputils. Als Beispiel könnten wir verwenden, up ip link set $IFACE up mtu 9000um zu aktivierenJumbo-Rahmenwährend des upVorgangs (anstatt die mtuOption selbst zu verwenden). Sie können auch jede andere Software aufrufen, up sleep 5; mii-tool -F 100baseTx-FD $IFACEum beispielsweise 5 Sekunden nach dem Hochfahren der Schnittstelle 100 Mbit/s Vollduplex zu erzwingen.

hwaddress ether 00:00:00:00:00:00- Ändern Sie die Mac-Adresse der Schnittstelle, anstatt die im ROM fest codierte oder durch Algorithmen generierte Adresse zu verwenden. Sie können das Schlüsselwort verwenden, randomum eine zufällige Mac-Adresse zu erhalten.

dns-nameservers– IP-Adressen von Nameservern. Erfordert das resolvconfPaket. Es ist eine Möglichkeit, alle Informationen zu 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 Domäne zu Host-Abfragen hinzu, um den FQDN zu erstellen. Option domainvon/etc/resolv.conf

wpa-ssid– Kabellos: Legen Sie eine drahtlose WPA-SSID fest.

mtu-MTUGröß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 beschädigen (ich habe schlechte Erfahrungen mit SNMP und Jumbo Frames gemacht).

wpa-psk– Kabellos: Legen Sie einen hexadezimal codierten PSK für Ihre SSID fest.

ip_rp_filter 1-Rückwärtspfadfilteraktiviert. Nützlich in Situationen, in denen Sie 2 Routen zu einem Host haben, und dies zwingt das Paket, von dort zurückzukommen, wo es herkam (dieselbe Schnittstelle, unter Verwendung seiner Routen). Beispiel: Sie sind mit Ihrem LAN verbunden ( 192.168.1.1/24) und haben einen DLNA-Server mit einer Schnittstelle auf Ihrem LAN ( 192.168.1.10/24) und einer anderen Schnittstelle auf DMZ, um administrative Aufgaben auszuführen ( 172.16.1.1/24). Während einer SSH-Sitzung von Ihrem Computer zur DLNA-DMZ-IP müssen die Informationen zu Ihnen zurückkommen, bleiben aber für immer hängen, weil Ihr DLNA-Server versucht, die Antwort direkt über seine LAN-Schnittstelle zu übermitteln. Wenn rp_filter aktiviert ist, wird sichergestellt, dass die Verbindung von dort zurückkommt, wo sie herkam. Weitere InformationenHier.

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

Weitere gute Beispiele für Netzwerkkonfigurationen finden SieHier.

Ähnliche Artikel:

Links mit Informationen zur /etc/network/interfacesNetzwerkkonfigurationsdatei:

Antwort2

Ich möchte noch Folgendes hinzufügen:

  • Schnittstellen sind für ifup/ifdown-Dienste.
  • Wenn Sie allow-hotplug verwenden, wird es nicht mit ifup/ifdown gestartet, weil Sie das Flag --allow=hotplug verwenden müssen.

Sie können verfolgen, was mit ifup passiert, indem Sie die Flagge --verbose verwenden.

Ich bin mir da nicht 100 % sicher, aber es scheint, dass grundsätzlich beim Aufruf von ifup alles aus /etc/network/interfaces mit up ausgeführt wird ... sofern nicht anders angegeben.

Ich bin nicht sicher, wie es mit Service-Networking zusammenhängt …

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

service networking restart

in Bezug auf ifup/ifdown.

Antwort3

Wenn Sie bei der Verwendung des Pakets Optionen hinzufügen müssen resolvconf, d. h. unter Ubuntu fügen Sie diese Konfiguration hier ein /etc/resolvconf/resolv.conf.d/base:

# /etc/resolvconf/resolv.conf.d/base
options timeout:1 attempts:1 rotate

Antwort4

Wichtig bei Attributnamen ist:

Es gibt keine Datei mit Standardbeschreibung. Das bedeutet, dass diese Datei implementierungsdefiniert ist

Es kann Klein-, Groß- oder Mischbuchstaben sein.

Es ist egal '-' oder '_'

Es darf keine Leerzeichen und Tabulatoren enthalten

Soweit ifupdown Quellen sagen

Außer einigen gebräuchlichen Namen wie "pre-up", "down" usw., die nicht anders geschrieben werden können

verwandte Informationen