我认为在这种情况下您不需要使用 OVS,尽管您可以通过提供网关 ip 来实现这一点。
假设您创建了内部网络,子网 192.170.10.0/24 作为 internal1,其他 internal2 子网 192.170.20.0/24
VM1 上的配置:
auto eth0
iface eth0 inet static
address 192.170.10.10
network 192.170.10.0
netmask 255.255.255.0
broadcast 192.170.10.255
gateway 192.170.10.20
VM2 上的配置:
auto eth0
iface eth0 inet static
address 192.170.20.10
network 192.170.20.0
netmask 255.255.255.0
broadcast 192.170.20.255
gateway 192.170.20.20
OVS 上的配置:
auto eth0
iface eth0 inet static
address 192.170.10.20
network 192.170.10.0
netmask 255.255.255.0
broadcast 192.170.10.255
gateway 192.170.10.20
auto eth1
iface eth1 inet static
address 192.170.20.20
network 192.170.20.0
netmask 255.255.255.0
broadcast 192.170.20.255
gateway 192.170.20.20
使用上述配置,您可以在不同子网上的虚拟机之间 ping
但是,如果您仍然想使用 OVS,这里是配置的方法。
VM1 上的配置:
auto eth0
iface eth0 inet static
address 192.170.10.10
network 192.170.10.0
netmask 255.255.255.0
broadcast 192.170.10.255
VM2 上的配置:
auto eth0
iface eth0 inet static
address 192.170.20.10
network 192.170.20.0
netmask 255.255.255.0
broadcast 192.170.20.255
OVS 上的配置:
将要加载的界面设置为手动输入/etc/network/interfaces
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
创建两个桥梁
sudo ovs-vsctl add-br vm1-br
sudo ovs-vsctl add-br vm2-br
添加相应的端口。
sudo ovs-vsctl add-port vm1-br eth0
sudo ovs-vsctl add-port vm2-br eth1
使用补丁接口桥接桥梁
sudo ovs-vsctl add-port vm1-br patch1
sudo ovs-vsctl set interface patch1 type=patch
sudo ovs-vsctl set interface patch1 options:peer=patch2
sudo ovs-vsctl add-port vm1-br patch2
sudo ovs-vsctl set interface patch2 type=patch
sudo ovs-vsctl set interface patch2 options:peer=patch1
架起桥梁
sudo ifconfig vm1-br up
sudo ifconfig vm-br up
设置 IP 地址
sudo ifconfig vm1-br 192.170.10.20/24
sudo ifconfig vm2-br 192.170.20.20/24
现在您可以在虚拟机之间 ping