使用VMware做过虚拟机的都知道,有三种网络模式,nat/bridge/host-only,最近公司测试网络,需要用KVM装一个pfsense,对VM的网络也有要求,需要两个网口,还是不同网络模式的(host-only/nat),使用VMware可以做出来,但是KVM就些许麻烦,一个劲儿的在网上找KVM怎么做和VMware一样的网络模式,皇天不负有心人,还是被我找到了。

这里就不多介绍这三种网络模式的功能了。

保险起见,先将forward打开

$ vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
$ sysctl -p

桥接模式

配置桥接设备

该设备最好是服务器使用的主网络设备,因为要和它走一个网络

cd /etc/sysconfig/network-scripts/
cp -a ifcfg-eno1 ifcfg-br0

修改主网络设备

添加BRIDGE=br0后,该设备的配置会是失效,并转移到稍后配置的br0设备上

vim ifcfg-eno1
# 末尾添加
BRIDGE=br0

修改桥接设备

vim ifcfg-br0
# 修改一下四项
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
# 删除UUID
# 添加:IP要改为和主网络设备一样的IP
# 无论是dhcp的ip,还是原本static的ip
# DNS和网关也一样沿用之前的
IPADDR=主网络设备ip
NETMASK=255.255.255.0
GATEWAY=
DNS1=

重启服务

systemctl restart network

编写桥接xml文件

vim /etc/libvirt/qemu/networks/br0.xml
<network>
    <name>br0</name>
    <forward mode='bridge' />
    <bridge name='br0' />
</network>

应用到kvm

$ virsh net-define /etc/libvirt/qemu/networks/br0.xml
Network br0 defined from /etc/libvirt/qemu/networks/br0.xml

$ virsh net-start br0
Network br0 started

$ virsh net-autostart br0
Network br0 marked as autostarted

使用virt-manager管理添加网卡时,即可看到br0网卡

NAT模式

配置桥接设备:和桥接模式第一步一样的ifcfg-br0

编写nat.xml文件

vim /etc/libvirt/qemu/networks/nat.xml
<!--文件中的ip网段以及dhcp范围要再同一网段,是使用nat网络时分配给VM的地址-->
<network>
  <name>nat</name>
  <forward dev='br0' mode='nat'>
    <interface dev='br0'/>
  </forward>
  <bridge name='vir-nat' stp='on' delay='0'/>
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.2' end='192.168.100.253'/>
    </dhcp>
  </ip>
</network>

应用到kvm

$ virsh net-define /etc/libvirt/qemu/networks/nat.xml 
Network nat defined from /etc/libvirt/qemu/networks/nat.xml 

$ virsh net-start nat
Network nat started

$ virsh net-autostart nat
Network nat marked as autostarted

查看

$ brctl show
bridge name    bridge id        STP enabled    interfaces
br0        8000.a4bf013547c3    no        eno1    
vir-nat        8000.525400b72aee    yes        vir-nat-nic
virbr0        8000.525400178f49    yes        virbr0-nic

$ virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes
 nat                  active     yes           yes

host-only模式

仅主机模式也叫隔离模式,仅仅在宿主机内部进行通信使用。宿主机、宿主机内的虚拟机网络相互连通,但是虚拟机无法访问外部网络。

编写 host-only.xml 文件

vim /etc/libvirt/qemu/networks/host-only.xml
<!--如果做了nat和host-only,注意地址池不要重复-->
<network>
    <name>host-only</name>
    <bridge name='vir-host'/>
    <ip address='192.168.200.1' netmask='255.255.255.0'>
        <dhcp>
            <range start='192.168.200.2' end='192.168.200.253'/>
        </dhcp>
    </ip>
</network>

应用到kvm:有报错就检查语法

$ virsh net-define /etc/libvirt/qemu/networks/host-only.xml
Network host-only defined from /etc/libvirt/qemu/networks/host-only.xml

$ virsh net-start host-only
3Network host-only started

$ virsh net-autostart host-only
Network host-only marked as autostarted

检查kvm网络

$  virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 br0                  active     yes           yes
 default              active     yes           yes
 host-only            active     yes           yes
 nat                  active     yes           yes

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0