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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM