libvirt网络过滤规则简单总结

来源:互联网 发布:高级猎头 知乎 编辑:程序博客网 时间:2024/04/27 23:29

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

 

0 0
原创粉丝点击