dnsmasq를 가상 머신의 네임서버로 사용하려고 합니다. 모든 VM에서 /etc/resolv.conf
이는 VM이 192.168.15.3
확인된 도메인 이름에 액세스해야 함을 의미합니다. 그러나 192.168.15.3을 보유하는 인터페이스는 호스트의 네트워크 네임스페이스 내에 있습니다.
ping 192.168.15.3
VM과 호스트(네트워크 네임스페이스 내) 모두에서 액세스할 수 있습니다 . 네트워크 네임스페이스 외부에는 lsof -i:53
dnsmasq가 포트 53에서 수신 대기하고 있음이 표시됩니다. 네트워크 네임스페이스 내에서 실행 하면 lsof -i:53
아무것도 없습니다.
/etc/resolv.conf
호스트의 공용 네임스페이스에 있는 모든 인터페이스의 IP 주소를 사용 하도록 변경하면 이름 확인이 제대로 작동합니다. dnsmasq 프로세스에는 아무런 문제가 없는 것 같습니다.
dnsmasq를 중지한 후 이 작업을 시도했지만 ip netns exec <THE NAMESPACE> systemctl start dnsmasq
dnsmasq가 공용 네임스페이스 내에서 포트를 여는 것만 볼 수 있습니다.
가상 머신 내부에서 수정 하고 싶지 않고 호스트에서만 구성하고 싶은 경우에는 resolv.conf
어떻게 해야 합니까 ? 네트워크 네임스페이스 내에서 포트 53에 액세스할 수 있게 만드는 방법은 무엇입니까?
답변1
http://man7.org/linux/man-pages/man8/ip-netns.8.html
네트워크 네임스페이스는 자체 라우팅, 방화벽 규칙 및 네트워크 장치를 포함하는 논리적으로 네트워크 스택의 또 다른 복사본입니다.
따라서 다음과 같은 것이 필요합니다. iptables는 DNS 조회 IP 및 포트를 리디렉션합니다.