はじめに
以前から自宅サーバーを運用していましたが、ネットワーク機器の交換を機に、IPアドレスをDHCPサーバー側で固定する設定に改めて取り組みました。この記事では、その作業の記録を残します。
0. MACアドレスの確認
はじめに、サーバーのMACアドレスを確認します。私はUbuntuを使用しているため、他のOSの方は適宜コマンドを置き換えてください。
$ ip a | less
192.168.1.xx/24などと表示されている項目のネットワークインターフェース名(例: eth0やenp0s3など)と、link/etherの後に続く MACアドレス(例: xx:xx:xx:xx:xx:xx)をメモしておきます。
1. ルーターのDHCPの設定
ブラウザからルーターの設定画面(通常は192.168.1.1など)にログインし、DHCP固定IPアドレス設定を探します。
設定画面を開いたら、MACアドレスには先ほどメモしたサーバーのアドレスを、IPアドレスには固定したい番号を入力します。
エントリを作成した後、その項目を有効化するのを忘れないように注意してください(1敗)
2. netplanの設定
サーバーに再度ログインし、Netplanの設定ファイルを編集します。私の環境では/etc/netplan/01-config.yamlでした。
以下の内容を記入します。<ネットワークインターフェース名>には、手順0でメモしたものを記入してください。この設定により、サーバーはDHCPクライアントとして動作し、ルーター(DHCPサーバー)から常に特定のIPアドレスを受け取ることになります。
network:
version: 2
renderer: networkd
ethernets:
<ネットワークインターフェース名>:
dhcp4: true # DHCPv4を有効化
ファイルを保存した後、以下のコマンドでNetplanを適用します。
sudo netplan try
無事IPアドレスが割り当てられているかは、以下のコマンドで確認できます。
$ ip a | less
state UPとなっていて、固定したIPアドレスが出力されていれば完了です。
2.5. IPアドレスの再取得
設定が前後したなどで、以前のIPアドレスのままになっている場合は、DHCPサーバからIPアドレスの再取得が必要です。
Ubuntuでは、dhclientコマンドを使用して以下の手順で再取得できます。
IPアドレスの解放
$ sudo dhclient -r
設定の確認
新しいIPアドレスの取得
$ sudo dhclient
3. (おまけ)Ubuntuで静的IPを設定するだけでは不十分な理由
「ubuntu ip 固定」などで検索すると、Netplanの設定で直接IPアドレスを指定する静的IP設定に関する記事がよく見つかります。
静的IP設定の例 (非推奨)
network:
version: 2
renderer: networkd
ethernets:
<ネットワークインターフェース名>:
dhcp4: false
addresses:
- 192.168.1.100/24 # 直接IPを指定
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
この方法は、サーバー側の設定だけで完結するため手軽ですが、IPアドレスが重複する可能性があります。
IPアドレスの割り当ての仕組み
一般家庭のネットワーク構成を想定した場合、IPアドレスは通常、ルーター内のDHCPサーバーから端末に対して動的に割り当てられます。
サーバー内で静的IPを指定する方法は、端末自身が「このIPアドレスを使用する」と宣言するものです。しかし、DHCPサーバーは、そのIPアドレスが使用中であることを知らないまま、後から接続した他の端末に同じ番号を割り振ってしまう可能性があります。
IPアドレスが重複すると、ネットワーク通信が不安定になったり、接続できなくなったりするコンフリクトが発生します。
DHCPで固定するメリット
今回の記事のようにDHCPサーバー(ルーター)側でMACアドレスとIPアドレスを紐付けて固定する方法は、DHCPが他の端末に対して誤って同じIPを割り振るのを防げるため、IPアドレスの重複を確実に回避でき、より安全でクリーンな設定となります。
おわりに
ネットワークの設定は複雑に感じられることもありますが、適当に放置しておくと、後々のトラブルシューティングで余計な調査時間が発生することにつながります。今回の手順のように、設定をきれいに整理しておくことで、長期的な運用がスムーズになりますね!