Bagaimana cara mengatur jembatan jaringan untuk memiliki MTU 9000?

10

Saya harus gigabit antarmuka jaringan yang telah saya jembatani.

/ etc / network / interfaces adalah:

 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

Tetapi MTU hanya 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

Jika saya menjalankan perintah berikut:

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

Sekarang saya memiliki MTU 9000 dan transfer ke NAS saya JAUH lebih cepat

Tapi, saya pikir saya hanya akan melakukan ini di file / etc / network / interfaces:

 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

Tetapi jaringan hanya gagal muncul saat boot

Saya menghapus mtu 9000dari bagian br0 dan PC melakukan booting dengan jaringan yang muncul, tetapi MTU masih 9000

Bagaimana cara mengatur MTU ke 9000 untuk eth0 dan eth1 saat boot sehingga bridge beroperasi pada 9000?

Juga adakah cara untuk menguji / etc / network / interfaces tanpa perlu me-reboot sepanjang waktu?

RoboJ1M
sumber

Jawaban:

9

Sepertinya mtuopsi tidak tersedia saat menggunakan manualmetode (lihat interfaces(5)). Jadi, inilah yang seharusnya bekerja (memasukkan umpan balik dari komentar):

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

Dengan menggunakan opsi up(atau dalam hal ini post-up) kita dapat menentukan perintah kita sendiri untuk dijalankan selama (setelah) waktu antarmuka ditampilkan.

gertvdijk
sumber
1
Jembatan itu sendiri sepertinya mengambil MTU terkecil dari sekumpulan perangkat yang dihosting dan menggunakannya. MTU pada br0 di file antarmuka menyebabkan jaringan gagal untuk memulai saat boot.
RoboJ1M
Namun saya berhasil menyelesaikannya tadi malam, menggunakan hampir solusi ini. Saya menambahkan: post-up ifconfig eth0 mtu 9000pada akhir bagian br0, dua kali, baik untuk eth0 dan eth1.
RoboJ1M
@ RoboJ1M Terima kasih, saya telah memperbarui jawaban saya.
gertvdijk
jika Anda tidak memiliki ifconfig, gunakan tautan ip:post-up ip link set dev eth0 mtu 9000
Jonathan S. Fisher
Kesan saya (saya mungkin salah) adalah bahwa mtuopsi ini harus didukung dalam manualmetode ini (tentu saja halaman manual pada 14.04 tidak menyarankan tidak) dan bahwa masalahnya mungkin lebih terkait dengan bug ini (lihat komentar # 4 khususnya). Sangat mungkin ini diperbaiki di 16.04 sebagai produk sampingan dari migrasi systemd
sxc731