首页 > 其他分享 >KVM网络管理

KVM网络管理

时间:2024-04-30 10:55:18浏览次数:27  
标签:配置文件 网络管理 KVM 网络 server net root networks

一:创建nat网络模式

 主要就是nat模式的话,网桥没有连接宿主机的物理网卡,就是创建出来一个网桥,会自动的虚拟出来2个接口(2个网卡的配置文件),一个是网桥的配置文件,另外一个就是nic的配置文件,主要作用就是虚拟机与宿主机进行通信用的

1:命令行的操作

思路主要就是,通过配置文件来进行定义,

还有就是熟悉创建网络的命令,virsh net --help 

1、基础知识

存放的网卡配置文件

#kvm网络配置文件
[root@server networks]# pwd
/etc/libvirt/qemu/networks
#共享的kvm网络配置文件,全局的配置文件

2、nat的操作

#进入到共享kvm网络的配置文件里面,复制原有的网络配置文件,更改一些信息即可
[root@server networks]# ls
default.xml  new-nat.xml

#修改的配置文件
<network>
  <name>new-nat</name>
  <bridge name="b1"/>
  <forward/>
  <ip address="192.168.200.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.200.2" end="192.168.200.254"/>
    </dhcp>
  </ip>
</network>

#从这个配置文件里面定义nat网络
[root@server networks]# virsh  net-define  /usr/share/libvirt/networks/new-nat.xml 
从 new-nat定义网络/usr/share/libvirt/networks/new-nat.xml

#查看网络激活的网络
[root@server networks]# virsh  net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是

#查看所有的网络
[root@server networks]# virsh  net-list --all
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
 new-nat              不活跃  否           是

#激活网络并设置网络开机自启
[root@server networks]# virsh  net-start new-nat 
网络 new-nat 已开始

[root@server networks]# virsh  net-list --all
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
 new-nat              活动     否           是

[root@server networks]# virsh  net-autostart new-nat 
网络new-nat标记为自动启动

[root@server networks]# virsh net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
 new-nat              活动     是           是

#发现配置文件里面也存在
[root@server networks]# ls
autostart  default.xml  new-nat.xml
[root@server networks]# ls autostart/
default.xml  new-nat.xml

