网桥的基本知识
1、概念:linux网桥是一种以同种协议连接两个局域网的产品。可以把它看成是一个决定发送的包是到自己的局域网还是到另一个局域网的设备。linux网桥检查局域网上所有的包,在同一个局域网中传送它,如果不是同一个网中的,就将它发到别的网上。
2、原理:网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。 远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要,而对远程网桥而言,在长距离上可正常运行是更重要的。
3、功能:网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务, 即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了 解是靠“自学习”实现的。而且网桥在一定程度上有增大网络带宽的作用。
网桥的配置
在linux系统中,网桥主要是用来完成主机与虚拟机之间的互相访问以及网络传输,若没有网桥,则真机无法访问虚拟机。
实验准备:
首先,进入真机的网络配置文件所在的目录中cd /etc/sysconfig/network-scripts/,将网卡主配置文件ifcfg-enp4s0和桥接主配置文件ifcfg-br0移至一个空目录下:
用命令nm-connection-editor打开图形添加ip窗口,删除以太网Ethernet和WI-FI这两栏的信息,及桥接Bridge栏网桥br0的信息。
清理后的实验环境如下:
网络桥接的配置
cd /etc/sysconfig/network-scripts/
vim /etc/ifcfg-enp0s25
vim /etc/ifcfg-br0
新建网卡,并添加网桥
新建网桥主配置文件
重启网络,查看网桥配置成功
网桥安装虚拟机和NAT安装虚拟机的比较
网桥和NAT都可以实现虚拟机与真实主机的通信。
在创建虚拟机时,使用网桥的方式网桥的话,虚拟机可以连到真实的物理网卡上,生成虚拟机的方式的IP和真机是在一个网段上,这样通信较快。
在创建虚拟机时,使用NAT的方式就是使虚拟机通过内核依存在真机的网卡上,这样做会大大降低效率,而且C。下面运用两种方式创建虚拟机进行测试。
先创建网桥方式的虚拟机
网桥生成虚拟机的方式的IP和真机是在一个网段上,通信较快
创建NAT方式的虚拟机
NAT获取的IP与真机不是一个网段上,通信较慢。
网络桥接的管理命令
brctl | 桥接管理命令 |
---|---|
show | 显示 |
addbr | 添加网桥 |
delbr | 删除网桥 |
addif | 添加网桥连接 |
delif | 删除网桥连接 |
链路聚合
网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。
网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。
bond方式
bond的常用工作模式有"active-backup"主备模式和"balance-rr"轮询模式两种。主备模式是使用一块网卡,这块网卡坏了使用另一块网卡。轮询模式是两块网卡轮流使用。
配置bond网络接口步骤:
watch -n 1 cat /proc/net/bonding/bond0 ##在双网卡虚拟机中打开shell,建立监控:
nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.60.103/24 创建bond0
## 聚合链路
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
##给链接添加设备eth0
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
##给链接添加设备eth1
nmcli connection show ##查看全部链接
测试
ping 172.25.60.250
ifconfig eth0 down eth0 挂掉,eth1就会接替工作
ifconfig eth0 up 恢复eth0
ifconfig eth1 down eth1挂掉,eth0就会重新接替工作
team模式
team的模式有:
broadcast 广播容错、roundrobin 平衡轮叫、activebackup 主备、loadbalance 负载均衡
team模式最多可以添加八块网卡,以下仅以两块为例
实验准备:
nmcli connection show 删除上实验中bond网络
nmcli connection delete bond0
nmcli connection delete eth0
nmcli connection delete eth1
并建立监控:watch -n 1 teamdctl team0 stat
配置:
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 172.25.60.103/24
创建team0聚合链路
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0
添加设备eth0
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0
添加设备eth1
nmcli connection show 查看全部链接
测试:
ping 172.25.254.72
ifconfig eth0 down eth0挂掉,eth1就会接替工作
ifconfig eth0 up 恢复eth0
ifconfig eth1 down eth1挂掉,eth0就会重新接替工作