Comment définir un pont réseau pour avoir un MTU de 9000?

10

Je dois gigabit des interfaces réseau que j'ai pontées.

/ etc / network / interfaces est:

 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

Mais le MTU n'est que de 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

Si j'exécute les commandes suivantes:

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

Maintenant, j'ai un MTU de 9000 et les transferts vers mon NAS sont BEAUCOUP plus rapides

Mais, je pensais que je ferais juste ceci dans le fichier / 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

Mais le réseau ne parvient tout simplement pas à démarrer

J'ai supprimé la mtu 9000section br0 et le PC démarre avec le réseau à venir, mais le MTU est toujours 9000

Comment définir le MTU sur 9000 pour eth0 et eth1 au démarrage afin que le pont fonctionne à 9000?

Existe-t-il également un moyen de tester / etc / network / interfaces sans redémarrer tout le temps?

RoboJ1M
la source

Réponses:

9

Il semble que l' mtuoption ne soit pas disponible lors de l'utilisation de la manualméthode (voir interfaces(5)). Alors, voici ce qui est censé fonctionner (en intégrant les commentaires des commentaires):

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

En utilisant l' option up(ou dans ce cas post-up), nous pouvons spécifier notre propre commande à exécuter pendant (ou après) le moment où l'interface est lancée.

gertvdijk
la source
1
Le pont lui-même semble simplement prendre le plus petit MTU de son ensemble de périphériques hébergés et l'utilise. MTU sur br0 dans le fichier d'interface provoque l'échec de la mise en réseau au démarrage.
RoboJ1M
Cependant, j'ai réussi à le résoudre la nuit dernière, en utilisant presque exactement cette solution. J'ai ajouté: post-up ifconfig eth0 mtu 9000à la fin de la section br0, deux fois, à la fois pour eth0 et eth1.
RoboJ1M
@ RoboJ1M Merci, j'ai mis à jour ma réponse.
gertvdijk
si vous n'avez pas ifconfig, utilisez le lien ip:post-up ip link set dev eth0 mtu 9000
Jonathan S. Fisher
Mon impression (je me trompe peut-être) est que l' mtuoption devrait être prise en charge dans la manualméthode (certainement la page de manuel du 14.04 ne le suggère pas) et que le problème est probablement plus lié à ce bug (voir commentaire # 4 en particulier). Il est très probable que cela soit corrigé dans 16.04 en tant que sous-produit de la migration systemd
sxc731