我正在尝试使用虚拟机创建一个简单的SDN网络。网络设置包含2个主机和OpenDaylight控制器。在Virtualbox中创建了3个虚拟机。我在主机上安装了openvswitch(Ubuntu 18.04 LTS桌面版本和4.15.0-36-通用内核版本)。所有虚拟机都运行Ubuntu 16.04 LTS服务器。然后,我在openvswitch(即在我的主机中)中创建了一个网桥
sudo ovs-vsctl add-br br_test
ifconfig br_test up
然后,我将主机 eth0 的物理接口添加到网桥,如下所示。
ovs-vsctl add-port mybridge eth0
然后,将物理接口的IP地址设置为在openvswitch中创建的网桥。
ifconfig eth0 0
dhclient mybridge
我能够从主机上ping Google。然后,要连接我的ODL控制器和2个主机,我创建了端口并将它们添加到网桥。
ip tuntap add mode tap vport1
ip tuntap add mode tap vport2
ip tuntap add mode tap vport3
ifconfig vport1 up
ifconfig vport2 up
ifconfig vport3 up
ovs-vsctl add-port br_test vport1 -- add-port br_test vport2 -- add-port
br_test vport3
然后,使用vport1,vport2和vport3将所有3个虚拟机连接到openvswitch网桥。我也能够从虚拟机上ping Google。问题出在此之后。当我尝试以
将ODL控制器连接到openvswitch时sudo ovs-vsctl set-controller mybridge tcp:ip_of_the_host:6633
当我执行此命令并在openvswitch中检查控制器的状态时,它表明控制器已连接,但是整个网络很快就会出现故障。当我检查时,物理主机的 eth0 也有一个IP地址,它与openvswitch中网桥的IP地址相同。
我找不到为什么它会失败或连接虚拟机的任何其他可能方式。还有其他方法吗?我可以在虚拟机上创建openvswitch并将其连接到其他虚拟机,而不是在物理机中创建openvswitch?
非常感谢您的帮助。提前致谢。