这篇文章介绍一个在 EXSi 中搭建 Linux 路由的方法,使用的是 debian 作为路由服务器。 下面是架构图:
NAT 路径:
eth0 -> eth1
eth0 -> eth2
eth0 -> ...
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
# Add a line like this for each eth* LAN
iptables --append FORWARD --in-interface eth1 -j ACCEPT
网络结构示意图:
(1)黑色是管理口,用于 client 管理 EXSi 主机;从客户机(MacOS)连一条网线到 ESXi 所在主机的 LAN 2 口,就可以从 MacOS 登录到 ESXi 主机了。
(2)紫色是网络口,client 连接到 br_lan 上。
客户机想要登录 ESXi 主机中的虚拟机(Debian),那么连一条网线到 虚拟机所使用的 LAN3 口。这里需要提示的是,ESXi 主机所创建的每个虚拟机都通过一个虚拟的网桥与直接的 LAN 口进行绑定,而虚拟机内部的 NIC (可以是多个,比如 eth0, eth1, eth2)则作为 slave 绑定到一个 bridge 设备(br-lan)上, 实现了虚拟机内部与宿主机的网卡联通。如果虚拟机(debian)想要实现拨号(或路由器)功能,则把它的其中一个虚拟网口绑定到宿主机(ESXi)另一个单独的 LAN 口上,这个 LAN 口再接到光猫上,可以实现拨号。如图所示。
简单来说就是,这个 eth0 虚拟网口作为 debian 虚拟机的 WAN 口,外部网络从这里导入,eth1, eth2 等虚拟网口则作为正常的 LAN 口绑定到 br-lan 上为局域网提供网络。客户机(比如 MacOS)可以通过来接到 br-lan 绑定到的宿主机上的 LAN 口来获得网络。
上述示意图,debian 作为一个路由,专门供科Xue上网,只要 client 连接到 br_lan,就可以上网。
全文完!
如果你喜欢我的文章,欢迎关注我的微信公众号 deliverit。