一、交换机转发原理
交换机内置MAC地址表,又称CAM表,别名内容可寻址存储器,交换机负责网络内(VLAN)的一股流量转发,MAC、Interface、VLAN做一个绑定。交换机自动学习,通过一个接口收到一个带有源MAC地址的帧,交换机基于接收到源MAC地址与接收接口与接口VLAN做一个绑定,故交换机接收到一个数据帧就认为发送者在此接口。
交换机接收到一股流量后泛洪称为VLAN内泛洪,所以二层交换机功能只是做VLAN内转发。
交换机数据转发三种方式:
1、贯穿式转发 :交换机收到数据帧,只查看前6字节的DMAC地址,效率高,无法保障后字节数据正常,多用于傻瓜交换机。
2、无分片转发:交换机收到数据帧,查看前64字,后64会各种问题,存在两端双工不一致的问题,多用于华为、思科交换机存在双工模式自适应,但是不同厂商交换机连接链路协商会存在失败可能,协商失败可以手动调整链路带宽。
undo negotiation auto
speed 100
deplex full
3、存储转发:完整查看帧的所有字段,把数据帧做数据缓存,然后转发,效率最低;
二、广播风暴
为了避免网络避免单独故障,塑造健壮性,有必要设置线路冗余,但冗余线路容易造成广播风暴。
广播风暴:交换环境中,传播组播广播流量由于流量太过庞大,消耗了所有设备资源,网络故障
三、2代Ethernet 二代以太网技术
当前网络环境称之为CE经典以太网,2代以太网有思科协议Fabricpath,公有协议Trill,使交换机模拟运行基于二层的动态路由选择协议IS-IS(思科)、华为(OSPF、BGP),因为以上2个协议技术都依赖高级交换机设备,如果中低端交换机只能使用STP生成树协议。
四、STP生成树协议原理与配置
生成树协议主要用于解决冗余链路的环路、广播风暴、MAC地址表翻动切换,出现此现象的原因是带有冗余链路交换机通过STP协议计算,判断交换机哪些路径最优,堵塞冗余链路,保留最优链路转发数据,保证端到端有且只有一条可行路径,与此同时检测链路的实时状态,当路径崩溃了,当交换机崩溃了,STP协议可以立马做链路调整,恢复堵塞链路,重新建立最新的一条最优路径堵塞其他链路,从而避免广播风暴。但是STP协议降低了线路资源,STP链路切换延迟较大。
STP版本:
IEEE 802.1D STP (思科PvST) 华为、H3C、锐捷(CST)
IEEE 802.1W RSTP(思科RPvST) 华为、H3C、锐捷(RCST)
IEEE 802.1S MSTP(MST、MiST多进程生成树协议,厂商叫法一致。)
注:除了802.1S其他版本的STP思科与其他厂商均不兼容,如果不同厂商设备使用STP,建议使用版本3,所有厂商都兼容。
STP术语:
1、根桥,树根:根网桥交换机,有且只有一台,中心。
2、普通节点,非根桥:根端口,有且只有一条,最优路径。
3、BPDU:控制层面协议报文,网桥协议数据单元,实时维护路径状态,由根桥产生,组播泛洪0180.C200.0000,传递规则:发送BPDU的接口必须是指定端口,根桥所有接口都是指定端口,根桥通过指定端口发送非根桥指定端口(每台非根桥只有一个指定端口),非根桥把通过根端口收到的BPDU进行泛洪,通过所有指定端口进一步发送。
STP工作原理:
1、阻塞所有不优的冗余路径,留下无环最优路径做数据转发;
2、实时监控交换机间路径状态,当发现路径问题的时候,及时切换路径。
五、BPDU载荷
以下字段按照上图排序:
2字节: Protocol ID ,值为0,用来描述生成树协议;
1字节: Version,值为0,802.1D的版本;
1字节: Message Type,用来描述是配置BPDU/TCN-BPDU,值为0x00代表配置BPDU,值为0X80代表TCN-BPDU; **注:如果是TCN-BPDU到此字段就结束。**
1字节: Flags,最高为TCA位(拓扑变更确认位),最低位TC位(拓扑变更位);0(TCA)0000000(TC)
8字节: Root ID,根桥的BID,**每台交换机都认为自己是根桥**;
4字节: Cost of path,根路径代价,描述接口去往根桥的好坏,Metric Cost 开销值,越小越好。
8字节: Bridge ID,转发者BID,当前的BPDU被谁转发走,自身的BID,Bridge ID标识的是交换机本身;
SW1是根桥,根桥通过0/0/1发送的BPDU,此BPDU的Root ID 和Bridge ID 字段都是自己;假设SW2与SW1互联的接口0/0/3为根端口,SW2根端口收到BPDU后,Cost of path字段累加接口带宽开销值,并且把Bridge ID改写成自己的Bridge ID通过0/0/2再把BPDU发送给SW3,SW3接口0/0/04收到BPDU后,Root ID是SW1的,Bridge ID是SW2的,通过此过程,SW3得知此BPDU是SW1发送SW2转发 。
2字节:Prot ID,描述启用生成树交换机接口,每个启用生成树的接口都拥有本交换机唯一的PID,第一个字节是优先级,第二个字节是接口编号,也可以比较大小,先比较优先级,谁小谁好,其次比较接口编号,谁小谁好,没经过一个交换机会改变。
2字节:Message Age,BPDU在交换机之间传递了几跳,根桥始发为0,没经过一台交换机+1,最多20跳,超过20丢包。
2字节:Max Age,如果交换机一个接口在20s时间没有收到根桥的BPDU时表示根桥连通性故障。
2字节:Hello Time,指根桥发送BPDU的频率,2s一次。
2字节:Forward delay,转发延迟,指的是生成树协议选举根端口、指定端口、非指定端口,根端口、指定端口来正常转发流量,非指定端口是堵塞状态,从确定每个端口的角色到转发数据所需要等待的时间,2倍的Forwarding 2*15=30
PS:
BPDU封装: 802.3|BPDU|FCS
BPDU类型:
1、配置BPDU,只有根桥指定端口发送,2s刷新;
2、TCN-BPDU,拓扑变更通告。
六、STP选举步骤:
1、选根桥Root Bridge:在所有交换机中选举一台树根作为中心,比较Bridge ID (BID,8字节前2个字节优先级,默认值32768,后6个字节背板的MAC地址,交换机全球唯一的标识符),BID值越小越有可能成为根桥,先比较优先级(最小成为根桥),如果优先级一样比较后6位的MAC地址大小。
2、选根端口Root Port (RP):根桥,去往根桥路径最优的接口,有且只有一个,每台非根桥只有一个根端口。
比较非根桥所有能接收根桥BPDU接口的BPDU参数:
①比较RID,最小做根端口;
②比较接口收到的BPDU中Cop值和自身接口的COST值总和,谁小谁是根端口;
③比较接口收到的BPDU中转发者Bridge ID,谁小谁是根端口;
④比较接口收到的BPDU中PID值,比较的是接口对端交换机端口的好坏,谁小谁是根端口;
⑤比较自身接口的PID,谁小谁是根端口;
3、选指定端口Designated Port (DP)
根端口对端的一定是指定端口,在交换机间链路两端选举,比较交换机间链路两端接口发送的BPDU中的参数。 注:RP对端的端口就是DP
①、先比较两台交换机的Root ID,谁小谁是指定端口。
②、比较Cop值大小,谁小谁是指定端口。
③、比较BID值,谁小谁是指定端口。
④、比较PID值,谁小谁是指定端口。
4、非指定端口
DP对端是NDP,NDP允许接收BPDU,不能发送BPDU也不能转发BPDU。
RP根端口选举请看上图图解。
5、生成树收敛
2倍的Forward Delay,保证所有交换机都能确保自己的角色,收敛延迟较高,初始收敛30s;
Bridge ID可以修改,必须是4096的倍数,默认是32768,前4Bit是优先级,后12bit扩展系统ID Extended System-ID