Wie stelle ich eine Netzwerkbrücke auf eine MTU von 9000 ein?

10

Ich muss Gigabit-Netzwerkschnittstellen, die ich überbrückt habe.

/ etc / network / interfaces ist:

 auto lo
 iface lo inet loopback

# Set up interfaces manually, avoiding conflicts with, e.g., network manager
 iface eth0 inet manual

 iface eth1 inet manual

 # Bridge setup
 auto br0
 iface br0 inet static
    bridge_ports eth0 eth1
    address 192.168.88.2
    broadcast 192.168.88.255
    netmask 255.255.255.0
    gateway 192.168.88.254
    dns-nameservers 192.168.88.254

Aber die MTU ist nur 1500

myth@myth:~$ traceroute --mtu 192.168.88.1
traceroute to 192.168.88.1 (192.168.88.1), 30 hops max, 65000 byte packets
 1  RoboStation.local (192.168.88.1)  0.278 ms F=1500  0.279 ms  0.287 ms

Wenn ich die folgenden Befehle ausführe:

myth@myth:~$ sudo ifconfig eth0 mtu 9000
myth@myth:~$ sudo ifconfig eth1 mtu 9000
myth@myth:~$ traceroute --mtu 192.168.88.1

traceroute to 192.168.88.1 (192.168.88.1), 30 hops max, 65000 byte packets
 1  RoboStation.local (192.168.88.1)  0.407 ms F=9000  0.422 ms  0.383 ms

Jetzt habe ich eine MTU von 9000 und die Übertragungen auf mein NAS sind VIEL schneller

Aber ich dachte, ich würde dies einfach in der Datei / etc / network / interfaces tun:

 auto lo
 iface lo inet loopback

 # Set up interfaces manually, avoiding conflicts with, e.g., network manager
 iface eth0 inet manual
    mtu 9000

 iface eth1 inet manual
    mtu 9000

 # Bridge setup
 auto br0
 iface br0 inet static
    bridge_ports eth0 eth1
    address 192.168.88.2
    broadcast 192.168.88.255
    netmask 255.255.255.0
    gateway 192.168.88.254
    dns-nameservers 192.168.88.254
    mtu 9000

Das Netzwerk wird jedoch beim Booten nicht gestartet

Ich habe das mtu 9000aus dem br0-Bereich entfernt und der PC startet mit dem Netzwerk, aber die MTU ist immer noch 9000

Wie setze ich die MTU beim Booten für eth0 und eth1 auf 9000, damit die Bridge bei 9000 läuft?

Gibt es auch eine Möglichkeit, / etc / network / interfaces zu testen, ohne ständig neu zu starten?

RoboJ1M
quelle

Antworten:

9

Anscheinend ist die mtuOption bei Verwendung der manualMethode nicht verfügbar (siehe interfaces(5)). Also, hier ist, was funktionieren soll (unter Einbeziehung des Feedbacks aus den Kommentaren):

auto lo
iface lo inet loopback

# Set up interfaces manually, avoiding conflicts with, e.g., network manager
iface eth0 inet manual
   # nothing here

iface eth1 inet manual
   # nothing here

# Bridge setup
auto br0
iface br0 inet static
   bridge_ports eth0 eth1
   address 192.168.88.2
   ...
   post-up ifconfig eth0 mtu 9000 && ifconfig eth1 mtu 9000

Mit der Option up(oder in diesem Fall post-up) können wir unseren eigenen Befehl angeben, der während (nach) der Zeit ausgeführt werden soll, in der die Schnittstelle aufgerufen wird.

gertvdijk
quelle
1
Die Bridge selbst scheint nur die kleinste MTU aus ihren gehosteten Geräten zu nehmen und verwendet diese. MTU auf br0 in der Schnittstellendatei führt dazu, dass das Netzwerk beim Booten nicht gestartet werden kann.
RoboJ1M
Allerdings habe ich es letzte Nacht geschafft, es mit fast genau dieser Lösung zu lösen. Ich fügte hinzu: post-up ifconfig eth0 mtu 9000am Ende des br0-Abschnitts zweimal, sowohl für eth0 als auch für eth1.
RoboJ1M
@ RoboJ1M Danke, ich habe meine Antwort aktualisiert.
Gertvdijk
Wenn Sie keine ifconfig haben, verwenden Sie den IP-Link:post-up ip link set dev eth0 mtu 9000
Jonathan S. Fisher
Mein Eindruck (ich kann mich durchaus irren) ist, dass die mtuOption in der manualMethode unterstützt werden sollte (sicherlich schlägt die Manpage am 14.04 dies nicht vor) und dass das Problem wahrscheinlich eher mit diesem Fehler zusammenhängt (siehe Kommentar # 4 insbesondere). Sehr wahrscheinlich ist dies in 16.04 als Nebenprodukt der systemd-Migration
behoben