一、网桥的基本知识
1、概念:linux网桥是一种以同种协议连接两个局域网的产品。可以把它看成是一个决定发送的包是到自己的局域网还是到另一个局域网的设备。linux网桥检查局域网上所有的包,在同一个局域网中传送它,如果不是同一个网中的,就将它发到别的网上。
2、原理:网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。 远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要,而对远程网桥而言,在长距离上可正常运行是更重要的。
3、功能:网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务, 即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了 解是靠“自学习”实现的。而且网桥在一定程度上有增大网络带宽的作用。
4、工作流程:
(1) 检查收到的信号,解释0和1的含义,并找出帧中的目的MAC地址。
(2) 如果具有该目的的MAC地址的帧能够通过网桥上不同的接口到达目的地(不是帧到达网桥的那个接口),则通过重新生成信号来传输这帧。(这个过程叫做转发。)
(3)如果该帧到达的接口就是目的地址可达到的端口,则丢弃该帧。(这个过程叫做过滤。) 二、网桥的配置
在linux系统中,网桥主要是用来完成主机与虚拟机之间的互相访问以及网络传输,若没有网桥,则真机无法访问虚拟机
由此可以看出,虽然真机网卡的IP与虚拟机IP在同一网段,但仍然无法进行通信,此时就需要网桥来进行连接!!
1、配置网卡:在/etc/sysconfig/network-scripts/目录下编辑ifcfg-p4p2文件进行配置
注意:网卡的名称每台主机都各不相同,需要自己在网络配置中查找名称
网卡文件配置好后需要配置网桥文件
2、配置网桥:在同一目录下面编辑ifcfg-br0文件进行配置,内容中需要包括网络IP以及子网掩码,类型
注意:TYPE必须填写并且值为Bridge,IP必须与需要访问的虚拟机在同一子网即网段中!!!
网卡和网桥配置好后需要重新启动网络才能生效!!!
如上图,重启网络后系统中已经有了网桥以及其IP
此时如果仍无法访问虚拟机时需要重新启动系统,reboot!!
ping通表明网桥设备已经可以正常使用了,网桥就配置好了!!!
除了编辑配置文件进行网桥的配置以外,也可以通过网络桥接的控制命令进行 2、网络桥接命令
brctl :桥接管理命令
show:显示
addbr:添加网桥
delbr:删除网桥
addif:添加网桥连接(即添加网卡)
delif:删除网桥连接
注意:网桥必须添加网桥连接即网卡后才能进行使用!!!
brctl addbr br0 :添加网桥
brctl show :显示当前系统中的网桥
此时网桥没有IP
添加IP及子网掩码:ifconfig br0 172.25.254.225 netmask 255.255.255.0
此时虽然网桥有了IP,但没有进行网络连接,所以仍然无法使用
brctl addif br0 eth0 :给网桥br0添加网卡eth0
由上图,添加网卡后无需进行重启网络即可进行使用,较为方便
网桥的删除:
网桥的删除需要先将网桥上的网卡进行删除才能删除网桥
先将网桥停止使用:ifconfig br0 down
brctl delif br0 eth0:删除网卡
brctl delbr br0:删除网桥
这样就将网桥完全删掉了!!! 三、Linux以太网绑定模式
1、bonding
(1)bonding连接驱动:提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余。通俗来讲就是在系统中有两块网卡按照一定的工作模式对系统的指令进行处理!!
(2)bonding的工作模式:
(1)模式0(平衡轮循):轮循策略,所有接口都采用轮循方式在所有slave中进行传输封包,任何slave都可以接收。(就是针对于系统的指令工作时,两块网卡你处理一个命令,我处理一个命令,一直重复循环!!)
(2)模式1(主动备份):可以容错!即一次只能使用一个slave,但如果该接口出现故障,另一个slave将自动接替!!
(3)模式3(广播):所有的封包都通过所有的slave接口进行广播
由于平衡轮循和广播需要大量的指令进行验证,此处只进行主动备份的验证,如下:
nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.225/24
该命令为创建一个bonding,其中nmcli connection为绑定的命令,add为添加,con-name为设备名称,type为类型,mod为模式,active-backup表示主动备份模式,ip4为网络IP,该命令均可用TAB键补齐并查看各种类型!!!
监控命令为:watch -n 1 'cat /proc/net/bonding/bond0'
其中/bongding/bond0目录在创建bond后自动生成!!
添加网卡:nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
该命令中的bond-slave为bond接口类型,master表示为哪一个bond服务!!
如上图,此时系统可以通过bond接口与其他主机进行网络访问
但当只有一个接口时,如果该接口不能进行工作时,系统网络将崩溃,无法与外界进行连接
模拟:ifconfig eth0 down!!
为了保证系统可以更加稳定的运行,可以用两个接口使用主动备份模式管理系统网络
注意:在建新接口时,需要给系统新添加一块网卡eth1!!
创建新接口:nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
此时有两个接口,如果正在工作的网卡损坏,则另一块网卡可接替工作保证系统正常运行!!
(3)bond接口的删除:nmcli connection delete eth1
2、team接口
(1)team和bond功能类似,但team不需要手动加载内核模块,有更强的拓展性,支持8块网卡,Bond最多只支持两块网卡。
(2)team的模式:四种模式分别为:broadcast(广播容错)、roundrobin(平衡轮叫)、activebackcup(主动备份)、loadbalance(负载均衡)
(3)通过nmcli设定team接口(验证主动备份)
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.225/24
命令与bond设定大致相似,只有type和Mode不一样,需注意mode的格式!!!!
添加网卡:nmcli connection add con-name eth0 ifname eth0 type team-slave master team0
与bond一样,在添加网卡后就可以进行使用!!!
添加第二块网卡
此时正在活跃工作的是eth0,eth1作为备用没有被使用,此时断掉eth0,则eth1接管eth0的工作保证系统平稳运行
team的删除:nmcli connection delete eth0