Day6 Trunk & STP
1.VLAN Trunk接口
1.1 为什么要有Trunk
1、当一条链路,需要承载多VLAN信息的时候,需要使用trunk来实现。
2、trunk两端的交换机需要采用相同的干道协议。
3、一般见于交换机之间或交换机与路由器、服务器之间。
4、划分多个vlan之后,解决不同交换机之间相同vlan的通信问题。
5、相同vlan在不同交换机上,跨越地理位置的通信问题。
6、使用交换机的某一条线路,来承载多个vlan,实现数据通信
1.2 什么是Trunk
Trunk即干道协议,采用Trunk链路技术可以实现不同交换机同网段的VLAN间通信。
1.3 Trunk的实现原理
Trunk技术可以实现在一条物理线路中可以传递多个VLAN间的信息。原理是能够运行携带来自不同VLAN的tag帧,这些数据帧的封装规则来自于 802.1Q。
- 定义了基于端口的VLAN模型
- 规定如何标识带有VLAN成员信息的以太帧
- 定义VLAN标签的格式
802.1Q 协议详解:
https://support.huawei.com/enterprise/zh/doc/EDOC1100088136
1.4 Trunk数据通信原理
1.PC1 要给 PC3 发送一个 ICMP的数据 (PC1 ping PC3)
没有找到192.168.2.2 这个IP地址对应的MAC地址是多少,触发ARP请求
2.该ARP请求报文被SW1的1号接口接收,由于1号接口是VLAN2的access接口,则会强行个ARP报文添加一个 vlan-id=2的tag
3.交换机学习源MAC地址:将源MAC地址AA和接口 1 的对应关系,填写到vlan2的MAC地址表中
4.交换机查看目标MAC地址是 全FF的形式,则会将这个ARP请求的数据帧广播到 所有其他的vlan2的接口
<SW1>dis vlan
2 common UT:Eth0/0/1(U)
TG:GE0/0/1(U)
3 common UT:Eth0/0/2(U)
TG:GE0/0/1(U)
# 查看vlan数据库,vlan2对应的接口有 Ethernet0/0/1和 GE0/0/1,由于ETH0/0/1是接收该报文的接口,所以,ARP请求报文只会有GE0/0/1发出去
5.SW2的Trunk接口接收该ARP报文:
由于该报文携带了一个 带有vlan2的tag,SW2在学习源MAC地址的时候,会将 AA- G1接口的对应关系,写到 VLAN2的MAC地址表中。
<SW2>dis mac-address
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-9807-58aa 20 - - GE0/0/1 dynamic 0/-
SW2查看目标MAC地址是FF,则会将ARP请求报文以广播的形式从 属于VLAN2的接口发出
<SW2>dis vlan
---------------------------------------------------------------------------
2 common UT:Eth0/0/1(U)
TG:GE0/0/1(U)
# GE0/0/1 是接收这个ARP请求的接口,则广播报文只会从ETH0/0/1发出
6.ARP请求从ETH0/0/1发出
由于E0/0/1接口是access类型,则数据帧要剥离掉tag,从E0/0/1发出
7.PC3接收到该ARP请求
首先查看目标MAC地址:全FF,是广播报文,自己可以解封装。解封装到ARP数据部分
查看Sender MAC和SenderIP的对应关系,写到自己的ARP缓存表
查看 target IP,发现目标IP地址是自己的,所以这个ARP请求,就是在请求自己的MAC地址,于是PC2会封装ARP的回复报文
8.PC3发出该ARP的回复报文
1.5 Trunk配置
[SWA-GigabitEthernet0/0/1]port link-type trunk
[SWA-GigabitEthernet0/0/1]port trunk allow-pass vlan 2 3
trunk的配置验证:
[SW1]dis vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
# Tagged:被封装802.1Q标签
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
20 common UT:Eth0/0/1(U)
TG:Eth0/0/3(U)
30 common UT:Eth0/0/2(U)
TG:Eth0/0/3(U)
1.6 Trunk实验
实验拓扑图:
!
SW1配置:
[SW1]vlan batch 20 30
[SW1]int e0/0/1
[SW1-Ethernet0/0/1]p l a
[SW1-Ethernet0/0/1]p d vlan 20
[SW1-Ethernet0/0/1]int e0/0/2
[SW1-Ethernet0/0/2]p l a
[SW1-Ethernet0/0/2]p d vlan 30
[SW1]int e0/0/3
[SW1-Gthernet0/0/1]port link-type trunk
[SW1-Gthernet0/0/1]port trunk allow-pass vlan 20 30
SW1配置验证:
[SW1]dis vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/3(U) Eth0/0/4(D) Eth0/0/5(D) Eth0/0/6(D)
Eth0/0/7(D) Eth0/0/8(D) Eth0/0/9(D) Eth0/0/10(D)
Eth0/0/11(D) Eth0/0/12(D) Eth0/0/13(D) Eth0/0/14(D)
Eth0/0/15(D) Eth0/0/16(D) Eth0/0/17(D) Eth0/0/18(D)
Eth0/0/19(D) Eth0/0/20(D) Eth0/0/21(D) Eth0/0/22(D)
GE0/0/1(D) GE0/0/2(D)
20 common UT:Eth0/0/1(U)
TG:Gth0/0/3(U)
30 common UT:Eth0/0/2(U)
TG:Gth0/0/3(U)
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable default enable disable VLAN 0001
20 enable default enable disable VLAN 0020
30 enable default enable disable VLAN 0030
SW2配置:
[SW2]vlan batch 20 30
[SW2]int e0/0/1
[SW2-Ethernet0/0/1]p l a
[SW2-Ethernet0/0/1]p d vlan 20
[SW2-Ethernet0/0/1]int e0/0/2
[SW2-Ethernet0/0/2]p l a
[SW2-Ethernet0/0/2]p d vlan 30
[SW2]int e0/0/3
[SW2-Gthernet0/0/3]port link-type trunk
[SW2-Gthernet0/0/3]port trunk allow-pass vlan 20 30
SW2配置验证:
[SW2]dis vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/3(U) Eth0/0/4(D) Eth0/0/5(D) Eth0/0/6(D)
Eth0/0/7(D) Eth0/0/8(D) Eth0/0/9(D) Eth0/0/10(D)
Eth0/0/11(D) Eth0/0/12(D) Eth0/0/13(D) Eth0/0/14(D)
Eth0/0/15(D) Eth0/0/16(D) Eth0/0/17(D) Eth0/0/18(D)
Eth0/0/19(D) Eth0/0/20(D) Eth0/0/21(D) Eth0/0/22(D)
GE0/0/1(D) GE0/0/2(D)
20 common UT:Eth0/0/1(U)
TG:Gth0/0/3(U)
30 common UT:Eth0/0/2(U)
TG:Gth0/0/3(U)
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable default enable disable VLAN 0001
20 enable default enable disable VLAN 0020
30 enable default enable disable VLAN 0030
实验验证:
图1:PC1可以ping通PC3(2.1>>2.2)
图2:PC2可以ping通PC4(3.1>>3.2)
图3:对SW1的E0/0/3进行抓包
1.7 Trunk的其他特性
什么时候数据经过Trunk链路会不携带TAG?
PVID:
Trunk链路的PVID默认就是 1, 如果想让某个vlan的数据,由Trunk链路发出的时候,不携带Tag,就把Trunk链路的PVID改成这个vlan的
vlan-id就可以了。
两端都要改相关配置!!!否则会发生流量互串
[Sw1-GigabitEthernet0/0/1]port trunk pvid vlan 2
如果某个VLAN和Trunk链路的PVID相同,我们就说这个VLAN是该Trunk链路的 本征VLAN (Native VLAN)
默认的native vlan是vlan1
Trunk链路在发送Native VLAN数据的时候,不携带Tag。
如果Trunk链路接收了一个不带Tag的数据帧,会把这个数据帧发送到自己的Native下。
交换机对于过路的数据,也要配置相应的vlan
对于SW4来说,虽然接口都配置了Trunk,允许vlan10的数据通过,自己本身,也没有VLAN 10的用户相连,SW4依然要 有vlan10
让VLAN10的数据,在经过SW4的时候,有转发依据:VLAN10的MAC地址表【如果SW4不配置VLAN10,交换机上就不会出现VLAN10的MAC地址表和它的VLAN数据库,对于接收到的VLAN10的数据,无法进行转发】
2.STP原理与配置
2.1 什么是STP?
- 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。
要不要有冗余?
既要有冗余,又要从逻辑上消除环路, 从逻辑上限制某个端口的数据转发功能。
自动化的实现:当网络出现单点故障的时候,被限制的端口,能够起到转发数据的功能。
- 为了提高网络可靠性,交换网络中通常会使用冗余链路(备份)。但是冗余链路会给交换网络带来环路风险,会导致广播风暴、MAC
地址表不稳定等问题,进而会影响用户的通信质量。
- 广播风暴
- 重复的数据帧
- 不稳定的MAC地址表
广播风暴:环路会引起广播风暴,网络中的主机会收到重复数据帧。(交换机收到广播帧,不停向相邻端口发送回复信息)
MAC地址表震荡:环路会引起MAC地址表震荡
- STP(Spanning Tree Protocol)是生成树协议的英文缩写,主要作用是防止网桥网络中的冗余链路形成环路工作,STP可以在提高可
靠性的同时又能避免环路。STP通过阻塞端口来消除环路,并能够实现链路备份。
2.2 STP概念
spanning tree
最终实现网络的逻辑上的无环,让整个网络,成为一个无环的树的形状。
通过STP协议,最终要找到一个接口,从逻辑上,把它阻塞掉。来消除二层上的环路。
2.3 STP选举
1.每个广播域选举一个根桥(根交换机)
2.每个非根交换机选举一个根端口
3.每个网段选举一个指定端口
4.阻塞非根、非指定端口
2.3.1 每个广播域选举一个根桥
在选举开始的时候,所有的交换机都会认为自己是根桥,他们产生并相互发送自己的BPDU。
比较BPDU中的Bridge-id:优先级+MAC地址,越小越优先。
Bridge-id:优先级+MAC地址
优先级:范围0-65535,必须设置成 4096的倍数
优先级的默认值是 32768, 越小越优先
当根桥选举完成后,只有根桥能够自己产生BPDU,其他的非根桥负责接收和转发来自根桥的BPDU。
2.3.2 每个非根交换机选举一个根端口
- 比较到达根桥的路径开销
- 如果开销值相同:比较端口接收到的BPDU中 Sender-BID这一参数【即从对端交换机接收的BPDU,Sender-BID就是对端交换机的BPDU】
- 如果交换机的各个接口接收到BPDU中的 Sender-BID也相同,则比较 BPDU中的 Sender-PID
Sender-PID :
优先级+ 端口编号
128 0-255 越小越优先
- 如果交换机的各个接口接收到BPDU中的 Sender-PID也相同,则比较交换机端口的本地ID
2.3.3 在剩余的链路上,选举出指定端口
1.根端口对面的端口,就是指定端口
2.在剩余链路上,选举指定端口
- 比较端口所在的交换机到达根桥的路径开销,越小越优先
- 如果端口所在交换机到根桥的开销相同,则比较端口所在交换机的BID。
- 如果所在交换机的BID也相同,比较端口自己的PID。
选举完成,从逻辑上去掉那些被阻塞链路,就得到了一棵能到达根桥的无环的树 —> spanning tree BPDU ,由根桥产生的,会从指定端口被转发,由根端口接收的。
nder-PID
Sender-PID :
优先级+ 端口编号
128 0-255 越小越优先
[外链图片转存中…(img-rFWI2fA1-1679830985583)]
- 如果交换机的各个接口接收到BPDU中的 Sender-PID也相同,则比较交换机端口的本地ID
[外链图片转存中…(img-DHM5BO47-1679830985584)]
2.3.3 在剩余的链路上,选举出指定端口
1.根端口对面的端口,就是指定端口
2.在剩余链路上,选举指定端口
- 比较端口所在的交换机到达根桥的路径开销,越小越优先
- 如果端口所在交换机到根桥的开销相同,则比较端口所在交换机的BID。
- 如果所在交换机的BID也相同,比较端口自己的PID。
选举完成,从逻辑上去掉那些被阻塞链路,就得到了一棵能到达根桥的无环的树 —> spanning tree BPDU ,由根桥产生的,会从指定端口被转发,由根端口接收的。