前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析二

OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析二

作者头像
SDNLAB
发布2018-03-28 15:16:40
1.5K0
发布2018-03-28 15:16:40
举报
文章被收录于专栏:SDNLAB

1 打开wireshark并创建拓扑

按照章节一搭建平台,启动ODL,并打开wireshark。进入装有Mininet的VM,通过mn命令指定网络拓扑及指定此ODL控制器。 Mininet创建网络拓扑命令:

代码语言:javascript
复制
sudo mn --topo linear,2 --switch ovsk --controller=remote,ip=192.168.5.203,port=6633

此命令通过Mininet模拟创建一个含有两个交换机(Open vSwitch,以下简写为OVS)和两个主机的网络拓扑,其中192.168.5.203为ODL的IP,6633为ODL的默认端口,网络拓扑如下图所示:

odl-mini-02-topology
odl-mini-02-topology

2 查看网络

在Mininet中通过操作网络命令,可以查看OVS间及OVS与主机间的连接关系,也可以查看Mininet是否远程连接控制器。

例如,通过nodes命令可以查看网络中所有的节点。

odl-mini-02-nodes
odl-mini-02-nodes

通过net命令可以查看并确认网络连接关系是否与预期一致以及节点信息,且可以了解具体的连接端口信息。

odl-mini-02-net
odl-mini-02-net

通过下面的dump命令可以看出,交换机通过远程方式连接到控制器,且能看到控制器的IP和PORT。

odl-mini-02-dump
odl-mini-02-dump

3 抓包并分析协议

通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,下面分析该流程中的OF消息。此专题应用的是直接支持OpenFlow协议的wireshark官网Stable Release (1.12.1)版本。

3.1建立连接

控制器与交换机之间的OpenFlow协议是应用于TCP传输层上,所以解析应用层。他们首先发送hello消息,建立初始化连接,协商使用的OpenFlow协议版本。由下图可知,ODL与Mininet之间应用的是OpenFlow1.0版本协议(其他1.2、1.3协议会在协议OpenFlow后面标识)。

odl-mini-02-hello
odl-mini-02-hello

3.2 能力请求响应

该消息主要响应能力请求feature request消息,回复连接此控制器的交换机的一些基本设置信息,包括交换机的能力以及它的一些端口的信息等。

odl-mini-02-features reply
odl-mini-02-features reply

3.3 config请求回应

get config reply消息用于回应get config request消息,交换机通过该消息回应配置信息,一般是交换机的接口配置等信息。

3.4 stats状态信息

stats reply消息用于回应stats request信息,主要是交换机回应给控制器的状态信息。

3.5 flow mod消息

flow mod消息涉及到流表项的匹配信息等,下图显示的flow mod匹配项的类型信息。

odl-mini-02-flow mod
odl-mini-02-flow mod

3.6 packet_in、packet_out消息

在这部分流程中,当交换机收到数据包后查找流表无匹配项时,将数据包封装在packet_in消息发给controller,由controller通过packet_out消息下发决策,使发送和接收数据包的两主机间进行通信。

odl-mini-02-packet in-out
odl-mini-02-packet in-out

以上几种消息类型,可以参照OpenFlow标准协议中的类型,如下图:

odl-mini-02-symmetric1
odl-mini-02-symmetric1

我们可以用 wireshark 观察到当第一次有 ping 包从h1发到h2时,控制器如何自动添加相应的表项到交换机。

odl-mini-02-symmetric2
odl-mini-02-symmetric2

同时,可以进入ODL的web界面查看发现设备的拓扑,如图所示:

odl-mini-02-odl web1
odl-mini-02-odl web1

4 总结

本文基于本专题前一篇文章介绍的实验平台,通过Mininet搭建拓扑结构熟悉其基本操作,同时通过支持OpenFlow协议的wireshark抓包工具熟悉并分析相关的OpenFlow协议。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 打开wireshark并创建拓扑
  • 2 查看网络
  • 3 抓包并分析协议
    • 3.1建立连接
      • 3.2 能力请求响应
        • 3.3 config请求回应
          • 3.4 stats状态信息
            • 3.5 flow mod消息
              • 3.6 packet_in、packet_out消息
              • 4 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档