• 2019 SDN上机第4次作业


    1 安装OpenDayLight控制器,启动并安装插件

    2 用Python脚本搭建如下拓扑:

    from mininet.topo import Topo
    class Mytopo(Topo):
        def __init__(self):
            Topo.__init__(self)
            sw=self.addSwitch('s1')
            h1=self.addHost('h1')
    	h2=self.addHost('h2')
            h3=self.addHost('h3')
    	self.addLink(sw,h1)
            self.addLink(sw,h2)
    	self.addLink(sw,h3)
    topos = {'mytopo': (lambda:Mytopo())}
    

    pingall,显示各主机都连通:

    控制器端拓扑图:

    3 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复

    下发流表过程:

    in-port=2 :对2号端口进来的数据进行限制


    instructio n: apply-actions-case (执行动作)
    action : drop-action-case (丢包动作)

    hard-timeout:硬超时,在流表下发之后改时间内的报文都会执行上文设置的丢弃动作

    流表内容设置好之后点击SEND,成功之后流表就会生效,在20秒内h2 无法ping通h3

    Preview:

    http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/2
    
    {
        "flow": [
            {
                "id": "2",
                "match": {
                    "in-port": "2",
                    "ethernet-match": {
                        "ethernet-type": {
                            "type": "0x0800"
                        }
                    },
                    "ipv4-destination": "10.0.0.3/32"
                },
                "instructions": {
                    "instruction": [
                        {
                            "order": "0",
                            "apply-actions": {
                                "action": [
                                    {
                                        "order": "0",
                                        "drop-action": {}
                                    }
                                ]
                            }
                        }
                    ]
                },
                "flow-name": "flow111",
                "hard-timeout": "20",
                "table_id": "0"
            }
        ]
    }
    

    links:

    在下发流表前,icmp_seq=1和icmp_seq=2的报文正常通信。
    在这时下发流表,之后的20秒都无法ping通:

    4 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。

    将preview的url复制到地址栏,输入odl的默认账号和密码admin

    使用PUT方法 下发流表:

    使用GET方法 查看刚刚下发的流表项

  • 相关阅读:
    币值转换
    第八周作业
    第七周作业
    第五周编程总结
    第四周编程总结
    第三周编程总结
    7-1 查找整数
    7-2 求最大值及其下标
    秋季学习总结
    对我影响最大的三个老师
  • 原文地址:https://www.cnblogs.com/xzhcode/p/11900775.html
Copyright © 2020-2023  润新知