Open vSwitch的GRE隧道实验网络

GRE(通用路由协议封装)是由Cisco和Net-smiths等公司于1994年提交给IETF的,标号为RFC1701和RFC1702。GRE规定了如何用一种网络协议去封装另一种网络协议的方法。GRE的隧道由两端的源IP地址和目的IP地址来定义,允许用户使用IP包封装IP、IPX、AppleTalk包,并支持全部的路由协议(如RIP2、OSPF等)。通过GRE,用户可以利用公共IP网络连接IPX网络、AppleTalk网络,还可以使用保留地址进行网络互连,或者对公网隐藏企业网的IP地址。

一、实验目的

  • 了解GRE协议及原理
  • 理解 Open vSwitch如何配置GRE隧道

二、实验原理

Open vSwitch创建GRE原理很简单,就是把对GRE头和外部IP头的一些操作从原来的代码中抽象出来,做成内核“库函数”的形式,然后 Open vSwitch中就可以直接调用它们了。 Open vSwitch GRE tunnel没有注册网络设备,因此无法通过iplink看到它,它只是一个vport而已,所以能通过ovs-vsctl show可以看到。

三、实验任务

本实验需要创建两台虚拟机来模拟一个虚网,在虚拟机中启动 Open vSwitch服务,最后配置 Open vSwitch,创建GRE隧道并进行验证。
实验中用到的网络拓扑如下:

搭建GRE隧道实验 图1

四、实验步骤

4.1 搭建环境

本实验需要两台虚拟机VM1和VM2,并且都安装内核为3.13,支持GRE的Mininet。

4.2 配置VM1

(1)Open vSwitch服务验证
验证虚拟机VM1的OvS服务是否被启动好:

搭建GRE隧道实验 图7

OvS已启动。
(2)创建两个bridge

搭建GRE隧道实验 图8

(3)配置br0上

搭建GRE隧道实验 图9

(4)配置br1
给br1配置IP地址:

(5)查看OVS配置

搭建GRE隧道实验 图10

(6)查看网络配置

搭建GRE隧道实验 图11

4.3 配置VM2

(1)验证OVS服务并配置OVS,同VM1

搭建GRE隧道实验 图12

给br1设置IP:

(2)查看OVS配置

搭建GRE隧道实验 图13

(3)查看网络配置

搭建GRE隧道实验 图14

4.4 创建gre之前

创建gre隧道之前,做如下操作。
VM2的br0 ping VM1的br0,可以通信,如下图:

搭建GRE隧道实验 图15

VM2的br1 ping VM1的br1,无法通信,如下图

搭建GRE隧道实验 图16

反过来用VM1 ping VM2得到同样的结果.

4.5 创建gre隧道

(1)在VM1上配置GRE

搭建GRE隧道实验 图17

(2)配置好的OVS如下

搭建GRE隧道实验 图18

(3)在VM2上配置GRE

搭建GRE隧道实验 图19

(4)配置好的OVS如下

搭建GRE隧道实验 图20

4.6 验证gre隧道

(1)VM2的br0 ping VM1的br0,可以通信

搭建GRE隧道实验 图21

(2)VM2的br1 ping VM1的br1,可以通信

搭建GRE隧道实验 图22

(3)反过来用VM1 ping VM2同样都可以通信

搭建GRE隧道实验 图23

4.7 抓包分析

通过抓包证明数据包的使用协议的确是GRE,具体如下图

搭建GRE隧道实验 图24

五、实验结论

Open vSwitch创建GRE隧道可以让两个无法通信的机器通信起来,实验中,GRE把两个不通信的网桥连接起来,可以推断出,假如网桥上接主机,那么主机之间也可以通信。这在连接两个不同域之间的SDN网络有很大的作用,我们的“SDN创新实验平台”中的不同节点就是用Open vSwitch创建GRE隧道连接的。值得说的是用运行在Linux环境中的 Open vSwitch创建GRE隧道,LinuxKernel的最低版本为3.11。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/15103.html

分享到:
条评论

登录后才可以评论

SDNLAB君 发表于15-12-01
0