0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux网桥的概念和工作原理

马哥Linux运维 来源:博客园 2025-06-24 11:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

网桥的概念

• 在生活中,桥是一种结构,用于连接两个地方,允许行人、车辆等安全地跨越障碍物(如河流或高速公路)

• 在计算机网络技术中,网桥是一种工作在数据链路层的物理或逻辑设备,可以用于连接两个或多个局域网段。它基于MAC地址来转发或过滤帧,从而有效地划分广播域。

• 在Linux中,网桥是一个逻辑设备,用于链接两个或更多的网络接口(例如,eth0, eth1),使它们在逻辑上工作如同一个接口。在虚拟化技术中,就使用到了网桥技术,链接物理主机和虚拟机或不同的虚拟机。

网桥工作原理

1、网络接口的作用

• 在Linux中,udev 是负责动态管理设备节点的守护进程。当硬件设备被插入或移除时,udev 会根据 /lib/udev/rules.d/ 目录中定义的规则来生成或移除对应的设备节点,并进行相应的命名和管理。

• 网络接口名称(例如eth0、ens33)是由udev的规则指定的,这只是一个逻辑名称,用于在用户空间中引用特定的网络设备。这个名称本身并不直接指向物理设备,而是与内核中的网络设备数据结构关联。

• 所以用户空间的相关工具(例如ifconfig、nmcli等)可以通过这个网络接口的名称作为标识符来与内核的网络协议栈交互,这个接口名称为工具和内核提供了一个明确的引用点,以便指定它们希望配置或查询哪个特定的网络设备

52421676-4cf0-11f0-b715-92fbcf53809c.png

虚拟网卡是一个逻辑上的网络接口(vnetX),它在Linux内核中表示为网络设备,但没有与之对应的物理硬件。

525b48a8-4cf0-11f0-b715-92fbcf53809c.png

2、网桥的成员接口

创建一个网桥设备时,这个网桥设备和虚拟网卡一样,没有对应的物理硬件,属于逻辑上的设备。将物理网卡和虚拟网卡进行桥接,都会成为了桥的成员接口,此时eth0和vnetX直接通信的不再是内核,而是桥br0。但vnetX和eth0仍然可以在数据链路层上发送和接收帧。(不能直接向内核网络协议栈发送消息,而是只能接收来自网络协议栈的消息),一旦进行了桥接,vnetX和eth0就会共享相同的网络段。从逻辑上讲,它们都连接到了同一个数据链路层子网。

可以简单理解为,进行桥接后,物理网卡变成了一根网线,连接外部硬件设备。

526ac184-4cf0-11f0-b715-92fbcf53809c.png

说明:两个网络接口(无论是物理的还是虚拟的)之间的桥接,通常需要一个桥接设备。不能直接将两个网络接口桥接在一起而不创建一个桥接设备。

桥接说明:

桥接后的数据流:当物理网卡(例如,eth0)被添加到桥(例如,br0)时,它不再直接与网络协议栈进行通信。所有的数据链路层通信都通过桥接口来管理和转发。此时,桥接口充当了一个虚拟交换机的角色,负责在其成员接口之间进行数据链路层的帧转发。

IP地址分配:当桥接配置完毕后,桥接口(如br0)成为与网络协议栈交互的主要接口,因此应当为其分配IP地址。这就解释了为什么将eth0桥接后,其原来的IP地址会被移除。同时,桥接成员接口(如vnetX)通常不需要IP地址,因为它们不再直接与网络协议栈交互,而是通过桥接口br0来进行数据传输。

物理网卡的作用:在桥接配置中,物理网卡可以被看作是一段传输介质或“电缆”,连接计算机硬件与外部网络。它确保桥接口及其成员可以与外部设备进行数据链路层的通信。

527d365c-4cf0-11f0-b715-92fbcf53809c.png

Linux 网桥管理

通过工具管理网桥

1、通过 brctl 创建网桥

brctl 是由 bridge-utils 软件包提供的一个工具,可以通过这个工具来轻松创建网桥。但是随着iproute2 套件的发展和普及,ip 命令开始提供了类似的功能,使得对网桥的管理brctl不再是首选的工具。

