GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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

Ich habe das grundlegende Konzept der Verwendung von /etc/network/interfaces verstanden , 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 das verstehen, weil Kopieren und Einfügen meistens nicht ausreicht, weil ich nicht auf einer frischen Maschine arbeite, also kann ich nicht einfach vorhandene Konfigurationen überschreiben, weil es eine Menge Sachen kaputt machen würde. man interfaces war nicht sehr hilfreich, da es sehr kompliziert geschrieben ist.

Beispielfragen, die ich habe:was bedeutet inet in einem iface Zeile bedeutet genau (ich konnte es nicht einmal in der Manpage finden), was manual bedeutet in einem iface Zeile bedeuten genau (viele Beispiele verwenden es, aber laut Manpage benötigt es dann eine zusätzliche Konfigurationsdatei, die die Beispiele nicht enthalten), wann verwende oder brauche ich sie? Wann nicht? Was passiert genau mit den Schnittstellen, wenn ich eine Brücke erstelle?

Akzeptierte Antwort:

Nun, teilen wir es in Teile auf, um /etc/network/interfaces leichter verständlich zu machen :

Verbindungsschicht+Schnittstellentypoptionen (normalerweise die erste jeder Schnittstellenzeile und von interfaces(5) als Adressfamilie + Methode bezeichnet Manpages):

auto interface – Starten Sie die Schnittstelle(n) beim Booten. Deshalb das lo Schnittstelle verwendet diese Art der Verknüpfungskonfiguration.

allow-auto interface – Dasselbe 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 wie auto verwendet Der Unterschied besteht jedoch darin, dass auf ein Ereignis wie „Erkennung durch udev-Hotplug-API“ oder „Kabelverbindung“ gewartet wird. Weitere Informationen finden Sie unter „Ähnliche Informationen (Hotplug)“.

Diese Optionen sind so ziemlich „Layer 2“-Optionen, die Verbindungszustände auf Schnittstellen einrichten, und haben nichts mit „Layer 3“ (Routing und Adressierung) zu tun. Als Beispiel könnten Sie eine Link-Aggregation haben, bei der die Schnittstelle bond0 aktiv sein muss, unabhängig vom Linkstatus, und ihre Mitglieder könnten nach einem Linkstatusereignis aktiv sein:

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 also eine Link-Aggregation und die Schnittstellen werden hinzugefügt und bei Kabelverbindungsstatus entfernt.

Die gängigsten Schnittstellentypen:

Alle folgenden Optionen sind ein Suffix für eine definierte Schnittstelle (iface <Interface_family> ). Im Grunde das iface eth0 erstellt eine Strophe namens eth0 auf einem Ethernet-Gerät. iface ppp0 sollte eine Punkt-zu-Punkt-Schnittstelle erstellen, und es könnte verschiedene Möglichkeiten haben, Adressen wie inet wvdial zu erhalten die die Konfiguration dieser Schnittstelle an wvdialconf weiterleitet Skript. Das Tupel inet /inet6 + option definiert die Version des verwendeten IP-Protokolls und die Art und Weise, wie diese Adresse konfiguriert wird (static , dhcp , scripts …).
Die Online-Debian-Handbücher geben Ihnen weitere Einzelheiten 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 arbeiten müssen (z. B. Portspiegelung oder Netzwerk-TAPs ) oder haben ein VLAN-Gerät darauf konfiguriert. Es ist eine Möglichkeit, die Schnittstelle ohne IP-Adresse aufrechtzuerhalten.

Verwandte:Ist Ghee ein guter Ersatz für Schmalz?

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 bringt eth0 und erstellen Sie eine VLAN-Schnittstelle namens vlan10 das die Tag-Nummer 10 in einem Ethernet-Frame verarbeitet.

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

address – IP-Adresse für eine mit statischer IP konfigurierte Schnittstelle

netmask – Netzwerkmaske. Kann weggelassen werden, wenn Sie die 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 ihren „Vater“.

bridge_ports – Definieren Sie auf einer Bridge-Schnittstelle ihre Mitglieder.

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

post-down – Aktionen, die direkt nach dem Abschalten der Schnittstelle durchgeführt werden.

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

