zoukankan      html  css  js  c++  java
  • 三层交换机之链路聚合组(Link Aggregation Group)

    概述

    Link Aggregation Group(LAG)又称为Trunk Group,链路聚合是一种将多个物理端口"捆绑"为一个逻辑端口的技术手段,遵循IEEE 802.3ad Link Aggregation协议规范。

    三层交换机一般将多个上联口聚合成Trunk组使用,其作用为:

    1)提高带宽,实现均摊模式;

    2)提供链路冗余备份,当Trunk组某个成员端口链路出现故障时,可以最大限度地减轻网络故障。

    Trunk组

    BCM56440芯片最多支持128个Trunk组,每个Trunk组最多8个成员端口,且同时支持同芯片聚合组和跨芯片的HiGig+/HiGig2聚合组。

    BCM56440芯片的TRUNK_GROUP表包含128个表项,以TGID为索引。每个TRUNK_GROUP表项包含TG_SIZE、RTAG、BASE_PTR三个字段:

    1)TG_SIZE表示Trunk组成员端口个数;

    2)RTAG配置Hash模式(均摊模式),即选择出口报文的哪些字段(MAC DA, MAC SA, VLAN, EtherType, IP DA, and IP SA)来计算Hash值,计算出来的8位Hash值用来选择BASE_PTR指向的TRUNK_MEMBER表项中的具体成员端口作为报文出端口;

    3)BASE_PTR指向TRUNK_MEMBER表项,即Trunk组成员端口列表。

    均摊模式

    Trunk组的均摊模式是使用Hash算法实现。

    RTAG 0~6根据报文的MAC DA, MAC SA, VLAN, EtherType, IP DA, and IP SA字段计算Hash值,一般情况下,交换机都是配置IP DA + IP SA或者MAC DA + MAC SA两种方式之一。

    RTAG 7为增强型Hash模式,主要用来实现负载均摊。这种方式下,根据两部分信息计算Hash值——packet header(用来识别microflows)以及静态物理配置(如源和目的端口数)。其Hash过程如下:

    1)Hash Field Selection: Based on EtherType and packet parsing

    2)Hashing Computation: Based on configuration

    3)Hash Bits Seletion: 针对应用场景配置

    常用命令

    BCM.0> trunk
    Usage (TRUNK): Usages:
              trunk init 创建Trunk组
                    - Initialize trunking function
              trunk deinit
                    - Deinitialize trunking function
              trunk add <Id=val> <Rtag=val> <Pbmp=val> 添加Trunk组成员端口
                    - Add ports to a trunk
              trunk remove <Id=val> <Pbmp=val> 移除Trunk组
                    - Remove ports from a trunk
              trunk show [<Id=val>] 查看Trunk组
                    - Display trunk information
              trunk egress [<Id=val>] <Pbmp=val>
                    - Set egress ports for trunk
              trunk mcast <Id=val> <Mac=val> <Vlan=val>
                    - Join multicast to a trunk
              trunk hash set <Pbmp=val> <HashValue=val>
                    - Set ingress port hash value to select egress port of a trunk
              trunk hash get <Pbmp=val>
                    - Get ingress port programmable hash value
              trunk psc <Id=val> <Rtag=val> 设置RTAG模式
                    - Change Rtag (for testing ONLY
  • 相关阅读:
    https://vjudge.net/problem/计蒜客-44317/origin
    zsh终端配置环境变量:
    python库路径问题
    pandas 常用API
    https://codeforces.com/contest/1301/problem/B
    vue中8种组件通信方式, 值得收藏!
    让你减少加班的15条高效JS技巧!记得收藏哦
    那个炒鸡有趣的HTML5标签 —— <dataList>
    前端面试之浏览器/HTML/CSS问题
    插件界的瑞士军刀,vs code已经无所不能!
  • 原文地址:https://www.cnblogs.com/justin-y-lin/p/14377764.html
Copyright © 2011-2022 走看看