作者:admin,发布日期:2020-01-27
阅读:4192;评论:0

写在开头

    在某些环境下,需要实现两台物理机中的openvswitch交换机级联,以实现两台交换机中的设备互相通讯,这里使用vxlan隧道技术,将数据包封装在UDP中,通过以太网实现数据包传输。

    VXLAN是一种大二层的虚拟技术,主要的技术原理是引入了一个UDP外层隧道,作为数据的链路层,而原有的数据报文内容作为隧道净荷来传输,由于外层采用了UDP作为传出手段,就可以让净荷数据轻而易举的在二三层网络中传送,为了能够支持原有的vlan广播寻址能力,VXLAN还可以引入三层IP组播来代替以太网的广播,让BUM(broadcast广播,unknown unicast未知单播,multicast多播)报文通过广播方式在虚拟网络中传送。

    VXLAN技术将已有的三层物理网络作为underlay网络,在其上构建出虚拟的二层网络,即overlay网络,overlay网络通过封装技术,利用underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对租户来说,underlay网络时透明的,同一租户的不同站点就像工作一个局域网中。

网络拓补


两台物理机Server1 Server2分别连接在switch0交换机中,并且已经配置IP,可以互相通讯。

两台物理机内的vswitch0均为openvswitch创建的虚拟交换机,我们将对这两台交换机配置,实现他们的级联,从而实现两台虚拟交换机下的设备相互通讯。

Server1

eth0 - 10.0.0.4/24

br0 - 172.16.0.3/24

Server2

eth0 - 10.0.0.5/24

br0 - 172.16.0.2/24

操作过程

Server1

首先创建虚拟交换机br0

ovs-vsctl add-br br0

创建完成后,openvswitch会创建一张名为br0的网卡,这张网卡已经连接到br0虚拟交换机上,我们将对这张网卡配置IP,然后对Server2的这张网卡也配置IP,随后相互ping验证配置结果。

ifconfig br0 172.16.0.3/24 up

配置vxlan,设置remote_ip为另外一台服务器的eth0网卡IP

ovs-vsctl add-port br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.0.0.5

关闭防火墙

ufw disable

Server2

同样操作,首先创建虚拟交换机br0

ovs-vsctl add-br br0

配置br0的IP

ifconfig br0 172.16.0.2/24 up

配置vxlan,设置remote_ip为另外一台服务器的eth0网卡IP

ovs-vsctl add-port br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.0.0.4

关闭防火墙

ufw disable

完成上面配置后,两台虚拟交换机即完成级联,我们可以进行测试,判断是否配置成功。

测试配置

在Server1上ping Server2上的网卡,ping成功

root@ovs-1:~# ping 172.16.0.2
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=1.68 ms
^C
--- 172.16.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.687/1.687/1.687/0.000 ms

在Server2上ping Server1上的网卡,ping成功

root@ovs-2:~# ping 172.16.0.3
PING 172.16.0.3 (172.16.0.3) 56(84) bytes of data.
64 bytes from 172.16.0.3: icmp_seq=1 ttl=64 time=1.54 ms
^C
--- 172.16.0.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.542/1.542/1.542/0.000 ms

这里可以发现第一个ping包延迟较高,这是因为xvlan首次建立连接需要时间

至此两设备已经相互配置成功,配置已经完成。

错误排查

出现错误,请检查

  1. 两台服务器的防火墙是否关闭

  2. 两台服务器是否可以互联

  3. openvswitch是否开启

你可能感兴趣的文章