PXE Boot で指定したTFTPサーバにたどり着かせられない(next-serverを上手く指定できない)

この記事を作った動機 デフォルトがPXEブートになっているPCがあり、CMOSクリアを何かしらの事情ですると、いちいちネットワークブートからしようとして真面目にうざいということがあった。そこで、PXEブートについて都合の良い環境を構築しようと思っていたものの、正直めっちゃめんどくさそうでに感じてかなり長いこと放置していたため、いい加減取り組もうということになった。 私はほとんどこの話題に関しては初見でよく分かっていなかったので、まずはUEFI以前のPCにおいて、pxelinuxまでたどり着くことを目標とした。とりあえず LLM に設定をある程度要件を渡して提案させ、分かる範囲で間違っている部分を公式ドキュメントなどを参考に修正しながら、Kea に DHCP の “Options” なるものを設定してみた。 そのところ、DHCP をPCが起動時に認識して、IPアドレスを取得したり正しくゲートウェイを認識したりはしたものの、“TFTP….“となってその後にTimeoutとなる挙動が繰り返されることとなった。用意しておいた TFTP サーバー自体は動いているものの tcpdump によって調べたところ、意図した TFTP サーバーに到達しておらず、DHCP サーバーをTFTP サーバーとして使おうとしている様子が観測された。 このことから、まだ現状では目的の達成には至っていないものの、マイルストーンとしてのpxelinuxを起動するところまではできたため、トラブルシュートで参照したサイトやったことなどに関して記録をまとめておきたい。 前提条件 DHCP サーバーには、kea を使っている DHCP サーバーは、PXEブートで使う TFTP サーバーとは別のPCで独立して動いている Arch Linux DHCP と TFTP(UDP/69ポート) をホストするサーバー両方において、Firewall の設定(ポート開放)が適切にされていること。 TFTP となるサーバのIPを192.168.aa.ccとする 手法に関すること TFTP をホストする yay -Sy uftpd sudo uftpd -n -o ftp=0,tftp=69 ./PXE # tftp RRQ 'pxelinux.0' from 192.168.aa.dd:2070 # tftp RRQ 'pxelinux.0' from 192.168.aa.dd:2071 # tftp RRQ 'ldlinux.c32' from 192.168.aa.dd:49152 # tftp RRQ 'pxelinux.0' from 192.168.aa.dd:2070 # tftp RRQ 'pxelinux.0' from 192.168.aa.dd:2071 # tftp RRQ 'ldlinux.c32' from 192.168.aa.dd:49152 Kea を設定する(詰まったこと) Kea の設定で難しいところがあった。TFTP のサーバーを指定するための next-server の指定に苦労した。結局のところネットで調べて、ようやく動いたという感じであった。また、LLM は間違った出力しかせず、Keaのドキュメントを参考資料として与えても改善が見られなかった。 ...

2026年11月3日

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 とは関係ない。 ...

2026年3月3日

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でネットワーク設定を自動取得できるか試す スイッチ越しにクライアントを接続し設定なしでインターネットなどが利用できることを確認する。 ...

2026年2月26日