#当创建了nat网桥后,会自动的创建2个接口(网卡的配置文件),一个是网桥的配置文件,另外一个就是nic接口,本质mac地址都是一样的
[root@server networks]# ifconfig 
b1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 52:54:00:5a:d7:b2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.250.10  netmask 255.255.255.0  broadcast 172.25.250.255
        inet6 fe80::848f:2253:dfee:77d4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:2a:28:fd  txqueuelen 1000  (Ethernet)
        RX packets 503  bytes 258556 (252.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 511  bytes 41830 (40.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 39  bytes 3253 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 3253 (3.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:90:d0:79  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@server networks]# brctl show
bridge name	bridge id		STP enabled	interfaces
b1		8000.5254005ad7b2	yes		b1-nic
virbr0		8000.52540090d079	yes		virbr0-nic

2:图形化的操作

1、点开编辑

 

这样的话,就是会自动的创建2个接口()

#设备的名字就是virbr1这个就是这个nat网桥设备,按照这个顺序来配置
[root@server networks]# nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens32   97f33909-8dc2-48a1-819e-d04cac35ec66  ethernet  ens32  
b1      d1daa101-a111-4e5d-aaf0-b2622370796f  bridge    b1     
virbr0  865c4f15-8617-4010-a8c3-6227c91cd472  bridge    virbr0 
virbr1  b8d9ad5c-d05e-4917-b154-667d7dc5796b  bridge    virbr1 
vnet0   a34f6984-108f-4dd4-9821-188848ef0842  tun       vnet0  

2:创建桥接模式

创建一个网桥,让宿主机桥接到物理网卡,然后创建虚拟机,然后绑定,即可,不像nat模式,就是创建网桥的时候,会自动的创建2个接口(网卡的配置文件),virbr0和virbr0-nic,桥接只是创建一个virbr0,所以这是区别之一

思路:

1、创建一个网桥,然后绑定宿主机的物理网卡

先复制一个宿主机网卡的配置文件,然后修改一些配置,用于创建网桥,然后还要备份这个物理网卡的文件,将Ip等信息注释,添加bridge=创建网桥名

2、更改虚拟机的网络模式为桥接模式

直接更改虚拟机的配置文件

3、内部的虚拟机进行通信,外部与内部的虚拟机进行通信

桥接实验:

#创建一个网桥,然后绑定宿主机的物理网卡
[root@server network-scripts]# cat ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=97f33909-8dc2-48a1-819e-d04cac35ec66
DEVICE=ens32
ONBOOT=yes
#IPADDR=172.25.250.10
#PREFIX=24
#GATEWAY=172.25.250.254
#DNS1=119.29.29.29
BRIDGE=q7
[root@server network-scripts]# cat ifcfg-q7 
TYPE=bridge
BOOTPROTO=none
NAME=q7
DEVICE=q7
ONBOOT=yes
IPADDR=172.25.250.10
PREFIX=24
GATEWAY=172.25.250.254
DNS1=119.29.29.29
[root@server network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
q7		8000.000c292a28fd	no		ens32
virbr0		8000.5254002e1c32	yes		virbr0-nic

#更改虚拟机的网络模式为桥接模式
虚拟机存放的路径:
[root@server qemu]# pwd
/etc/libvirt/qemu

 <interface type='bridge'>
      <mac address='52:54:00:bf:44:9c'/>
      <source bridge='q7'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

#虚拟机进行通信
#查看虚拟机的ip地址
[root@server qemu]# ssh [email protected]
The authenticity of host '172.25.250.128 (172.25.250.128)' can't be established.
ECDSA key fingerprint is SHA256:6Lay/Xuuy+q23ZVh6OjLXbL7ID8iELSfEAuwQN1X8EY.
ECDSA key fingerprint is MD5:d0:9f:11:33:89:54:d2:6d:89:56:ba:14:f6:78:ac:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.250.128' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Thu Apr 25 15:04:49 2024
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:bf:44:9c brd ff:ff:ff:ff:ff:ff
    inet 172.25.250.128/24 brd 172.25.250.255 scope global noprefixroute dynamic eth0
       valid_lft 1232sec preferred_lft 1232sec
    inet6 fe80::b0d5:672d:1a7:79b4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#与windows的主机互相通信
ping 172.25.250.128
正在 Ping 172.25.250.128 具有 32 字节的数据:
来自 172.25.250.128 的回复: 字节=32 时间<1ms TTL=64
来自 172.25.250.128 的回复: 字节=32 时间<1ms TTL=64
来自 172.25.250.128 的回复: 字节=32 时间<1ms TTL=64
来自 172.25.250.128 的回复: 字节=32 时间=1ms TTL=64

[root@localhost ~]# ping 10.120.225.28
PING 10.120.225.28 (10.120.225.28) 56(84) bytes of data.
64 bytes from 10.120.225.28: icmp_seq=1 ttl=128 time=0.662 ms
64 bytes from 10.120.225.28: icmp_seq=2 ttl=128 time=1.12 ms
^C
--- 10.120.225.28 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.662/0.891/1.121/0.231 ms

3:kvm的桥接和nat模式的区别

1、创建网桥的生成网卡不同

nat模式创建的网桥,会创建2个接口,桥接模式不会创建2个接口,只会创建一个接口(也就是自己的网卡配置文件)

nat模式网桥没有绑定物理网卡,桥接模式绑定了物理网卡,使用的宿主机同一个网段的地址,被作为桥接上去的网卡,不能有ip地址,通过这个网桥进行通信,这个网桥就相当于是宿主机的ip地址

2、外部网络通信

nat模式的话,虚拟机能与外部网络进行通信,通过nat地址转换出去的,然后转换成宿主机的Ip地址,进行外面的通信,所以的话,外部网络无法与虚拟机进行通信,如果虚拟机有提供web服务的话,就无法访问了,

桥接模式的话,虚拟机与外部网络都能进行通信,风雨无阻

4: kvm网路管理的操作

具体点就是关于kvm网络的更改等等,

1、语法

[root@server networks]# virsh  help network
 Networking (help keyword 'network'):
    net-autostart                  自动开始网络
    net-create                     从一个 XML 文件创建一个网络
    net-define                     define an inactive persistent virtual network or modify an existing persistent one from an XML file
    net-destroy                    销毁(停止)网络
    net-dhcp-leases                print lease info for a given network
    net-dumpxml                    XML 中的网络信息
    net-edit                       为网络编辑 XML 配置
    net-event                      Network Events
    net-info                       网络信息
    net-list                       列出网络
    net-name                       把一个网络UUID 转换为网络名
    net-start                      开始一个(以前定义的)不活跃的网络
    net-undefine                   undefine a persistent network
    net-update                     更新现有网络配置的部分
    net-uuid                       把一个网络名转换为网络UUID

2、virsh 管理网络相关的命令

1)virsh net-list:列出网络

virsh help net-list  查看帮助的信息

[root@server networks]# virsh  net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 b2                   活动     是           是
 default              活动     是           是
 new-nat              活动     是           是

默认是以表格的形式进行输出的

2)virsh net-dumpxml:显示指定网络的配置文件的内容

#查看的就是kvm网络的配置文件
[root@server networks]# virsh  net-dumpxml b2
<network>
  <name>b2</name>
  <uuid>6cfecbe6-bba4-4021-9ece-22183d9dd33f</uuid>
  <forward dev='ens32' mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
    <interface dev='ens32'/>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:9f:ca:47'/>
  <domain name='b2'/>
  <ip address='192.168.103.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.103.128' end='192.168.103.254'/>
    </dhcp>
  </ip>
</network> 

3) virsh net-define,virsh net-start ,virsh net-autostart 

