bridge

本文详细介绍了Linux桥接技术,包括其基于MAC地址转发的工作原理,Linuxbridge的优势,如何配置和管理bridge设备,以及与生成树协议(SpanningTreeProtocol)和IGMPsnooping的相关设置。
摘要由CSDN通过智能技术生成

bridge是一种用来连接两个ethernet, 数据帧是基于MAC address 转发,而不是基于IP address, 转发是基于Layer 2, 所以数据包都可以通过bridge.

bridge and Firewalling

Linux bridge 比纯硬件的bridge更加强大,因为它可以过滤filter和修改数据帧, bridgeing和firewalling 是基于ebtales实现。

bridge的功能现在在kernel 2.4以上的都支持,用户层可以通过bridge-utils 是控制。

用户手册

网络接口

在开始配置之前,需要保证网络接口正常,不需要设置IP地址,也不需要运行dhcp脚本。IP地址需要在bridge配置之后才能设置。

ifconfig命令可以查看接口的状态,他们需要处于down状态。

模块加载

通常bridge code模块是被编译进内核系统的,在系统开机的时候会自动加载该模块。

#brctl
#commands:
    addbr <bridge> addbridge
    delbr <bridge> deletebridge
    addif <bridge><device> addinterfacetobridge
    delif <bridge><device> deleteinterfacefrombridge
    setageing <bridge><time> setageingtime
    setbridgeprio <bridge><prio> setbridgepriority
    setfd <bridge><time> setbridgeforwarddelay
    sethello <bridge><time> sethellotime
    setmaxage <bridge><time> setmaxmessageage
    setpathcost <bridge><port><cost> setpathcost
    setportprio <bridge><port><prio> setportpriority
    show showalistofbridges
    showmacs <bridge> showalistofmacaddrs
    showstp <bridge> showbridgestpinfo
    stp <bridge><state> turnstpon/off

Creating a bridge device

brctl addbr br-lan

br-lan: 是bridge的名字。

delete bridge

brctl delbr br-lan

Adding devices to a bridge

brctl addif br-lan eth0

br-lan: 是bridge名称。

eth0: 是需要添加到bridge上的设备名。

添加到bridge种的设备都可以认为是一个大的网络,一个设备不能同时添加到多个bridge种。

从bridge种删除设备

brctl delif br-lan eth0

查看bridge中的设备:

brctl show
portno mac_address is local? aging time

aging time: 表示 mac地址在 mac转发表中老化的时间。一般是自动维护的。

也可以通过如下命令修改:

brctl setageing br-lan time

time设置为0, 则永远都不会老化。

Spanning Tree Protocol 生成树协议

如果运行多个bridge,则需要是能生成树协议防止环路。

brctl show stp br-lan

生成树协议参数配置

STP tuning

bridge priority 优先级

每一个bridge 都有一个关联的优先级priority 和cost. 每一个接口都分配一个port number 在STP code中。用于决定最短路径转发,通常最短路径都被使用除非其他路径都down. 如果有多个bridge和interface就需要调整优先级实现最佳性能。

brctl setbridgeprio bridgename  priority

最低优先级的bridge被选为root bridge, root bridge 在spanning tree中是central bridge.

path priority and cost

在bridge中的接口拥有不同的速率,这个值被用来决策哪一个链路被使用,faster interfaces 需要拥更低的优先级。

brctl setpatchcost bridge port cost

多个端口有相同的cost也有一个priority.

Forwarding delay

foewarding delay是在进入fowarding状态之前listening 和learning states状态的时间。

brctl setfd bridgename time

hello time

brctl sethello bridgename time

发包保活时间。

Max age

如果其他bridge在spanning tree中长期不发送hello packet. 这个bridge就是处于dead状态。

brctl maxage bridgename time

Multicast IGMP snoonping

IGMP snooping 支持与否包含在bridge-utils or iproute2, 也可以通过syfs接口控制。对于brN, 在/sys/devices/virtual/net/brN/bridge 设置。

multicast_snooping

multicast_snooping: 用于使能IGMP snooping

multicast_router:  允许某个接口可以接收到所有报文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值