第三部分
- HCIA回顾
- 一、MPLS多协议标签交换
- 1、标签交换
- 2、静态LSP搭建
- 3、LDP协议
- 4、本地LDP会话建立的过程
- 二、MPLS VPN的配置使用
- MPLS VPN
- 三、实际情况配置
- 1、VLAN
- 第一步:创建VLAN
- 第二步:将接口划入VLAN
- 第三步:配置trunk干道
- 2、U/T标记
- 3、ACCESS接口
- 4、Trunk接口
- 四、VLAN之间通信
- 1、生成树技术
- 2、配置BPDU
- 五、完整通信分类
- 1、实现VLAN之间通信
- 2、使用路由器物理接口
- 3、使用路由器子接口
- 4、使用三层交换机的VLANIF接口
- 4.1 配置
- 4.2 VLANIF的转发流程
- 5、三层交换机参与下的三层通信流程
- 5.1 网络拓扑
- 5.2 连接逻辑图
- 5.3 通信过程
- 6、二层与三层接口对比
- 六、STP
- 1、STP概述
- 2、二层环路带来的问题
- 2.1 广播风暴问题
- 2.2 MAC地址漂移问题
- 2.3 多帧复制
HCIA回顾
1、七层参考模型及IP讲解
2、TCP三次握手讲解
3、TCP四次挥手讲解及抓包分析
4、DHCP协议讲解及抓包分析
5、静态综合实验讲解
7、静态路由讲解
8、RIP路由信息协议讲解
9、动态路由协议讲解
10、抓包进行分析RIP以及OSPF的包
11、动态路由OSPF配置综合实验讲解
12、Vlan虚拟局域网技术讲解
13、ACL访问控制列表讲解
14、NAT技术讲解
15、网络综合实验讲解
一、MPLS多协议标签交换
MPLS — 多协议标签交换
包交换 — 所谓包交换,数据组成数据包,在各个网络节点中不断传递,最终到达目标。(可以简单的理解为是三层转发的过程)
其实,我们对于包交换的转发方式并不是很满意,主要是因为他的转发效率太低:
- 1,完成过程需要查两张表 — 路由表,ARP缓存表
- 2,路由表的匹配原则 — 最长匹配原则
- 3,递归查找 — 在一定情况下,设备需要递归查找出接口或者下一跳。
- 4,IPV4头部是可变长头部 — 则处理头部信息时必须依靠软件来处理。相较而言,交换机的二层转发可以基于硬件来实现(通过使用支持二元运算的硬件芯片。如:CAM),这样,即使MAC地址表中的条目数量很多,也可以在短时间内完成匹配动作,效率要远高于路由表的软件查找。
1、标签交换
在二层和三层封装之间,添加一个和路由条目存在映射关系的标签,之后,维护一张记录对应关系和转发接口表。携带标签的数据来到设备上,将先看到标签,之后,基于维护的表进行转发,而不看三层的IP数据。因为标签本身短小而且定长,所以其转发效率应该高于包交换。
但是标签交换需要给数据包中先打上标签,之后到达目标之前,还需要弹出标签,因为标签只是在传输过程中提高转发效率的手段。因为有这些动作的存在,所以,标签交换转发效率的提升相较于包交换并不明显。
因为标签交换的转发效率提升并不是很明显,所以,我们在数据转发上又继续研发改进包交换。包交换至今,存在3次大的变更。
- 1,进程交换 —
process switching
— 最早的包交换,就是每个数据包到设备上需要先根据IP地址查询路由表,之后,在查看ARP缓存表实现转发。 - 2,快速包交换 —
Fast switching
— 基于流的包交换 — 一次路由,多次交换 — 一股数据流来到设备上,只需要针对数据流中的第一个数据包进行路由查询过程,之后,将数据包的特征(一般使用五元组来标识数据流)及转发方式记录在缓存中,之后,数据流中的其他数据包来到设备上,将直接比对缓存中的特征,比对上则直接按照转发方式进行转发,而不需要所有数据包都进行路由过程,可以大大的提高转发效率。 - 3,思科的特快交换 —
Cisco Express Forwading
— 简称CEF
,其思路就是将路由表和ARP缓存表中的内容进行预读取,之后都记录在CEF表中。并且该表支持硬件转发。
虽然CEF是思科的私有技术,但是,各大厂商也根据其思路设计出了属于自己的特快交换技术。华为在进行数据转发时,使用的就是FIB
(转发信息数据库),该表就是可以支持硬件处理的转发表。
MPLS
— 和包交换共同发展的一个标签交换技术。因为标签交换中的标签需要很路由信息相关,MPLS作为多协议标签交换技术,可以识别并兼容多种三层协议(IPV4,IPV6…),其兼容性较强。
MPLS
主要应用于三大领域
- 1,用于解决BGP的路由黑洞问题。
- 2,
MPLS VPN
- 3,
MPLS TE
— 流量工程 — 简单理解为控制流量转发的路径。
所有路由器激活MPLS之后,将按照MPLS的规则实现标签交换,这些运行了标签交换的设备所组成的MPLS网络,我们称为MPLS域。
所有运行了MPLS的路由器,都可以称为LSR(标签交换路由器)
因为所有匹配到同一条路由的所有数据报文,他们最终走的路由都是一样的,所以,我们只需要给他们分配同一个标签即可。在MPLS中,我们把这些具有相同特征的数据报文称为FEC — 等价转发类。一个FEC只需要分配一个标签即可。
标签分配后,设备需要将路由信息和标签的映射关系记录在一张表中 — LIB
(标签信息表),之后,结合FIB表,生成LFIB
(标签转发表) — 这张表中记录的时标签编号,和对应出接口和下一跳信息。
MPLS和包交换一样,其过程也可以分为控制层面和数据层面
包交换
-
控制层面 — 路由协议的数据流方向,目的时为了获取未知网段的路由信息,生成路由表。
-
数据层面 — 设备基于已经完善的路由表(FIB表),来转发具体的数据信息,其方向和控制层面相反
MPLS
- 控制层面 — 基于FEC分配标签,并获取其他LSR对同一个FEC分配的标签,记录生成LIB表,之后再结合FIB表生成LFIB表。(这个过程可以通过手工静态实现,也可以通过动态协议来实现 — LDP协议:标签分发协议)
- 数据层面 — 设备基于LFIB表,根据标签进行转发。
入站LSR — ingress
— MPLS域的一个边界,之前数据包中不存在标签,数据来到设备上之后,需要压入标签,完成压入动作的设备,我们称为入站LSR。
中转LSR — transit
— 在标签交换过程中完成标签置换动作的LSR
出站LSR — egress
— 弹出标签,之后基于三层IP头部进行包交换的LSR设备。
我们标签交换数据流量走过的路径 — R1 - R2 - R3 - R4
,这条路径我们称为LSP — 标签交换路径。特别注意,LSP是分方向的,如果想要实现1.0网段和2.0网段的互通,除了要有R1-R2-R3-R4这条LSP外,还需要构建一条R4-R3-R2-R1的LSP。
Label
— 标签号 — 前20位(0 - 2的20次方 — 这个标签的取值范围可以理解为标签空间。每台设备的标签空间都是独立的。),是标签转发的主要标识依据。
- 0 - 15 — 特殊标签值 — 不能直接分配,每一个都存在特殊含义。
- 16 - 1023 ---- 一般用于静态LSP的搭建
- 1024 - 2的20次方 — LDP等一些动态协议分配标签的取值范围
EXP
— 主要做策略用,占3位 — 可以理解为是优先级,数值越大,优先级越高,越高则可以优先转发数据。
S
— 栈底位 — 仅占1位 — 标签不止可以打一个,可以打两个或多个。这些标签头部的有序集合我们称为标签栈。
- 如果存在多个标签,且该标签是最后一个标签,则栈底位置1,不是则置0
- 如果只有一个标签,则栈底位置1。
TTL
— 生存时间 — 和三层IP头部中的TTL值作用一样,每经过一台设备转发需要减1,因为在标签交换过程中,不看IP头部,所以,TTL的计数作用就放在标签中了。在进入MPLS域时,由入站LSR将IP头部中的TTL值复制压入到标签中,之后,离开MPLS域时,再弹出标签时,将标签中的TTL值再复制回IP头部。
2、静态LSP搭建
1,创建路由条件* — 静态搭建LSP不需要所有设备都具备路由信息,因为所有路径都需要人工手工说明。只有边界设备(入站LSR和出站LSR)需要具备路由,因为他们将成为核查条件。
[r1]ip route-static 4.4.4.0 24 12.0.0.2
2,配置MPLS
- 1,配置LSR-ID
MPLS要求每台LSR设备都拥有唯一的身份标识,我们使用LSRID来标识,这个参数由32位二进制构成,按照IP地址格式配置,但是,只能手工配置,不能自动生成。(注意:一般情况下,我们习惯使用设备的环回接口的IP地址作为LSR - ID)
[r1]mpls lsr-id 1.1.1.1
- 2,激活MPLS
全局激活
[r1]mpls
Info: Mpls starting, please wait... OK!
[r1-mpls]
接口激活 — 所有参与MPLS转发的接口都需要激活
[r1-GigabitEthernet0/0/0]mpls
- 3,搭建静态LSP
入站LSR
[r1]static-lsp ingress 1to4 destination 4.4.4.0 24 nexthop 12.0.0.2 out-label 16
destination 4.4.4.0 24 nexthop 12.0.0.2
— 这个需要和本地路由表中的内容对应上,否则静态LSP将搭建失败
out-label
— 出站标签 — 即R1将这个数据包转发后压入的标签,R2收到数据包后,需要根据这个标签判断到底是到达那个网段的数据包。
中转LSR
[r2]static-lsp transit 1to4 incoming-interface GigabitEthernet 0/0/0 in-label 16 nexthop
23.0.0.2 out-label 17
incoming-interface
— 数据进入的接口
in-label
— 入站标签 — 这个标签必须和R1上配置的出站标签相同
出站LSR
[r4]static-lsp egress 1to4 incoming-interface GigabitEthernet 0/0/0 in-label 18
4.4.4.0/24 12.0.0.2 GSU t[902] GE0/0/0 0x1
— 注意: 在入站LSR上,需要根据FIB表中标识判断其需要走标签交换,标识就是tunnel ID为非0值。
[r1]display mpls static-lsp #查看静态LSP
3、LDP协议
标签分发协议
LDP协议主要需要完成的任务:
- 1,分配标签;
- 2,传递标签
因为LDP协议需要完成以上两个任务,所以,我们需要先保证MPLS域中运行IGP协议来获取路由信息。 —IGP协议是LDP协议的基础。
- 1,**LDP激活后需要先在本设备上为FEC分配标签。 ** — 如果该设备是这个FEC的出站LSR时,LDP才会主动为这个FEC分配标签。例如,R4是4.0网段的出站LSR,则R4会主动为4.0网段分配一个标签。但是R1,R2,R3均不是出站LSR,则都不会主动分配标签。但是,构建LSP时也都需要有4.0网段的标签。所以,当R4将自己的标签信息传递到R3时,R3收到后,将进行检查环节 — 看本地路由表中是否存在到达4.0网段的路由信息,且路由表中的下一跳是否和通告者相同,如果检查成功,则R3也会为4.0网段分配一个标签,依次类推。 ---- 这种标签分配方式我们称为有序模式。 — 华为设备默认选择的是有序模式。
除了有序模式以外,还存在一种标签分配方式 — 独立模式。独立模式就是设备可以自主的分配标签而不需要等待其他设备的通告。
- 2,传递标签
传递标签的前提条件是设备之间必须先是LDP对等体关系才行,而对等体关系建立的前提条件是需要先建立LDP会话。
LDP会话存在两种类型 -
- 1,本地会话 — 直连设备之间建立的LDP会话
-
- 2,远程会话 — 并不一定是直连设备,可以通过手工指定的方式去创建远程的LDP会话。(LDP会话可以实现非直连建邻。)
LDP会话在建立本地会话时,不需要指定邻居关系,也可以建立。 — 因为LDP协议会先以组播(224.0.0.2 — 所有路由器都会监听的本地链路组播地址)的形式发送hello包发现邻居关系。 — hello包将使用UDP协议进行封装,源目端口均为646号端口。
4、本地LDP会话建立的过程
- 1,在激活了LDP之哦胡,LSR的接口首先会周期性的发送
Hello
(默认5S为周期,保活时间默认为3倍周期,15S)包来发现LDP对等体关系。
hello包在发现邻居的过程中,会携带一些参数,主要有两个参数,一个是传输地址,一个是LDP ID
-
- 传输地址:
这个传输地址是后续需要进行TCP会话建立使用的地址。 这个传输地址默认使用配置的LSR-ID,所以,我们配置设备LSR-ID时要求必须使用环回接口的IP地址,并且保证该地址可达,因为后面需要使用这个地址建立TCP会话。
- 传输地址:
-
LDP ID
:
如果设备激活了LDP协议,则需要具有一个LDP ID。 ---- 由48位二进制构成。 —32:16 — 前面32位二进制使用的就是LSR-ID。后16位一般写0。
-
2,双方交互完hello包之后,则获取到对方的传输地址,之后将基于这个传输地址,建立TCP会话。
在建立TCP会话之前,也需要进入检查环节 — 检查传输地址的可达性。
因为双方都收到了对方的传输地址,则都将发起TCP会话的建立,这样将造成资源浪费,因为一方发起则建立的时一个双向的通道。所以,LDP在发起TCP会话之前,会先比较传输地址,谁的传输地址大,谁就是主动方,则可以主动发起TCP会话请求。
-
3,完成
TCP
会话建立之后,将开始建立LDP
会话。传输地址大的一方,优先发送初始化的报文,里面将包含需要协商建立LDP
会话的参数。对端收到后,如果认可,可以将自己的初始化报文发送,并且同时发送一个Keeplive
报文,进行确认。如果双方都确认完成,则LDP
会话建立完成。
LDP协议也会周期性的发送keeplive来保活会话。 ---- 周期时间为15S,失效判断时间为3倍周期时间,默认45S。
二、MPLS VPN的配置使用
上下游关系 — 在标签交换中,我们将以数据流动的方向为准,区分上下游关系,数据发出设备处于上游,而接受设备处于下游。 — 控层流量流动的方向是和数据层流动方向相反,即从下游传递到上游。 — 上游需要获取下游的标签,而下游不需要获取上游的标签。
标签传递方式也分为两种
- 1,
DU
模式(下游自主模式);
DU
模式 — 在分配完标签之后,设备将自主的传递标签,因为设备本身无法分辨上下游关系,所以,这个标签将传递给自己的上游和下游。 - 2,
DoD
模式(下游按需模式)
DoD
模式 — 就是下游在给上游传递标签之前,需要先获取上游发送的数据包,之后,才可以传递标签信息。
标签的保存方式
- 保守模式 — 只保留下游传递的标签
- 自由模式 — 所有标签均保存
华为设备默认选择DU
+ 保守模式
在数据传输过程中,入站LSR和出站LSR都将查看两张表(FIB和LFIB),这样将导致传输效率下降。
入站LSR的优化 — 将LFIB表中的出站标签记录在FIB表中出站LSR的优化 — PHP
— 次末跳弹出机制 — 需要用到一个特殊标签值 – 3(隐式空标签),当一条条目中的出站标签为3时,则他将把标签弹出 — 出站LSR在分配标签时,分配3号标签,之后传递给次末跳。之后,数据转发时,标签将在次末跳上弹出,在出站LSR上只需要查看FIB进行路由转发即可。 — 华为设备默认开启PHP机制。
- 1,配置
LSR-ID
[r1]mpls lsr-id 1.1.1.1
- 2,激活
MPLS
和LDP
全局激活
[r1]mpls #激活MPLS
Info: Mpls starting, please wait... OK!
[r1-mpls]
[r1]mpls ldp #激活LDP
[r1-mpls-ldp]
- 接口激活 — 所有参与MPLS转发的接口都需要激活
[r1-GigabitEthernet0/0/0]mpls # 激活MPLS
[r1-GigabitEthernet0/0/0]mpls ldp # 激活LDP
[r1]display mpls ldp peer # 查看LDP对等体
[r1]display mpls ldp session # 查看LDP会话
[r1]display mpls lsp # 查看LFIB表
[r1]display fib verbose # 查看FIB表细节信息
[r4-mpls]lsp-trigger all # 给所有的路由条目都分配标签
# 默认情况下,华为设备只给主机路由分配标签,因为如果所有路由都分配标签,则都需要走标签交换,将导致转发效率降低。所以,仅针对部分路由分配。
利用MPLS解决BGP的路由黑洞问题
[r2]route recursive-lookup tunnel
MPLS VPN
VPN
— 虚拟专用网
站点 — 可以理解为同属于一个企业或机构,位于不同地理位置的IP网络。
MPLS VPN
并不是单一的一种VPN
技术,而是由多种技术结合的综合解决方案。
PE
— 服务提供商边界设备 — 一方面需要接入到VPN
骨干网络中,另一方面需要为不同的客户提供VPN
接入服务,和CE
(客户边界设备)设备相连
P
— 服务提供商设备 — 在MPLS VPN
骨干网中的设备,并不连接CE
,只是提供路由快速的转发。
C
— 客户设备 — 在MPLS VPN
中不扮演实质性的角色
-
控制层面 — 站点1的
CE
设备通过IGP
协议学习本站点内的路由信息,之后,传递给PE设备(可以使用静态或者动态来进行传递),之后,PE设备通过骨干网络传递给远端的PE
设备(使用BGP来传递),远端PE
在将路由信息传递给站点2的CE
设备(动态静态方法均可),之后,站点2的CE
设备再通过IGP
协议将路由信息发送到本站点内部。 -
数据层面 — 站点2的想访问站点1的网段,数据先到达站点2的
CE
设备,之后,传递给PE
设备。PE
设备再传递到远端的PE
设备,之后,再传递到站点1的CE
设备,再由CE
设备发送到目标网段。
控制层面
VRF
— 虚拟路由转发 — VPN Instance
(VPN
实例) — 相当于将一台真实的设备逻辑上划分成多台虚拟的路由器。每个VRF
各自拥有独立的路由表,FIB表,动态路由协议进程及接口等。
RD值 — 路由区分码 — 由64位二进制构成的 — AS:NN
— AS号:自定义值
IPV4
路由信息 — 32位二进制构成
加了RD
值之后 — 96位二进制构成 ---- VPNV4
路由信息
因为普通的BGPV4
版本只是针对IPV4
环境,传递的是IPV4
路由,这里需要传递VPNV4
路由,所以,需要应用到MP-BGP
协议(多协议BGP
协议),可以支持多种地址族。
RT
值 — 路由目标值 — 也被称为VPN target
— 32位二进制构成
- 出站
RT
:PE设备为不同的VRF配置不同出站RT值,发出时由社团属性携带。 - 入站
RT
:远端PE设备为不同VRF空间配置的不同的入站RT,根据社团属性中的值进行对比,将其放入到对应的VRF空间中。
数据层面
在数据层流量穿过骨干网络时,需要打上双重标签。一个靠近二层的标签,我们称为公网标签;一个靠近三层的标签,我们称为私网标签。公网标签由LDP
协议分配,其作用是保证数据流量可以顺利的通过MPLS
骨干网络,而私网标签,由MP-BGP
协议分配(在传递路由信息时分配,之后通过社团属性携带传递到对端),其作用是用来区分不同的VRF
空间。数据到达远端PE
后,先弹出公网标签,之后露出私网标签,可以根据私网标签和VRF
的映射关系,将数据发放到对应的VRF
空间中。
VRF
空间的创建
[r2]ip vpn-instance a # VRF空间在命名时大小写敏感
[r2-vpn-instance-a]
[r2-vpn-instance-a]route-distinguisher 100:1 # 配置RD值
[r2-vpn-instance-a-af-ipv4]
[r2-vpn-instance-a-af-ipv4]vpn-target 100:1 export-extcommunity # 配置出站RT
EVT Assignment result:
Info: VPN-Target assignment is successful.
[r2-vpn-instance-a-af-ipv4]vpn-target 100:2 import-extcommunity # 配置入站RT
IVT Assignment result:
Info: VPN-Target assignment is successful.
将接口划入到VRF空间中
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[r2]display ip routing-table vpn-instance a # 查看VRF空间的路由表
[r2]ping -vpn-instance a 192.168.2.1
通过静态路由在CE和PE上配置
[r2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1
MP-BGP
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable # 因为PE设备之间需要传递VPNV4路由,
# 所以,在普通的BGPV4邻居关系建立的基础上,需要在VPNV4地址族中激活邻居关系
[r2-bgp]ipv4-family vpn-instance a # 在VRF空间中发布路由信息
[r2-bgp-a]
[r2-bgp-a]import-route direct
[r2-bgp-a]import-route static
[r2]display bgp vpnv4 vpn-instance a routing-table
查看VRF空间的BGP表
CE和PE设备之间动态路由传递
[r2]rip 1 vpn-instance a # 在VRF空间中启动RIP进程
[r2-rip-1]
[r4]ospf 2 vpn-instance b router-id 4.4.4.4 # 在VRF空间中启动OSPF进程
[r4-ospf-2]
三、实际情况配置
网络的三层架构 — 园区网搭建的建议方案
园区 — 工厂,政府机关,商场,写字楼,校园,公园等,这些公共场所为了实现数据的互通而搭建的网络称为园区网。
接入层 — 有接入层交换机(一般就是二层交换机)组成,为终端设备提供接入网络条件。
WLAN
— 无线局域网 — 从广义上来讲,指以无线电波,激光,红外线等代替有线局域网中的部分或全部传输介质所以构成的网络。
“无线是有线的最后一公里”
AP
– 无线接入点
无线网络的缺陷
- 1、传输速率本身较低并且信号强弱波动较大
- 2、无线信号本身穿透性较差2.4G,5G
- 3、接入人数较多时,会出现明显的卡顿
CSMA/CD
— 载波侦听多路访问/冲突检测 — 将设备通过AP接入到无线网络中,也相当于接入到一个冲突域中,所以需要去进行冲突避免。但是,因为无线网络本身信号强度的动态范围非常大,往往接收到的信号强度远小于发出时的信号,导致冲突检测不易进行;并且再某些场景下,无线当中的冲突是检测不到的,所以,无法使用CD冲突检测技术,只能使用CA冲突避免技术。
CSMA/CA
— 载波侦听多路访问/冲突避免
- 1,即使侦听到没有信号,也不会立即发送信息,而是先给自己施加一个随机的计时器,尽可能的再发送之前避免冲突。
- 2,
CSMA/CA
技术,采用了停等式流控。即每发送一个数据包,都需要对方回复ACK
进行确认。
汇聚层 — 汇聚接入层收集到的流量,一般使用三层交换机来组成。
三层交换机和二层交换机最显著的区别是三层交换机即拥有像二层交换机一样的二层接口(不需要配置IP地址,也不需要MAC地址)同时也拥有像路由器一样的三层接口(需要配置IP地址,同时拥有MAC地址)。可以理解为是交换机和路由器的集成设备。既可以完成交换机的二层转发,也可以完成路由器的三层转发。其内部既有MAC地址表也存在IP路由表。
三层架构的核心 — 冗余(备份)
- 1,线路冗余
- 2,设备冗余
- 3,网关冗余
- 4,UPS冗余 —
UPS
— 不间断电源 —99.9999%
的可用性
核心层 — 作用是完成私网和公网之间数据的快速转发。
1、VLAN
LAN
— 局域网 — 地理覆盖范围较小的网络
VLAN
— 虚拟局域网 — 交换机和路由器协同工作,将原来的一个广播域逻辑上切分成为多个。
第一步:创建VLAN
<Huawei>display vlan
VID
— VLAN ID
— 用来区分和标识不同VLAN — IEEE
组织在802.1Q标准定义VLAN ---- 由12位二进制
构成 — 0 - 4095
— 其中0和4095保留 — 真正的取值范围 — 1 - 4094所有设备默认存在VLAN 1,并且,所有接口默认属于VLAN 1
[Huawei]vlan 2 # 创建VLAN
[Huawei]vlan batch 4 to 100 # 批量创建VLAN
第二步:将接口划入VLAN
VID
配置映射到交换机的接口,实现VLAN
的划分 — 物理VLAN/一层VLAN
VID
配置映射到数据帧中的MAC
地址,实现VLAN
的划分 — 二层VLAN
数据帧中的类型字段映射VID
进行VLAN
的划分 — 三层VLAN
通过IP
地址划分VLAN
,通过策略来划分VLAN
802.1Q
帧 — 在以太网Ⅱ型帧的基础上,在源MAC地址和类型字段之间,添加了4个字节的TAG(包含12位的VID)。也可以将这种打了标签的帧称为tagged
帧,正常没有打标签的帧可以称为untagged
帧。
因为我们的电脑是无法识别tagged
帧,只有交换机(支持802.1Q
的设备)才能识别。根据这个特性,我们把交换机和电脑之间的链路称为Access
链路,交换机侧的接口称为Access
接口,这些链路中只能通过untagged
帧,并且这些帧只能属于某一种特定VLAN;交换机和交换机之间的链路称为trunk链路(trunk干道),交换机侧的接口称为trunk接口,这些链路中可以通过tagged帧,并且,这些帧可以属于多个vlan。
第三步:配置trunk干道
第二步配置
[sw1-GigabitEthernet0/0/1]port link-type access
[sw1-GigabitEthernet0/0/1]port default vlan 2
[sw1]port-group group-member GigabitEthernet 0/0/3 GigabitEthernet 0/0/4
[sw1-port-group] # 创建接口组
第三步配置
[sw1-GigabitEthernet0/0/5]port link-type trunk
[sw1-GigabitEthernet0/0/5]port trunk allow-pass vlan 2 to 3
[sw2-GigabitEthernet0/0/3]port trunk allow-pass vlan all
hybrid
— 混杂接口
[sw1]display port vlan active
华为交换机设备所有接口默认情况下都是hybrid
类型,混杂接口。
PVID
— 接口所对应的VID
值,可以理解为接口所属VLAN
。华为设备,默认情况下,所有接口的PVID
值为1。
华为设备VLAN
技术中规定,所有通过接口进入到交换机的数据,都必须打上接口对应PVID
的标签。也就是说,交换机内部的所有数据都是带标签的数据。
VLAN List
— 接口允许通过的VLAN
列表 —ACCESS
接口因为只允许通过接口所属的VLAN
的流量,所以,其允许列表只能通过一个VLAN
且和PVID
相同。Trunk
干道允许通过多个VLAN
,默认放通VLAN 1
的流量,之后,可以通过port trunk allow-pass vlan XX
去放通其他VLAN
的流量。
2、U/T标记
--- U ---
Untagged
— 代表后面允许列表中的VLAN
数据在通过时不携带标签发出。
--- T ---
Tagged
— 代表后面允许列表中的VLAN
数据在通过时携带标签发出。
Trunk
干道在发出流量时,为了区分不同VLAN
的流量,需要带上标签,只有该TRUNK
接口PVID
对应的VLAN
的流量需要剥离标签。
3、ACCESS接口
- 1,当
ACCESS
接口从链路上接收到一个untagged
帧时。 ---- 交换机接收到这个帧后,需要先添加vid
为PVID
的tag
。然后,看允许列表,如果允许列表存在该VID
(ACCESS
接口必然存在),则转发。 - 2,当一个
tagged
帧从交换机的其他端口到达一个ACCESS
接口后。 — 则交换机会先检查该数据帧标签中VID
值在不在自己的允许列表中。如果在,则剥离标签后转发,如果不在,则丢弃。 - 3,如果
ACCESS
接口从链路上接受到一个tagged
帧。交换机不需要再打标签,而是查看他的VID
是否再自己的允许列表中,如果在,则可以转发;如果不在,则丢弃。
4、Trunk接口
- 1,当
trunk
接口从链路上收到一个untagged
帧 — 交换机会先在数据帧中打上和PVID
相同VID
的标签。之后查看允许列表,如果允许列表中存在该VID
,则转发;如果不存在,则直接丢弃。 - 2,当一个
tagged
帧从交换机的其他端口到达一个Trunk
接口后。如果这个tag
中的VID
不在trunk
接口的允许列表中,则直接丢弃;如果在,则进行转发。如果VID
和TRUNK
接口的PVID
相同,则先剥离标签,之后转发;如果不同,则带标签转发 - 3.如果
Trunk
接口从链路上接受到一个tagged
帧。交换机不需要再打标签,而是查看他的VID
是否再自己的允许列表中,如果在,则可以转发;如果不在,则丢弃。
ACCESS
接口的修改权限 — 可以修改PVID
,可以修改允许列表,但是只能放通一个VLAN
的流量,并且这个VLAN
必须和PVID
相同。出口的封装方式不能修改,这能是不带标签发出
TRUNK
接口的修改权限 — 可以修改PVID
,可以修改允许列表,可以放通多个VLAN
的流量。出口的封装方式不能修改,和PVID
相同的VLAN
的流量出去时需要剥离标签,其余的出去需要携带标签。
[sw1-GigabitEthernet0/0/5]port trunk pvid vlan 2
— 修改trunk接口的PVID
hybrid
— 混杂接口 — 接口的修改权限 — 可以修改PVID
,可以修改允许列表,可以放通多个VLAN
的流量。可以定义出口的封装方式。
[SW1-GigabitEthernet0/0/1]port link-type hybrid
[SW1-GigabitEthernet0/0/1]port hybrid pvid vlan 2
[SW1-GigabitEthernet0/0/1]port hybrid untagged vlan 2 3 4
四、VLAN之间通信
vlan
— 一个网段 一个广播域
路由器可以实现异种网络的链接
路由器一般情况下路由性能比三层交换机要强(cpu,内存)路由器能实现nat,一般交换机没有NAT功能
SVI switch vlan interface
技术从根本上改变了园区网的组网架构
层次化模块化
SVI技术强化了交换机作为园区网组网的核心地位,进而也出现了三层交换机的快速转发技术(三层交换机不光在园区内取代了路由器而且转发速度更快)。
一次路由多次交换
1、生成树技术
环路导致的现象: 形成广播风暴
- 交换机接口的带宽资源被迅速消耗殆尽
- 交换机的转发资源也被快速消耗殆尽
- 交换机的mac地址表出现漂移,mac地址反复修改接口
解决环路是交换机必不可少的技术
生成树之BPDU
bridge protocol data unit
BPDU
主要分为两大类
- 配置BPDU
- TCN BPDU
其中,配置BPDU
是STP
进行拓扑计算的关键;TCN BPDU
只在网络拓扑发生变更时才会被触发。
2、配置BPDU
配置BPDU的报文格式
五、完整通信分类
1、实现VLAN之间通信
传统交换二层组网中,默认所有网络都处于同一个广播域,这带了诸多问题。VLAN
(Virtual Local Area Network
,虚拟局域网)技术的提出,满足了二层组网隔离广播域需求,使得属于不同VLAN的网络无法互访,但不同VLAN之间又存在着相互访问的需求。
- 实际网络部署中一般会将不同IP地址段划分到不同的
VLAN
。 - 同
VLAN
且同网段的PC之间可直接进行通信,无需借助三层转发设备,该通信方式被称为二层通信。 VLAN
之间需要通过三层通信实现互访,三层通信需借助三层设备。
2、使用路由器物理接口
- 路由器三层接口作为网关,转发本网段前往其它网段的流量。
- 路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为 Access。
- 路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口。
- 路由器作为三层转发设备其接口数量较少,方案的可扩展性太差。
3、使用路由器子接口
- 子接口(
Sub-Interface
)是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识,子接口同物理接口一样可进行三层转发。 - 子接口不同于物理接口,可以终结携带
VLAN Tag
的数据帧。由于三层子接口不支持VLAN
报文,当它收到VLAN
报文时,会将VLAN
报文当成是非法报文而丢弃。因此,需要在子接口上将VLAN Tag
剥掉,也就是需要VLAN
终结(VLAN Termination
)。 - 基于一个物理接口创建多个子接口,将该物理接口对接到交换机的
Trunk
接口,即可实现使用一个物理接口为多个VLAN
提供三层转发服务。
交换机连接路由器的接口类型配置为Trunk
,根据报文的VLAN Tag
不同,路由器将收到的报文交由对应的子接口处理。
interface interface-type interface-number.sub-interface number
命令用来创建子接口。sub- interface number
代表物理接口内的逻辑接口通道。一般情况下,为了方便记忆,子接口ID与所要终结的VLAN ID相同。dot1q termination vid
命令用来配置子接口Dot1q
终结的单层VLAN ID
。缺省情况,子接口没有配置dot1q
终结的单层VLAN ID
。arp broadcast enable
命令用来使能终结子接口的ARP广播功能。缺省情况下,终结子接口没有使能ARP广播功能。终结子接口不能转发广播报文,在收到广播报文后它们直接把该报文丢弃。为了允许终结子接口能转发广播报文,可以通过在子接口上执行此命令。
4、使用三层交换机的VLANIF接口
在子接口技术的启发下我们研究出了三层交换机技术,该技术彻底摆脱了物理接口。
- 二层交换机(
Layer 2 Switch
)指的是只具备二层交换功能的交换机。 - 三层交换机(
Layer 3 Switch
)除了具备二层交换机的功能,还支持通过三层接口(如VLANIF
接口)实现路由转发功能。 VLANIF
接口是一种三层的逻辑接口,支持VLAN Tag
的剥离和添加,因此可以通过VLANIF
接口实现VLAN
之间的通信。VLANIF
接口编号与所对应的VLAN ID
相同,如VLAN 10
对应VLANIF 10
。
4.1 配置
[SW1]vlan batch 10 20
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1-GigabitEthernet0/0/2] port default vlan 20
[SW1]interface Vlanif 10
[SW1-Vlanif10]ip address 192.168.10.254 24
[SW1]interface Vlanif 20
[SW1-Vlanif20]ip address 192.168.20.254 24
4.2 VLANIF的转发流程
- 假设
PC
、三层交换机上都已存在相应的ARP
或MAC
表项。 PC1
与PC2
之间通信过程如下:PC1
通过本地IP地址、本地掩码、对端IP地址进行计算,发现目的设备PC2与自身不在同一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。PC1发送的数据帧:源MAC = MAC1
,目的MAC = MAC2
。
- 交换机收到
PC1
发送的去往PC2
的报文,经解封装发现目的MAC
为VLANIF10
接口的MAC
地址,所以将报文交给路由模块继续处理。 - 路由模块解析发现目的IP为
192.168.20.2
,非本地接口存在的IP
地址,因此需要对该报文三层转发。查找路由表后,匹配中VLANIF20产生的直连路由。
- 因为匹配的为直连路由,说明已经到达最后一跳,所以交换机在
ARP
表中查找192.168.20.2
,获取192.168.20.2
的MAC
地址,交由交换模块重新封装为数据帧。 - 交换模块查找MAC地址表以明确报文出接口、是否需要携带
VLAN Tag
。最终交换模块发送的数据帧:源MAC = MAC2
,目的MAC = MAC3
,VLAN Tag = None
。
5、三层交换机参与下的三层通信流程
5.1 网络拓扑
5.2 连接逻辑图
5.3 通信过程
6、二层与三层接口对比
二层接口(Layer2 Interface) | 三层接口(Layer3 Interface) |
---|---|
二层接口不能配置IP地址 | 三层接口可以配置IP地址 |
二层接口不具备MAC地址 | 三层接口具备MAC地址 |
当二层接口收到数据帧时,设备在其 MAC地址表中查询该帧的目的MAC地址,找到匹配的MAC地址表项后按照该表项的指示转发帧;如果没有找到匹配的MAC地址表项,则将帧进行泛洪。 | 三层接口收到数据帧后,如果数据帧的目的MAC地址与设备的本地MAC地址相同,则将数据帧解除封装,然后在路由表中查询数据包的目的IP地址,找到匹配的路由表项后按照该表项的指示转发包;如果没有找到匹配的表项,则将包丢弃。 |
典型的二层接口如二层交换机(只具备二层交换能力的交换机)的物理接口;大部分三层交换机(同时具备二层及三层交换能力的交换机)的物理接口缺省为二层接口。 | 典型的三层接口如路由器的三层接口。某些三层交换机的物理接口可以切换成三层模式。此外除了物理三层接口,还存在逻辑三层接口,例如交换机的 VLANIF,或者网络设备上的逻辑子接口,如 GE0/0/1.10。 |
二层接口并不隔离广播域,当二层接口收到广播帧时,会将数据帧进行泛洪。 | 三层接口隔离广播域,当三层接口收到广播帧时,缺省不会进行泛洪,而是直接终结。 |
六、STP
1、STP概述
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC
地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP
(Spanning Tree Protocol
)。
- 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如图,接入层交换机单链路上联,则存在单链路故障,也就是如果这根上联链路发生故障,交换机下联用户就断网了。另一个问题的单点故障,也就是交换机如果宕机,交换机下联用户也就断网了。
- 为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。
2、二层环路带来的问题
2.1 广播风暴问题
- 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
- 本例中,
SW3
收到了一个广播帧将其进行泛洪,SW1
和SW2
也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SW3
,这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。
2.2 MAC地址漂移问题
- 交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
- 本例中,
SW3
收到一个广播帧泛洪,SW1
从GE0/0/1
接口接收到广播帧后学习且泛洪,形成MAC
地址5489-98EE-788A
与GE0/0/1
的映射;SW2
收到广播帧后学习且泛洪,SW1
再次从GE0/0/2
收到源MAC
地址为5489-98EE-788A
的广播帧并进行学习,5489-98EE-788A
会不断地在GE0/0/1
与GE0/0/2
接口之间来回切换,这被称为MAC地址漂移现象。
2.3 多帧复制
这个好理解,同一个数据帧被重复收到多次,被称为多帧复制。
为了保证备份链路的存在,并且不会出现二层环路,所以,我们设计了STP协议。
- STP通过构造一棵树来消除交换网络中的环路。
- 运行STP算法,判断网络中存在环路的地方并阻断冗余链路,将环路网络修剪成无环路的树型网络,从而避免了数据帧在环路网络中的增生和无穷循环。
- 交换机上运行的生成树协议会持续监控网络的拓扑结构,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整。
(如图,交换机上运行STP协议,会通过报文监控网络的拓扑结构,正常情况下是将SW3上的一个接口进行阻塞(Block),从而打破环路,当监控到SW1与SW3之间出现链路故障,则恢复阻塞端口进入转发状态。) - 因此,生成树既能解决二层环路问题,也能为网络的冗余性提供一种方案。
生成树协议原理:在二层交换网络中,逻辑的阻塞部分的接口,实现从根交换机到所有节点唯一的路径且为最佳路径,生成一个没有环路的拓扑。当最佳路径出现故障时,个别被阻塞的接口将打 开,形成备份链路。