需求:两台宿主机,位于同一网段或不同网段,需要在两台宿主机上各创建5台虚拟机,并且虚拟机之间可以两两通信。
步骤一:首先,安装KVM虚拟机,教程很多,此处不再赘述
若创建的虚拟机不要求在同一网段或宿主机本身就不在同一网段,可以使用zerotier进行内网穿透,缺点就是不同宿主机上的虚拟机通信时会有较大的延迟;若宿主机在同一网段,建议使用桥接模式创建虚拟机,为每台虚拟机设置静态IP。
步骤二:确认是否存在virb0与virb0-nic网卡
输入命令ifconfig查看网卡是否存在,由于需要两台宿主机之间的虚拟机需要互相ping通,在不进行内网穿透的情况下,需要设置桥接模式。若存在NAT模式创建的网卡virb0可能会产生创建桥接网卡br0后无法联网的情况。可以先设置桥接网卡br0,看是否可以正常联网,若无法联网,先停止br0,再停止virb0和virb0-nic即可。
停止virb0命令:
ifconfig virbr0 down brctl delbr virbr0
步骤三:宿主机添加网卡br0
输入命令ifconfig查看物理网卡(有IP地址的网卡),在/etc/network/interfaces下,编辑如下内容:
auto enp4s0f0#物理网卡iface enp4s0f0 inet manualauto br0iface br0 inet static address IP #IP地址netmask 255.255.255.0 #子网掩码gateway 192.... #网关bridge_ports enp4s0f0 #物理网卡bridge_stp offbridge_fd 0
完成后,重启网络
sudo /etc/init.d/networking restart
可能ssh会断掉连接,等一段时间后再次连接即可。
此时输入ifconfig可以看到,物理网卡没有了IP地址,br0显示IP地址。
步骤四:创建桥接模式下的虚拟机并固定IP
KVM创建虚拟机时需要注意使用桥接模式创建,连接网卡br0,若br0为空,说明未完成桥接,检查上一步是否出错。
进入虚拟机之后,为虚拟机设置静态IP。首先查看虚拟机的网卡,我的是ens3,在/etc/network/interfaces下,编辑如下内容:
auto ens3iface ens3 inet static address IP #IP地址,防止IP冲突netmask 255.255.255.0 #子网掩码gateway 192.... #网关
完成后,重启网络
sudo /etc/init.d/networking restart
编辑/etc/resolve.conf,输入
nameserver 223.5.5.5
步骤五:检查是否设置成功
可以ping一下外网跟两台宿主机IP,安装ssh,测试是否可以ssh连接。
apt-get install openssh-server