Как настроить сетевой мост на MTU 9000?

10

У меня есть гигабитные сетевые интерфейсы, которые я подключил.

/ etc / network / interfaces это:

 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

Но MTU только 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

Если я запускаю следующие команды:

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

Теперь у меня MTU 9000 и переводы на мой NAS НАМНОГО быстрее

Но я думал, что просто сделаю это в файле / 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

Но сеть просто не может загрузиться при загрузке

Я удалил mtu 9000из раздела br0 и компьютер загружается с приближением сети, но MTU все еще 9000

Как мне установить MTU на 9000 для eth0 и eth1 при загрузке, чтобы мост работал на 9000?

Также есть ли способ протестировать / etc / network / interfaces без перезагрузки все время?

RoboJ1M
источник

Ответы:

9

Похоже, mtuопция недоступна при использовании manualметода (см. interfaces(5)). Итак, вот что должно работать (включая обратную связь с комментариями):

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

Используя up(или в этом случае post-up) опцию, мы можем указать нашу собственную команду для запуска в течение (или после) времени, когда интерфейс вызывается.

gertvdijk
источник
1
Кажется, что сам мост берет наименьшее значение MTU из набора размещенных устройств и использует его. MTU на br0 в файле интерфейсов приводит к невозможности запуска сети при загрузке.
RoboJ1M
Однако мне удалось решить эту проблему прошлой ночью, используя почти именно это решение. Я добавил: post-up ifconfig eth0 mtu 9000в конце раздела br0, дважды, как для eth0, так и для eth1.
RoboJ1M
@ RoboJ1M Спасибо, я обновил свой ответ.
gertvdijk
если у вас нет ifconfig, используйте ip ссылку:post-up ip link set dev eth0 mtu 9000
Джонатан С. Фишер
У меня сложилось впечатление (я вполне могу ошибаться), что mtuопция должна поддерживаться в manualметоде (конечно, справочная страница 14.04 не предполагает, что это не так) и что проблема, вероятно, больше связана с этой ошибкой (см. Комментарий # 4 в частности). Вполне вероятно, что это исправлено в 16.04 как побочный продукт миграции systemd
sxc731