virsh 网络设置_KVM使用Network Filters进行虚拟机网络管理 | leon的博客

1.1 Network Filters介绍

Network filtering XML为虚拟化系统管理员提供了一种网络流量的过滤规则,系统管理员可以通过配置过滤参数实施和管理对虚拟机网络流量的接受和转发,由于过滤规则不能绕过直接进入虚拟机内,使得一个filter对虚拟用户的访问控制具有强制性。

Network filtering 子系统允许每一个虚拟机的网络过滤表可以被单独配置,我们可以在启动时配置虚拟机的访问控制过滤表,也可以在虚拟器运行时对虚拟机的规则进行修改,后者可以通过修改network filter XML的方式进行。

Libvirt 允许多台虚拟机共用一个,当filter被修改时所有运行的虚拟机都会自动更新filter的过滤规则。

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

1.2 实现原理

chain类型:所有过滤规则都被组织到一个过滤链中,数据包经过这些过滤链被选择进入虚拟机或是DROP掉,链都有不同的优先级,root链的优先级最高。所有的数据包必须先经过root链后才可能继续到其他过滤规则中匹配。

priority优先级的设定:所有链都被连接到root链中,优先级的值越小,优先级越高,用户可以定义自己的优先级数值,取值范围(100,1000)下边是官方提供的默认优先级:

1.3 过滤规则语法

1.3.1 示例规则

[root@KVM ~]# virsh nwfilter-dumpxml no-ip-spoofing

f1f35512-7ef2-46f9-8c29-2b59f2905d69

1.3.2 filte字段

name:唯一,指定filter的名称,后面引用时使用

chain:指定链类型,目前已经存在的链有:

root

mac (since 0.9.8)

stp (spanning tree protocol) (since 0.9.8)

vlan (802.1Q) (since 0.9.8)

arp, rarp

ipv4

ipv6

priority:指定优先级

uuid:唯一值

rule:指定规则具体内容

1.3.3 rule规则

action:必选项,指定动作:drop,reject,accept,return,continue

direction:必选项,传入:in,传出:out,传入和传出:inout

priority:可选项,优先级

statematch:可选的,默认是true,即开启匹配的底层连接状态,0或false关闭

内容:根据选择的链不同,使用不同的参数规则匹配,具体参见官方文档

1.4 相关命令

1.4.1 查看过滤规则

[root@KVM ~]# virsh nwfilter-list

UUID                                  Name

------------------------------------------------------------------

efd8cd06-e22d-4916-92cb-2f40e4dcbe22  allow-arp

bc4e01e3-c972-4bf7-b380-c261138d142d  allow-dhcp

25392b41-bda1-47c5-9473-8c0f6f2711c9  allow-dhcp-server

b7d7f239-ed03-4810-bb29-ad1877ef2487  allow-incoming-ipv4

fd4b35db-23ad-46c2-8fc4-0b883cdc3d7f  allow-ipv4

eb60ceeb-ffbb-413d-ac35-291fab167484  clean-traffic

ba723fc5-970b-404e-997a-3fd186af4a1a  clean-traffic-gateway

cdbcdf81-9e2b-4480-861b-6b1577e57546  no-arp-ip-spoofing

010f7cfd-c8e9-4ace-8841-436428b03ada  no-arp-mac-spoofing

c9fb871f-23e2-4358-96ec-c287a4b5c50d  no-arp-spoofing

97cf25e0-6d2a-498e-9c8a-dfffeec5b88e  no-ip-multicast

f1f35512-7ef2-46f9-8c29-2b59f2905d69  no-ip-spoofing

67154bef-f80e-4889-9288-c2a68972d244  no-mac-broadcast

d4a91993-299b-460f-a094-5194d5ed4071  no-mac-spoofing

eacd541b-6e64-477f-bfe2-8e6ec815fea1  no-other-l2-traffic

1b2bf173-2d26-45eb-bf93-a2bd808c88ad  no-other-rarp-traffic

26efad9c-d18b-490d-aeba-9b8df5e9aaa4  qemu-announce-self

f89283ba-4fc0-4682-a200-77ad87a0be8c  qemu-announce-self-rarp

1.4.2 定义过滤规则

[root@KVM ~]# virsh nwfilter-define 规则名称

1.4.3 编辑过滤规则

[root@KVM ~]# virsh nwfilter-edit 规则名称

1.4.4 查看规则具体内容

[root@KVM ~]# virsh nwfilter-dumpxml 规则名称

1.4.5 删除过滤规则

[root@KVM ~]# virsh nwfilter-undefine 规则名称

1.4.6 查看系统有没有生效的规则

[root@KVM ~]# ebtables -t nat -L

1.4.7 使规则立即生效

