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
|