使用 brctl 创建的网桥在默认情况下是临时的,重启系统就失效了。

创建网桥:

# br0是创建的网桥接口名称

$ sudobrctladdbrbr0

给网桥添加成员接口:

# ens33和37是物理网卡
$brctladdifens33
$brctladdifens37

启动网桥:默认网桥是down状态的

ifconfig br_nameup或 iplink set br_nameup

删除网桥:

brctldelbrbr_name

移除子接口:

brctldelifbr_namedevice_name

开启stp功能

brctlstpbr_nameon

2、通过NetworkManager 配置网桥

一般是通过 NetworkManager 提供的命令行工具nmcli来管理网桥。因为现在的Linux发行版系统中,大多数是使用NetworkManager来作为网络管理工具,当使用nmcli进行配置时,NetworkManager会将这些配置写入其配置文件,以便在系统重启后仍然有效。这些配置文件通常位于/etc/NetworkManager/system-connections/目录下。

创建网桥:

nmcli conaddtypebridgecon-namebr0ifnamebr0

添加成员接口到网桥:

# con-name 物理网卡在桥接中的连接名称
nmcli conaddtypebridge-slavecon-namebr0-eth1ifname eth1 masterbr0

# 删除成员接口
nmcli con delete 物理网卡的连接名称

启动或停止网桥:

nmcliconup br0
nmclicondown br0

删除网桥:

nmcli condeletebr0

查看网桥的配置:

nmcli con show |grepbridge

说明:
连接名称是 NetworkManager 的一个核心概念,实现更方便地管理各种网络设置,而不仅仅是通过网络接口名称。在 NetworkManager 中,每一个网络配置(无论是有线、桥接等)都被视为一个“连接”(connection)。这个连接有一个名字,通常被称为“连接名称”(connection name),名称任意,用于后续识别和管理该特定的连接。

启动stp功能:

nmcli con modifybr_namebridge.stpyes

3、通过ip命令管理网桥

ip命令是由iproute2 套件来提供的,提供了ip、ss等命令。使用ip命令来配置网桥也是临时生效的哦。要使这些配置在重启后依然生效,需要将这些命令添加到系统的启动脚本或使用专门的网络配置文件来持久化设置。

创建网桥;

ip linkaddnamebr0typebridge

添加成员接口:

iplinksetdev eth1 master br0

启动或停止网桥;

# up
iplinksetdev br0 up

# down
iplinksetdev br0 down

删除网桥:

iplinkdelete dev br0typebridge

删除成员接口;

iplinksetdev eth1 nomaster

查看网桥的配置:

iplinkshowtypebridge

启动stp功能:

sudoiplinksetbr_nametypebridge stp_state 1

网桥配置IP地址

创建一个网桥并将一个或多个网络接口添加为其成员时,成员接口上的IP地址配置通常会失效。此时,所以要为网桥接口本身配置IP地址,以便它可以参与网络通信

这个时候直接将网桥设备当成一个普通的网络接口(例如eth0)进行配置就行了,记得还需要配置路由

例如;

# 网络接口配置
ip addradd192.168.1.10/24dev br0

# 路由配置
ip routeadddefaultvia192.168.1.1dev br0

通过配置文件管理网桥

1、centos7:

前提:检查bridge模块是否加载,如果没有加载需要手动进行加载并设置持久生效

lsmod | grep bridge
bridge        151336 0
stp          12976 1 bridge
llc          14552 2 stp,bridge

# 加载模块
modeprobe bridge

# 持久生效
vim /etc

1、创建网桥配置文件
配置文件位于:创建网桥配置文件 /etc/sysconfig/network-scripts/ifcfg-br_name

vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.20
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=180.76.76.76
DNS2=223.6.6.6
STP=on # 开启stp功能

2、修改物理网卡接口的配置文件
例如将eth0和eth1这两个物理接口作为网桥br0的子接口

vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
BRIDGE=br0

vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE="Ethernet"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
BRIDGE=br0 # 表示当前网络接口(如 eth0)应该被添加到名为 br0 的网桥作为一个成员接口
eth0:

5290075a-4cf0-11f0-b715-92fbcf53809c.png

eth1:

529ef422-4cf0-11f0-b715-92fbcf53809c.png


3、重启服务
centos7是默认使用NetworkManager作为网络管理服务。通过使用传统的 network 脚本配置的网络,你仍然可以利用 NetworkManager 来管理和应用这些配置。

systemctl restart NetworkManager

52af5c36-4cf0-11f0-b715-92fbcf53809c.png

2、ubuntu1604:

前提:

需要加载bridge模块

sudomodeprobe bridge

sudovim /etc/modules
bridges

需要安装bridge-utils这个工具包,比较旧的一些版本bridge-utils 包是必要的

sudo aptinstallbridge-utils

1、修改配置文件

sudovim /etc/network/interfaces
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
  address 192.168.14.108
  netmask 255.255.248.0
  gateway 192.168.12.1
  dns-nameserver 180.76.76.76
  bridge_ports ens33 ens37
  bridge_stp on

auto ens33
iface ens33 inet manual
  up iplinkset$IFACEup
  down iplinkset$IFACEdown

auto ens37
iface ens37 inet manual
  up iplinkset$IFACEup
  down iplinkset$IFACEdown

说明:

1. 在配置文件中添加auto ens33和auto ens37目的是为了保证网络接口开机自启动

2. 给ens33和ens37配置 up 和down的命令是为了确保接口能正确上下线(系统启动或重新启动网络服务时)

3. 物理网络接口使用手动(manual)模式是为了确保系统知道这些接口存在,并且不会尝试自动为它们分配IP地址

4. bridge_stp需要设置为on,特别是网桥的成员接口位于同一个交换机,不开启会发生环路的问题;

5. $IFACE是一个特殊的变量,它自动引用当前被配置的网络接口的名称

2、重启服务

sudo systemctl restart networking

3、ubuntu2004

前提:需要加载bridge模块

# 检查模块是否加载
lsmod | grep bridge

# 加载模块
sudomodprobe bridge

# 持久化配置
sudovim /etc/modules
bridge

1、编辑配置文件

network:
version:2
renderer:networkd
ethernets:
 ens33:
  dhcp4:no
 ens34:
  dhcp4:no

bridges:
 br0:
  interfaces:[ens33,ens34]
  dhcp4:yes
  parameters:
   stp:true
   forward-delay:4

2、配置生效

编辑了 netplan 的配置文件后,这些更改并不会立即生效。为了使这些更改生效,需要运行 sudo netplan apply。这样,netplan 会读取修改后的配置文件并调用底层的网络管理工具(例如 networkd 或 NetworkManager)来应用这些配置更改。

sudo netplan apply

3、检查是否生效

bridgelinkshowbr0

stp功能介绍

stp是Spanning Tree Protocol(生成树协议)的缩写,作用就是用来防止二层环路的,用在二层交换机上面。网桥就相当于是一个交换机,所以在网桥将成员接口(物理网卡)加入时,需要开启stp协议才行。不然如果两个物理网卡是连接在一个交换机上面,就会产生广播风暴。导致整个局域网出现网络不稳定的问题。

当配置一个网桥并启用STP协议后,为了避免可能的网络环路,每个加入到该网桥的端口(一个端口就是一个物理网卡)会经历几个状态变迁,以确定网络的拓扑结构,并确定哪些端口应该被放入转发状态,哪些端口应该被阻塞。首先进入阻塞状态。从阻塞状态转移到转发状态前,端口需要经历两个中间状态:

• 监听 (Listening):在此状态中,端口会监听可能的冲突的桥接数据包,但不会学习MAC地址。此状态默认持续15秒(这是Forward Delay的一半)。

• 学习 (Learning):在此状态中,端口开始学习MAC地址,从而构建其转发数据库,但仍然不转发桢。此状态同样持续15秒(这是Forward Delay的另一半)。

