LoginSignup
12
6

More than 3 years have passed since last update.

【ニッチなトラブル】Ubuntuで固定IPがうまくいかない(DHCPでMACとIPを紐づけできない)ときの対応

Posted at

MACとIPを紐づけても、IPが固定しない

Kubernetesクラスターを構築しようと、Raspberry Piに Ubuntu Server 20.04 LTS の64bit版を導入しました。
IPアドレスを固定化 するため、いつものように 1 、ルーターのDHCPサーバーの設定で、Raspberry Piの MACアドレスとIPアドレスを紐づけましたが、うまくいきません。

dhcp01a.png

【上図について】 raspi001~raspi003を、192.168.1.151~192.168.1.153に割り当てしようとしたものの(赤枠の部分でMACとIPの紐づけを設定)、動的に192.168.1.10xが割り当てられてしまいました。本来、Raspberry PiのMACアドレスは b8:27:ebdc:a6:32e4:5f:01 で始まりますが 2 、raspi001~raspi003には、まったく異なる値が表示されています。

悩みましたが、下記の対応策で解決しました。

ルーター側で固定IPを設定するメリット

ちなみに、Raspberry Pi側で固定IPを設定せず、ルーター側で設定しているのは、 次のようなメリットがある からです。

  • K8sクラスターを構成するすべてのRaspberry Pi(今回は3台)のIPアドレスを、ルーターで一括して設定できる
  • 今後、ネットワーク構成に変更が生じても、ルーターの設定変更だけで済む

原因は‥

実は、Ubuntu(少なくとも20.04)では、DHCPのリクエスト時に、 端末識別子として MACアドレスとは別の識別子 を送信します。このため、ルーター(DHCPサーバー)でMACアドレスを指定しても、別の端末と見なされ、IPアドレスが動的に割り振られます。

対応策:識別子としてMACを使うように設定

これを回避するには、Ubuntuのネットワーク設定で、DHCPの識別子にMACアドレスを使うよう設定します。最近のUbuntuでは、ネットワークの設定にnetplanを用いるため、 /etc/netplan/99_config.yaml を次のような内容で作成し、デフォルト設定を上書きします 3 (Raspberry Piの場合、有線のネットワークインターフェースは eth0 です)。

$ sudo vi /etc/netplan/99_config.yaml
/etc/netplan/99_config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      dhcp-identifier: mac

次のコマンドで、設定を仮反映します。

$ sudo netplan try

新しいIPでSSHを接続し直し、問題がなければ、次のコマンドで確定反映します。
問題がある場合は、120秒間待つと、元の設定に戻ります。

$ sudo netplan apply

以上の設定にすると、ルーター側でIPアドレスを固定にすることができました。

dhcp02a.png

【上図について】 raspi001~raspi003に、192.168.1.151~192.168.1.153が割り当てられました(赤枠の部分でMACとIPの紐づけを設定)。

なお、今回の設定は、netplanのドキュメントでは 4 Integration with a Windows DHCP Server の設定例として書かれており、なかなかわかりづらかったです。

参考:Raspberry Pi側で固定IPを設定する場合

/etc/netplan/99_config.yaml を次のような内容で作成します(反映方法は、DHCPの場合と同じです)。

/etc/netplan/99_config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.168.1.151/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 192.168.1.1
12
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6