Ubuntu Linux で LAN アダプターの MTU を設定する
Network
Ubuntu Linux 20.04.4 LTS にインストールしたイーサーネットアダプター ORICO PTR-FU-BK-BP の MTU 値を変更してジャンボフレームに対応させてみました。
先日に こちら で、ORICO の 2.5GbE 対応イーサーネットアダプター PTR-FU-BK-BP を Ubuntu Linux 20.04.4 LTS で使えるようにしてみましたけれど、このネットワークアダプターの MTU を変更してみました。
MTU について
MTU 値はイーサーネットで通信を行う際の、1回に送信できるデータ量を表す数値です。
標準では 1,500 ですけれど、通信経路も含めてジャンボフレーム対応の機器同士で通信するときには MTU の値を引き上げておくと、両者間で対応できる最大のデータ量で通信できるようになり、通信効率が幾分向上するそうです。
途中経路のイーサーネット HUB などもそのデータ量を扱えないと通信障害が起こることにもつながるそうなので、LAN という規模の小さな環境であっても、設置している HUB の仕様を踏まえて適切な MTU 値を指定する必要があります。ジャンボフレーム対応の HUB であれば、一般的には 9,000 まで指定できるようですけれど、規格的な決まりはないため、機器ごとに最大いくつまでの MTU を扱えるかは把握しておくのが重要そうです。
MTU を設定する
Ubuntu Linux 20.04.4 LTS の MTU は、既定では 1,500 が設定されるようですけれど、設定ファイル /etc/netplan/01-network-manager-all.yaml
を調整することで変更できました。
たとえば目的のネットワークインターフェイスの名前が enp5s0
で、その MAC アドレスが 00:e0:4c:66:83:7f
だったとすると、次のような設定内容を追記することで MTU の値を指定できます。
network:
version: 2
renderer: NetworkManager
ethernets:
enp5s0:
match:
macaddress: 00:e0:4c:66:83:7f
mtu: 9000
dhcp-identifier: mac
dhcp4: yes
dhcp6: yes
optional: true
この例では、MTU を 9,000 にしています。その他、IP アドレスは DHCP からの自動取得するなどの指定も含めた感じの記載にしてあります。
今回の自分の環境では、使用しているイーサーネット HUB が MTU 15,000 まで対応しているものだったので、ここで指定する MTU の値も 9,000 より大きく設定したかったのですけれど、少なくとも今回使用している PTR-FU-BK-BP では 9,000 より大きい値を指定しても設定が無視される様子だったので 9,000 にしてあります。
設定項目をどこまで指定する必要があるかわからなかったのですけれど、たとえば dhcp4:
の指定を書いていないと IP アドレスが適切に割り当てられなかったりしたので、基本的には設定内容をひと通り明記することになりそうな気がします。
MTU の設定を反映する
設定ファイルに記載した MTU 値は、次のようにすることで実際のネットワークインターフェイスに反映できます。
sudo netplan apply
ただしこのとき、次のようなエラーがでることがありました。 そんなときにはもう一回、同じコマンドを実行してあげることでエラーが出ずに設定が反映される様子でした。
WARNING: systemd-networkd is not running, output will be incomplete.
Failed to reload network settings: No such file or directory
Falling back to a hard restart of systemd-networkd.service