KVM默认安装好后,会有一个virbr0,该网卡一般只做为物理机和虚拟机之间nat使用。其默认使用的网段是192.168.122.0/24网段,这就造成对应的内部虚拟机有一个在192.168.122.0/24段的IP。而有时这并不符合我们的要求,我们可以修改该网段的地址,当然也可以删除或禁用该网卡,改用其他网卡。
1、查看IP信息
[root@localhost ~]# ifconfig virbr0
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:2f:c8:44 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
2、查看网络情况
[root@localhost ~]# virsh net-list
名称 状态 自动开始 持久
----------------------------------------------------------
default 活动 是 是
3、查看当前的网段配置
4、修改并启用
通过上面的net-edit命令打开后,我们修改对应的网段为172.25.0.0/24,并将对应的DHCP段的地址也修改掉。可以重启服务器生效,也可以通过下面的命令生效
[root@5201351 ~]# virsh net-destroy default //重启libvirtd服务后会恢复
[root@5201351 ~]# virsh net-undefine default //彻底删除,重启系统后也不会恢复
恢复virbr0的方法
1、其实上面的做法,其实就是删除了/var/lib/libvirt/network/default.xml文件,
恢复的方法,我们需要从另一台kvm宿主机上把default.xml文件复制过来,并将下面的标签对及标签去掉。
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh net-edit default
or other application using the libvirt API.
-->
<network>
<name>default</name>
<uuid>c8fcbb0a-a512-434b-a791-fcdd7d9a5fd8</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:cc:20:74'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
2、从一个xml文件定义default网络,执行如下命令:
[root@5201351 ~]# virsh net-define /var/lib/libvirt/network/default.xml //从一个default.xml文件定义(但不开始)一个网络
3、设置virbr0自动启动,执行如下命令:
[root@5201351 ~]# virsh net-start default //开始一个(以前定义的default)不活跃的网络,执行后ifconfig可见virbr0
[root@5201351 ~]# virsh net-autostart default //执行后Autostart外会变成yes
demo
[root@localhost ~]# virsh net-destroy default
网络 default 被删除
[root@localhost ~]# virsh net-start default
网络 default 已启用
[root@localhost ~]# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.25.0.1 netmask 255.255.255.0 broadcast 172.25.0.255
ether 52:54:00:2f:c8:44 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
destroy之前,建议先通过net-dumpxml将配置导出。
5、其他
新增网卡也是一样的道理,与网段相关的命令如下:
virsh # help network
Networking (help keyword 'network'):
net-autostart autostart a network
net-create create a network from an XML file
net-define define an inactive persistent virtual network or modify an existing persistent one from an XML file
net-destroy destroy (stop) a network
net-dhcp-leases print lease info for a given network
net-dumpxml network information in XML
net-edit edit XML configuration for a network
net-event Network Events
net-info network information
net-list list networks
net-name convert a network UUID to network name
net-start start a (previously defined) inactive network
net-undefine undefine a persistent network
net-update update parts of an existing network's configuration
net-uuid convert a network name to network UUID