在用open vSwitch做實驗時,我們經常需要知道OVS port對應的ofport編號,這個比較容易,用
ovs-ofctl show bridge
就能得到。如
root@vaio:~# ovs-ofctl show br-int OFPT_FEATURES_REPLY (xid=0x2): dpid:0000da9142cdfb44 n_tables:254, n_buffers:256 capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE 1(patch-tun): addr:6e:4b:44:8e:f8:d7 config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max 18(tap0): addr:ea:58:d5:f8:26:4e config: 0 state: 0 current: 10MB-FD COPPER speed: 10 Mbps now, 0 Mbps max 19(tap1): addr:96:fc:5d:b6:43:d6 config: 0 state: 0 current: 10MB-FD COPPER speed: 10 Mbps now, 0 Mbps max LOCAL(br-int): addr:da:91:42:cd:fb:44 config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
當一個bridge上連接有多台虛擬機(或VM有多個IF)時,我們還常常需要知道VM的IF與bridge port的對應,這時候可以使用:
ovs-appctl fdb/show bridge
例如:
root@vaio:~# ovs-appctl fdb/show br-int port VLAN MAC Age LOCAL 0 da:91:42:cd:fb:44 18
18 0 52:54:00:a9:b8:b0 0
19 0 52:54:00:a9:b8:b1 0
可以看到18號ofport連接的是MAC為52:54:00:a9:b8:b0的虛擬網卡。可結合上一個命令,知18號ofport的port name為tap0。
需要注意的是,該網卡必須要有數據的收發,才能夠得到上述的結果,所以使用該命令之前不妨先執行一下類似ping的動作。