[root@KVM ~]# virsh update-device 虚拟机名称 规则名称

1.5 编写自己的过滤规则(禁止tpot访问局域网其他服务器)

1.5.1 编写规则文件

[root@KVM ~]# vim /etc/libvirt/nwfilter/tpot.xml

a37a0fc1-2926-4f83-beb9-681d942f7027

【规则说明】:

name='tpot':规则名称为tpot

chain='ipv4':使用ipv4链进行过滤

action='drop' direction='out':出方向禁止规则

match='yes':匹配时执行action过滤规则;或者设置为no,不匹配时执行action

dstipaddr='$IP:目标IP地址,匹配地址为参数形式,后面在引用的时候定义

dstipmask='255.255.255.0':目标IP子网掩码

提示:KVM过滤规则默认保存位置:/etc/libvirt/nwfilter/

1.5.2 定义规则

[root@KVM ~]# virsh nwfilter-define /etc/libvirt/nwfilter/tpot.xml

1.5.3 引用规则

[root@KVM ~]# virsh edit Debian-Tpot

1.5.4 启动虚拟机

[root@KVM ~]# virsh start Debian-Tpot

1.5.5 *查看定义后的过滤规则

[root@KVM ~]# virsh nwfilter-dumpxml tpot

a37a0fc1-2926-4f83-beb9-681d942f7027

1.5.6 *查看生效规则

[root@KVM ~]# ebtables -t nat -L

Bridge table: nat

Bridge chain: PREROUTING, entries: 1, policy: ACCEPT

-i vnet35 -j libvirt-I-vnet35

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Bridge chain: POSTROUTING, entries: 0, policy: ACCEPT

Bridge chain: libvirt-I-vnet35, entries: 1, policy: ACCEPT

-p IPv4 -j I-vnet35-ipv4

Bridge chain: I-vnet35-ipv4, entries: 3, policy: ACCEPT

-p IPv4 --ip-dst 192.168.1.0/24 -j DROP

1.6 参考资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 布局管理器_有时在Java中,一个布局管理器是不够的

java 布局管理器在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器。 这通常不是问题,被认为是几乎所有人类已知语言的所有UI开发的常规做法。 但是,大多数情况下,对于UI中的每个面板…

支付宝支付、微信支付(最详细教程)

对接支付宝支付接口,官方文档已经写的很清楚了,但是也有很多像我一样的小白,第一次对接支付宝支付接口,会有些迷茫,所以我在此写下这篇文章,给我和我一样的同学,一点思路吧。 第一步&#xff1…

Lintcode: O(1) Check Power of 2

Using O(1) time to check whether an integer n is a power of 2. Example For n4, return trueFor n5, return falseChallenge O(1) timeTags Expand 这道题考察bit manipulation. 1的个数只能有1个才是power of 2. 主要是要注意Integer.MIN_VALUE,这个只有一个1…

降雨插值_ArcGIS计算土壤侵蚀模数(二)降雨侵蚀力因子R计算

本次采用中国土壤流失方程CSLE计算土壤侵蚀模数,计算公式为:ARKLSBET式中,式中:A—土壤侵蚀模数。thm-2a-1;R—降雨侵蚀力因子,MJmmhm-2h-1a-1;K—土壤可蚀性因子,thm2hhm-2MJmm-1&a…

购买阿里云ECS服务器忘记终端管理密码或者没有设置

自己开发一个APP,想把源码放到服务器上跑一跑,发现使用Xshell远程连接不上去,我记得买服务器的时候没有设置。 一般有两种方法: 1.买服务器的时候,阿里会给你发一份邮件,邮件里面有,这个是官方的说法,我是公司CTO,账号是老板开的,根本不可能看到邮件,所以对我来说不…

mustache,用{{}}获取值

{{}}是属于java mustache controller类设置保存对象值在cars-common中有引入mustache.js&#xff0c;web再引入cars-common。jar包<bean id"viewResolver" class"com.fw.cars.common.infra.web.context.mustache.MustacheViewResolver">转载于:https…

输出空格隔开换行_【前端干货】CSS 的空格处理

一空格规则HTML 代码的空格通常会被浏览器忽略。<p>◡◡hello◡◡world◡◡</p>上面是一行 HTML 代码&#xff0c;文字的前部、内部和后部各有两个空格。为了便于识别&#xff0c;这里使用半圆形符号◡表示空格。浏览器的输出结果如下。hello world可以看到&#x…

宝塔面板绑定域名导致无法访问

用这个命令rm -f /www/server/panel/data/domain.conf删除绑定域名后&#xff0c; 就能用ip端口进入面板了&#xff0c;以后还是不要绑定域名了 主要是因为我手残。 看重点&#xff0c;我是绑定了域名&#xff0c;用域名也无法访问。 现在终于进去啦

