目 录CONTENT

文章目录

Bridge

简中仙
2023-05-25 / 0 评论 / 0 点赞 / 30 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-07,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!

一、bridge 介绍

bridge是一个虚拟网络设备,具有网络设备的特性(可以配置IP、MAC地址等);而且bridge还是一个虚拟交换机,和物理交换机设备功能类似。

bridge是用于连接两个不同网段的常见手段,不同网络段通过bridge连接后就如同在一个网段一样,工作原理很简单就是L2数据链路层进行数据包的转发。

对于普通的网络设备,就像一个管道,只有两端,数据从一端进,从另一端出。而 Bridge 有多个端口,数据可以从多个端口进,从多个端口出。

Bridge 的这个特性让它可以接入其他的网络设备,比如物理设备、虚拟设备、VLAN 设备等。Bridge 通常充当主设备,其他设备为从设备,这样的效果就等同于物理交换机的端口连接了一根网线。

二、Linux 中 bridge 应用

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表现为Tap接口,Tap接口在逻辑上和物理网卡实现相同的功能,都可以接收和发送数据包。所以这一应用也成就了虚拟化环境下的bridge实现。

到此基础理论知识就介绍完了,那么接下来就结合Linux源代码分析下桥接模式下数据包的转发流程。

说明:

1、在网卡聚合绑定之前,要先停用NetworkManager服务(或者在网卡中添加参数:NM_CONTROLLED=no),否则系统重启后绑定的IP失效了。

# systemctl stop NetworkManager
# systemctl disable NetworkManager

2、网卡桥接服务器需要依赖KVM虚拟化相关服务

cat << "EOT" > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=OpenNebula Community Edition
baseurl=https://downloads.opennebula.io/repo/6.4/CentOS/7/$basearch
enabled=1
gpgkey=https://downloads.opennebula.io/repo/repo2.key
gpgcheck=1
repo_gpgcheck=1
EOT
# 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
0

评论区