从指定xml配置文件定义一个网络或者基于指定xml来修改现有的网络,

[root@server networks]# cp default.xml  new-nat.xml
[root@server networks]# vim new-nat.xml 
[root@server networks]# cat new-nat.xml 
<network>
  <name>b1</name>
  <bridge name="q1"/>
  <forward/>
  <ip address="192.168.107.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.107.2" end="192.168.107.254"/>
    </dhcp>
  </ip>
</network>

#使用virsh define来定义网络,但是定义好了之后,它是不运行的,所以的话还需要手动的启动网络,并设置为开启自启的
[root@server networks]# virsh  net-define  /usr/share/libvirt/networks/new-nat.xml 
从 b1定义网络/usr/share/libvirt/networks/new-nat.xml

[root@server networks]# virsh  net-list --all
 名称               状态     自动开始  持久
----------------------------------------------------------
 b1                   不活跃  否           是
 default              活动     是           是

[root@server networks]# virsh net-start b1
网络 b1 已开始

[root@server networks]# virsh  net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 b1                   活动     否           是
 default              活动     是           是

[root@server networks]# virsh  net-autostart  b1
网络b1标记为自动启动

[root@server networks]# virsh net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 b1                   活动     是           是
 default              活动     是           是

4)virsh net-edit

编辑网络的配置文件xml的文件,更改ip地址为105网段的

[root@server networks]# virsh net-edit b1
已编辑网络 b1 XML 配置

#当然得话,修改了配置文件不会立刻进行生效,创建持久网络后,默认的配置文件存放在/etc/libvirt/qemu/network目录下面的内容

#让指定的网路配置文件生效
[root@server networks]# virsh  net-destroy b1
网络 b1 被删除

[root@server networks]# virsh  net-start b1
网络 b1 已开始

[root@server networks]# virsh net-dumpxml b1
<network>
  <name>b1</name>
  <uuid>b54d21ab-fc60-4e05-a990-d873a02fa256</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='q1' stp='on' delay='0'/>
  <mac address='52:54:00:cc:be:e7'/>
  <ip address='192.168.105.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.105.2' end='192.168.105.254'/>
    </dhcp>
  </ip>
</network>

思路就是:重读配置文件的方式只有重启网络,所以的话先要停止对应的网络,然后在启动对应的网络,destory停止指定的网络,相当于停止的操作

通过edit来生成一个网络的配置文件,然后需要定义这个网络,会自动的生成非活跃状态的持久网络,

5)virsh net-create 

从指定xml文件创建一个非持久化的临时网络,并且激活,

define定义的网络都是持久的,create创建出来的不是持久的,所谓的持久是否在/etc/libvirt/qemu/network目录下生成配置文件,有配置文件就被称为持久网络,没有的话就被称为临时网络

#从已存在的配置文件中进行创建
[root@server networks]# virsh  net-create b2.xml 
从b2创建网络b2.xml 

[root@server networks]# virsh  net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 b1                   活动     是           是
 b2                   活动     否           否
 default              活动     是           是  

6)virsh net-undefine

将指定持久网络取消定义,就是为非持久化的网络,就是删除里面的配置文件即可,不会影响到活跃的网络实例  与net-destory配合使用可以达到删除网络的效果

[root@server networks]# virsh  net-undefine b1
网络 b1 已经被取消定义

[root@server networks]# virsh  net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 b1                   活动     否           否
 b2                   活动     否           否
 default              活动     是           是

 

总结:

1)修了了网络的配置文件的话,要使用net-destory,删除这个网络,然后重新的启动即可

2)删除配置文件的话,就要停止net-destory停止,然后在来使用net-undefine来删除即可

3:创建网络的思路 

通过上面的命令可以把指定网络导出,然后基于这个网络文件当成一个模版文件,如果要创建一个网络的话,直接复制这个模版文件,然后改一下里面的信息就可以生成一个我们需要创建的网络的配置文件

#创建出来了一个网桥,不能通过修改网卡来进行修改,nmcli不行
只能通过修改配置文件来进行修改,然后在来进行定义即可

4:网桥的操作

brctl 的操作

