虚拟盒Linux路由

虚拟盒Linux路由

抱歉,这个问题比较基础,但我搞不懂。我想建立一个小型 Linux 服务器网络用于测试。

因此,我有一个运行虚拟盒的主机服务器,其界面如下:

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.4  netmask 255.255.255.0  broadcast 192.168.0.255

然后设置具有以下网络的客户虚拟机:

eth0      Link encap:Ethernet  HWaddr 08:00:27:EA:15:4F  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 08:00:27:E3:E2:BC  
          inet addr:172.16.0.1  Bcast:172.16.7.255  Mask:255.255.248.0

第二个虚拟机客户机设置如下:

eth0      Link encap:Ethernet  HWaddr 08:00:27:15:CA:14  
          inet addr:172.16.0.2  Bcast:172.16.7.255  Mask:255.255.248.0
          inet6 addr: fe80::a00:27ff:fe15:ca14/64 Scope:Link

我希望能够从虚拟机 2 路由回主机服务器。因此我创建了一条路由,告诉虚拟机 2192.169.0.0通过虚拟机 1 发送网络流量:

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     172.16.0.1      255.255.255.0   UG    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

但是我无法192.168.0.0从虚拟机 2 ping 通网络。虚拟机 1 上的路由表如下:

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

主机服务器(运行虚拟盒)上的路由表是:

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

所以我猜我的问题是主机服务器对我的虚拟机的172.16.0.0/16网络一无所知并且无法回复。

我该如何修复这个问题?我必须使用 iptables 和 NATing 吗?

答案1

我只在 Windows 主机和 Linux 客户机上做过这个,但原理应该是一样的。

检查以下链接,特别是有关仅主机网络的链接

http://www.virtualbox.org/manual/ch06.html#networkingmodes

使用这种方法,我根本不需要编辑路线。

您可能想要探索的另一种途径是使用 Vagrant。http://www.vagrantup.com/ 它非常适合测试不同的配置并快速设置新的虚拟机。祝你好运

答案2

您实际上是在尝试将 VM1 配置为路由器。您需要:

  1. VM1-开启net.ipv4.ip_forward-sysctl这可能因分布而异
  2. VM1-确保 iptables 允许转发
  3. 确保 VM1 具有到两个网络的路由(如果直接连接则应该如此)
  4. 确保您的主机有通过 VM1 到 172 网络的路由

相关内容