实验参考
实验步骤
1 预先配置
登录两台Mininet虚拟机或者是已安装OpenvSwitch的虚拟机。
查看两台虚拟机IP
#ifconfig
验证OvS服务是否被启动好:
# ps –ef|grep ovs
OvS已启动。
步骤1:分别在两台机器上创建网桥:
#sudo ovs-vsctl add-br br0 #sudo ovs-vsctl add-br br1
步骤2:mn虚拟机上将eth0的IP赋给br1:
#ifconfig eth0 0 up #ifconfig br1 30.0.1.13 up
给mn虚拟机的br1重新添加路由:
#route add default gw 30.0.1.12
mn的路由如下显示:
#sudo ovs-vsctl add-port br1 eth0 #ovs-vsctl show
步骤3:mn1虚拟机上将eth0的IP赋给br1:
#ifconfig eth0 0 up #ifconfig br1 30.0.1.6 up
给mn1虚拟机的br1重新添加路由:
#route add default gw 30.0.1.5
mn1虚拟机的路由显示如下:
#ovs-vsctl add-port br1 eth0 #ovs-vsctl show
前期实验环境已准备好。
2 设置VxLAN实现同一网段的通信
在mn虚拟机上给br0配置一个IP:
# ifconfig br0 30.0.0.2/8 up
在mn1虚拟机上给br0配置一个与mn虚拟机上br0同一网段的IP地址:
# ifconfig br0 30.0.0.3/8 up
验证br1和br1的IP是否通信:Mn虚拟机的br1 ping mn1虚拟机的br1,是可以ping通的:
mn虚拟机ping mn1虚拟机的br0,是ping不通的:
Br0和另一台设备的br0不能通信,搭建隧道的目的就是让两台机器的br0(数据层面)能够实现通信。
实验本身是在虚拟机中操作,所以实验中br0桥上没有再下挂主机,分别给两台虚拟机的br0指定两个相同网段的IP,然后通过搭建VxLAN隧道让这两个网桥能够实现通信,
设置如下:验证mn虚拟机的br0和mn1虚拟机的br0是否通信:
在mn虚拟机上创建VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=30.0.1.6
在mn1虚拟机上创建VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=30.0.1.13
验证mn虚拟机的br0和mn1虚拟机的br0是否通信:
验证经过设置VxLAN后,两个虚拟机的同一网段数据层面是通信的。
设置VxLAN实现不同网段的通信
在mn虚拟机上给br0配置一个IP:
# ifconfig br0 30.0.0.1/8 up
在mn1虚拟机上给br0配置一个与mn虚拟机上br0不是同一网段的IP地址:
# ifconfig br0 40.0.0.1/8 up
验证mn虚拟机的br0和mn1虚拟机br0的IP是否通信:
mn虚拟机ping mn1虚拟机的br0,是ping不通的:
br0和另一台设备的br0不能通信,搭建隧道的目的就是让两台机器的br0(数据层面)能够实现通信。
实验本身是在虚拟机中操作,分别给两台虚拟机的br0指定两个不同网段的IP,然后通过搭建VxLAN隧道及设置路由让这两个网桥能够实现通信,设置如下:
在mn虚拟机上创建VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.195
在mn1虚拟机上创建VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.196
VxLAN设置好后,mn虚拟机的br0和mn1虚拟机的br0仍不能通信通信,需要设置静态路由才能通信,如下设置:
在mn虚拟机上添加路由:
# route add –net 40.0.0.0 netmask 255.0.0.0 gw 30.0.0.1 dev br0
在mn1虚拟机上添加路由:
# route add –net 30.0.0.0 netmask 255.0.0.0 gw 40.0.0.1 dev br0
验证mn虚拟机的br0和mn1虚拟机的br0是否通信:
验证经过设置VxLAN及路由后,两个虚拟机的不同网段数据层面是通信的。
实验总结
在实验参考中,我按照步骤来,但是两个虚拟机的ping总是无法连接。后来做了多次实验,发现将ifconfig br1 20.0.4.196/29 up 改为 ifconfig br1 20.0.4.196 up 才能连接。不知道为什么?