• dpctl 命令实践


    dpctl 命令实践

    dpctl 程序是一个命令行工具用来检测和管理 OpenFlow 数据通路,它能够显示当前的状态数据通路,包括功能配置和表中的条目,以及合适使用 OpenFlow 的内核模块,可以用来添加,删除,修改和监视 datapaths。

    查看交换机端口信息基本情况(TCP 端口 6634 是默认交换机监听端口)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # dpctl show tcp:9.123.137.25:6634
    features_reply (xid=0x94af8117): ver:0x1, dpid:1
    n_tables:255, n_buffers:256
    features: capabilities:0xc7, actions:0xfff
     1(s1-eth1): addr:2e:d1:ca:aa:af:67, config: 0, state:0
         current:    10GB-FD COPPER
     2(s1-eth2): addr:66:93:32:1e:9b:9e, config: 0, state:0
         current:    10GB-FD COPPER
     LOCAL(s1): addr:5e:bc:ab:cc:dc:43, config: 0x1, state:0x1
    get_config_reply (xid=0x92fc9e48): miss_send_len=0

    查看流表信息:

    1
    2
    # dpctl dump-flows tcp:9.123.137.25:6634
    stats_reply (xid=0xe2c7ea1e): flags=none type=1(flow)

    此时,流表为空,执行 h1 ping h2 无法得到响应。因此我们需要通过 dpctl 手动添加流表项,实现转发。

    手动添加流表项:

    1
    2
    3
    4
    5
    6
    7
    8
    # dpctl add-flow tcp:9.123.137.25:6634 in_port=1,actions=output:2
    # dpctl add-flow tcp:9.123.137.25:6634 in_port=2,actions=output:1
    # dpctl dump-flows tcp:9.123.137.25:6634     
      stats_reply (xid=0x131ed782): flags=none type=1(flow)
      cookie=0, duration_sec=13s, duration_nsec=401000000s, table_id=0, priority=32768,
      n_packets=0, n_bytes=0,idle_timeout=60,hard_timeout=0,in_port=1,actions=output:2
      cookie=0, duration_sec=5s, duration_nsec=908000000s, table_id=0, priority=32768,
      n_packets=0, n_bytes=0,idle_timeout=60,hard_timeout=0,in_port=2,actions=output:1

    此时查看流表可以看到新的转发信息,同时可以在 h1 和 h2 之间可以相互连通。

    dpctl 其他常用操作

    创建 datapath 编号为 0

    1
    #dpctl adddp n1:0

    增加两个网络设备到新的 datapath

    1
    2
    #dpctl adddp n1:0 eth0
    #dpctl adddp n1:0 eth1

    检测数据通路接收的流量

    1
    #dpctl monitor n1:0

    在数据通路中删除网络设备

    1
    #dpctl delif nl:0 eth0
  • 相关阅读:
    蓝牙接收苹果手机通知 ANCS协议分析
    sqlite索引的原理
    iOS 项目的编译速度提高
    苹果核
    如何将 iOS 工程打包速度提升十倍以上
    微信跳一跳 (亲测可用)
    iOS 11 适配集锦
    iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上(转)
    架构、框架、模式、模块、组件、插件、控件、中间件的含义和区别
    OC基础--对象做参数在方法间传递
  • 原文地址:https://www.cnblogs.com/soul-stone/p/8052894.html
Copyright © 2020-2023  润新知