【转】在.Net中关于AOP的实现

原文地址&#xff1a;http://www.uml.org.cn/net/201004213.asp 一、AOP实现初步 AOP将软件系统分为两个部分&#xff1a;核心关注点和横切关注点。核心关注点更多的是Domain Logic&#xff0c;关注的是系统核心的业务&#xff1b;而横切关注点虽与核心的业务实现无关&#xff…

宝塔访问域名访问不到

首先说明一点&#xff0c;我这个问题不是宝塔面板绑定域名的那种情况。 浏览器输入域名会报上面的错误&#xff0c;经过各种尝试&#xff0c;发现是安全组没有放开&#xff0c;在阿里云控制台添加一个80/80的通用安全组规则即可&#xff0c;知道上行和下行的区别&#xff0c;打…

spring.jpa配置_使用JPA和Spring 3.1进行事务配置

spring.jpa配置1.概述 本教程将讨论配置Spring Transactions &#xff0c;使用Transactional批注和常见陷阱的正确方法 。 有关核心持久性配置的更深入讨论&#xff0c;请查看Spring with JPA教程 。 有两种不同的配置事务的方法– 批注和AOP –每种都有自己的优势–我们将在…

双千兆和双频千兆哪个好_关于千兆路由器的那些事儿!赶紧收藏

无线Wi-Fi已成为现代人生活、工作的标配&#xff0c;随着百兆乃至千兆的光纤网络普及&#xff0c;传统路由器已跟不上时代的速度了。不少用户的眼光已投向速度更快的千兆路由器&#xff0c;那么大家真的了解什么是千兆路由器吗&#xff1f;千兆路由器有哪几种&#xff1f;近期火…

宝塔常用的命令大全(直接上官网)

安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash ins…

华三ospf联动bfd_HCIE2020__路由交换专家__BFD综合实验

1.1.1 关于本实验本实验通过配置BFD与BGP协议联动及与VRRP协议联动&#xff0c;掌握BFD的功能和配置方法。1.1.2 实验目的理解BFD的工作原理。 掌握BFD与BGP联动的应用场景及配置方法。 掌握BFD与VRRP联动的应用场景及配置方法。1.1.3 实验组网介绍图1-1 BFD原理配置实验拓扑图…

struts2,实现Ajax异步通信

用例需要依赖的jar&#xff1a; struts2-core.jarstruts2-convention-plugin.jar&#xff0c;非必须org.codehaus.jackson.jar&#xff0c;提供json支持用例代码如下&#xff1a; 数据库DDL语句无 struts.xml1 <?xml version"1.0" encoding"UTF-8"?&g…

快速提示:消息驱动Bean中的异常处理

让我们快速回顾一下有关消息驱动Bean的特殊处理。 MDB的入口点是重写的onMessage方法。 它不提供引发检查异常的任何作用域&#xff0c;因此&#xff0c;如果要处理错误情形&#xff0c;则需要从代码中传播未检查异常&#xff08;java.lang.RuntimeException的子类&#xff09…

大学生助学贷款如何还利息(本金+利息都可以)

生源地助学贷款还利息的步骤: 1、首先需要将钱转入支付宝,金额稍微高于应还款项即可。然后登陆电脑版支付宝,一定是要电脑登陆(手机上无法操作),如图所示 2、然后在支付宝主页中,点击右上角的“应用中心”,然后点击“生活服务”如图所示。

(实用)将wordpad添加到Windows PowerShell中

PowerShell能够直接打开notepad&#xff0c;但是无法调用wordpad&#xff0c;因为后者的可执行文件并不在系统默认的环境变量$env:Path中&#xff0c;只要将wordpad所在的路径添加到$env:Path&#xff0c;就可以从CMD或PowerShell中直接启动wordpad。 在PowerSehll下输入&#…

mysql分组区某列最后一条_[MySQL]MySQL数据库如何按某列分组排序后查询每个分组的最后一条数据?...

比如当前有如下的消息表(messages)及示例数据&#xff1a;Id Name Other_Columns-------------------------1 A A_data_12 A A_data_23 A A_data_34 B B_data_15 B B_data_26 C C_data_1按照以下SQL语句查询&#xff1a;select * from messages group by name得到的查询结果为&…

谷歌浏览器下载的内容老是自动打开

原因是每次下载内容在浏览器左下角都有提示&#xff0c;一般都是选择打开所在文件夹&#xff0c;一次手残&#xff0c;点了总是打开此文件导致一下载文件就自动打开。 解决方法。 1.点击右上角的... 2.找到设置-高级设置-下载 3.关掉我标红的位置信息即可。现在看不到啦&…