udev
ubuntu16.04

Ubuntu 16.04 LTSにしたらeth0がなくなっていた件について

More than 1 year has passed since last update.

南波水測長「ありがてぇ。これで思い切りサーバ操作ができる」

ということで連休中にUbuntu12.04LTSのサーバを何台かアップグレードしようと思いました。
せっかく4月にUbuntu16.04LTSが出たので、systemdがなーとは思いましたが、サポートは長い方がうれしいので強行することに。

インストールしてファイアウォールの設定を始めようとしたらなんか変なんです。
/etc/interfacesは直してあるんですが、ifconfigするとおなじみのeth0やeth1がなくなってて、ens33とかenp3s1なんかになってる。

何これ、とぐぐりましたら、以下がヒット。15.10から命名規約が変わってたらしいです。
Network interface name changes after update to 15.10 - udev changes

Xenialのベータも長いこと使ってましたが、そっちはiptablesなんてほとんどいじってなかったので、全然気がついてなかったのでした。

旧サーバからスクリプトは引き継ぎたいので、上記記事に従ってデバイス名をeth0に戻す方向で変更します。

$ nano /etc/udev/rules.d/10-network.rules

Add following line
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:flag_bb:cc:dd:flag_ee:ff", NAME="net1"

ifconfigでMACアドレス調べて、空ファイルだった/etc/udev/rules.d/10-network.rulesにeth0からeth2まで書き足します(なぜかたくさんあるのですw)。

はい、再起動してこれでeth0に戻りました。
めでたしめでたし。

のはずなのですが、ifを3つ設定しようとするとなぜかeth2しか出てこない。なんですかこれ。バグなの?書式は死ぬほど確認したよ。でも何度再起動してもだめ。

ネットワーク設定

伝統的なデバイス名に戻す
eth0 などの伝統的なインターフェイス名に戻したい場合、次のコマンドで Predictable Network Interface Names を無効にできます:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

をやってもだめ。

とうとうあきらめてスクリプトの方を直すことにしました。
まあ置換すればいいだけだけどね。

後日詳しく確認します。