Ошибка при установке MTU 9000
1. Проблема
При попытке установить значение MTU для логической сети равное 9000 (Jambo Packet) и последующем назначении этой логической сети физическому сетевому адаптеру появляется ошибка:
В лог файлах есть следующие записи:
-
В лог файле messages:
Mar 16 13:04:33 ps-stand NetworkManager[1604]: <warn> [1678961073.2031] platform-linux: do-change-link[2]: failure changing link: failure 22 (Invalid argument - mtu greater than device maximum) Mar 16 13:04:33 ps-stand NetworkManager[1604]: <warn> [1678961073.2031] device (enp1s0): mtu: failure to set IPv6 MTU Mar 16 13:04:33 ps-stand NetworkManager[1604]: <warn> [1678961073.2033] platform-linux: do-change-link[2]: failure changing link: failure 22 (Invalid argument - mtu greater than device maximum) Mar 16 13:04:33 ps-stand NetworkManager[1604]: <warn> [1678961073.2035] device (enp1s0): mtu: failure to set IPv6 MTU
-
В логах файлах VDSM можно увидеть какие изменения пытались применится к адаптеру:
2023-03-16 13:08:23,525+0300 INFO (jsonrpc/3) [api.network] FINISH setupNetworks error= desired ======= --- name: enp1s0 type: ethernet state: up mtu: 9000 current ======= --- name: enp1s0 type: ethernet state: up accept-all-mac-addresses: false ethernet: auto-negotiation: false ethtool: feature: tx-generic-segmentation: true tx-tcp-segmentation: true ring: rx: 256 tx: 256 ipv4: enabled: false ipv6: enabled: false lldp: enabled: false mac-address: 56:6F:4B:F3:00:83 mtu: 1500 difference ========== --- desired +++ current @@ -2,4 +2,21 @@ name: enp1s0 type: ethernet state: up -mtu: 9000 +accept-all-mac-addresses: false +ethernet: + auto-negotiation: false +ethtool: + feature: + tx-generic-segmentation: true + tx-tcp-segmentation: true + ring: + rx: 256 + tx: 256 +ipv4: + enabled: false +ipv6: + enabled: false +lldp: + enabled: false +mac-address: 56:6F:4B:F3:00:83 +mtu: 1500 from=::ffff:172.25.1.146,43600, flow_id=b0efccc1-7f6f-4ec1-acca-5814e8a1b8c7 (api:52) 2023-03-16 13:08:23,526+0300 ERROR (jsonrpc/3) [jsonrpc.JsonRpcServer] Internal server error (__init__:354) Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/yajsonrpc/__init__.py", line 349, in _handle_request res = method(**params) File "/usr/lib/python3.6/site-packages/vdsm/rpc/Bridge.py", line 194, in _dynamicMethod result = fn(*methodArgs) File "<decorator-gen-501>", line 2, in setupNetworks File "/usr/lib/python3.6/site-packages/vdsm/common/api.py", line 50, in method ret = func(*args, **kwargs) File "/usr/lib/python3.6/site-packages/vdsm/API.py", line 1579, in setupNetworks supervdsm.getProxy().setupNetworks(networks, bondings, options) File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 56, in __call__ return callMethod() File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 54, in <lambda> **kwargs) File "<string>", line 2, in setupNetworks File "/usr/lib64/python3.6/multiprocessing/managers.py", line 772, in _callmethod raise convert_to_error(kind, result) libnmstate.error.NmstateVerificationError: desired ======= --- name: enp1s0 type: ethernet state: up mtu: 9000 current ======= --- name: enp1s0 type: ethernet state: up accept-all-mac-addresses: false ethernet: auto-negotiation: false ethtool: feature: tx-generic-segmentation: true tx-tcp-segmentation: true ring: rx: 256 tx: 256 ipv4: enabled: false ipv6: enabled: false lldp: enabled: false mac-address: 56:6F:4B:F3:00:83 mtu: 1500 difference ========== --- desired +++ current @@ -2,4 +2,21 @@ name: enp1s0 type: ethernet state: up -mtu: 9000 +accept-all-mac-addresses: false +ethernet: + auto-negotiation: false +ethtool: + feature: + tx-generic-segmentation: true + tx-tcp-segmentation: true + ring: + rx: 256 + tx: 256 +ipv4: + enabled: false +ipv6: + enabled: false +lldp: + enabled: false +mac-address: 56:6F:4B:F3:00:83 +mtu: 1500
2. Решение
Данная проблема может возникать из-за того, что сетевой адаптер не поддерживает определённый размер MTU.
Поддерживаемые значения MTU адаптера можно проверить командой:
ip -d link list
Минимальные и максимальные значения MTU, поддерживаемые физическим адаптером будут доступны в выводе команды:
enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 56:6f:4b:f3:00:a1 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 1500 addrgenmode none numtxqueues 4 numrxqueues 4 gso_max_size 65536 gso_max_segs 65535