二层网络
交换机,工作在数据链路层,负责转发数据帧
其中,交换机提供大量的接入端口可以满足多用户接入网络中,同时解决了以太网冲突问题。
转发行为
- 泛洪(flooding)
- 转发(forwarding)
- 丢弃(discarding)
泛洪
从某一端口进来的帧通过所有其他的端口转发出去
转发
从某一端口进来的帧通过另一个端口转发出去
丢弃
从某一端口进来的帧直接丢弃
PS:当交换机在MAC地址表中查不到目的MAC地址,就会执行泛洪,如果查到了,就会判断是不是帧进来的端口,如果不是就转发,否则丢弃;如果进来的是广播帧,那么就会直接执行泛洪
学习MAC地址
- 发送ARP请求(广播)
- 交换机收到帧后,存储源MAC和接口的映射关系,再转发,[X7系列交换机老化时间300s]
- 目标地址回复ARP响应,交换机也是同样的操作
华为交换机配置
在接口下设置工作模式:
negotiation auto:自行协商
duplex:设置以太网双工模式
speed:设置端口的工作速率
STP
广播风暴:主机收到重复的数据帧,在交换机间形成环路
MAC地址表震荡:交换机中的MAC地址表不断地发生变动
STP的作用:
- 消除环路,通过阻断冗余链路来消除
- 链路备份,当活动路径故障时,激活备份链路
STP操作
- 选举一个根桥
- 每个非根交换机选举一个根端口
- 每一个网段选举一个指定端口
- 阻塞非根,非指定端口
STP中定义了三种端口角色:指定端口(DP),根端口(RP),阻塞端口(BP)
–根桥选举
刚开始时,每一台设备都认为自己是根桥
- 根据桥ID<RID>,由16位的桥优先级和48位的MAC地址构成[默认:32768] ->优先级高的,桥ID最小的会被选择为根桥
- 桥ID相同,则MAC地址小的优先
- 根桥的所有端口都是指定端口,然后发送BPDU报文,发现桥ID的优先级高的则会切换这台为根桥
–根端口选举
非根桥的交换机(根端口RP),会依据端口的路径开销,对端BID,对端的PID来进行对比,只会选择一个根端口
–指定端口选举
每个网段选举一个指定端口(DP),一般情况下,根交换机上面的都是DP端口;依据端口的路径开销,对端BID,对端的PID来进行对比
–报文参数
- protocol identifier,协议ID=0
- protocol version identifier,协议版本标识符,STP为0,RSTP为2,MSTP为3
- BPDU type,0x00是配置BPDU,0x80是TCN(拓扑变更),0x02是RST或者MST
- flags,标志域,TCA是拓扑改变响应,TC是拓扑改变
- root identifier,网桥ID,优先级+MAC地址
- root path cost,根路径开销
- bridge identifier,发送者BID,本交换机的BID
- port identifier,发送端口PID,发送该BPDU的端口ID
- message age,该BPDU的消息年龄
- max age,消息老化年龄,最大是20
- hello time,发送两个相邻BPDU间的间隔
- forward delay,控制listening和learning状态的持续时间
状态转换
- 端口初始化或使能
- 端口被选为根端口或指定端口
- 端口不再是根端口或指定端口
- forward delay 计时器超时
- 端口禁用或链路失效
BPDU
BPDU包含了桥ID,根路径开销,端口ID,计算器等参数
在初始化过程中,每个桥都会主动发送配置BPDU,在网络稳定后,只有根桥才会发送配置BPDU
而TCN BPDU是下游交换机感知到拓扑发生变化时向上游发送的变化通知
故障变化
-
根桥故障:非根桥会在BPDU老化之后开始根桥重新选举,20s的等待超时以后,50s的切换时间
-
直连链路故障:会将预备端口转化为根端口,30s的转化时间
-
非直连链路故障:预备端口恢复到转化状态,50s的转化时间
PS:MAC地址表的老化时间是300s, 因此,故障切换后,需要及时更新MAC地址表项, 否则,会中断一段时间
STP配置
华为X7系列交换机支持三种生成树协议模式:
stp mode { mstp | stp | rstp }
# 缺省状态下,是工作在mstp模式
stp priority { priority } | stp root primary
# 设置设备的优先级,默认是32768
stp pathcost-standard { dot1d-1998 | dot1t | legacy }
# 配置指定交换机上路径开销值的标准
OR
stp cost { cost }
# 手动设置开销值
RSTP
区分BP和AP,看收到的BDPU中的BID是谁的,如果是自己的则是BP,如果不是自己的则是AP
- backup:作为指定端口的备份,提供另外一条从根桥到非根桥的备份链路
- alternate:作为根端口的备份端口,提供从指定桥到根桥的另一条备份路径
边缘端口不接收处理配置BPDU,不参与RSTP运算
收敛过程
- RSTP收敛遵循STP基本原理
- 交换机互相发送proposal置位的RST BPDU
配置
在全局开启:
stp mode rstp
在端口配置:
stp edged-port {enable | disable}
# 配置交换机的端口为边缘端口
stp edged-port default
# 所有端口都为边缘端口
stp {root-protection | bpdu-protection | loop-protection}
# 根 | BPDU保护
VLAN
VLAN可以将一个物理局域网在逻辑上划分为多个广播域,从而进行二层隔离
VLAN帧格式
D.Mac | S.Mac | type | data | FCS
D.Mac | S.Mac | tag | type | data | FCS
其中,tag是IEEE定义的新类型,表示这是携带802.1Q标签的帧,固定取值:0x8100
tag:TPID=0x8100 | priority | CFI | VLAN ID
- priority:表示帧的优先级,0~7
- CFI:表示MAC地址是否是经典格式(0是经典;1是非经典)
- VLAN ID:可以配置0~4095
链路类型
- 接入链路,Access:连接用户主机和交换机
- 干道链路,trunk:连接交换机和交换机(带Tag的VLAN帧)
- 混合链路,hybrid:是access和trunk的混合体(默认配置)
在接口下配置:
port hybrid tagged vlan id
# 接口发送该ID的数据帧时,不剥夺VLAN tag
port hybrid untagged vlan id
# 接口发送该ID的数据帧时,剥夺vlan tag
vlan划分方法
- 基于端口:基于交换机的端口
- 基于MAC地址:基于接入的物理设备的MAC来划分
- 基于IP子网划分:根据携带的IP地址划分
- 基于协议
- 基于策略
vlan配置
在全局配置:
vlan id
# 创建vlan
port G number
# 进入vlan id中加入端口
vlan batch { id_1 id_2 to ...}
# 创建多个vlan
在接口下加入vlan:
port link-type { access | trunk | hybrid }
# 设置类型
1.Access类型:
port link-type access
port default vlan id
2.trunk类型:
port link-type trunk
port trunk allow-pass vlan id_1 id_2
3.hybrid类型:
port link-type hybrid
- port hybrid tagged vlan id
- port hybrid untagged vlan id
dot1q termination vid ID
# 剥离tag,进行三层转发
voice vlan
通过配置voice vlan区分语音和业务流量
在vlan中开启voice vlan
voice-vlan id enable
# 开启voice vlan
voice-vlan mode <mode>
# 设置模式:自动,手动
## 全局中执行 ##
voice-vlan mac-address Mac mask oui-mask
# 配置voice vlan的oui地址,表示一个MAC地址段
链路聚合
提高链路带宽,增强网络可用性,支持负载分担
其实就是把多条线缆逻辑上捆绑为一条使用
聚合模式
- 手工负载分担模式
- LACP模式
配置方式:
interface Eth-trunk id
# 创建链路聚合的逻辑口,最多8个成员,接口必须是hybrid
undo portswitch
# 使用三层链路聚合
ip address IP
# 进入对应的接口
int g 0/0/1
eth-trunk id
# 把接口加入到逻辑口中