Network filtering XML为虚拟化系统管理员提供对了一种网络流量的过滤规则,系统管理员可以通过配置过滤参数,实施和管理对虚拟机网络流量的接受和转发。由于过滤规则不能绕过直接进入虚拟机内,它使得一个filter对虚拟用户的访问控制具有强制性。官方wiki链接 Network filter
Network filtering 子系统允许每一个虚拟机的网络过滤表可以被单独配置。我们可以在启动时配置虚拟机的访问控制过滤表,也可以在虚拟器运行时对虚拟机的规则进行修改。后者可以通过修改network filter XML的方式进行。
Libvirt 允许多台虚拟机共用一个。当filter被修改时,所有运行的虚拟机都会自动更新filter的过滤规则。

Network filtering XML部署在KVM Server上可以实现:虚拟网络隔离、入侵防护、批量管理等功能。Openstack的网络控制就是基于Networkl filter。

首先是libvirt定义网络过滤规则的相关命令:

virsh nwfilter-define 

后面加上一个xml文件,从一个XML文件中定义或者更新一个网络过滤规则。

virsh nwfilter-dumpxml 

后面加上某个网络过滤规则的名称,查看一个网络规则的XML详细信息。

virsh nwfilter-edit 

后面加上某个网络过滤规则的名称,编辑一个网络规则。

virsh nwfilter-list

列出所有定义成功的网络过滤规则。

virsh nwfilter-undefine

后面加上一个网络过滤规则的名称,须消该网络过滤规则。

注意:定义网络过滤规则可以无视客户机的状态,并且可以及时生效,即使在客户机活跃的情况下。

限制虚拟机上外网实例:

1.在虚拟机xml文件中添加 netfilter 名字 limit-internet ,启动虚拟机,外网访问正常。

 <interface type='bridge'>
      <mac address='52:54:00:08:b2:82'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <filterref filter='limit-internet'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
2.定义netfilter ,发现虚拟机外网访问立即断掉

virsh nwfilter-define limit-internet.xml 

<filter name='limit-internet' chain='ipv4'>
    <uuid>fce8ae34-e69e-83bf-262e-30786c1f8073</uuid>
    <rule action='accept' direction='out' priority='100'>
        <ip protocol='udp' srcportstart='67' srcportend='68' dstportstart='67' dstportend='68'/>
    </rule>
    <rule action='accept' direction='in' priority='100'>
        <ip protocol='udp' srcportstart='67' srcportend='68' dstportstart='67' dstportend='68'/>
    </rule>
    <rule action='drop' direction='out' priority='200'>
        <ip match='no' dstipaddr='$GATEWAYIP' dstipmask='255.255.255.0'/>
    </rule>
</filter>
3.重新定义 netfilter ,虚拟机外网访问立即恢复正常

virsh nwfilter-define limit-internet-cancer.xml 

<filter name='limit-internet' chain='ipv4'>
    <uuid>fce8ae34-e69e-83bf-262e-30786c1f8073</uuid>
    <rule action='accept' direction='out' priority='100'>
    </rule>
</filter>





Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