10、KVM自定义网桥实现虚拟机的内部通讯
基于自定义网桥的虚拟网络
两个宿主机:
自定义网桥virbr1
新增eth1网卡:VMnet1仅主机模式 (配好之后,两台宿主机上的虚拟机就可以通过VMnet1相互通信了)
原wth0网卡: VMnet8NAT模式和外网相连
ubuntu宿主机
第一步:在宿主机添加仅主机网卡
第二步:创建网桥并进行网卡桥接
[root@ubunt ~]# vim /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.0.0.100/24
gateway4: 10.0.0.2
nameservers:
addresses: [180.76.76.76, 223.6.6.6]
eth1:
dhcp4: no
dhcp6: no
bridges:
virbr1:
dhcp4: no
dhcp6: no
addresses: [10.0.1.100/24]
interfaces:
- eth1
[root@ubunt ~]# netplan apply
[root@ubunt ~]# ip a
13: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 7a:ca:80:02:2d:77 brd ff:ff:ff:ff:ff:ff
inet 10.0.1.100/24 brd 10.0.1.255 scope global virbr1
valid_lft forever preferred_lft forever
inet6 fe80::78ca:80ff:fe02:2d77/64 scope link
valid_lft forever preferred_lft forever
[root@ubunt ~]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400c7b555 yes virbr0-nic
vnet1
vnet2
virbr1 8000.000c29139663 no eth1
rocky宿主机
第一步:在宿主机添加仅主机网卡
第二步:创建网桥
[root@rocky8 network-scripts]#cat ifcfg-virbr1
DEVICE=virbr1
NAME=virbr1
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.1.8
FREFIX=24
第三步:把网卡桥接在virbr1上
[root@rocky8 network-scripts]#cat ifcfg-virbr1-port0
TYPE=Ethernet
NAME=virbr1-port0
DEVICE=eth1
ONBOOT=yes
BRIDGE=virbr1
第四步:生效
[root@rocky8 network-scripts]#nmcli connection reload
[root@rocky8 network-scripts]#nmcli connection up virbr1
[root@rocky8 network-scripts]#nmcli connection up virbr1-port0
[root@rocky8 network-scripts]#brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.5254008addad yes
virbr1 8000.000c292b1075 yes eth1
现在两个宿主机是可以通过网桥ping通的
第五步:
ubuntu上的虚拟机
打开虚拟机图形页面选择自定义网桥
[root@ubunt ~]# virt-manager
Network source:选择Specify shared device name--Bridge name:virbr1--apply (需要关机修改)
rocky上的虚拟机
打开虚拟机图形页面选择自定义网桥
[root@rocky8 ~]#virt-manager
Network source:选择Bridge device--Device name:virbr1--apply (需要关机修改)
第六步:更改两个宿主机下虚拟机的IP
第一个虚拟机:进入虚拟机命令行页面查看是否有地址,无地址,是因为自己搭的网桥没有DHCP服务,自己配一个地址即可
[root@centos8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0"
DEVICE="yes"
IPADDR=6.6.6.6
PREFIX=24
重启网卡服务
[root@rocky8 ~]# nmcli connection reload
[root@rocky8 ~]# nmcli connection up eth0
ip a查看ip更改为6.6.6.6
第二个虚拟机:进入虚拟机命令行页面查看是否有地址,无地址,是因为自己搭的网桥没有DHCP服务,自己配一个地址即可
[root@centos8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-enp1s0
TYPE="Ethernet"
BOOTPROTO="static" (static也支持)
NAME="enp1s0"
DEVICE="yes"
IPADDR=6.6.6.8
PREFIX=24
重启网卡服务
[root@rocky8 ~]# nmcli connection reload
[root@rocky8 ~]# nmcli connection up eth0
ip a查看ip更改为6.6.6.6
在第一台虚拟机上ping第二台虚拟机
ping 6.6.6.8 可以通