[root@server /]# brctl --help
Usage: brctl [commands]
commands:
	addbr     	<bridge>		add bridge
	delbr     	<bridge>		delete bridge
	addif     	<bridge> <device>	add interface to bridge
	delif     	<bridge> <device>	delete interface from bridge
	hairpin   	<bridge> <port> {on|off}	turn hairpin on/off
	setageing 	<bridge> <time>		set ageing time
	setbridgeprio	<bridge> <prio>		set bridge priority
	setfd     	<bridge> <time>		set bridge forward delay
	sethello  	<bridge> <time>		set hello time
	setmaxage 	<bridge> <time>		set max message age
	setpathcost	<bridge> <port> <cost>	set path cost
	setportprio	<bridge> <port> <prio>	set port priority
	show      	[ <bridge> ]		show a list of bridges
	showmacs  	<bridge>		show a list of mac addrs
	showstp   	<bridge>		show bridge stp info
	stp       	<bridge> {on|off}	turn stp on/off

  

 

标签:配置文件,网络管理,KVM,网络,server,net,root,networks
From: https://www.cnblogs.com/qw77/p/18141495

相关文章

  • KVM虚拟机迁移(静态)
    1.查看虚拟机状态,确认关闭状态virshlist--all 2.查看虚拟机文件位置virshdomblklistzabbix3.导出配置文件并查看导出文件virshdumpxmlzabbix>/root/zabbix.xml 4.把刚导出的配置文件传到目的服务制定路径(路径为虚拟机配置文件位置) scpzabbix.xml10.10.7.13......
  • 周末玩一下云技术,kvm 相关笔记
    由于需要将企业的很贵的显卡和主机装在一个虚拟主机,用来跑 ue5和sd3 用来给用户临时使用,但是怎么将主机虚拟出来成多个主机呢,自己没有有钱请不起人,只能自己学一下虚拟化技术,第一步主机开启硬件支持,grep-E'vmx|svm'/proc/cpuinfo命令的功能是在/proc/cpuinfo文件中搜索......
  • kvm网络,docker网络,,vm网络
    一:vmware网络1:概念的介绍 虚拟网络编辑器:控制的就是虚拟机的网段的window中的适配器:更这个虚拟网络编辑器连在一起的,是同一个网段,通常是分配的.1的IP地址2:桥接模式原理:就是将虚拟机的物理网卡桥接到物理主机上面,实现了访问外网的操作图解: 操作:就是将虚拟机的ip地址,dns以......
  • Linux网络管理
    一、Docker网络概念1、网络驱动Docker网络子系统使用可插拔的驱动,默认情况下有多个驱动程序,并提供核心联网功能。bridge:桥接网络,这是默认的网络驱动程序(不指定驱动程序创建的容器默认是bridge驱动)。host:主机网络。消除容器和主机的网络隔离,直接使用主机的网络。overlay:覆......
  • Centos7搭建 KVM 命令行安装虚拟机
    安装前准备验证物理机CPU是否支持kvmcat/proc/cpuinfo|egrep'vmx|svm'关闭SELinuxsetenforce0永久关闭:vim/etc/sysconfig/selinux将SELinux设置为disabled安装依赖项yuminstallqemu-kvmlibvirtvirt-installbridge-utils-y验证安装结果lsmod|grepkvm......
  • kvm基本操作命令
    1.查看虚拟机列表virshlist2.查看正在运行的虚拟机列表virshlist--all3.查看所有虚拟机virshlist--all4.查看虚拟机详细信息域virshdominfo[虚拟机名称]5.虚拟机域的开关机操作virshstart[虚拟机名称](开机)virshshutdown[虚拟机名称](温柔的关机)virshshutdo......
  • kvm修改虚拟机名称
    关闭虚拟机注意:如果虚拟机有快照需要先删除快照!virshlist--allvirshshutdowntest_66.124正常关闭后,虚拟机状态state为:shutoff修改配置文件名称mvtest_66.124.xmlwugang_test_66.124.xml修改配置文件内容修改图中标注的名称,即虚拟机的名称这两处为虚拟机的磁盘......
  • ubuntu上通过kvm新建虚拟机
    KVM虚拟化架构KVM是指基于Linux内核的虚拟机(Kernel-baseVirtualMachine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通......
  • 如何快速启动KVM虚拟机并用自定义用户登录
    以ubuntu虚拟机为例,很多时候创建了KVM虚拟机之后,想ssh登录进去做一些操作,但是却不知道用户名和密码,最早的时候ubuntu的cloudimage内置了一个cirros的用户名,密码也是cirros,现在好像没有这个用户了,所以想ssh虚拟机的话,可以借助cloudinit来在启动时创建一个指定的用户。以下以u......
  • 在Linux中,如何在Linux中安装和配置KVM?
    在Linux中安装和配置KVM(Kernel-basedVirtualMachine)的过程主要包括以下几个步骤。由于不同Linux发行版的具体命令可能会有所差异,这里将以通用流程进行说明,并提供适用于主流发行版(如Ubuntu或CentOS/RHEL系列)的命令示例。1.确认硬件支持虚拟化首先确保你的CPU支持硬件虚拟化技......