Posted at

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

More than 3 years have 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


をやってもだめ。

とうとうあきらめてスクリプトの方を直すことにしました。

まあ置換すればいいだけだけどね。

後日詳しく確認します。