我正在尝试将端口 53 从主机转发到 virtbr0 接口(使用 NAT)上的一个 KVM 虚拟机来宾。
来宾 VM 将运行自定义的 DNS 服务器。但是,端口转发端口 53 后,DNS 将无法在 guest 中解析。我只是不断收到错误Temporary failure in name resolution
如果我从主机中删除我的 iptables 规则,DNS 会在来宾 VM 中再次解析。需要做什么才能让 DNS 在来宾中工作,同时允许端口 53 从主机转发到来宾?
我在钩子脚本中使用的 IP 表规则:
/sbin/iptables -I FORWARD -o virbr0 -d 192.168.122.5 -j ACCEPT
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 53 -j DNAT --to 192.168.122.5:53
/sbin/iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to 192.168.122.5:53
有人知道吗?以这种相同方式转发的其他端口似乎按预期工作。DNS不会,我不知道为什么。我在我的家庭网络路由器上转发了端口 53,我没有这个问题。也许这是一个KVM错误?我正在使用最新版本的 qemu 和 kvm 运行 CentOS 8。