09.以太网交换基础
最后更新时间:
页面浏览: 加载中...
以太网
早期的以太网使用共享线缆(HUB)接入的设备会共享带宽,泛洪处理数据
会导致数据帧的冲突问题(冲突域) CSMA/CD 可以缓解冲突的问题
- 先听后发:先侦听链路是否空闲,空闲时发送数据(非冲突时发送)
- 边听边发:在发送的过程中也会持续监听链路,如果发现冲突则停止发送(冲突停发)
- 随机延迟后重发:监听链路冲突缓解或解决后重新再发送数据
以太网的数据帧类型
Ethernet II:
主要用于承载用户数据,或者普通二层流量
使用 Type 来标识上层协议(如:0x0800 = IP、0x86DD = IPv6 等)802.3:
主要用于承载控制协议流量(BPDU、IS-IS 格式帧等)
使用 Length、LLC、SNAP 用于标识上层协议(一般使用 length 来标识)MAC 地址(48 bit)
是网卡的出厂地址,默认由厂商分配
前 24 bit(OUI 指定,用于标识厂商)后 24 bit 由厂商分配,用于唯一标识一台设备
MAC 地址(帧类型)
单播:第 8 bit,固定为 0,偶数帧为单播数据帧
例如:02-00-00-00-00-01 (02 代表是单播帧,也就是 XX-00-00-00-00-01,如果 XX 是偶数就是单播帧)组播:第 8 bit,固定为 1,奇数帧为组播数据帧
例如:01-00-5E-00-00-0A (01 代表是组播帧,也就是 XX-00-5E-00-00-0A,如果 XX 是奇数就是组播帧)广播:所有 bit 位都等于 1,FF-FF-FF-FF-FF-FF 为广播帧
交换机对于不同的数据帧,处理方式
学习功能:
交换设备收到数据帧后,会根据数据帧的源 MAC 地址来进行记录
记录 MAC 地址和接口的绑定关系(有相关记录的单播帧,称为已知单播,没有记录的称为,未知单播)已知单播:
从一个接口收到单播数据帧,会查看目的 MAC 地址表是否有对应关系,如果有,则从记录的接口发出
(交换设备的转发行为)未知单播:
从一个接口收到单播数据帧,会查看目的 MAC 地址表是否有对应关系,如果没有,则从所有的其他接口发出
(交换设备的泛洪处理)组播:
收到一个组播数据帧,会先上送 CPU 处理,查看本设备是否监听
如果有监听,则从对应的接口转发
如果没有监听,则直接泛洪处理广播:
收到一个广播数据帧,除了接收数据的接口,其余接口都做转发(泛洪)
冗余链路
冗余的交换链路会带来环路和广播风暴等问题,通过生成树解决
端口角色
RP:根端口,是非根交换机到达根桥最近的一个接口(一台非根交换机,有且只有 1 个)
DP:指定端口,每条链路都需要选举,最优的为指定端口(用于转发 BPDU 和用户数据)
选举参数
Root ID:
优先级 + MAC 地址
优先级:16 bit = 0 —— 65535,但是后 12 bit 固定为 0(4096)
优先级只能是 4096 的倍数,如:32768、0、4096、8192 等
(优先级默认:32768 越小越优)如果优先级一致,则比较 MAC 地址(越小越优)
RPC:
根路径开销,非根设备到达根桥的总开销,最小的会成为 RP 端口BID:
发送者的桥 ID,哪一台设备发送,就会填充该设备的桥 ID 信息
优先级 + MAC 地址
优先级:16 bit = 0 —— 65535,但是后 12 bit 固定为 0(4096)
优先级只能是 4096 的倍数,如:32768、0、4096、8192 等
(优先级默认:32768 越小越优)PID:
优先级 + 端口 ID 组成
优先级默认:128 越小越好,一致则比较端口 ID,越小越好
例如:G0/0/1 接口, PID = 128.1选举根桥:
所有的交换设备都会认为自己是根桥,通过发送 BPDU 的报文进行选举
比较参数 1 选举最优的设备成为根桥(有且只有一个)
其余设备为非根交换机非根交换机选举根端口:
非根设备会比较本设备所有接口,哪一个到达根桥最近就会成为根端口
比较参数 2 (数值最小的)每段链路都需要选举 DP 端口
先比较参数 1 和 2 如果无法选举,则比较3
补充:双交换设备双链路相连,前 3 个选举参数一致,则会比较第 4 个参数 PID阻塞端口:
阻塞非 DP 和 RP 的端口,选出 AP 端口
配置命令:
- 修改设备的优先级
方法一方法二1
stp priority 0 // 把设备的优先级修改为 0
1
2
3stp root primary // 指定设备为根桥,相当于把优先级改为 0
stp root secondary // 指定设备为备份根桥,相当于把优先级改为 4096 - 修改接口开销
1
2interface G0/0/X
stp cost 100 // G0/0/X 接口默认开销为 20000,修改为 100 - 修改生成树类型
1
stp mode (stp、rstp、mstp) // 默认为:MSTP 可以修改为其他类型
- 查看方式
1
2display stp // 查看详细信息
display stp brief // 查看摘要信息
STP 状态机
discarding:不转发用户数据,不学习 MAC 地址(可以转发 BPDU) 是 AP 端口的最终状态
learning:不转发用户数据,但是可以学习 MAC 地址,也可以转发 BPDU,是 DP 和 RP 的过渡状态
forwarding:既可以转发用户数据,又可以学习 MAC 地址和转发 BPDU,是 DP 和 RP 的最终状态
每个状态切换都需要等待一个 forward delay(15s)
从 discarding 到 forwarding 需要 2 个 forward delay(30s)STP 的收敛速度非常慢,每次接口从 Down 到 Up 还需要等 30s 才能转发
问题一:PC 设备接入后,DP 端口需要 30s 才能转发 PC 设备的流量问题二:当 RP 端口故障后,最优的 AP 会成为新的 RP 端口,但新 RP 端口到达转发状态需要 30s
即:网络的变化或者端口抖动(频繁 up/down)都会使得交换网络等待 30s 才能恢复。这是用户无法接受的
使用 RSTP 可以解决以上的问题
EP 端口(边缘端口):
用于连接终端设备(如:PC、服务器、IP 电话、打印机等)接口一旦 up 立刻进入 forwarding 状态
无需等待 30s 的延迟AP 端口是 RP 的备份,AP 在 RSTP 中为预备端口,一旦 RP 故障。最优的 AP 会立刻切换至 RP 并且进入 forwarding 状态
无需等待 30s 的延迟 (AP 在 RSTP 和 MSTP 中是 RP 的预备端口)
- 端口快速切换到 forwarding 会产生哪些问题?
如果端口接入就能转发有可能会产生环路问题,所以设置边缘端口时,为了保护交换设备,需要设置 BPDU 保护功能
配置命令:
- 配置端口为边缘端口
1
2
3interface G0/0/X
stp edged-port enable // 用于用户终端,接入就能访问网络,避免 30s 的等待延迟
(如果边缘端口接入的是交换机,就会有环路的风险) - 配置边缘端口保护
1
2stp bpdu-protection // 开启后,只对边缘端口生效
交换设备会发送 BPDU,一旦边缘端口收到 BPDU 就会主动关闭该接口(终端不会关闭) - 设置自动恢复
1
error-down auto-recovery cause bpdu-protection interval 30 // 因为收到 BPDU 导致的端口 shutdown 可以在 30s 后自动恢复