up – Verwenden Sie anstelle von ifup den folgenden Befehl, um die Schnittstelle hochzufahren . Es ist Ihrer Fantasie überlassen, jede Option zu verwenden, die auf iputils verfügbar ist . Als Beispiel könnten wir up ip link set $IFACE up mtu 9000 verwenden um Jumbo-Frames während des up zu aktivieren Operation (anstelle der Verwendung von mtu Option selbst). Sie können auch jede andere Software wie up sleep 5; mii-tool -F 100baseTx-FD $IFACE um 100 Mbit/s Vollduplex 5 Sekunden nach dem Hochfahren der Schnittstelle zu erzwingen.

hwaddress ether 00:00:00:00:00:00 – Ändern Sie die MAC-Adresse der Schnittstelle, anstatt die in ROM fest codierte oder von Algorithmen generierte zu verwenden. Sie können das Schlüsselwort random verwenden um eine randomisierte MAC-Adresse zu erhalten.

dns-nameservers – IP-Adressen von Nameservern. Benötigt die resolvconf Paket. Es ist eine Möglichkeit, alle Informationen in /etc/network/interfaces zu konzentrieren anstatt /etc/resolv.conf zu verwenden für DNS-bezogene Konfigurationen.
Bearbeiten Sie nicht die resolv.conf Konfigurationsdatei manuell
da sie von Programmen im System dynamisch geändert wird.

dns-search example.net – Hängen Sie example.net als Domäne an Abfragen von host an, um den FQDN zu erstellen. Option domain von /etc/resolv.conf

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

mtu – MTU-Größe. mtu 9000 =Jumbo-Rahmen. 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 einen hexadezimal codierten PSK für Ihre SSID fest.

ip_rp_filter 1 – Rückwärtspfadfilter aktiviert. Nützlich in Situationen, in denen Sie 2 Routen zu einem Host haben und dies das Paket dazu zwingt, von dort zurückzukehren, wo es herkam (dieselbe Schnittstelle, die seine Routen verwendet). Beispiel:Sie sind mit Ihrem LAN verbunden (192.168.1.1/24 ) und Sie haben einen DLNA-Server mit einer Schnittstelle in Ihrem LAN (192.168.1.10/24 ) und andere Schnittstellen auf dmz, um Verwaltungsaufgaben auszuführen (172.16.1.1/24 ). Während einer SSH-Sitzung von Ihrem Computer zu dlna dmz ip müssen die Informationen zu Ihnen zurückkommen, bleiben aber für immer hängen, da Ihr dlna-Server versuchen wird, die Antwort direkt über seine LAN-Schnittstelle zu liefern. Wenn rp_filter aktiviert ist, wird sichergestellt, dass die Verbindung von dort zurückkommt, wo sie herkam. Weitere Informationen hier.

Verwandte:Linux-Kernel für Nintendo Wii?

Einige dieser Optionen sind nicht optional. Debian wird Sie zum Beispiel warnen, wenn Sie eine IP-Adresse auf eine Schnittstelle ohne Netzmaske setzen.

Weitere gute Beispiele zur Netzwerkkonfiguration finden Sie hier.

Verwandte Sachen :

Links mit Informationen zu /etc/network/interfaces Netzwerkkonfigurationsdatei:

  • HOWTO:Drahtlose Sicherheit – WPA1, WPA2, LEAP usw.
  • Wie kann ich zwei Schnittstellen mit ip/iproute2 überbrücken?.
  • Was ist ein Hotplug-Ereignis von der Schnittstelle?

Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux – Inhalt von /etc/network im Alpine Linux Image?

  3. Manuelle Änderungen an /etc/hosts oder /etc/sysconfig/network-scripts/ifcfg-* gehen verloren

  4. CentOS / RHEL:So stellen Sie eine gelöschte /etc/passwd-Datei wieder her

  5. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

/etc/network/interfaces, um Ubuntu mit einem drahtlosen Netzwerk zu verbinden

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Mac-Adresse dauerhaft in /etc/network/interfaces ändern?

Grundlegendes zur Konfigurationsdatei der Netzwerkschnittstelle /etc/sysconfig/network-scripts/ifcfg-eth#

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Was macht source /etc/network/interfaces.d/* am Anfang der Datei /etc/network/interfaces?