匹配特定的TCP标志,而不考虑Openflow中设置的其他标志

时间:2019-01-10 19:55:18

标签: openflow ryu

我想匹配一个特定的标志(例如FIN),而不考虑其他任何设置的标志。例如,对于17 = ACK + FIN,我将有一个匹配项;对于3 = SYN + FIN也将是一个匹配项(我知道标志的组合在正常情况下不应出现)

我阅读了OpenFlow 1.3的规范(当前正在使用的规范)以及1.4和1.5的变更日志,但找不到类似的内容。我搜索了诸如“标志”或“通配符”之类的关键字。 到目前为止,我的解决方案是显式指定每个标志组合。喜欢

match = ofparser.OFPMatch(eth_type=ether.ETH_TYPE_IP, ip_proto=inet.IPPROTO_TCP, tcp_flags=FIN)
match2 = ofparser.OFPMatch(eth_type=ether.ETH_TYPE_IP, ip_proto=inet.IPPROTO_TCP, tcp_flags=FIN_ACK)
...

尽管这行得通,但我想知道是否可以避免使用规则使表膨胀并使所有这些组合与单个规则匹配。也许即使在OF的未来版本中也是如此?

感谢您的帮助。干杯。


编辑:根据ovs-ofctl手册页:

  

未提及的标记是通配符。

因此,这不应该是OpenFlow本身的限制,而应该是Ryu的限制。构建匹配对象时,tcp_flags表示为一个int,所以我猜它可以构建特定的匹配。

0 个答案:

没有答案