詳細內容傳送門:官方:http://docs.openvswitch.org/en/latest/tutorials/ovs-conntrack/
知乎:https://zhuanlan.zhihu.com/p/25089778
個人blog:https://zhaozhanxu.com/categories/
CT相關內容。
1. match部分,ct_state,ct_zone,ct_mark,ct_label
2. action部分,
commit,提交一個新的connection給connection tracker模塊
table,fork一份pipeline,報文copy一份送給connection tracker,然後從當前指定table重入
zone,制定connection zone,具體作用未知
exec,執行action,setfield ct_mark和ct_label。要和commit一起使用。
Currently, connection tracking is only available on Linux kernels with the nf_conntrackmodule loaded.
ovs說明的例子
The following flows provide an example of how toimplement a simple firewall that allows new connections from port 1 to port 2, and onlyallows established connections to send traffic from port 2 to port 1:
table=0,priority=1,action=drop 低優先級丟棄
table=0,priority=10,arp,action=normal arp放行
table=0,priority=100,ip,ct_state=-trk,action=ct(table=1) 沒有被追蹤過的報文,進入connection tracker然後進入table 1
table=1,in_port=1,ip,ct_state=+trk+new,action=ct(commit),2 被追蹤過且新的,1口的報文,進行commit操作,同時從2發出
table=1,in_port=1,ip,ct_state=+trk+est,action=2 被追蹤過,已經建立的connection,直接從2發出
table=1,in_port=2,ip,ct_state=+trk+new,action=drop 被追蹤過,2口進的,是新connection,丟棄
table=1,in_port=2,ip,ct_state=+trk+est,action=1 被追蹤過,2口進,已經建立的connection,從1出