libvirt网络过滤规则, 一个过滤规则定义的示例:

< filter name='no-ip-spoold'chain='ipv4' >

 < uuid >fce8ae33-e69e-83bf-262e-30786c1f8072< /uuid >

 < rule action='drop' direction='out' priority='500' >

   < ip match='no' srcipaddr='192.168.1.1'/ >

 < /rule >

< filterref filter='no-mac-spoofing'/ >

< /filter >

根元素 < filter >的主要属性包括“name"和“chain”,子元素主要包括“< uuid >”、“< filterref >”、“< rule >”等。“name”属性定义该过滤规则的名称,“chain”属性定义该过滤器所在的链,过滤链用于组织过滤规则。目前,可用的chain只有root、ipv4、ipv6、arp和rarp。子元素"< rule > "定义一条规则。“<filterref >”可以直接引用其它定义好的过滤器。在这个例子中,规则匹配“IP”协议,因此,过滤器在“IPV4”链中。

在XML定义中,一条过滤规则就是一个rule节点,rule节点主要有三个属性:

  • “action”:可以是“drop”,表示丢弃;

  • “reject”,拒绝但同时生成一个ICMP拒绝消息;

  • “accept”表示允许通过;

  • “return”返回到调用该过滤器的上一级过滤器进行配;

  • “continue”跳到下一条规格进行匹配。

  • “direction”:数据包到方向,可以是“in”,入方向;“out”,出方向;“inout",双方向。

  • “priority”:相对于其它规则的顺序,值越低,优先级越高,取值范围为-1000到1000。如果缺省,自动赋值500。

  • “statematch ”:连接状态匹配,缺省为'true',还可以选择'false'忽略连接状态。

过滤规则在做匹配时,所有条件都须同时满足,即进行逻辑与。

过滤规则支持的协议,即“rule”标签下的内容(例如上面例子中的ip):

Mac

  • srcmacaddr    MAC_ADDR   源MAC地址

  • srcmacmask    MAC_MASK   源MAC地址掩码

  • dstmacaddr    MAC_ADDR   目标MAC地址

  • dstmacmask    MAC_MASK   目标MAC地址掩码

  • protocolid    STRING   第三层协议的ID,可以是arp, rarp, ipv4, ipv6

  • comment        STRING

Vlan

  • srcmacaddr    MAC_ADDR   源MAC地址

  • srcmacmask    MAC_MASK   源MAC地址掩码

  • dstmacaddr    MAC_ADDR   目标MAC地址

  • dstmacmask    MAC_MASK   目标MAC地址掩码

  • vlanid   UINT16 (0x0-0xfff, 0 - 4095)   VLANID

  • encap-protocol    String   封装的第三层协议ID,可以是arp, ipv4, ipv6

  • comment    STRING

IPv4

  • srcmacaddr    MAC_ADDR   源MAC地址

  • srcmacmask    MAC_MASK   源MAC地址掩码

  • dstmacaddr    MAC_ADDR   目标MAC地址

  • dstmacmask    MAC_MASK   目标MAC地址掩码

  • srcipaddr   IP_ADDR    源IP地址

  • srcipmask   IP_MASK    源IP地址掩码

  • dstipaddr   IP_ADDR    目标IP地址

  • dstipmask   IP_MASK    目标IP地址掩码

  • protocol   UINT8, STRING    第四层协议到标识,可以是tcp,udp, udplite, esp, ah, icmp, igmp, sctp

  • srcportstart    UINT16   源端口范围的开始值

  • srcportend    UINT16   源端口范围的结束值

  • dstportstart    UINT16   目标端口范围的开始值

  • dstportend    UINT16   目标端口范围的结束值

  • dscp   UINT8 (0x0-0x3f, 0 - 63)    服务区分代码点

  • comment   STRING

TCP/UDP/SCTP

  • srcmacaddr    MAC_ADDR 源MAC地址

  • srcipaddr   IP_ADDR    源IP地址

  • srcipmask   IP_MASK    源IP地址掩码

  • dstipaddr   IP_ADDR    目标IP地址

  • dstipmask   IP_MASK    目标IP地址掩码

  • srcipfrom   IP_ADDR    源IP地址范围的开始值

  • srcipto   IP_ADDR    源IP地址范围的结束值

  • dstipfrom   IP_ADDR    目标IP地址范围的开始值

  • dstipto   IP_ADDR    目标IP地址范围的结束值

  • srcportstart    UINT16   源端口范围的开始值

  • srcportend    UINT16   源端口范围的结束值

  • dstportstart    UINT16   目标端口范围的开始值

  • dstportend    UINT16   目标端口范围的结束值

  • dscp   UINT8 (0x0-0x3f, 0 - 63)    服务区分代码点

  • comment   STRING

state STRING    逗号分隔的列表,可以是NEW,ESTABLISHED,RELATED,INVALID,NONE

flags STRING    只适用于TCP,逗号分隔的列表,可以是SYN,ACK,URG,PSH,FIN,RST,NONE,ALL

ICMP

该类规则chain的参数被忽略

  • srcmacaddr    MAC_ADDR   源MAC地址

  • srcmacmask    MAC_MASK   源MAC地址掩码

  • dstmacaddr    MAC_ADDR   目标MAC地址

  • dstmacmask    MAC_MASK   目标MAC地址掩码

  • srcipaddr   IP_ADDR    源IP地址

  • srcipmask   IP_MASK    源IP地址掩码

  • dstipaddr   IP_ADDR    目标IP地址

  • dstipmask   IP_MASK    目标IP地址掩码

  • srcipfrom   IP_ADDR    源IP地址范围的开始值

  • srcipto   IP_ADDR    源IP地址范围的结束值

  • dstipfrom   IP_ADDR    目标IP地址范围的开始值

  • dstipto   IP_ADDR    目标IP地址范围的结束值

  • type   UINT16    ICMP类型

  • code   UINT16    ICMP代码

  • dscp   UINT8 (0x0-0x3f, 0 - 63)    服务区分代码点

  • comment (Since 0.8.5)    STRING

