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. linux 程序移植到Android

    用动态链接的方法: arm-linux-gcc hello.c -o hello.out -Wl,-dynamic-linker=/system/lib/ld-linux.so.3 并且拷贝文件到安卓 ...

  2. [图像]用Matlab在图像上画矩形框

    原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...

  3. 2016/4/14腾讯Android实习面试

    腾讯实习面试,面试官会先问你会什么,擅长什么.然后会依照这个问,问的也不是非常偏,问道你不会的就换下一个知识点. 主要问我的有这几个问题 图形学 1.Bizer曲线怎么绘制的.原理是什么 2.对栅格有 ...

  4. grafana-zabbix图形简单配置

    连接zabbix数据库 加入dashboard Home--Add--加入dashboad 设置dashboad 设置名字,和标签tag,tag可在输入后回车加入多个 加入简单的一张图,測试能否获取到 ...

  5. 使用python读取word

    使用python读取word 官网:https://python-docx.readthedocs.io/en/latest/ 示例:https://blog.csdn.net/u010911997/ ...

  6. ExtAspNet下通过文档路径实现文档的下载

    <ext:Button ID="Button1" runat="server" Text="Button" OnClick=" ...

  7. 【python】如何安装requests

    在cmd窗口输入pip install requests 即可,如下 C:\Users\horn1\Desktop\python\4>pip install requestsCollecting ...

  8. Visual studio中后期生成事件命令使用

    在做项目是总要把发布后的一些dll拷贝的根网站的bin目录下,为了避免每次都需要手动拷贝可以在 项目的生成事件中写入bat命令,下面的命令只在项目使用的发布配置时执行拷贝, (在生成->配置管理 ...

  9. Arrays.asList的用法

    使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常说明: ...

  10. 【Linux】(2013-7-19)配置tftp与开发板传送文件

    1. 安装必须软件 sudo apt-get install -y xinetd tftp-hpa 2. 修改配置文件 vi /etc/default/tftpd-hpa # /etc/default ...