什么是网桥
真机的网卡是一个真实的物理设备,网卡是由内核进行控制的
真机上的虚拟机也是真实的设备,但是这个虚拟机的网卡是虚拟的,它也有kernel(内核)
虚拟机通过使用真机上kernel上开启的一个网络桥接接口,从而使真机的网卡与外界进行通信
网桥br0的作用,使虚拟机可以使用真机上的网卡,从而使虚拟机可以上网
真机和虚拟机发送的数据包都会通过网桥出去,因此实现虚拟机通信。
linux内核支持网口的桥接(目前只支持以太网接口)。linux内核是通过一个虚拟的网桥设备来实现桥接的。这个虚拟设备可以绑定若干个以太网接口设备,从而将它们桥接起来。
真实主机中安装的虚拟主机,需要和外界主机进行通讯的时候,数据需要通过真实主机的网卡进行传输,但是虚拟主机内核无法对真实主机的网卡进行控制,一般情况下需要将虚拟主机先将数据包发送给真实主机的内核,再由真实主机内核将该数据通过真实物理网卡发送出去,该过程成为NAT(网络地址转换),虽然可以实现该功能,但是数据传数度较慢。
可以由真实主机的内核虚拟出来一个接口br0,同时这个也是一个对外的虚拟网卡设备,通过该接口可以将虚拟主机网卡和真实主机网卡直接连接起来,进行正常的数据通讯,提升数据传输效率。该过程就是桥接。

真机有网桥(用网桥br0方式)和没网桥(用NAT方式)安装虚拟机的区别
(1)有网桥的br0方式




(2) 没有网桥br0 采用NAT方式




总结:我们在真实借助中安装虚拟机时 ,由于虚拟机没有真实的物理网卡,因此,虚拟机的数据接收与发送都需要依赖真实主机的物理网卡,若没有搭建网桥,那么虚拟机的每个数据包都需要经过真实主机的内核处理,这无疑增加了内核的负担,同时也让虚拟机的反应速度变慢,搭建网桥之后,数据包就不需要再经过真实主机的内核进行处理,而是通过网桥在真实网卡与虚拟网卡之间传输,这不仅减小了内核的负担,同时也增加了数据的传输速度。
网络桥接的配置(此时我的真机没有br0)
(1)配置网卡
vim ifcfg-enp3s0
DEVICE=enp3s0
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0

(2) 配置网桥
vim ifcfg-br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.8
PREFIX=24
TYPE=Bridge


网络桥接的管理命令
| brctl | 桥接管理命令 |
|---|---|
| show | 显示 |
| addbr | 添加网桥 |
| delbr | 删除网桥 |
| addif | 添加网桥连接 |
| delif | 删除网桥连接 |
(1)添加网桥br0
给网桥br0添加一个ip地址
给网桥br0添加一个真实存在的网卡eth0
删除前先down掉br0
把br0从eth0上移除
删除掉br0






注意:使用命令添加的网络桥接是临时的,需要永久添加网络桥接的话 ,还是需要通过编写配置文件的形式。
本文详细解析了网桥的工作原理,对比了网桥与NAT在网络传输效率上的区别,介绍了如何在Linux环境下配置网桥br0,以实现虚拟机与真实网络的高效通信。

1262

被折叠的 条评论
为什么被折叠?



