Open vSwitch的VxLAN隧道网络实验

Posted 如梦的少年丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Open vSwitch的VxLAN隧道网络实验相关的知识,希望对你有一定的参考价值。

实验参考

Open vSwitch的VxLAN隧道网络实验

实验步骤

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 才能连接。不知道为什么?

以上是关于Open vSwitch的VxLAN隧道网络实验的主要内容,如果未能解决你的问题,请参考以下文章

GRE and VXLAN with Open vSwitch

Open vSwitch的GRE隧道实验网络

在CentOS7上配置Open vSwitch和VXLAN

实验2:Open vSwitch虚拟交换机实践

实验2:Open vSwitch虚拟交换机实践

实验2:Open vSwitch虚拟交换机实践