J'utilise Netplan sur un système 18.04. J'ai été capable d'entraîner et de convertir la plupart de ma configuration réseau de mes systèmes 16.04 en Netplan pour 18.04, mais j'ai rencontré un problème maintenant en essayant de définir le MTU sur 9000 sur un pont utilisant un lien faisant partie d'un VLAN.
Ma configuration:
# Ceph network configuration
network:
version: 2
renderer: networkd
ethernets:
eth2:
dhcp4: no
dhcp6: no
optional: true
mtu: 9000
eth3:
dhcp4: no
dhcp6: no
optional: true
mtu: 9000
bonds:
bond1:
interfaces: [ eth2, eth3 ]
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
vlans:
bond1.220:
id: 220
link: bond1
mtu: 9000
bridges:
br-ceph-access:
addresses: [ x.x.x.x/24 ]
interfaces: [ bond1.220 ]
parameters:
forward-delay: 9
hello-time: 2
max-age: 12
stp: false
J'ai ajouté "mtu: 9000" aux deux cartes réseau qui font partie de la liaison, ainsi qu'au VLAN. C'est ce que j'ai fait, car l'ajout de "mtu: 9000" à l'interface de liaison ou à l'interface de pont génère l'erreur "unknown key mtu".
Dans tous les cas, le paramètre mtu: 9000
n'est pas respecté, comme vous pouvez le voir ici dans les sections correspondantes de ip a
(remarque mtu 15000
):
4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
link/ether b2:07:76:18:10:5b brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
link/ether b2:07:76:18:10:5b brd ff:ff:ff:ff:ff:ff
10: br-ceph-access: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 4e:b5:52:25:a4:c5 brd ff:ff:ff:ff:ff:ff
inet x.x.x.x/24 brd 172.16.238.255 scope global br-ceph-access
valid_lft forever preferred_lft forever
11: bond1: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether b2:07:76:18:10:5b brd ff:ff:ff:ff:ff:ff
Alors, où est-ce que je me trompe ici? Quelle est la bonne façon de définir mtu avec Netplan? Ai-je découvert un bogue qui doit être signalé?
J'ai résolu ce problème en ajoutant les paramètres MTU aux sections "bonds:" et "ponts:" (supprimées de la section "ethernets:"). Voici la configuration de travail:
# Ceph network configuration
network:
version: 2
renderer: networkd
ethernets:
eth2:
dhcp4: no
optional: true
eth3:
dhcp4: no
optional: true
bonds:
bond1:
interfaces: [ eth2, eth3 ]
mtu: 9000
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
vlans:
bond1.220:
id: 220
link: bond1
optional: true
bridges:
br-ceph-access:
optional: true
addresses: [ 172.16.238.133/24 ]
interfaces: [ bond1.220 ]
mtu: 9000
parameters:
forward-delay: 9
hello-time: 2
max-age: 12
stp: false
Je pense que vous voulez faire correspondre les périphériques par leur adresse MAC, sinon il est difficile pour systemd-networkd de savoir exactement à quels périphériques appliquer le MTU. Vous devez également spécifier que la MTU est 9000 pour la liaison elle-même, car ses options seront appliquées aux interfaces sous-jacentes lors de leur ajout à la liaison:
network:
version: 2
renderer: networkd
ethernets:
eth2:
match:
macaddress: 00:00:aa:bb:cc:dd
dhcp4: no
dhcp6: no
optional: true
mtu: 9000
eth3:
match:
macaddress: 01:01:aa:bb:cc:de
dhcp4: no
dhcp6: no
optional: true
mtu: 9000
bonds:
bond1:
mtu: 9000
interfaces: [ eth2, eth3 ]
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
vlans:
bond1.220:
id: 220
link: bond1
mtu: 9000
bridges:
br-ceph-access:
addresses: [ x.x.x.x/24 ]
interfaces: [ bond1.220 ]
parameters:
forward-delay: 9
hello-time: 2
max-age: 12
stp: false
Attention, les appareils correspondants ont leurs propres problèmes. voir https://github.com/CanonicalLtd/netplan/commit/a27122bc8d8e066b1a90a7fd8d65342e8b906a8e