state    STRING    逗号分隔的列表,可以是NEW,ESTABLISHED,RELATED,INVALID,NONE

IGMP, ESP, AH, UDPLITE, 'ALL'

该类规则chain的参数被忽略

  • srcmacaddr    MAC_ADDR   源MAC地址

  • srcmacmask    MAC_MASK   源MAC地址掩码

  • dstmacaddr    MAC_ADDR   目标MAC地址

  • dstmacmask    MAC_MASK   目标MAC地址掩码

  • srcipaddr   IP_ADDR    源IP地址

  • srcipmask   IP_MASK    源IP地址掩码

  • dstipaddr   IP_ADDR    目标IP地址

  • dstipmask   IP_MASK    目标IP地址掩码

  • srcipfrom   IP_ADDR    源IP地址范围的开始值

  • srcipto   IP_ADDR    源IP地址范围的结束值

  • dstipfrom   IP_ADDR    目标IP地址范围的开始值

  • dstipto   IP_ADDR    目标IP地址范围的结束值

  • dscp   UINT8 (0x0-0x3f, 0 - 63)    服务区分代码点

  • comment (Since 0.8.5)    STRING

state    STRING    逗号分隔的列表,可以是NEW,ESTABLISHED,RELATED,INVALID,NONE。

阅读原文

libvirt网络过滤规则简单总结的更多相关文章

  1. tcpdump 选项及过滤规则

    tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap (1)t ...

  2. Wireshark-BPF过滤规则

    设置过滤规则就是让网络设备只是捕获我们感兴趣的网络数据包,如果没有设置过滤规则,即上面的 filter_app 是空字符串,那么网络设备就捕获所有类型的数据包,否则只是捕获过滤规则设置的数据包,此时过 ...

  3. Wireshark技巧-过滤规则和显示规则

    Wireshark是一个强大的网络协议分析软件,最重要的它是免费软件. 过滤规则 只抓取符合条件的包,在Wireshark通过winpacp抓包时可以过滤掉不符合条件的包,提高我们的分析效率. 如果要 ...

  4. Logback中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现:ch.qos.logback.classic ...

  5. Wireshark技巧-过滤规则和显示规则【转】

    转自:https://www.cnblogs.com/icez/p/3973873.html Wireshark是一个强大的网络协议分析软件,最重要的它是免费软件. 过滤规则 只抓取符合条件的包,在W ...

  6. wireshark抓包的过滤规则

    使用wireshark抓包的过滤规则.1.过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==192.16 ...

  7. 【转】Wireshark技巧-过滤规则和显示规则

    原文: http://www.cnblogs.com/icez/p/3973873.html ----------------------------------------------------- ...

  8. 干货,Wireshark使用技巧-过滤规则

    - 过滤规则使用 在抓取报文时使用的规则,称为过滤规则,Wireshark底层是基于Winpcap,因此过滤规则是Winpcap定义的规则,设置过滤规则后,抓到的报文仅包含符合规则的报文,其它报文则被 ...

  9. 组件注册-自定义TypeFilter指定过滤规则

    组件注册-自定义TypeFilter指定过滤规则 4.1 FilterType.ANNOTATION 按照注解方式 4.2 FilterType.ASSIGNABLE_TYPE 按照给定的类型 @Co ...

随机推荐

  1. Unity3d通用工具类之数据配置加载类

    今天,我们来讲讲游戏中的数据配置加载. 什么是游戏数据加载呢?一般来说游戏中会有场景地图. 按照国际惯例,先贴一张游戏场景的地图: 在这张地图上,我们可以看到有很多正六边形,正六边形上有树木.岩石等. ...

  2. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

  3. @Redis Desktop Manager无法连接虚拟机中启动的redis服务问题解决

    Redis Desktop Manager下载地址 https://redisdesktop.com/download 安装好以后连接linux服务器上的Redis服务器错误: 问题排查: 1.检查R ...

  4. ZeroMQZeroMQ研究与应用分析

    1  ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型.连接处理.帧.甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字.ZeroMQ是网络通信中新的一层,介于应用 ...

  5. Python开发之AJAX全套

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  6. 转载 C++实现的委托机制

    转载 C++实现的委托机制 1.引言 下面的委托实现使用的MyGUI里面的委托实现,MyGUI是一款强大的GUI库,想理解更多的MyGUI信息,猛击这里http://mygui.info/ 最终的代码 ...

  7. HDU 2897 邂逅明下 (博弈)

    题意: 给你n.p.q,每次操作是令n减小 [p, q]区间中的数,当n < p时必须全部取完了,取完最后一次的人算输,问先手必胜还是必败. 解题思路: 这种非常类似巴什博弈,可以找出必胜区间和 ...

  8. (转)scala中map与flatMap浅析

    在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合.由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好 ...

  9. Linux shell 提取文件名和目录名

    ${}用于字符串的读取,提取和替换功能,可以使用${} 提取字符串 1.提取文件名 [root@localhost log]# var=/dir1/dir2/file.txt [root@localh ...

  10. 关于SO_REUSEADDR的使用说明~

    参考WINDOWS   网络编程技术         1.   可以对一个端口进行多次绑定,一般这个是不支持使用的:     2.   对于监听套接字,比较特殊.如果你定义了SO_REUSEADDR, ...