DNSMASQ가 라우팅된 서브넷의 DNS 쿼리에 응답하지 않습니다.

DNSMASQ가 라우팅된 서브넷의 DNS 쿼리에 응답하지 않습니다.

두 개의 DD-WRT AP를 사용하여 두 개의 서브넷이 함께 연결되어 있습니다. 원격 AP는 클라이언트 라우팅 모드이므로 IP가 192.168.2.1/24 및 192.168.0.5/24인 별도의 서브넷이 있습니다. 로컬 AP가 AP 모드에 있습니다. DD-WRT DHCP 설정이 원격 AP에 대해 전달 모드에 있습니다.

IP 192.168.0.2/24의 첫 번째 서브넷 내에 DNSMASQ가 설정되어 있으며 두 번째 서브넷의 DHCP 서버이기도 합니다. 이것이 작동하고 원격 클라이언트가 올바른 라우터를 얻습니다. DNSMasq 시스템은 두 번째 서브넷에 있는 PC에 ping을 보낼 수 있으며 그 반대도 마찬가지입니다. 첫 번째 서브넷에 있는 PC에서 두 번째 서브넷에 있는 PC로 RDP를 수행할 수도 있습니다. 따라서 첫 번째에서 두 번째 서브넷까지의 통신 ​​대부분은 다음과 같습니다. 일하고 있는

내 문제는 DNSMasq가 두 번째 서브넷에 DNS 응답을 보내지 않고 첫 번째 서브넷에서는 작동한다는 것입니다. 누구든지 이유를 제안할 수 있나요?

한 가지 주목할 점은 두 번째 네트워크의 경로가 게이트웨이 장치(192.168.0.1)에 있었지만 이로 인해 많은 패킷이 삭제된 것을 발견했습니다. 따라서 첫 번째 서브넷 장치 각각에는 두 번째 서브넷에 추가된 로컬 고정 경로가 있습니다. 그것.

route add 192.168.2.0 mask 255.255.255.0 192.168.0.5

현재 문제로 인해 아직 DHCP 할당 경로를 테스트하지 않았습니다.

이건 내가 가지고 있는 것의 스케치야스케치 네트워크

DNSMASQ 구성

# Configuration file for dnsmasq.
domain-needed
bogus-priv
addn-hosts=/etc/dnsmasq.hosts
# so don't use it if you use eg Kerberos, SIP, XMMP or Google-talk. This option only affects forwarding, SRV records originating for dnsmasq (via srv-host= lines) are not
# suppressed by it.
filterwin2k

dhcp-range=set:house,192.168.0.1,192.168.0.254,infinite
dhcp-range=set:backyard,192.168.2.1,192.168.2.254,infinite

# Change this line if you want dns to get its upstream servers from somewhere other that /etc/resolv.conf
resolv-file=/var/run/dnsmasq/resolv.conf
# server=61.9.134.49
# server=61.9.133.193 setup the default gateway
dhcp-option=tag:house,option:router,192.168.0.1
dhcp-option=tag:backyard,option:router,192.168.2.1

# option 42?
dhcp-option=option:ntp-server,192.168.0.2
expand-hosts
domain=wilson.lan
dhcp-range=192.168.0.100,192.168.0.150,12h
dhcp-range=192.168.2.100,192.168.2.150,255.255.255.0,12h


# DO NOT Set The route to that network Done on Gateway
#dhcp-option=121,192.168.2.0/24,192.168.0.5
#Send microsoft-specific option to tell windows to release the DHCP lease when it shuts down. Note the "i" flag,
#  to tell dnsmasq to send the value as a four-byte integer - that's what microsoft wants. See
# http://technet2.microsoft.com/WindowsServer/en/library/a70f1bb7-d2d4-49f0-96d6-4b7414ecfaae1033.mspx?mfr=true
dhcp-option=vendor:MSFT,2,1i
# Set the DHCP server to authoritative mode. In this mode it will barge in and take over the lease for any client
# which broadcasts on the network, whether it has a record
# of the lease or not. This avoids long timeouts when a machine wakes up on a new network.
# DO NOT enable this if there's the slightest chance that you might end up
# accidentally configuring a DHCP server for your campus/company accidentally.
# The ISC server uses the same option, and this URL provides more information:
# http://www.isc.org/files/auth.html
dhcp-authoritative
# Log lots of extra information about DHCP transactions.
log-dhcp

답변1

좋아, 매뉴얼을 더 잘 읽은 후에는 로컬 서브넷에만 응답하는 기본값(--local-service)을 재정의하기 위해 뭔가를 추가해야 합니다. 예를 들어 부정이 없는 기본 옵션을 시도해 보았습니다.

listen-address=192.168.0.2

그러나 해결.conf에는 다음 줄이 있습니다.

nameserver 127.0.0.1

내 변경으로 인해 DNSMASQ가 자체 쿼리에 응답하는 것이 중지되었습니다. 이상하게도 DNS 서버는 다른 모든 컴퓨터가 DNS 서버로 성공적으로 사용하는 동안 더 이상 DNS 이름을 확인할 수 없습니다. 대신 다음 줄을 추가하여 이 문제를 해결했습니다.

listen-address=192.168.0.2,127.0.0.1

저는solvconf가 하고 있던 일을 수정하는 간단한 방법을 찾을 수 없었습니다.

관련 정보