dnsmasq를 실행하는 자체 제작 Linux 라우터가 있습니다. 클라이언트가 연결하는 두 개의 서로 다른 네트워크 카드가 있습니다. 하나는 서브넷이 있고 192.168.1.
다른 하나는 서브넷이 있습니다 192.168.2.
. 내 /etc/dnsmasq.conf
모습은 다음과 같습니다.
except-interface=enp1s0
dhcp-range=interface:wlp2s0,192.168.1.10,192.168.1.25,255.255.255.0,48h
dhcp-range=interface:enp0s29f7u4,192.168.2.10,192.168.2.25,255.255.255.0,48h
클라이언트 확인은 서브넷 간에 작동하지만 두 서브넷 모두에서 서버 자체의 호스트 이름을 확인할 수는 없습니다. 정적 규칙 추가를 사용하는 경우 address=/name/IP
서브넷 중 하나를 선택해야 하며 무엇보다도 다른 서브넷에서 ping을 수행할 수 없습니다. 예를 들어, 내가 설정한 경우
address=/name/192.168.1.1
그런 다음 서브넷에서 호스트 이름을 확인할 수 있지만 192.168.2.
핑에 응답이 없습니다. 이 상황을 어떻게 해결할 수 있나요? 인터페이스나 그와 유사한 것을 연결할 필요가 없기를 바랍니다.
답변1
내가 아는 한, 귀하의 경우 서버에는 서브넷당 하나의 주소가 있습니다: 192.168.1.1 그리고 다른 주소는 192.168.2.1일 수 있습니다.
클라이언트가 해당 서브넷에 대한 서버 주소를 받기를 원한다고 생각합니다.
나는 같은 문제가 있었고 대답을 찾았습니다.http://t7994.network-dns-dnsmasq-general.dnstalk.us/multi-homed-server-with-same-hostname-on-2-subnets-t7994.html
"-y, --localise-queries"에 대한 dnsmasq 매뉴얼 페이지를 확인하세요.
dnsmasq.conf에 "localise-queries"를 넣고 /etc/hosts 파일에 두 개의 서버 주소 항목을 넣을 수도 있습니다.