DNSMASQ がルーティングされたサブネットからの DNS クエリに応答しない

DNSMASQ がルーティングされたサブネットからの DNS クエリに応答しない

2 つの DD-WRT AP を使用して 2 つのサブネットを接続しています。リモート 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 を設定しました。これは 2 番目のサブネットの DHCP サーバーでもあります。これは機能し、リモート クライアントは正しいルーターを取得します。DNSMasq マシンは 2 番目のサブネットの PC に ping でき、その逆も真です。また、最初のサブネットの PC から 2 番目のサブネットの PC に RDP することもできます。したがって、最初のサブネットから 2 番目のサブネットへの通信のほとんどは機能しているように見えます。

私の問題は、DNSMasq が 2 番目のサブネットに DNS 応答を送信しないことです。1 番目のサブネットには機能します。理由を誰か教えてもらえますか?

注目すべき点の 1 つは、2 番目のネットワークのルートがゲートウェイ デバイス (192.168.0.1) 上にあることですが、これによって多くのパケットがドロップされることがわかったため、最初のサブネット デバイスのそれぞれに、2 番目のサブネットのローカル静的ルートが追加されました。

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

しかし、resolve.confには次の行があります

nameserver 127.0.0.1

私の変更により、DNSMASQ が自分自身からのクエリに応答しなくなりました。そのため、不思議なことに、他のすべてのマシンが DNS サーバーとして正常に使用しているにもかかわらず、DNS サーバーは DNS 名を解決できなくなりました。代わりに次の行を追加してこれを修正しました。

listen-address=192.168.0.2,127.0.0.1

私はresolveconfが何をしているのかを修正する簡単な方法を見つけられなかった。

関連情報