我已经安装了 Proxmox 3.2,我正在尝试将虚拟机配置为处理所有流量并将它们转发到具有私有 ip 的节点的通信服务器。
我使用两个配置完全相同的 CentOS 虚拟机为 NAT 网络配置了服务器。
Proxmox wiki 有一个非常有限和基本的 nat 网络文档。
我在这里和 proxmox 论坛上发现了类似的问题(这个,这个)。我试图了解linux nat 网络的基础知识,所以我从头到尾完成了这个非常容易理解的教程。我阅读了这篇文章以了解iptables nat 规则
安装和配置后,当我从主机 ping 到 VM 或从 VM 到主机时,输出是:
root@testPrx:~# ping 10.0.4.2
PING 10.0.4.2 (10.0.4.2) 56(84) bytes of data.
From 10.0.4.1 icmp_seq=2 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)
当我尝试从具有 Internet 连接和 (192.168.0.3) 的同一网络中的服务器通过 telnet 连接到通信服务器的公共 IP 时
bash-4.1# telnet 192.168.0.2 2701
Trying 192.168.0.2...
telnet: connect to address 192.168.0.2: No route to host
Run Code Online (Sandbox Code Playgroud)
当我尝试 …
我在私有端使用整个 10.0.0.0/8 子网。
我想允许子网的某个部分(比如 10.0.0.2 - 10.0.31.254)通过 linux 路由器访问互联网,而不是网络的其余部分(10.0.32.1 - 10.255.255.254)
我试过 iptables -t nat -A POSTROUTING -s 10.0.0.0/19 -o eth0 -j MASQUERADE 10.0.0.0/19 is 10.0.0.2 - 10.0.31.254 但没有工作站可以访问网络
我知道整个 10.0.0.0/8 是 16,777,214 个 IP 地址,但我有我的理由
谢谢
以下2个命令之间的优缺点是什么:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
和
iptables -t nat -A POSTROUTING -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个问题的一些背景:
我提出了一个问题AWS VPC + IPtables + NAT: Port Forwarding is not working and I get it works only by making this change。
因此这个问题。
更新:
在看到反对票后(强大的反对派选民太忙了,无法评论他们为什么反对投票),我稍微编辑了这个问题。我看到人们只是理解英文单词的字面意思,并没有费心去理解它的本质。因此我不得不编辑问题。
此外,如果您不解释为什么拒绝投票,这是一种可耻的行为。这样 OP 将永远不会有机会改进他的帖子或知道帖子有什么问题。