链接:https://www.cnblogs.com/heyongshen/p/16417712.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217973
  • 计算机
    +关注

    关注

    19

    文章

    7764

    浏览量

    92682
  • 网桥
    +关注

    关注

    0

    文章

    147

    浏览量

    17579

原文标题:运维必看!Linux网桥配置参数与性能调优速查表

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于无线网桥应用及工作原理解析

    什么是无线网络?什么是无线网桥?无线网桥2.4G和5.8G的含义是什么?无线网桥工作原理是什么?如何选择无线网桥?无线
    的头像 发表于 06-26 10:01 1.9w次阅读

    网桥与交换机

    帮助人们认识和理解网桥和交换机的概念
    发表于 04-17 11:23

    远程网桥

    存储器中某位损坏所产生的错误可能不会被检测到。  网桥的基本工作原理  数据链路层互联的设备是网桥(bridge),在网络互联中它起到数据接收、地址过滤与数据转发的作用,用来实现多个网络系统之间
    发表于 04-02 13:10

    linux网桥工作流程是什么?

    网桥是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。一般情况下,被连接的网络系统都具有相同的逻辑链路控制规程(LLC),但媒体访问控制协议(MAC)可以不同。
    发表于 11-04 09:10

    介绍SRv6独有的工作原理和相关概念

    1、SRv6基本概念由于SR MPLS已经普及,相信大家已经对Segment Routing的基本概念有足够的了解。这里重点介绍SRv6独有的工作原理和相关概念。1.1 SRv6 Se
    发表于 07-28 09:07

    什么是网桥

    什么是网桥?   网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧, 可以看作一个低层的路由器(路由器工作
    发表于 08-01 10:48 2633次阅读

    网桥工作原理及分类

    网桥工作原理及分类 网桥工作在数据链路层,将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,可以看作一个“低层的路由器”(路由器
    发表于 01-06 13:37 3564次阅读

    网桥,网桥是什么意思

    网桥,网桥是什么意思 网桥_1 网桥工作在数据链路层的MAC子层中,它获取所有的网络信息流,并读取每一个帧上的日的地址以确定
    发表于 04-03 14:16 4271次阅读

    无线网桥工作原理和类别

    无线网桥工作原理,其实就是通过指定频段的微波发送与接收进行无 线桥接,因为微波传输是直线传播的,所以使用无线网桥时一定要确保传输 路径中没有阻挡物。常见的工作频段有2.4GHz和5.
    的头像 发表于 04-04 18:09 1.8w次阅读

    光纤的概念工作原理、设计原则和分类

    光纤的概念工作原理、设计原则和分类
    发表于 11-04 17:27 9525次阅读

    无线网桥工作原理 无线网桥的安装注意事项

    无线网桥工作原理 无线网桥的安装注意事项  无线网桥是一种用于扩充无线网络覆盖范围的设备,它可以通过无线信号来连接两个或多个网络,实现不同网络的互联互通。无线
    的头像 发表于 02-03 16:27 5627次阅读

    网桥和交换机的工作原理区别

    网桥工作原理 网桥是一种用于连接两个或多个局域网的设备,它在数据链路层工作网桥的主要功能是将接收到的数据帧从一个局域网转发到另一个局域网
    的头像 发表于 07-10 14:25 1798次阅读

    网桥工作原理和特点是什么?

    。 一、网桥工作原理 帧过滤 网桥在接收到数据帧时,首先会检查帧的目的MAC地址。如果目的MAC地址与网桥所在网络段的MAC地址相同,那么网桥
    的头像 发表于 10-15 15:36 7269次阅读

    无线网桥工作原理和特点是什么

    广域网(WAN)。以下是关于无线网桥工作原理和特点的介绍。 无线网桥工作原理 无线信号传输 无线网桥通过无线信号在两个网络之间传输数据。这
    的头像 发表于 10-15 15:47 4173次阅读

    Linux应用编程的基本概念

    Linux应用编程涉及到在Linux环境下开发和运行应用程序的一系列概念。以下是一些涵盖Linux应用编程的基本概念
    的头像 发表于 10-24 17:19 1003次阅读