码迷,mamicode.com
首页 > 其他好文 > 详细

OpenvSwitch的GRE隧道

时间:2020-06-26 13:00:08      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:one   nbsp   ifconfig   端口   lock   完成后   使用   mininet   抓包   

  此实验为sdnlab上Open vSwitch系列实验。

 一、实验目的

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

   二、实验原理  

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

   三、实验步骤

  1、配置mininet1

  (1)创建br0,配置br0的IP地址为20.0.2.12,将端口eth0加入br0,并设置br0的网关为20.0.2.9。

技术图片  (2)创建br1,配置br1的IP地址为172.171.6.6。(ifconfig br1 172.171.6.6/24 up),并使用ifconfig查看网络配置信息。

技术图片

 2、配置mininet2

 (1)创建br0,配置br0的IP地址为20.0.2.11,将端口eth0加入br0,并设置br0的网关为20.0.2.9。

1 # ovs-vsctl add-br br0
2 # ovs-vsctl add-br br1
3 # ifconfig eth0 0 up
4 # ifconfig br0 20.0.2.11 netmask 255.255.255.248
5 # route add default gw 20.0.2.9
6 # ovs-vsctl add-port br0 eth0

 (2)创建br1,配置br1的IP地址为172.171.6.7,并使用ifconfig查看网络配置信息。

# ifconfig br1 172.171.6.7/24

技术图片

 

 3、测试mininet1 ping 20.0.2.11 ping成功。由于两台设备都有将eth0口加入br0,拥有实际链路,arp广播请求都能正常发送接受,所以能ping通。 技术图片

  用172.171.6.7 ping 172.171.6.6 ping失败。由于没有将实际链路的接口加入br1,所以无法成功。

 4、配置GRE隧道

  根据传统配置gre隧道方法,需要配置以下参数:

  •   本端地址  
  •   对端地址
  •   隧道类型

  我们使用命令给mininet1的br1加入一个gre1的接口,类型为gre,对端IP地址为20.0.2.11,因为是对br1操作,br1已经有IP地址,所以本端地址不用指定:  

sudo ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre option:remote_ip = 20.0.2.11

  配置完成后的ovs情况:

 技术图片

 

  对mininet2也进行同样的配置,只是将对端IP地址改为20.0.2.12。

 5、利用wireshark抓包验证gre隧道

 技术图片

 

  将源地址为172.171.6.7的ICMP包进行封装,在外部又套了一层源地址为20.0.2.11的ICMP包,由于交换机识别数据包是以外层包装来识别,而arp表又有20.0.2.11的的mac地址,所以能顺利将数据包送到对端,对端处理数据包时再剥离外层封装即可。数据包构造如下:

 技术图片

 

  至此,OpenvSwitch的GRE隧道构建成功。

 

 

           

 

OpenvSwitch的GRE隧道

标签:one   nbsp   ifconfig   端口   lock   完成后   使用   mininet   抓包   

原文地址:https://www.cnblogs.com/kl107/p/13189625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!