NSD가 있는 서버가 있습니다. MAIN_IP와 ADD_IP가 있습니다. 서버에서 내 사이트의 IP를 얻으려고 하면 올바른 결과가 나타납니다.
dig @localhost my_site.com
그런데 이것을 PC에서 만들려고 하면
dig @my_ns_server.com my_site.com
;; reply from unexpected source: MAIN_IP#53, expected ADD_IP#53
(ADD_IP는 my_ns_server.com의 IP입니다.)
어떻게 해야 하나요?
UPD: 내 인터페이스 구성
auto eth2
allow-hotplug eth2
iface eth2 inet static
address xxx.xxx.xxx.234
netmask 255.255.255.252
network xxx.xxx.xxx.232
broadcast xxx.xxx.xxx.235
gateway xxx.xxx.xxx.233
dns-nameservers MY_ISP_IP
dns-search MY_ISP_DOMAIN
auto eth2:0
iface eth2:0 inet static
address xxx.xxx.xxx.124
netmask 255.255.255.0
xxx.xxx.xxx는 모든 IP에서 동일합니다.
netstat -lntpu | 그렙 :53
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1363/nsd
tcp6 0 0 :::53 :::* LISTEN 1363/nsd
udp 0 0 0.0.0.0:53 0.0.0.0:* 1363/nsd
udp6 0 0 :::53 :::* 1363/nsd
답변1
NSD가 모든 인터페이스를 수신하면 OS가 소스 주소 선택을 수행할 수 있습니다. NSD가 수신 대기할 주소를 항상 명시적으로 지정하십시오(예: NS 레코드의 모든 IP). 귀하의 경우:
server:
ip-address: a.b.c.124
이 스레드nsd-users 메일링 리스트에도 동일한 문제가 설명되어 있습니다(IPv6 부분은 관련이 없습니다).
답변2
NSD 구성이 잘못되었거나 박스/라우터의 NAT 규칙이 잘못되었을 수 있습니다. NSD는 모든 인터페이스를 수신하고 있습니까? NSD 상자에서 보조 IP 주소에 대한 DNS 쿼리에 응답하도록 포트 전달을 수행하고 있습니까?
NSD 상자의 netstat 출력을 붙여넣을 수 있습니까?
netstat -lntpu | grep :53
답변3
설정 및 NSD 3.2.8에서 동일한 문제가 발생했습니다. NSD가 올바른 소켓에서 응답하지 않는 것 같습니다. 내가 사용한 서버에는 동일한 네트워크에 두 개의 IP가 있습니다. 별칭이 아닌 항상 기본 응답에서 응답하는 것 같습니다. 바인딩 서버(9.7.x)에는 이러한 문제가 없습니다.