orbi RBR20 메시 라우터를 DHCP 서버로 사용할 때 dnsmasq pxeproxy 사용 도움말

orbi RBR20 메시 라우터를 DHCP 서버로 사용할 때 dnsmasq pxeproxy 사용 도움말

관리자가 기본 DHCP 서버에 대한 구성 없이 추가 옵션(예: PXE)으로 DHCP 클라이언트에 응답하기 위해 DNSProxy를 활용한 일부 블로그를 읽었습니다.

내 홈 네트워크에서는 Orbi 라우터의 기본 DHCP 서비스를 유지하고 어떤 방식으로든 해킹하거나 수정하지 않고도 정상적인 작업을 수행할 수 있기를 원합니다.

이상적으로는 PXE 부팅에 응답하여 네트워크에서 DNSMasq 및 TFTP 서버를 사용하여 Linux 호스트를 실행할 수 있습니다. Ubuntu와 Rocky Linux에서 이것을 시도했지만 dnsmasq가 응답하지 않는 이유를 알 수 없는 것 같습니다.

Orbi 라우터는 192.168.1.254이고, PXE/TFTP/DNSMasq 상자는 192.168.1.17입니다.

이것은 dnsmasq의 내 구성입니다.

$ cat /etc/dnsmasq.conf
conf-dir=/etc/dnsmasq.d
port=0
log-dhcp
log-queries
interface=enp1s0,lo

# DHCP Proxy
dhcp-range=192.168.1.0,proxy,255.255.255.0

# PXE
dhcp-boot=pxelinux,,192.168.1.17

# TFTP Options
tftp-root=/var/lib/tftpboot

무엇을 시도하더라도 노드를 부팅해도 네트워크 응답에서 PXE 부팅/부팅을 얻지 못하는 것 같습니다...

로그에서 DNSMasq가 DHCP 요청 브로드캐스트 패킷을 가로채는 것을 볼 수 있습니다. 왜냐하면 요청이 이루어질 때 메시지를 기록하기 때문입니다(마지막 줄).

$ sudo journalctl -efu dnsmasq
-- Logs begin at Mon 2021-07-12 22:25:44 EDT. --
Jul 12 22:48:28 localhost.localdomain systemd[1]: Started DNS caching server..
Jul 12 22:48:28 localhost.localdomain dnsmasq[5229]: started, version 2.79 DNS disabled
Jul 12 22:48:28 localhost.localdomain dnsmasq[5229]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN2 DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jul 12 22:48:28 localhost.localdomain dnsmasq-dhcp[5229]: DHCP, proxy on subnet 192.168.1.0
Jul 12 22:48:35 localhost.localdomain dnsmasq-dhcp[5229]: 3411263825 available DHCP subnet: 192.168.1.0/255.255.255.0

기본적인 디버깅을 시도 중입니다... nmap을 사용하여 dhcp를 테스트하기 위해 다른 Linux 상자(192.168.1.80)에 로그인하고 있지만 DNSMasq 상자에서 다른 DHCP 옵션을 가져올 수 없는 것 같습니다.

$ sudo nmap --script broadcast-dhcp-discover -e eth0
Starting Nmap 7.80 ( https://nmap.org ) at 2021-07-13 02:26 UTC
Pre-scan script results:
| broadcast-dhcp-discover:
|   Response 1 of 1:
|     IP Offered: 192.168.1.21
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.1.254
|     IP Address Lease Time: 1d00h00m00s
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.1.254
|_    Domain Name Server: 192.168.1.254
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.10 seconds

DNSMasq 상자에서 tcpdump를 실행하면 테스트 상자에서 브로드캐스트된 패킷(아래 첫 번째 패킷)과 라우터의 응답(두 번째 패킷)을 볼 수 있지만 DNSMasq 상자의 IP 주소는 볼 수 없습니다.

$ sudo tcpdump -i enp1s0 port 67 or port 68 -e -n
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp1s0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:26:49.849265 dc:a6:32:64:61:49 > Broadcast, ethertype IPv4 (0x0800), length 358: 192.168.1.80.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from de:ad:c0:de:ca:fe, length 316
22:26:50.138984 78:d2:94:50:e9:12 > Broadcast, ethertype IPv4 (0x0800), length 342: 192.168.1.254.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300

내가 뭘 잘못하고 있는지 잘 모르겠습니다. 어쩌면 이것이 내가 하려는 일을 하는 올바른 방법이 아닐 수도 있습니다. 어떤 조언이라도 대단히 감사하겠습니다.

답변1

내 생각에 당신이 말하는 것은 당신이 이점을 원한다는 것입니다.프록시DHCP. 대신 pxe-service의 옵션을 사용하고 싶습니다 .dnsmasqdhcp-boot

dnsmasq이는 ProxyDHCP를 제공하는 게시물을 기반으로 한 최소 구성입니다.

log-dhcp
dhcp-range=192.168.1.0,proxy,255.255.255.0
dhcp-match=set:pxe,60,PXEClient
pxe-service=tag:pxe,X86PC,"PXE BIOS",pxelinux.0,192.168.1.17

보다 역동적인 응답을 위해 고급 구성을 다른 매개변수와 일치시킬 수 있습니다. 예를 들어 클라이언트의 아키텍처를 기반으로 파일을 제공합니다.

링크

관련 정보