南波水測長「ありがてぇ。これで思い切りサーバ操作ができる」
ということで連休中に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}=="aacc:ddff", 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
をやってもだめ。
とうとうあきらめてスクリプトの方を直すことにしました。
まあ置換すればいいだけだけどね。
後日詳しく確認します。