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. 定制NSLog便于打印调试

    定制NSLog便于打印调试 本人之前从事过嵌入式开发,对于打印调试比较在行,现分享定制的NSLog以及教大家如何使用. 源码下载地址  https://github.com/YouXianMing/Y ...

  2. 第九章openwrt 703N 网口转串口+串口转网口TTL 数据传输

    原生串口      1.WR703N 自带 TTL 电平串口,设备文件为/dev/ttyATH0, 波特率 115200.但是硬件串口 没有接出来,需要自己焊线.破壳. 图 1. 正面图.两根线 TP ...

  3. Nginx发展现状及未来特性

    Nginx ("engine x")是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器,其特点是占用内存少,并发能力强.到目前完为止,Ngi ...

  4. 为大家推荐一款很不错的MarkDown编辑器——stackEdit

    自己细致体验了一下下:认为它还是很不错的! !! https://stackedit.io 这是它的官网,我们能够在chrome浏览器的"应用"里找到相应的插件. ps:它但是一款 ...

  5. [Algorithm -- Dynamic programming] How Many Ways to Decode This Message?

    For example we have 'a' -> 1 'b' -> 2 .. 'z' -> 26 By given "12", we can decode t ...

  6. iOS 状态栏和导航条配置

    iOS 状态栏和导航条配置 一:隐藏: [self.navigationController setNavigationBarHidden:YES animated:YES]; [[UIApplica ...

  7. Linux环境下c语言静态链接库和动态链接库创建和使用

    库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功, ...

  8. UNIX网络编程读书笔记:shutdown函数

    终止网络连接的通常方法是调用close函数.不过close有两个限制,却可以使用shutdown来避免. close 把描述字的引用计数减1,仅在该计数变为0时才关闭套接口.使用shutdown可以不 ...

  9. JSTL核心标签

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  10. Servlet 过滤器 Filter

    过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法: 下面是对所有编码过滤器 package filter ...