zoukankan      html  css  js  c++  java
  • Mac地址表、STP与RSTP原理

    Mac地址:交换机转发二层帧的数据库

    结构:VLAN+来源+Mac地址+接口

    表建立:交换机会把数据帧进入接口的源Mac记录,一个接口可以记录多个Mac。

    表老化:表项中的每个记录计时器舒心都有计时器(300s),计数器启动——当该记录没有数据帧查询时就会倒计时,一旦有数据帧查询

    端口安全:1.攻击

                        Mac地址洪泛攻击:mac地址洪泛攻击: mac表的容量是有限的,攻击者发送大量伪造的mac地址帧,交换学习的时候是没有识别机制的,这样一来大量的伪造mac地址就会填满mac地址表。合法的mac学习因为没有

    mac空间而学习不到,造成洪泛转发。

                        Mac欺骗攻击:伪造mac地址让交换机做出错误的接口记录。

    端口安全原理:让交换机记录正确的mac地址绑定在正确的接口,并且不能修改,一旦修改就会对该接口做出惩罚(告警, 丢弃流量,关闭接口

    MAC地址漂移:指设备上一个VLAN内有两个端口学习到同一个Mac地址,后学习到的覆盖原MAC地址表项的现象。

        避免机制:提高MAC地址学习优先级

                         避免相同的接口优先级

                         MAC地址表项覆盖

    Mac地址漂移检测:利用Mac地址出接口跳变现象,检测是否发生漂移的功能。

    类型:

    STP:生成树协议(802.1D标准生成树)

    交换机之间存在冗余路径,以及交换机泛洪机制,导致交换机之间产生二层交换环路。STP就是为了解决环路问题

    环路的影响:广播风暴、MAC地址表不稳定、数据帧的重复拷贝。

    stp解决环路的方式:通过阻塞端口来达到无环,阻塞端口可能更有多个(逻辑性阻塞某个或某些端口)。

                                   在交换机之间,通过发送比较信息,选择在环路之间应该被阻塞的接口

    发送比较信息,BPDU ---网桥协议数据单元

    BPDU类型

    1.BID :网桥标识符,用于表示该交换机或网桥在该生成树中的唯一性

    BID优先级:默认值为32768,数值范围0-65535(BID优先级数值必须为4096的倍数, 范围也可称为0-61440),再使用BID优先级时,数值越小越优

    Mac 地址:本交换机上背板地址池中最小的MAC地址,mac地址越小越优

    2.root ID:根标识符 ,在一棵生成树中表示唯一根.使用最优质的BID表示

    3.Cost值,路径开销,描述了本接口到达根的路径开销值,数值越小越优,经过不同的链路增加对应的cost

    4.port ID ,端口标识符,用于表示本交换机上接口的唯一性标识。构成:PID优先级+port number(比较Mac地址)

    PID优先级:默认为128,数值范围0-255(PID优先级必须为16的倍数,所有范围 0-240),数值越小越优

    Port number:端口号,表示了本交换机该接口的唯一性,一般为接口的端口号标识(比较Mac地址),数值越小越优

    5.生成树中的计时器

    Hello时间:默认2s,配置BPDU的发送间隔

    Max age :最大等待时间,默认20s,hello数据包的超时时间以及从blocking进入 listening 状态等待时间

    Message age :消息时间,也称消息的老化时间,实际上等于MAC地址老化时间, 默认300s,在启用portfast等特性时变为15s

    Forward delay :转发延时,默认15s ,在生成树中状态切换间隔

    交换机角色:分为根网桥和非根网桥

    端口角色:根端口、指定端口、非指定端口(阻塞端口)

    端口状态切换:

    Blocking :阻塞状态,不能发送BPDU,接收BPDU,不能发送和接收数据,被动等待 20s进入下一状态。(选根桥与根端口)

    Listening :监听状态,可以发送和接收BPDU,不能发送和接收数据,进行STP选举, 被动等待一个forward delay 15s进入下一状态(指定与非指定)

    Learning :学习状态,可以发送和接收BPDU,不能发送和接收数据,可以学习BPDU 中的源MAC地址(MAC地址学习状态),被动等待一个forward delay 15s进入下一 状态

    Forwarding :转发状态,可以发送、接收BPDU和数据,mac地址学习和生成树接口 状态切换完成

    根网桥选举:具有最优BID的交换机为根网桥

    根端口:用于接收来自根的BPDU信息,只能存在于非跟网桥之上,并且一个交换机 只能存在一个.

    根端口选举: 1.最小cost值   2.发送方最小的BID   3.发送方的PID  4.本地PID

    指定端口: 端口,根网桥的所有接口全为指定端口用于发送或转发BPDU信息,存在于每条链路中,一条只能存在一个指定

    非指定端口(阻塞端口):逻辑上打破接口。

    优点:树少、简单、

    缺点:生成树收敛速度慢(默认共计收敛时间50s),基于计时器收敛、不能进行负载分担

    RSTP:(802.1W,快速生成树),不再依赖于生成树中的计时器进行收敛,使用BPDU中flags字段中的信息进行分布式收敛。依赖互相发送BPDU中proposal (请求) 和 agreement   (同意),使用分布式BPDU交互,可以在2-3s之内完成生成树收敛.

    BID  PID   RID  , 相关计时器 都与802.1D完全相同。

    端口角色:

    根端口(RP):

    指定端口(DP):

    替代端口(AP):在同一交换机上使用阻塞端口代替根端口,阻塞端口称为替代端口.(自动集成uplinkfast特性)

    备份端口(BP):在同一交换机上,使用阻塞端口备份指定端口,阻塞端口称为备份端口

    端口状态:

    Discarding :丢弃状态,合并了blocking和listening 状态

    Learning:学习状态

    forwarding:转发状态

    802.1w中定义了端口角色:

    边缘端口:edge port ,非trunking,access接口,

    非边缘端口:nonedge port ,trunking 接口

    802.1W中的链路类型:link-type ,在P2P中才可以启用RSTP,在shared中不支持RSTP,仅仅工作在STP

    P2P:点对点链路类型,全双工链路上

    Shared :共享性链路类型,半双工链路上                  

    选举新的指定端口:proposal——agreement

    说明:RSTP使用“Proposal-Agreement”协商机制加快非边缘端口成为新的指定端口之后,从Discarding状态进入Forwarding状态的速度。

    本例中,假设最初网络中各交换机的优先级优先次序为SWA>SWB>SWC>SWD;因此SWA为根交换机,SWD的E0/1为Alternate Port,处于Discarding状态。假设修改SWD的交换机优先级使优先级次序为SWD>SWA>SWB>SWC;协商机制的工作过程如下:

    (官方说明)1. SWD立即成为根交换机,E0/1和E0/2立即成为指定端口,E0/2保持转发状态不变,E0/1向外发送一个Proposal(建议),Proposal是设置了一个标志位的RST BPDU,此BPDU中同时包含计算生成树的参数;

                        2. SWC收到Proposal之后,计算生成树,设置E0/1为根端口,保持转发状态,E0/2为指定端口。如果收到Proposal的端口是新的根端口,则设置所有非边缘指定端口为Discarding状态,并向外发送新的Proposal,如果所有的非根端口都需要进入Discarding状态或者是边缘端口,则直接在接收到Proposal的根端口上向外发送Agreement;本例中,SWC设置E0/2为Discarding状态并向外发送新的Proposal;

                        3. SWA收到Proposal之后,计算生成树,设置E0/1为预备端口,设置E0/2为根端口,如果收到Proposal的端口需要进入Discarding状态,则在该端口进入Discarding之后,向外发送一个Agreement(同意);

                        4. SWC的E0/2收到Agreement之后,立即进入转发状态,在所有非边缘指定端口收到Agreement之后,SWC在根端口上向外发送Agreement;

                        5. SWD在指定端口上收到Agreement之后,立即进入转发状态。

  • 相关阅读:
    工作中遇到的java 内存溢出,问题排查
    java线上内存溢出问题排查步骤
    性能测试-java内存溢出问题排查
    164 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 04 终止finally执行的方法
    163 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 03 使用多重catch结构处理异常
    162 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 02 使用try-catch结构处理异常
    161 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 01 try-catch-finally简介
    160 01 Android 零基础入门 03 Java常用工具类01 Java异常 03 异常处理简介 01 异常处理分类
    159 01 Android 零基础入门 03 Java常用工具类01 Java异常 02 异常概述 02 异常分类
    158 01 Android 零基础入门 03 Java常用工具类01 Java异常 02 异常概述 01 什么是异常?
  • 原文地址:https://www.cnblogs.com/tianyao2020/p/12790033.html
Copyright © 2011-2022 走看看