zoukankan      html  css  js  c++  java
  • 实验四 POX控制器编程实验指导

    此为中国大学MOOC上温州大学所开设的SDN软件定义网络课程配套实验。

    镜像地址:https://pan.baidu.com/s/1qYN_MtUboPmruHda1DgrTA  提取码:mhfi

    实验指导书地址:链接:https://pan.baidu.com/s/1XpDrV2car4qH-sXJq1zbPA  提取码:s8un

     

    一、前置知识:

      POX 控制器部分组件说明:

      • forwarding.hub:该组件每个交换机添加洪泛通配符规则,将所有交换机等效于 ethernet 集线器。
      • forwarding.l2_learning:该组件使 opennflow 交换机实现 L2 链路层上的地址学习 (类似网桥)。但当该组件学习地址学习时,向流表下发的规则会尽可能的准确, 而不仅仅是 L2 层的地址。例如不同的 TCP 连接将产生不同的表项。
      • forwarding.l2_pairs:类似于 forwarding.l2_learning,l2_pairs 让交换机进行地址学 习,但该组件是尽可能的简化规则学习,所有安装的表项时只使用 L2 层信息(如 Mac 地址)。
      • forwarding.l3_learning:组件并不是一个完整的 Router,该组件是可 POX 的 packet library(代码)的一个实现样例,可以构造 ARP 请求和回复。l3_learning 关心 IP从哪来,但并不关心 IP 的填充域,如子网等。

    二、实验步骤:

      实验一 使用tcpdump验证Hub模块

      1、创建拓扑。 拓扑包含1台控制器,1台交换机,3台主机,控制器默认监听6633端口,开启h1,h2,h3的终端

         2、拓扑如下

        3、启动POX的forwarding.hub模块,并且以DEBUG模式来运行查看日志

           命令:./pox.py log.level --DEBUG forwarding.hub 

           调用组件模块用.

     

        4、在h3(10.0.0.3)主机上进行抓包,并使用h2 ping h1

     

               发现h3也抓的到h2 ping h1的包,说明交换机是hub模式。

        实验二 使用tcpdump验证Switch模块

        1、启动forwarding.l2_learning模式

          

        2、开启h3终端,进行抓包,使用h2 ping h1

          h2 ping h1

          h3终端显示

        可以看到h3只抓到了h2 ping h1的第一个包,后面的包全部抓不到,这就符合交换机的Switch模式。至于为什么第一个包抓的到,我们开启wireshark对抓包进行分析

           当交换机收到h2 ping h1的第一个ICMP包时,发送了packet_in消息给控制器,控制器回复packet_out消息,在packet_out消息中动作为Output to switch port,就是将数据包从某个端口发出,端口号为65531,其十六进制为0xfffb,我们到/home/ubuntu/openflow/include/openflow/openflow.h中查看此端口号的意义

         查明此端口意义是将此数据包进行泛洪,所以交换机就会将此数据包就行泛洪,所以h3也能捕获到h2 ping h1的第一个数据包。

        3、对交换机s1进行流表项查询,验证是l2_leanring模式

        由于流表项规则中包含了比较详细的标识(含有IP地址),不仅仅是L2地址,所以能判断是l2_learning模式。

        4、重新载入l2_pairs模块,再观察交换机s1流表项

        载入l2_pairs模块后,交换机s1流表项:

     

        规则只包含L2层的信息,可以验证这是l2_pairs模式。

  • 相关阅读:
    备份文件的时候,不想手敲日期时间。用这种方法
    bash 命令行自动补全
    windows 下创建虚拟conda 环境
    windows 下安装venv慢,更换国内豆瓣源
    下载某个链接100次
    Linux cached过高问题
    把一件事坚持30天
    java dump 内存分析
    微服务架构~白话
    Spring Boot自定义Redis缓存配置,保存value格式JSON字符串
  • 原文地址:https://www.cnblogs.com/kl107/p/13084707.html
Copyright © 2011-2022 走看看