zoukankan      html  css  js  c++  java
  • SDN第二次作业

    1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况

    创建拓扑

    要求拓扑支持OpenFlow 1.3协议

    点击run

    展示端口连接情况

    2. 直接在Open vSwitch下发流表,实现如下连通性要求,请逐条说明所下发的流表含义

    h1 -- h4互通

    h2 -- h5互通

    h3 -- h6互通

    其余主机不通

    SDN第二次作业

    将三台主机各设在一个vlan网络内(独立的vid),s1的数据包打上vlan tag从端口4向s2转发
    动作为push_vlan
    在报文外层压入一层vlan tag,需要使用openflow1.1以上版本兼容
    ps: set field值为4096+vlan_id,并且vlan优先级为0,即4096-8191,对应的vlan_id为0-4095

    sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=1,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
    
    sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=2,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
    
    sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=3,actions=push_vlan:0x8100,set_field:4099->vlan_vid,output:4
    

    动作为strip_vlan
    剥掉报文内外层vlan tag
    s1将接收到的数据包去除vlan tag,然后根据dl_vlan(数据包原始的vlan_id),向指定端口转发
    (注意此处也要加上-O OpenFlow13,否则会出现错误***Unknown command: sudo ovs-ofctl add-flow s1 in_port=4,dl_vlan=1,actions=strip_vlan,output:1)

    sudo ovs-ofctl -O OpenFlow13 add-flow s1 in_port=4,dl_vlan=1,actions=strip_vlan,output:1
    
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 in_port=4,dl_vlan=2,actions=strip_vlan,output:2
    
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 in_port=4,dl_vlan=3,actions=strip_vlan,output:3
    

    s2同理

    sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=1,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
    
    sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=2,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
    
    sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=3,actions=push_vlan:0x8100,set_field:4099->vlan_vid,output:4
    
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 in_port=4,dl_vlan=1,actions=strip_vlan,output:1
    
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 in_port=4,dl_vlan=2,actions=strip_vlan,output:2
    
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 in_port=4,dl_vlan=3,actions=strip_vlan,output:3
    

    3. 直接在Open vSwitch查看流表,提交OVS命令执行结果

    查询s1流表
    sudo ovs-ofctl -O OpenFlow13 dump-flows s1

    查询s2流表
    sudo ovs-ofctl -O OpenFlow13 dump-flows s2

    4. 提交主机连通性测试结果,验证流表的有效性

    5.利用Wireshark抓包,分析验证特定报文

    输入sudo wireshark命令出现错误

    解决办法⬇⬇
    https://blog.csdn.net/pyufftj/article/details/22492543

    报文分析

    帧头
    (1) “72 ec d5 d6 54 58”代表目的MAC地址
    (2) “e6 00 77 47 6b 22”代表源MAC地址
    (3) “08 00”代表协议类型为IP数据报
    IP数据报
    45 00 00 54 8e 16 00 00 40 01 d8 8e 0a 00 00 04 0a 00 00 01
    (1)“45”:“4”代表IP协议的版本,说明是IPv4;
    “5”代表IP包的包头长度为:5*4=20字节
    (2)“00”代表服务类型
    (3)“00 54”代表IP数据报文总长(包含头部及数据)
    (4)“8e 16”、“8e 16”代表认证、标志、段偏移;主要用于数据包的分段
    “00 00”代表无偏移字段
    (5)“40”代表存活时间是64
    (6)“01”这里代表的是传输层的报文协议
    (7)“d8 8e”报头确认号
    (8)“0a 00 00 04”代表源IP地址10.0.0.4
    (9)“0a 00 00 01”代表目的IP地址10.0.0.1

  • 相关阅读:
    Setting a maximum attachment size
    一机多屏,屏幕顺序容易错?
    node.js " The requested service provider could not be loaded or initialized"
    VS2008中MFC对话框界面编程Caption中文乱码的解决办法
    The application was unable to start correctly (0xc000007b)
    FreeType的项目总是报error LNK2019: unresolved external symbol __imp错误
    MFC对话框:模态对话框及其弹出过程
    MFC如何获取硬盘的序列号
    SharePoint CAML Query小结
    ECS Navicat for MySQL远程连接报10038的错误
  • 原文地址:https://www.cnblogs.com/jjsgxty/p/11817132.html
Copyright © 2011-2022 走看看