如何解决NAT MASQUERADE 响应数据包未返回专用网络
我在真实主机内为我的 Xen VM 设置了 NAT,因此 VM 基本上与主机内的虚拟 NIC 形成其专用网络。
所以网络是这样的:
[ (VM 10.0.0.3) ---- bridge 10.0.0.1 ---- real NIC 192.168.0.105] ------- internet
现在我按照 http://blog.manula.org/2012/04/manually-configuring-nat-networking-in.html
中的步骤设置 NAT从虚拟机内部,我运行了 "ping a_real_internet_IP ",问题是 ping 没有产生响应。我在 NIC 上流出的流量上运行“tcpdump”,并看到伪装成 src=192.168.0.105,dst=a_real_internet_IP 的数据包。所以这表明 MASQUERADE 正在工作。 我还看到了 src 和 dst 反向的响应数据包。
但问题是在网桥上,我只看到数据包 src=10.0.0.3,dst=a_real_internet_IP,而不是返回的数据包。由于响应数据包在 NIC 上可见,而不是在这个虚拟网桥上,它们被丢弃在哪里?
我尝试放入一些 TRACE,但 TRACE 仅适用于原始表,而不适用于 nat 表。
奇怪的是,同样的设置在我的桌面服务器上运行良好,但在我的笔记本电脑上却没有。前者运行 ubuntu 20,而后者运行 ubuntu 18,不确定这是否重要。但 NAT 是一个非常基本的网络设置,两个系统都应该尊重它。
解决方法
已解决,docker 弄乱了 iptables。即使我对所有规则都执行了“iptables -F && iptables -X”,但还是一样,我不得不删除 docker 并重新启动
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。