如何将 Linux VM 配置为在两个子网之间进行通信的路由器

如何将 Linux VM 配置为在两个子网之间进行通信的路由器

我在 vmplayer 上安装了 3 台虚拟机。我已将其中两台虚拟机设置为两个不同网络的主机。Host1 ip=192.168.1.13 gateway=192.168.1.11Host2 ip=192.168.2.14gateway=192.168.2.12。现在我想将第三台虚拟机用作路由器,它可以将数据包从第一台虚拟机传输到第二台虚拟机,该虚拟机有两个适配器eth0 ip=192.168.1.11eth1 ip=192.168.2.12。Host1 连接到eth0,Host2 连接到eth1。我应如何配置路由器,以便两台主机可以通信并NAT执行“连接”?请尽快回复。

答案1

你没有说是什么操作系统,所以你必须处理假设——所以假设 Debian 衍生产品

启用转发。在 /etc/sysctl.conf 中设置:net.ipv4.ip_forward=1

这就是 ping A -> B 所需要的全部操作。

因为某些原因您也需要 NAT,所以在 /etc/rc.local 中添加您需要的模块 - 例如:

modprobe ipt_conntrack
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_irc
modprobe ip_nat_snmp_basic

另外在 /etc/rc.local 添加:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.11
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.2.12

例如,如果您希望网关也能访问互联网,则可以为其提供第三个接口,例如 eth2,其 IP 地址在您的 LAN 上,例如 10.0.0.200,然后添加以下内容:

iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 10.0.0.200

或者如果它有一个 DHCP 地址(即,它不是一个静态地址),那么请改为执行此操作

iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

最后确保网关有指向 Internet LAN 网关、光纤线路或 DSL 调制解调器的默认路由。如果是 DHCP 分配的,则此操作将自动完成。

相关内容