zoukankan      html  css  js  c++  java
  • openvswitch与控制器OpenDayLight的交互(1)

    1. 1c+1s+1h,c是127.0.0.1                      

      拓扑图

           

    网卡:

     只有一个bridge,控制器为本地控制器

     流表:没有流表项

    2. 1c+1s+1h,c为本地ODL

    拓扑:

     网卡和bridge与1相同。

    设置本地ODL为控制器:

     流表:有流表项,第一项表示从s1-eth1进入的包,发送到控制器65535端口,相当于TABLE-MISS表项;第二条的dl_type=0x88cc表示该包为LLDP包,发往控制器用作拓扑发现;第三条表示如果前面的都匹配不上,则丢弃,其优先级为0.

    抓包查看连接控制器后的包的内容:

     

     OFPT_FEATURES_REPLY包的部分内容

     

    OPPT_MULTI PART_REPLY,type为OFPMP_PORT_DESC返回了交换机的端口信息

    OFPT_MULTIPART_REPLY,type为OFPMP_DESC,返回交换机的版本等信息。

    3. 1c+1s+2h

    拓扑图:

     

    网卡:与1个host相比,交换机多了一个网卡

     

    设置控制器后,查看流表:

     wireshark抓包发现,与上面一次的抓包有所不同的地方:

    1. OVS给ODL发送HELLO包后,ODL也给OVS发送了HELLO包。

    2. 控制器先给OVS添加LLDP流表项和DROP流表项,然后发送LLDP包到网络,然后添加流表项上图中的第一条和第二条,其中output到了另一个端口和控制器。

     h1 ping h2,ping后交换机的流表增加了两项,这两条流表项的match域用MAC地址匹配,不涉及IP地址:

     在ODL的web页面查看,ping之前拓扑图只有openflow节点,ping通后有了主机:

     通过抓包,可以发现:

    交换机收到主机h1的包后,广播ARP请求,收到主机h2的回复后,将这个包广播出去(MAC地址全ff),发送packet_in消息给控制器(packet_in消息中,src为h1 MAC地址,dst为MAC广播地址);h2收到后,回复ICMP reply包,交换机收到后,转发给h1,并发送packet_in消息给控制器(packet_in消息中src为h2 MAC地址,dst为h1 MAC地址)。

  • 相关阅读:
    基于term vector深入探查数据
    oracle 行转列
    oracle 统计成绩
    最全最新个税计算公式---今天你税了吗?
    .net反混淆脱壳工具de4dot的使用
    使用ILSpy软件反编译.Net应用程序的方法及注意事项
    EmguCV使用Stitcher类来拼接图像
    从睡姿就可以看出你的性格,据说非常准,快存!
    分享几个.NET WinForm开源组件,纪念逐渐远去的WinForm。。。
    【转载】关于.NET下开源及商业图像处理(PSD)组件
  • 原文地址:https://www.cnblogs.com/LiuQiujie/p/12551205.html
Copyright © 2011-2022 走看看