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. 网页采集(通过HtmlAgilityPack+XPath)

    有HtmlAgilityPack这个类库可以更方便地对HTML内容进行分析和提取.因此今天特别学习和实践了一下HtmlAgilityPack和XPath,并作下笔记. 1.下载HtmlAgilityP ...

  2. 使用HttpClient发送请求接收响应

    1.一般需要如下几步:(1) 创建HttpClient对象.(2)创建请求方法的实例,并指定请求URL.如果需要发送GET请求,创建HttpGet对象:如果需要发送POST请求,创建HttpPost对 ...

  3. windows服务的安装和卸载方法

    安装 创建“安装.bat”文件,用记事本打开此文件,内容为 c:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe E:\progr ...

  4. 分别用Java和JS读取Properties文件内容

    项目中经常用到的配置文件,除了XML文件之外,还会用到Properties文件来存储一些信息,例如国际化的设置.jdbc连接信息的配置等.有时候也会把一些路径或者sql语句放到Properties中, ...

  5. powerdesigner 16.5 破解步骤

    假设你的PowerDesigner已经安装完成.(PowerDesigner下载地址:http://pan.baidu.com/s/1mgqjmpa) 1. 从网上下载PowerDesigner165 ...

  6. 【云计算】Docker 多进程管理方案

    docker容器内多进程的管理方案 时间 2015-05-08 00:00:00                                               涯余            ...

  7. js 多域名跳转

    <script>try {if( self.location == "http://cnblogs.com/endv" ) { top.location.href = ...

  8. [Algorithm -- Dynamic Programming] Recursive Staircase Problem

    For example there is a staricase N = 3 | ---|   |---|    | |---|            | ---|                  ...

  9. 从HttpServletRequest获取完整的请求路径

    String url = request.getRequestURI(); // 这个方法只能获得不包含参数的请求url,且只包含相对路径 StringBuffer url_buffer = requ ...

  10. Verilog 基础回顾 (一)

    Verilog 大小写敏感,且所有关键字都是小写 1  寄存器 register = storage,是数据存储单元的抽象,可视为能够存储数值的变量 (variable that can hold v ...