我正在尝试让 Xen 在 domU 具有与 dom0 完全不同的 IP(不在同一网络范围内)的设置中运行。这个答案使所有内容都在相同的 /24 范围内工作,但不是完全不相关的 IP。
dom0 的 /etc/network/interfaces:
# The primary interface.
# The configuration is done in the bridge.
auto eth0
# The bridge for Xen to use.
auto xenbr0
iface eth0 inet static
bridge_ports eth0
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
dom0 的桥接器(brctl show
):
bridge name bridge id STP enabled interfaces
eth0 8000.00259022aab2 no peth0
vif1.0
domU 的 /etc/network/interfaces:
# The primary network interface
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 188.165.X.254
netmask 255.255.255.0
我也在 domU 的配置中尝试了不同的网络掩码。我应该如何配置才能让 domU 以正常工作的方式连接到网络?
答案1
我假设 91.121.xx 通过互联网路由到网关 188.165.X.254
然后网关需要一条路由,以便 91.121.xx 到达 188.165.XY 的 VM 主机
这意味着任何尝试到达 91.121.xx 的流量最终都会到达您的 Xen 服务器。
在上一个问题中,所有接口都在同一个网络上,因此所有内容都可以桥接到主接口 - 这是第 2 层连接。
但是,在这种情况下,客户机与主机位于不同的网络上。我们需要第 3 层路由连接。
主机上需要发生两件事
1) 它需要 91.121.xx 网络中的接口 2) 它需要成为路由器
对于 (1),我们有一个与之前类似的网络设置,但是物理接口被保留在桥接之外。我们为虚拟机创建一个桥接接口来连接,但给它一个与 eth0 接口分开的自己的地址:
auto lo br0 eth0
iface lo inet loopback
iface br0 inet static
bridge_ports none
address 91.121.x.1
netmask 255.255.255.0
iface eth0 inet static
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
一旦启动,服务器将有两个接口,并且可以充当路由器。默认情况下,此功能处于关闭状态。更改/etc/sysctl.conf
并确保以下行未注释:
net.ipv4.ip_forward=1
您可以在命令行中使用以下命令临时启用此功能,但需要上述更改才能在重新启动后继续运行:
sysctl -w net.ipv4.ip_forward=1
现在,服务器将把到达 eth0 并发往 91.121.xx 的数据包从 br0 接口路由出去。因此,现在我们需要将 vms 桥接到此接口。这与您通常所做的完全一样,只是为了完整性而将其放在这里:
在.cfg中:
vif = ['bridge=br0, mac=00:16:3E:12:16:19']
在 domU 接口文件中:
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 91.121.x.x (this is the dom0 br0 interface address)
netmask 255.255.255.0
91.121.x.x
您可以通过从 domU ping dom0 和从 dom0 ping domU 来测试桥接器上的所有功能是否正常工作91.121.x.254
。然后从 domu ping dom0 外部接口:188.165.X.Y
第一次 ping 证明网桥正在工作,第二次 ping 证明路由正在工作。