9、配置虚拟机网卡桥接在宿主机的物理网卡--实现外部直接通讯
KVM网络管理
1、集线器hub属于一层物理层设备
问题:共享冲突域和广播域
冲突域:两个设备同时发送数据(单、组、广播)会冲突,则处于同一个冲突域,反之不在。设备越多,发生冲突的几率越大。
广播域:一个设备发广播,另一个设备收到,则在同一个广播域中。
提高网络性能的办法是让冲突域和广播域不要太大。
2、网桥和交换机属于二层数据链路层设备,对冲突域进行切割,一个接口就是一个冲突域(24口、48口),所有接口在同一个广播域中。
3、路由器属于三层网络层设备
网桥
ubuntu三张网卡,对应三台机器,配成网桥,彼此之间可以通过网桥进行通讯
br0上面可以配置一个地址用于远程管理10.0.0.100,没有这个地址不能远程管理。
在linux的虚拟机上如何配置网桥
宿主机上的成对网卡vnet是和网桥virbr0桥接在一起的
各虚拟机通过virbr0网桥是互通的,并且默认配置SNAT策略进行转换可以进行互联网访问
在ubuntu宿主机上安装两个虚拟机,其网卡通过vnet3和vnet6桥接在br0上
每当linux上跑一台虚拟机时,会生成vnet新网卡,这个网卡和虚拟机上的网卡相对应,成对网卡
[root@ubunt ~]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400c7b555 yes virbr0-nic
vnet0
vnet1
宿主机上的成对网卡vnet是和网桥virbr0桥接在一起的
各虚拟机通过virbr0网桥是互通的,并且默认配置SNAT策略进行转换可以进行互联网访问
[root@ubunt ~]# iptables -vnL -t nat
Chain LIBVIRT_PRT (1 references)
pkts bytes target prot opt in out source destination
2 167 RETURN all -- * * 192.168.122.0/24 224.0.0.0/24
0 0 RETURN all -- * * 192.168.122.0/24 255.255.255.255
29 1732 MASQUERADE tcp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24
宿主机和虚拟机成对的vnet网卡为什么是桥接在virbr0上?
打开虚拟机图形管理页面--点击左上角图标第二个图标--点击NIC:a8:a0:cd--Network source:默认选择Virtual network 'default':NAT
相当于vmware上开启的虚拟机,每开启一个虚拟机,网卡NAT模式桥接在vmnet8网桥上
配置虚拟机网卡桥接在宿主机的物理网卡--实现外部直接通讯
默认是桥接在virbr0上,改成桥接在宿主机的物理网卡eth0上
打开虚拟机图形管理页面--点击左上角图标第二个图标--点击NIC:a8:a0:cd--
Network source:默认选择Virtual network 'default':NAT 默认把虚拟机的NAT桥接在virbr0上
Network source:选择Host device eth0:macvtap和eth0桥接并和物理网卡共享一个网段,有DHCP会自动分配地址
Network source:选择Specify shared device name 自己选择和哪个网桥进行桥接,不用eth0了
例如:宿主机ubuntu20.04
打开虚拟机图形页面
Network source:选择Host device eth0:macvtap和eth0桥接并和物理网卡共享一个网段,有DHCP会自动分配地址
[root@ubunt ~]# 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 fq_codel state UP group default qlen 1000
link/ether 00:0c:29:13:96:59 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.168/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe13:9659/64 scope link
valid_lft forever preferred_lft forever
例如:宿主机rucky8.6
[root@rocky8 ~]#export DISPLAY=10.0.0.1:0.0
打开虚拟机图形页面
Network source:选择Macntap device--Device name:eth0--apply--开启虚拟机
[root@ubunt ~]# 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 fq_codel state UP group default qlen 1000
link/ether 00:0c:29:13:96:59 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.169/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe13:9659/64 scope link
valid_lft forever preferred_lft forever
此时,两个宿主机之上的虚拟机都桥接在宿主机的eth0网卡上,两台宿主机的属于同一网段,其之上的虚拟机也可以跨宿主机进行通讯
用ubuntu的10.0.0.168连接rocky的10.0.0.196
[root@ubunt ~]#ssh 10.0.0.169 可以连接
上面地址都在10网段,自己配置或增加网段
进入虚拟机ubuntu
配置IP
ip a a 1.1.1.1/24 dev ens3
进入虚拟机rocky
配置IP
ip a a 1.1.1.2/24 dev enp1s0
ping 1.1.1.2 可通(是通过交换机联通的),10网段可外网通讯,1网段可以内部通讯