dhcpcd が特定のインターフェースに対して DHCP するのをやめるように指定してもやめない

この記事を作った動機 dhcpcd を使って管理している PC があるが、最近その挙動について何度も DHCP して IP を取得しては、新しいものを取得するという動作をして、他の PC が接続できなくなるほど、IP プールを勝手に枯渇させるということがあった。 特定インターフェースについて、そもそも DHCP とかで勝手に設定しないように指定したつもりであったが、機能していないことが分かった。動くまで調べ、機能しているように見えるところまで持ってきたのでそれについて記録する。ただしばらく動かしてみないと実際機能しているかわからないので、すぐわかる範囲での暫定的な記録となる。 設定方法 /etc/dhcpcd.confの最上位に、denyinterfaces [DHCPしないインターフェース名1] [DHCPしないインターフェース名2] ...というように記述する。基本的に DHCP したり静的に IP などを取得し設定するインターフェースの設定より上に書かないといけないっぽいことが今回調べて分かった。denyinterface getting ignored - Raspberry Pi Forums に書かれているように、dhcpcd は設定ファイル内の順次自体が大事なように見受けられる。設定例はブログに乗せるために...として省略している部分がある。 機能しているっぽい設定例 # cat /etc/dhcpcd.conf # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. denyinterfaces eno2 enp0s20u11 ... interface eno1 static ip_address=192.168.1.x static routers=192.168.1.x static domain_name_servers=8.8.8.8 機能していないっぽい設定例 # cat /etc/dhcpcd.conf # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. ... interface eno1 static ip_address=192.168.1.x static routers=192.168.1.x static domain_name_servers=8.8.8.8 ... denyinterfaces eno2 enp0s20u11 問題となっているPCなどの構成情報 関係のありそうな構成情報の列挙 Arch Linux Firewalld dhcpcd nftables SoftEther VPN 今回登場するPCの説明 ルータPC 家庭用ルータに置き換えて、nftables と kea によってルータ化した PC である。基本的な機能性は家庭用ルータと変わらないように意識し、USB NIC と内蔵 NIC の2つからなる。今回説明に出てくる、具体的なインターフェース名に紐づく物理 NIC とは関係ない。 ...

March 3, 2026

Linux PC に DHCP サーバを立てる

この記事を作った動機 Linux PC をルータ化するの話が長くなりすぎたので分けた。ここでは、簡易的にDHCPサーバを Linux 上で立てる方法について、簡易的にまとめることにする。難しいことはせず簡単に設定したので、不十分である可能性がある。今回は以下の項目について、今回立てるDHCPサーバでできることを目指した。 IPv4 で動作し、IPv6は今回取り扱わない デフォルトゲートウェイを設定する DNS サーバを設定する IPを新しく接続されたコンピュータに対して割り当てる また、Linux PC をルータ化する でマスカレードやらの設定が終わっていてすでにネットワークが機能している状態を想定している。ネットワークの構成については、今回テストに使ったものは以下のような構成である。192.168.0.0/24のネットワークについて、DHCPサーバを構成することを目指す。 手順 パッケージのインストール yay -Sy kea # sudo pacman -Sy kea /etc/kea/kea-dhcp4.conf設定をする # commentで示されるコメント部分は以下の例から取り除かないと多分動かない。また以下はほとんど Kea - ArchWiki の設定をコピーして私のテスト環境用に設定をちょっといじっただけである。 { "Dhcp4": { "interfaces-config": { "interfaces": [ "eno1" ], # DHCPサーバを動かしたい LAN 側のインターフェースを指定する "dhcp-socket-type": "raw" }, "subnet4": [ { "id": 1, "subnet": "192.168.0.0/24", # 管理するネットワークを指定する "pools": [ { "pool": "192.168.0.10 - 192.168.0.199" } ], # あたらしく接続されたクライアントに割り当てるIPの範囲を指定する "option-data": [ { "name": "routers", "data": "192.168.0.3" # デフォルトゲートウェイにしたいサーバを指定する }, { "name": "domain-name-servers", "data": "192.168.0.3" # DNS サーバを指定する } ] } ] } } kea-dhcp4サービスを有効化、起動する sudo systemctl enable --now kea-dhcp4 DHCPでネットワーク設定を自動取得できるか試す スイッチ越しにクライアントを接続し設定なしでインターネットなどが利用できることを確認する。 ...

February 26, 2026