VyOS DHCP サーバーは、LAN 側端末へ IPv4 アドレス、default gateway、DNS、domain-name、lease を配布するための機能です。設定自体は短く見えますが、LAN セグメント、固定 IP、DNS forwarding、Firewall、NAT と強く関係します。
vyos dhcp で調べる時に重要なのは、配布範囲だけではありません。どの端末を DHCP 対象にするのか、固定 IP と重ならないか、クライアントへどの DNS と gateway を渡すのかを先に決めます。
この記事では、VyOS 1.5 系で読むことを前提に、LAN 向け DHCP サーバー設定、確認コマンド、よくあるつまずきを確認します。細かな表示やコマンド差分は利用している ISO と構成で確認してください。
書籍
IP アドレス設計、DHCP、DNS、ルーティングの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- DHCP は IP アドレスだけでなく default-router、DNS、domain-name、lease も配る
- 固定 IP と DHCP 配布範囲は必ず分ける
- 内部 DNS を使う場合は DNS forwarding や上流 DNS と合わせて確認する
- 複数セグメントでは shared-network-name と subnet の対応を明確にする
- 設定後は VyOS 側の lease と端末側の取得情報を分けて見る
DHCP サーバーで決めること
| 項目 | 意味 | 注意点 |
|---|---|---|
| subnet | DHCP を配布する LAN セグメント | interface のアドレスと合っているか見る |
| range | 配布するアドレス範囲 | 固定 IP と重ねない |
| default-router | 端末へ渡す gateway | VyOS の LAN 側アドレスを指定することが多い |
| dns-server | 端末へ渡す DNS | 内部 DNS か外部 DNS か決める |
| domain-name | 端末へ渡す検索 domain | 内部名前解決の前提に合わせる |
| lease | 貸し出し時間 | 検証環境と安定運用で値を変える |
固定 IP と配布範囲を分ける
DHCP を設定する前に、固定 IP と DHCP 配布範囲を分けます。たとえば gateway、DNS、監視サーバー、固定運用する機器を 192.168.0.1 から 192.168.0.99 に置き、端末向け DHCP を 192.168.0.100 から 192.168.0.199 にする、という考え方です。
| 範囲 | 用途 |
|---|---|
| 192.168.0.1 | VyOS LAN 側 gateway |
| 192.168.0.2-99 | 固定 IP 機器、DNS、監視、サーバー |
| 192.168.0.100-199 | DHCP 配布範囲 |
| 192.168.0.200-254 | 予備、検証、一時利用 |
DHCP サーバーを設定する
次は、192.168.0.0/24 の LAN に対して、192.168.0.100 から 192.168.0.199 までを配布する例です。gateway は VyOS の LAN 側アドレス、DNS は内部 DNS サーバーを指定する想定です。
configure
set service dhcp-server shared-network-name INSIDE authoritative
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 default-router '192.168.0.1'
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 dns-server '192.168.0.10'
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 domain-name 'example.local'
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 lease '86400'
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 range 0 start '192.168.0.100'
set service dhcp-server shared-network-name INSIDE subnet 192.168.0.0/24 range 0 stop '192.168.0.199'
commit
saveDNS forwarding と合わせる
DHCP で内部 DNS を配る場合は、その DNS が実際に名前解決できることを確認します。VyOS 自身で DNS forwarding を提供する構成なら、DHCP の dns-server と DNS forwarding の listen interface を合わせます。
show configuration commands | match 'dns forwarding'
show configuration commands | match 'dhcp-server'
show dns forwarding statistics確認する
設定後は、DHCP サーバー設定、lease、端末側の取得情報を分けて確認します。VyOS 側に設定が入っていても、VLAN、interface、Firewall、クライアント側のリンク状態が合わないとアドレスは配布されません。
show service dhcp-server
show dhcp server leases
show configuration commands | match 'dhcp-server'
show interfaces ethernet eth1端末側では、IP アドレス、default gateway、DNS、domain-name を確認します。アドレスだけ取れていても、DNS や default gateway が違うと利用者からは通信できないように見えます。
複数セグメントで使う場合
複数の LAN や VLAN へ配布する場合は、shared-network-name と subnet の対応を分かりやすく保ちます。同じ名前に複数 subnet を入れる場合と、セグメントごとに名前を分ける場合で、運用時の見え方が変わります。
- VLAN ごとに DHCP 範囲を分ける
- gateway と dns-server を subnet ごとに確認する
- 固定 IP 範囲と配布範囲を subnet ごとに決める
- 同一セグメントに複数 DHCP サーバーを置かない
- Firewall で DHCP Discover / Offer を邪魔していないか見る
よくあるつまずき
| 症状 | 見る場所 | 考え方 |
|---|---|---|
| 端末が IP を取れない | interface、VLAN、lease、Firewall | DHCP 設定だけで判断しない |
| IP は取れるが外に出ない | default-router、NAT、route | gateway と外向き経路を見る |
| 名前解決だけ失敗する | dns-server、DNS forwarding、上流 DNS | 疎通と DNS を分けて確認する |
| 固定 IP と衝突する | range と固定割当 | 配布範囲を固定 IP から離す |
| 別 subnet の設定を見失う | shared-network-name と subnet | 名前と subnet の対応を管理する |
まとめ
VyOS DHCP サーバー設定は、LAN 側端末へアドレスを配るだけの設定ではありません。配布範囲、default-router、DNS、domain-name、lease、固定 IP の分離をセットで決めることで、端末側の通信前提が決まります。
DHCP で IP アドレスを取得できても、DNS や gateway が間違っていると通信できないように見えます。設定後は VyOS 側の lease と端末側の取得情報を分けて確認し、DNS forwarding、NAT、Firewall と合わせて見ます。

