computer network

mac 地址

相当于手机号码,唯一的。12 位十六进制(48 bits)

54-89-98-6B-51-E4

单播帧:1 对 1 通信的行为,通过读取 mac 地址的第一个字节的第 8 位,如果为 0 ,则表示为单播帧。54 的二进制第 8 位为 0。只有一台主机或者设备接口才能处理此数据帧。

组播帧:1 对多的通信行为。通过读取 mac 地址的第一个字节的第 8 位,如果为 1 ,则表示为组播帧。多台主机或者设备接口可以处理数据帧,但是需要主机或者设备接口主动加入该组播组。

广播帧:1 对所有的通信行为。所有字段为 1,mac 地址为 FF-FF-FF-FF-FF-FF ,所有的主机或者设备都可以处理数据帧,不需要主动加入。


mac 地址表:在交换机中用于指导数据帧的转发行为。

display mac-address

匹配到 mac 地址之后,然后在相应的接口转发出去。

mac 地址可以手动添加和自动添加。


mac 地址表的构成方式:

静态添加 mac 地址表:由网络管理员手动添加 mac 地址与接口的映射关系,表项稳定但是需要网络管理员进行维护。

在系统视图下:

mac-adderss static mac地址 GigabitEthernet 0/0/3

自动发现和学习 mac 地址表

当交换机收到数据帧时,会将数据帧的源 mac 地址和收到数据帧的接口的关系存放起来,存在老化时间,默认为 300 s(5 分钟时间内没有收到自动丢弃,否则置零)。

老化时间机制:为了减少设备的开销与 mac 地址表的规模;在老化时间内如果收到表项中对应的数据帧,重置计时器;在老化时间内收不到任何数据帧,则将表项删除。

ARP缓存表、路由表等等,只要是动态的,都有老化时间机制。

注意:1 个 mac 地址不可以对应多个接口,缓存表只存储单播帧。但是一个接口可以对应多个 mac 地址。


交换机的转发行为

  1. 泛洪(flooding)

    交换机从一个接口收到数据帧,从其他所有接口都发送出去。

    特点:交换机内部存在复制行为,数据帧数量增多。

    适用于:广播帧、组播帧、未知单播帧(企图找到位置)

  2. 转发(forwarding)

    当交换机从一个接口收到数据帧是,通过查找 mac 地址表找到相对应的接口,从该接口发送出去。

    特点:数据帧的数量保持不变。

    适用于:已知单播帧

  3. 丢弃(discarding)

    交换机从一个接口收到数据帧时,通过查找 mac 地址表找到相应的接口,但是此接口跟入接口相同,直接丢弃数据帧。

    特点:数据帧的数量减少

    适用于:已知单播帧

傻瓜交换机只有泛洪,因此会触发丢弃行为。


STP 生成树协议

防环协议,无环会有单点故障,所以我们要有环且防环。

存在三个版本:STP(传统 STP),RSTP(快速生成树),MSTP(多实例生成树→华为默认)

stp disabled

进入循环,导致数据帧重复增多,且无效。

CPU 有过热保护,蓝屏,设备也有过热保护(断电或者自动重启)

在实验室可以随便玩,但是跑业务,拔一根线都要记录,还有停五分钟。


如果已经出现二层环路,只能物理破环(设备关机或者拔网线)

造成危害:

  1. 广播风暴

    数据帧在设备之间不断循环泛洪,数据帧的数量呈指数型增长,从而造成带宽浪费严重,无法正常通信,设备开销过大,甚至可能导致设备宕机或者自动重启

  2. mac 地址表的震荡

    display mac-address

    可以看到接口一直在变,因为一次循环会将接口覆盖一次

    数据帧在设备之间不断循环泛洪,在短时间内,mac 地址表在不断地进行刷新的动作,导致数据帧无法正常工作,设备的开销也会增大。

    注意:华为交换机一旦开机,自动运行 STP 协议,版本为 MSTP。


STP 工作原理

由 STP 协议自动计算和在逻辑上阻塞某一个端口,让网络修剪成树形网络,如果出现故障,则由 STP 协议去启用该端口,实现冗余备份的功能。

生成树的概念

STP 协议全部由一种报文进行工作,报文名字为 BPDU(桥协议数据单元),里面包含相关信息。


STP 计算过程(spanning tree protocol)

  1. 选举一个根桥

    所有交换机都会认为本身是根桥交换机,从而向外泛洪 BPDU;

    交换机会对比 BPDU 报文中的根桥 ID (因素1),如果收到比接口本身优的 BPDU 报文,则复制转发,如果收到比本身差的 BPDU 报文,则直接丢弃。

    根桥 ID 的比较规则:根桥 ID 由:优先级+ mac 地址。

    先比较交换机的优先级,优先级默认为 32768,数值越小越优先,可以通过命令进行调整,但是只能调整为 4096 的倍数。

    如果优先级相同,则比较 mac 地址,数值越小越优先(0 也可以),从左比到右。

  2. 每个非根交换机选举一个根端口。

    在每一个非根桥交换机有且仅有一个,用于接收最优的 BPDU 报文。

    非根桥交换机通过比较收到的 BPDU 的优劣,最优成为 RP 端口,使用根路径开销(要素2),根路径开销越小越优先。

    根路径开销:接口作为出方向去访问根桥的路径,其中最小的累积开销值为路径开销。

    STP 的开销计算方式:路径数 * 带宽对应的值。

    100 M = 200000

    1G = 20000

    10 G = 2000

    STP 的通用规则:非根桥交换机与根桥交换机直连的接口,都是 RP 接口。

  3. 每个网段选举一个指定端口

    交换机与交换机之间的链路成为一个网段。

    在每一个网段中有且只有一个,用于转发最优的 BPDU 报文

    STP 通用规则二:只要是根桥交换机上的端口,都是 DP 端口。

    在要素 2 无法比较的情况下,使用发送者桥 ID (要素 3)进行比较。

    当交换机将 BPDU 进行转发到某一网段时,将本身的根桥 ID 添加至发送桥 ID 中,比较规则也是比较 ID。

  4. 阻塞非根,非指定端口。

    也就是 AP 端口


要素 4 :端口 ID(解决自环)

优先级 + 端口的编号组成

先比较接口的优先级,默认为 128,数值越小越优先,可以调整,但是只能调整为 16 的倍数;

端口 ID 数值越小越优先

如何判断交换网络中已经选出根桥交换机?

答:当整个交换网络泛洪的 BPDU 报文的根桥 ID 都相同时,则说明已经选出根桥交换机。


BPDU 报文 2 秒更新一次

  1. 基本信息
  2. 计算信息
  3. 计时器

常用的 STP 命令

  1. 修改版本号

    华为默认 MSTP,

    system-view  # 系统视图下
    stp mode ?   # 提示
    stp mode stp # 修改传统版本
    

    注意: STP 版本存在向下兼容,需要将所有的交换机的模式都进行修改。

  2. 调整根桥的位置

    ctrl + c 打断指令。

    display stp       # 查看 stp 根桥
    stp priority ?    # 提示 
    stp priority 4096 # 数值是 4096 的倍数
    

    可以手工指定主根桥与备份根桥,看 root-type

    stp root ? # 主根桥和备用根桥
    primary    # 指定主根桥
    secondary  # 指定为备份根桥
    
  3. 调整接口的开销值

    在接口下 stp cost

  4. 查看端口角色

    display stp brief

    发现所有接口都是 DP 端口。


计数器无法使用 lodctr/r