現行のDebian StableであるDebian 9 (stretch)やUbuntu Server 17.04までのバージョンは、次のサイトのようにinterfacesの設定で、インターフェイスをstaticにしてIPアドレスとともにMTUを指定してifdown,ifupするか、再起動してしまえば設定した通りのMTUがインターフェイスに設定されました。
ところがUbuntu 17.10以降はnetplan.ioに移行しており、Ubuntu Serverについては「networkd+netplan.io」の組み合わせで組み込まれています。IPアドレスの設定は変わったものの、まあいつもの感覚でインターフェイスにMTUを設定してsudo netplan apply
とかやったらMTUを設定変更できるかなと思ったらできなくて、「それでは再起動したら反映されるかな」と思ったのですがそれもダメで、調べたら次のようなIssueにぶち当たりました。
Bug #1724895 “MTU not applied on private ethernet interfaces” : Bugs : netplan
物理デバイスにMTUを設定する場合は、次のようにMACアドレスを記述してそれにマッチした場合はこのMTUを設定する...のように書くと良いことがわかりました。こんなのわからないよ。
... enp94s0f0: match: macaddress: xx:xx:xx:xx:xx:xx addresses: - 10.5.0.13/24 mtu: 9000 dhcp4: false optional: true
ちなみにVLANとかBondingポートにMTUを設定する場合は、次のような感じで特にMACアドレスを何することなく設定できるようです。一貫性がないな。
またひとつ、netplan.ioが嫌いになりました。マニュアルインストールはせずに、クラウドやコンテナでUbuntuを使う場合はハマらないところだとは思うけど、なんだかなあという仕様ですね。