导读
Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表现为Tap接口,Tap接口在逻辑上和物理网卡实现相同的功能,都可以接收和发送数据包。所以这一应用也成就了虚拟化环境下的bridge实现。
到此基础理论知识就介绍完了,那么接下来就结合Linux源代码分析下桥接模式下数据包的转发流程。
说明:
(1)、在网卡聚合绑定之前,要先停用NetworkManager服务(或者在网卡中添加参数:NM_CONTROLLED=no),否则系统重启后绑定的IP失效了。
# systemctl stop NetworkManager

# systemctl disable NetworkManager
(2)、网卡桥接服务器需要依赖KVM虚拟化相关服务:
# vim /etc/yum.repos.d/opennebula.repo

    添加如下内容:
    [opennebula]
    name=opennebula
    baseurl=http://downloads.opennebula.org/repo/5.0/CentOS/7/x86_64
    enabled=1
    gpgcheck=0

# yum install opennebula-node-kvm

准备工作完成后,就可以正式开始了!

1、编辑物理网卡配置文件:

# vim ifcfg-eno1

DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

# vim ifcfg-ens15f0

DEVICE=ens15f0
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

2、创建聚合网卡配置文件:

# vim ifcfg-bond0

DEVICE=bond0
TYPE=bond
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0

3、创建桥接网卡配置文件:

# vim ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
IPADDR=192.168.1.233
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

4、编辑网卡聚服务配置文件:

# vim /etc/modprobe.d/bonding.conf

alias bond0 bonding
options bonding mode=4 miimon=100

5、执行网卡聚合命令

# modprobe bonding

6、查看聚合网卡的状态:

# cat /proc/net/bonding/bond0

原文来自:https://www.linuxidc.com/Linux/2019-09/160610.htm

本文地址:https://www.linuxprobe.com/linux-pre-net.html编辑:公共, 帐号,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/