IPアドレスの静的設定ができん! at Ubuntu 18.04 LTS server

NICが2つある計算機に,Ubuntu 18.04 LTS serverをインストールし,ネットワークの設定を試みたが,手順はあっているはずなのにIPアドレスの静的設定できず,2時間くらい溶かした話.
そして,悩みに悩んだ結果,そんなオチかよということで解決した話

NICが2つある計算機,1つはDHCPでIPアドレスを取得するのでよいのだが,
もう1つのNICには,Private IP addr.をstatic(静的)設定するのが目標だった.

Ubuntu 18.04 LTS serverをインストールしたので,networkの設定はnetplanというツールを使う.私としては,/etc/network/interfacesによる設定に慣れているのでこちらを使いたかったが,過去のUbuntu LTS versionからのupdateではなく,18.04 serverをクリーンインストしたので,こういうメッセージとともにこの設定はobsoluteになっていた.

1
2
3
4
5
% cat /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown

というわけで,おとなしく netplan によるIPアドレス設定を試みる.
まず /etc/netplanディレクトリに移動する.そこには 50-cloud-init.yaml というファイルがある.しかし,これを書き換えて設定するのではなく,このファイルをコピーし別ファイルを作成し,それを設定に使用した.(今回は 10-enp3s-enp0s25.yaml とした).

なお enp3s0, enp0s25 は,NICの名称である.NICにつけられている名称は ipコマンドを使い,% ip a を実行すれば知ることができる.
(なお,このinterface nameが気持ち悪いという人は私に限らずいるようで,参考Webページの項目 6,7の方法でNICの名称を以前のような名称ethNに変更している人もいるようだ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
% ls /etc/netplan
./ ../ 10-enp3s-enp0s25.yaml
#

% cat 10-enp3s-enp0s25.yaml
# This file is ...
network:
renderer: networkd
ethernets:
enp0s25:
dhcp4: no
addresses: [ 192.168.121.5/24 ]
gateway4: 192.168.121.1
nameservers:
addresses: [ 1.1.1.1, 8.8.4.4 ]
enp3s0:
dhcp4: no
addresses: [ 192.168.111.10/24 ]
version: 2

で,以下のコマンドを実行すれば設定は完了する.と,多くのWebページに書いてある.なのでその通りに行ったのだが.な・ぜ・か,設定されず.netplanの設定ファイルを試行錯誤し,そして netplan applyコマンドを実行し,ipコマンドで設定されたかどうかを確認する,を繰り返す.

1
2
% sudo netplan apply 
% ip addr

が,何度繰り返しても,ipコマンドの表示に指定したstatic IP addrが設定された,という表示が出てこない!.挙げ句の果てには,設定ファイルを書き換え,再起動する.を何回か繰り返したがダメ,そして,何かしらの構成を壊してしまったかと思い,Ubuntuの再インストールも行なった.が,結果は同じだった.

糖分とコーヒを補給し,もういちど考え直す.「いや,関係ない…」と思っていたのだが,気になったのは「static IP addrを設定しようとしている側のNICには,LANケーブルをつないでいない」ことだった.これまでの経験上,NICにIPアドレスを設定するのに,LANケーブルの接続が必須なんてことはなった.LANケーブルがNICに接続されていなくても,NICへのIPアドレスの設定はできていたからである.

「まさかね」と思い,該当NICにLANケーブルをつないで計算機を再起動させてみた.

すると,何事もなかったのようにあっさりと指定した通りのPrivate IP addr.がNICに設定されたではないか.ipコマンドの表示を見た時,数秒ほど呆けた.え,これが原因だったのかと… (ちなみに,単にLANケーブルをNICに挿すだけではダメで,LANケーブルの反対側もSWHubなり,別の計算機なりにつながっていてCarrier Senseができる状況が必要なようです.)

この作業に2時間以上かけた.こんなオチだとは想像もしなかったし,初めての経験だった.ハードウェア依存の問題なのかもしれないが,当該NICはIntel製のNICで,これまでにも使ってきたものであり,IPアドレスの設定でこういうことはなかったと思う.だとすると,やはりUbuntuやLinuxの問題なのだろうか? 最近のOSは,LANケーブルが接続されていないnetwork interfaceにIPアドレスを設定しても意味がないので,設定しない,ということになったのだろうか? だとしても,Server運用開始後にLANケーブルを接続したら,HotPlugのようにその場でIPアドレスが設定されるのだろうか? 興味は尽きないが,疲れたので今日はこれまで

追伸

Ubuntu 18.04 LTS serverの再起動は,やたらと時間がかかる.しかも,それはnetwork設定のところで1〜2分ぐらいかかっているようである.これが うっとおしいこと限りなかったので,以下の参考Webページ(項目 8, 9)に書かれている以下の設定を行った.

1
2
% sudo systemctl disable systemd-networkd-wait-online.service
% sudo systemctl mask systemd-networkd-wait-online.service

参考Webページ

  1. Netplan
    https://netplan.io
  2. 【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろ
    https://qiita.com/yas-nyan/items/9033fb1d1037dcf9dba5
  3. Ubuntu 18.04 LTSで固定IPアドレスを設定する方法【サーバー編】
    https://linuxfan.info/ubuntu-1804-server-static-ip-address
  4. Ubuntu 18.04 LTSで固定IPアドレスの設定
    https://qiita.com/zen3/items/757f96cbe522a9ad397d
  5. Ubuntu 18.04 LTS のネットワーク設定がnetplanというものになっているのでその扱い方についてのメモ書き
    https://blog.dshimizu.jp/article/1196
  6. Persistently rename a Linux network interface without Udev / Reboot
    https://serverfault.com/questions/910406/persistently-rename-a-linux-network-interface-without-udev-reboot
  7. How to rename a network interface in Ubuntu 18.04
    https://www.tomvanbrienen.nl/how-to-rename-ubuntu-18-04-an-network-ethernet-interface/
  8. ubuntu がネットワーク待ちで起動が遅い・・・
    https://takuya-1st.hatenablog.jp/entry/2017/12/19/211216
  9. Ubuntu18.04 インストール後の初期設定メモ (起動時の待ち時間をなくす)
    https://qiita.com/hatayan1126/items/c67f87a86f1538bb86af#%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%AE%E5%BE%85%E3%81%A1%E6%99%82%E9%96%93%E3%82%92%E3%81%AA%E3%81%8F%E3%81%99

— ends here

IPアドレスの静的設定ができん! at Ubuntu 18.04 LTS server

http://the.netaro.info/2020/03/12/2020-0322_staticIPCfg/

Author

T.T

Posted on

2020-03-12

Updated on

2020-12-12

Licensed under