CCIE-CCNA-CCNP-笔记-全-

CCIE/CCNA/CCNP 笔记(全)

CCNA综合实战案例:1:课程内容介绍 🎯

在本节课中,我们将要学习CCNA综合实战案例的整体内容框架。这个实战案例是对CCNA课程中各个知识点的综合考察与应用。

整个实战案例被划分为七个主要部分,每一部分都聚焦于网络技术中的一个核心领域。

以下是这七个部分的详细介绍:

  • 第一部分:基本配置。这部分内容涉及网络设备的基础设置,为后续复杂技术的实施打下基础。
  • 第二部分:交换技术。这部分将涵盖工作中常用的交换技术,包括VLAN、Trunk、VTP、生成树协议以及以太通道。
  • 第三部分:路由技术。这部分主要考察OSPF动态路由协议。因为OSPF是目前工作和项目中使用最广泛的动态路由协议。
  • 第四部分:网络服务。这部分内容包括DHCP、HSRP、NAT以及ACL等关键网络服务。
  • 第五部分:网络安全。这部分将介绍网络安全技术,例如端口安全、BPDU防护,以及如何通过VTY线路限制对设备的远程访问。
  • 第六部分:广域网。这部分主要考察PPP协议的CHAP认证。
  • 第七部分:IPv6。这部分内容涉及下一代互联网协议IPv6的相关配置。

本节课中,我们一起学习了CCNA综合实战案例的七个核心组成部分。从基础配置到高级的交换、路由、安全及广域网技术,这个案例系统地串联了CCNA的关键知识点,为实际网络工程操作提供了完整的练习框架。

CCNA教程合集:P10:CCNA10 - 网络设备配置与地址管理

概述

在本节课中,我们将学习网络设备的基础配置方法,包括路由器的硬件组成、操作系统模式、接口IP地址的配置,以及IP地址的两种分配方式:手工配置与动态分配(DHCP)。我们将从实际操作出发,帮助初学者掌握网络工程师必备的入门技能。


IPv4与IPv6的演进思考

上一节我们介绍了IPv4与IPv6的基础知识。本节中,我们来探讨从IPv4迁移到IPv6可能带来的影响,特别是对运营商业务模式的潜在改变。

IPv4地址只有32位,地址空间不足,因此企业内网普遍使用私有地址,并通过运营商的专线或VPN服务实现互联。这构成了运营商的重要收入来源。

IPv6拥有充足的地址空间,理论上可以实现端到端的公有地址直接通信,这可能削弱运营商专线/VPN业务的价值。然而,运营商可以通过提高IPv6公有地址的售卖费用,或引导客户继续使用IPv6中的私有地址(唯一本地地址,FC00::/7)并配合NAT,来维持其商业模式。

此外,IPv6原生集成了IPsec安全框架,能为所有通信提供加密保护,这增加了网络监听难度。从“棱镜门”等事件可以看出,数据安全与监听能力是各国政府在技术迁移时可能考虑的因素。但技术总是在博弈中发展,我们应积极学习并为IPv6的部署做好准备。


网络设备的IP地址配置

网络设备(如路由器、交换机)和终端主机(如PC)必须配置IP地址才能进行网络通信。配置方式主要分为两种:手工配置和自动配置。

手工配置IP地址

手工配置适用于需要固定地址的设备,如服务器、网络设备的管理接口等。其优点是地址稳定,便于管理和远程访问。

以下是手工配置的具体方法:

1. 为Windows PC手工配置IP地址

  • 打开“控制面板” > “网络和共享中心” > “更改适配器设置”。
  • 右键点击使用的网卡,选择“属性”。
  • 双击“Internet 协议版本 4 (TCP/IPv4)”。
  • 选择“使用下面的IP地址”,依次填入IP地址、子网掩码、默认网关和DNS服务器地址。

2. 为Cisco路由器手工配置IP地址

路由器没有图形界面,需要通过命令行接口(CLI)进行配置。首先,我们需要了解路由器的硬件和操作系统。

路由器硬件组成

  • CPU:执行计算和处理指令。
  • RAM:随机存取存储器,存放运行时的数据,如运行配置文件(running-config)。断电后数据丢失。
  • NVRAM:非易失性RAM,存放启动配置文件(startup-config)。断电后数据不丢失。
  • Flash:闪存,存放操作系统镜像文件(IOS映像)。
  • ROM:只读存储器,存放开机自检程序和一个简化的操作系统(ROMMON模式),用于故障恢复。
  • 接口:用于连接网络。

Cisco IOS操作系统模式
用户通过控制台线或远程方式登录路由器后,会进入不同的操作模式,每种模式的权限不同。

  • 用户模式(>): 权限最低,主要用于查看基本信息。
    Router>
    
  • 特权模式(#): 拥有最高权限(15级),可以执行所有查看命令和进入配置模式。
    Router> enable
    Router#
    
  • 全局配置模式((config)#): 在此模式下进行的配置影响整个设备。
    Router# configure terminal
    Router(config)#
    
  • 接口配置模式((config-if)#): 在此模式下进行的配置只影响特定的接口。
    Router(config)# interface ethernet 0/0
    Router(config-if)#
    

配置路由器接口IP地址步骤
假设要为路由器R1的Ethernet0/0接口配置IP地址12.1.1.1/24

  1. 从用户模式进入特权模式。
    Router> enable
    Router#
    
  2. 进入全局配置模式。
    Router# configure terminal
    Router(config)#
    
  3. 进入指定接口的配置模式。
    Router(config)# interface ethernet 0/0
    Router(config-if)#
    
  4. 配置IP地址和子网掩码,并启用接口(默认关闭)。
    Router(config-if)# ip address 12.1.1.1 255.255.255.0
    Router(config-if)# no shutdown
    
  5. 返回特权模式,查看接口状态。
    Router(config-if)# end
    Router# show ip interface brief
    

自动配置IP地址 (DHCP)

对于数量庞大、位置可能变动的终端设备(如员工PC),建议使用动态主机配置协议(DHCP)自动分配IP地址,以实现即插即用,减少管理负担。

DHCP工作过程(四步交互):

  1. Discover: 客户端广播发送DHCP发现报文,寻找网络中的DHCP服务器。
  2. Offer: DHCP服务器收到Discover后,广播回应一个提供报文,包含可分配的IP地址等信息。
  3. Request: 客户端选择一个Offer,广播发送请求报文,正式向该服务器申请IP地址。
  4. Ack: 被选中的服务器广播发送确认报文,正式将IP地址租给客户端。

配置Cisco路由器作为DHCP服务器
以下示例将路由器R1配置为DHCP服务器,为12.1.1.0/24网段的主机分配地址。

  1. 在R1上启用DHCP服务。
    R1(config)# service dhcp
    
  2. 创建DHCP地址池并进入其配置模式。
    R1(config)# ip dhcp pool CCNP-POOL
    R1(dhcp-config)#
    
  3. 指定要分配的网段和默认网关。
    R1(dhcp-config)# network 12.1.1.0 255.255.255.0
    R1(dhcp-config)# default-router 12.1.1.1
    
  4. (可选)指定DNS服务器和域名。
    R1(dhcp-config)# dns-server 8.8.8.8
    R1(dhcp-config)# domain-name cisco.com
    
  5. 排除不想被自动分配的地址(如已静态使用的地址)。
    R1(config)# ip dhcp excluded-address 12.1.1.1 12.1.1.10
    

配置路由器接口作为DHCP客户端
将另一台路由器R2的接口配置为自动获取地址。

R2(config)# interface ethernet 0/0
R2(config-if)# ip address dhcp
R2(config-if)# no shutdown

总结

本节课我们一起学习了网络设备配置的核心基础。我们首先探讨了IPv6演进对行业的影响,然后重点讲解了IP地址的两种分配方式。通过对比手工配置与DHCP自动配置的适用场景,我们了解到网络设备和关键服务器适合使用固定的手工配置,而普通用户终端则适合使用DHCP实现灵活管理。我们详细演示了在Cisco路由器上如何进行接口IP地址的手工配置,以及如何将一台路由器设置为DHCP服务器和客户端。掌握这些基础操作是成为一名网络工程师的重要第一步。

CCNA教程合集:P11:路由器工作原理与路由技术概述 🚀

在本节课中,我们将深入探讨路由器的工作原理,这是理解后续所有路由技术(如静态路由、OSPF、BGP等)的基础。掌握本节课的核心概念,将帮助你轻松应对更复杂的网络协议学习。

路由器在网络中的定位 🏢

上一节我们介绍了网络设备的基本概念,本节中我们来看看路由器在企业网中的具体角色。

网络设备在企业网中主要分为两类:交换机和路由器。交换机主要用于连接计算机等终端设备,负责网络内的数据交换。而路由器,则主要扮演企业网络边界的角色,负责不同网络之间的数据转发。

随着网络安全需求的提升,防火墙逐渐取代了路由器作为企业主要边界设备的地位。路由器现在常被部署在DMZ(非军事化区域)中,专门用于处理VPN连接等特定任务。因此,在一个企业网中,路由器的数量通常远少于交换机。

路由与交换的核心区别 🔄

理解了路由器的定位后,我们来明确“路由”和“交换”这两个核心概念的区别。

  • 交换:指在同一个网络内,将一台主机产生的流量转发给该网络内的另一台设备。交换机负责此项工作。
  • 路由:指在不同网络之间进行数据转发。当数据需要从网络A发送到网络B时,必须经过路由器。路由器根据路径信息进行精确转发,不支持像交换机那样的数据泛洪

简单来说:

  • 路由(动词):网络间的数据转发行为。
  • 路由(名词):一台路由器去往一个目的网络的路径信息。

路由器的两个层面:控制与数据 🧠

所有智能网络设备都包含两个层面:控制层面和数据层面。理解这两个层面是掌握路由器工作原理的关键。

控制层面:学习网络路径信息

控制层面负责学习网络的连接信息,即“知道网络在哪里”。对于路由器而言,这围绕着路由表展开。路由表中的每一条记录称为一条路由条目,它指明了去往某个目的网络的路径。

路由器获取路由条目的方式主要有三种:

  1. 直连路由:路由器接口直接连接的网络。只要接口配置了IP地址且状态为up,就会自动生成直连路由。其管理距离为0,度量值为0,是最可靠的路由。
    • 公式表示直连路由 = 接口IP & 子网掩码 -> 出接口
  2. 静态路由:由网络管理员手动配置的路由。管理员通过命令行明确告诉路由器去往某个网络应该通过哪个接口、发给哪个下一跳地址。
    • 代码示例(思科)ip route [目标网络] [子网掩码] [下一跳IP/出接口]
  3. 动态路由协议:路由器之间运行特定协议(如RIP、OSPF、EIGRP、BGP),自动交换路由信息,从而学习到整个网络的路径。这种方式适用于中大型网络,能够根据网络拓扑变化自动调整路由。

以下是路由协议的主要分类:

  • 按范围分类
    • IGP(内部网关协议):在一个自治系统(AS)内部使用,如RIP、EIGRP、OSPF、IS-IS。
    • EGP(外部网关协议):在不同自治系统之间使用,目前主要是BGP
  • 按算法分类
    • 距离矢量协议:如RIP。路由器只将自己知道的路由告诉邻居,基于“传闻”学习,算法简单但可能产生环路。
    • 链路状态协议:如OSPF。路由器之间交换网络链路状态信息,每台路由器都能掌握完整的网络拓扑图,并独立计算最优路径,无环且高效,但消耗资源较多。

数据层面:利用路径信息转发数据

数据层面负责利用控制层面学到的路由信息,对实际接收到的数据包进行转发。

当路由器收到一个数据包时,其转发决策遵循以下流程:

  1. 检查数据包二层帧头的目的MAC地址,如果是发给自己的,则解封装查看三层IP包头。
  2. 提取目的IP地址。
  3. 查询路由表,使用最长匹配原则选择路由条目:
    • 用路由表中每条路由的子网掩码与数据包的目的IP地址进行“与”运算。
    • 将运算结果与该路由的网络前缀进行比较。
    • 所有能匹配的路由中,子网掩码最长的那一条将被选中用于转发。
  4. 根据选中的路由条目,将数据包从指定的出接口发出,或发送给指定的下一跳地址。

最长匹配原则示例
假设路由表中有以下三条路由:

  • A: 10.0.0.0/8 -> 出接口1
  • B: 10.1.0.0/16 -> 出接口2
  • C: 10.1.1.0/24 -> 出接口3

当要转发目的IP为10.1.1.100的数据包时:

  • 与路由A匹配(10.1.1.100 & 255.0.0.0 = 10.0.0.0
  • 与路由B匹配(10.1.1.100 & 255.255.0.0 = 10.1.0.0
  • 与路由C匹配(10.1.1.100 & 255.255.255.0 = 10.1.1.0

根据最长匹配原则(掩码/24最长),将使用路由C进行转发。

路由选路原则:管理距离与度量值 ⚖️

当路由器通过多种方式(如同时运行OSPF和配置了静态路由)学到去往同一目的网络的多条路径时,需要依据规则选择最优路径加入路由表。

选择顺序如下:

  1. 比较管理距离:值越小越优先。直连路由(0)> 静态路由(通常为1)> 动态路由(如EIGRP 90, OSPF 110, RIP 120)。
  2. 比较度量值:如果管理距离相同(例如都来自OSPF),则比较度量值,值越小路径越优。不同协议度量值计算方式不同(如RIP看跳数,OSPF看开销)。
  3. 负载均衡:如果管理距离和度量值都相同,则多条路由可以同时加入路由表,实现等价多路径负载均衡(ECMP)。

请注意:数据转发时使用的最长匹配原则,与路由选路时比较的管理距离/度量值是两个独立的过程。一条路由一旦进入路由表,转发时只认“最长匹配”。

总结 📚

本节课中我们一起学习了路由器的核心工作原理:

  1. 定位:路由器主要负责网络间的数据转发,是现代企业网边界及DMZ区域的关键设备。
  2. 核心概念:明确了“路由”作为动词(转发行为)和名词(路径信息)的双重含义,及其与“交换”的本质区别。
  3. 两个层面
    • 控制层面:通过直连、静态配置、动态协议(IGP/EGP, 距离矢量/链路状态)学习并维护路由表。
    • 数据层面:依据路由表,使用最长匹配原则查询并转发数据包。
  4. 选路原则:通过比较管理距离度量值决定最优路径,管理距离优先。

理解路由器如何学习路径(控制层面)以及如何利用路径转发数据(数据层面),是掌握所有高级路由技术的基石。下一节,我们将开始具体学习静态路由的配置与应用。

CCNA教程合集:12:静态路由与RIP协议详解

在本节课中,我们将学习网络工程中的两个核心概念:静态路由和动态路由选择协议RIP。我们将了解静态路由的配置方法、适用场景,以及RIP协议的工作原理和基本配置。通过结合实战案例,我们将掌握如何在一个典型的中小型企业网络中同时运用静态路由和RIP协议,实现内网到外网的互联互通。

静态路由配置详解

上一节我们介绍了路由器的控制层面和数据层面,以及直连路由与非直连路由的区别。本节中,我们来看看如何通过配置静态路由,让路由器学习到去往非直连网络的路径信息。

静态路由是指管理员通过手动输入命令,明确告知路由器去往某个特定网络的路径。其配置命令格式如下:

ip route [目的网络前缀] [目的网络掩码] {出站接口 | 下一跳地址}

在配置静态路由时,有两种写法:

  1. 关联出站接口:指定数据包从路由器的哪个物理接口发出。
  2. 关联下一跳地址:指定数据包应该发送给路径上的下一台路由器的接口地址。

选择哪种写法,取决于路由器去往目的网络的出站接口所连接的网络类型

以下是两种网络类型的核心区别:

  • 点到点网络:网络中只有两个节点。例如,串行链路。在这种网络中,数据包从接口发出后,唯一的接收者就是链路对端的设备。此时,配置静态路由关联出站接口是更高效的选择,因为路由器无需递归查询路由表来确定下一跳,转发延迟更低。
  • 多路访问网络:网络中可以有多个节点。例如,以太网。在这种网络中,数据包从接口发出后,可能有多台设备可以接收。此时,配置静态路由必须关联下一跳地址。如果只关联出站接口,路由器无法确定应该将数据包发送给网络中的哪一台设备,可能导致通信失败或效率低下。

静态路由配置实验

为了加深理解,我们通过一个实验来演示静态路由的配置和端到端通信的概念。

实验拓扑:三台路由器(R1, R2, R3)两两互联,每台路由器上配置一个环回接口模拟所连接的主机。

实验目标:通过配置静态路由,实现三台路由器环回接口之间的互通。

配置步骤

  1. 为每台路由器的物理接口和环回接口配置IP地址。
  2. 在每台路由器上查看直连路由,并使用 ping 命令测试直连链路的连通性。这是网络排错的第一步,必须保证直连通信正常
  3. 在R2上配置去往R1环回口网络的静态路由,下一跳指向R1的接口地址。
  4. 在R1上配置去往R2环回口网络的静态路由,下一跳指向R2的接口地址。此时,使用 ping [目标地址] source [源地址] 命令(即带源ping)测试,R2的环回口才能ping通R1的环回口。这说明了通信是双向的,必须保证去程和回程都有正确的路由。
  5. 依此类推,为R2访问R3、R3访问R2等路径配置相应的静态路由。

实验总结:通过这个实验,我们验证了静态路由的配置方法,并深刻理解了网络连通性需要双向路径都可达。静态路由在企业网中常用于边界路由器,配置一条默认路由指向运营商,以实现内网访问互联网。

然而,静态路由也有其局限性:配置工作量大、不能自动适应网络拓扑变化。因此,在复杂的企业内网中,通常会运行动态路由选择协议。

动态路由协议RIP入门

上一节我们手动配置了静态路由,本节中我们来看看如何通过动态路由协议RIP,让路由器自动学习并交换路由信息。

RIP是一种早期的内部网关协议,属于距离矢量协议。它通过周期性地广播或组播路由更新报文,与邻居路由器交换路由表信息。RIP使用跳数作为度量值来衡量路径好坏,最大跳数为15,超过15跳则认为网络不可达,因此RIP只适用于中小型网络。

RIP有两个版本:

  • RIPv1:有类路由协议,不支持VLSM,以广播形式发送更新。
  • RIPv2:无类路由协议,支持VLSM,以组播地址224.0.0.9发送更新,并支持路由认证。在实际应用中,我们通常使用RIPv2

RIPv2基本配置

在思科路由器上启用RIPv2的基本步骤如下:

Router(config)# router rip // 启用RIP进程
Router(config-router)# version 2 // 指定版本为2
Router(config-router)# no auto-summary // 关闭自动汇总(重要!)
Router(config-router)# network [主类网络号] // 宣告接口

配置说明

  • no auto-summary:关闭自动汇总后,RIP在发送更新时会携带精确的子网掩码,从而支持不连续子网和VLSM。
  • network:此命令的作用是“宣告”接口。被宣告的接口将启用RIP进程,可以收发RIP报文,并且该接口的直连网络路由会被放入RIP更新中发送给邻居。

以下是RIPv2与RIPv1的核心特性对比:

特性 RIPv1 RIPv2
路由协议类型 有类 无类
支持VLSM
更新发送方式 广播 组播 (224.0.0.9)
更新中携带掩码
支持认证

静态路由与RIP的协同:默认路由下发

在企业网络的实际部署中,通常采用“内网动,外网静”的策略:

  • 内网:运行RIP等动态路由协议,实现内网路由的自动学习和收敛。
  • 边界:在连接互联网的边界路由器上配置静态默认路由。

但内网的其他设备如何访问互联网呢?这就需要边界路由器将默认路由“下发”到内网的RIP域中。这可以通过重分发实现:

边界路由器(config)# router rip
边界路由器(config-router)# default-information originate // 将默认路由重分发进RIP

配置此命令后,边界路由器会通过RIP更新,将自身的默认路由通告给内网的所有RIP邻居。内网设备收到后,就会生成一条指向边界路由器的默认路由,从而实现整个内网对外网的访问。

课程总结

本节课中我们一起学习了网络路由的核心知识:

  1. 静态路由:我们掌握了其配置命令的两种写法(出接口/下一跳),并理解了根据网络类型(点到点/MA)选择配置方式的原则。通过实验,我们验证了静态路由的配置和双向通信的必要性。
  2. 动态路由协议RIP:我们了解了RIP作为距离矢量协议的工作原理,学习了RIPv2的优越性和基本配置命令(启用进程、设定版本、关闭自动汇总、宣告网络)。
  3. 综合应用:我们探讨了在企业网中,如何在边界使用静态默认路由访问外网,并通过RIP的default-information originate命令,将默认路由下发到内网,实现全网互联互通的典型方案。

这些内容是构建中小型企业网络的基础,理解并掌握它们对于网络工程师至关重要。

CCNA教程合集:P13:EIGRP协议详解 🚀

概述

在本节课中,我们将要学习思科私有路由协议EIGRP的核心原理、特点、算法以及基础配置。EIGRP是一种高效、收敛快速且功能强大的高级距离矢量协议,特别适用于大型网络环境。


路由协议的选择与演进

上一节我们介绍了静态路由和RIP协议。RIP作为一种基础的路由选择协议,只适合在中到小型网络中部署,在大型网络中则存在诸多限制。

RIP协议的主要问题包括:

  • 收敛速度慢:在大型网络中,收敛缓慢会带来严重问题。
  • 度量值不精确:RIP通过跳数(Hop Count) 衡量路径好坏。经过的路由器数量越多,跳数越高,路径越差。这种方式选出的“最优路径”未必是管理员认可的实际最优路径。
  • 网络规模限制:RIP路由的最大度量值为15跳。度量值为16跳的路由被视为不可达。在超过15台路由器的大型网络中,路由信息可能无法传递到所有路由器,导致部分网络不可达。

因此,在中到大型网络(如运营商内网、金融数据中心、跨国公司企业网)中,我们需要更强大的路由协议。常见的公有协议有OSPFIS-IS,它们被设计用于大型网络且不存在兼容性问题。

然而,在金融等特定网络环境中,常使用第三款协议——EIGRP。EIGRP曾长期是思科私有协议,这意味着只有思科设备能够运行它。由于思科设备价格昂贵,通常只有在财力雄厚的金融单位(如银行、券商)才能实现端到端的纯思科网络部署,从而运行EIGRP。

一个重要的转折点发生在2013年,思科将EIGRP协议开源,使其转变为公有协议。虽然目前并非所有厂商(如华为)都支持,但其优秀的特性预示着未来可能有更广泛的应用前景,尤其是在IPv6环境中。


EIGRP协议基础

协议名称与分类

EIGRP全称为增强型内部网关路由选择协议(Enhanced Interior Gateway Routing Protocol)。它是早期思科私有协议IGRP的升级版。

EIGRP的分类如下:

  • 范围:内部网关协议(IGP)。
  • 算法:使用DUAL(扩散更新算法,Diffusing Update Algorithm)。该算法兼具距离矢量和链路状态协议的优点。
  • 常见分类高级距离矢量协议。它基于邻居通告获取路由信息(距离矢量特征),但通过DUAL算法实现了快速收敛和无环路由(链路状态协议的优势)。
  • 地址类别无类协议。支持VLSM和不连续子网。

核心特性与优势

EIGRP集众多优点于一身:

  • 快速收敛:依赖DUAL算法,能在最优路径失效时迅速启用备份路径或通过扩散计算找到新路径。
  • 保证无环:DUAL算法从数学上保证了路由无环。
  • 资源消耗低:相比OSPF等链路状态协议,对路由器CPU和内存的消耗更低。
  • 配置简单:配置复杂度与RIP相当,易于掌握。
  • 增量更新:仅在网络拓扑发生变化时发送更新,而非周期性广播,极大节省了带宽和资源。
  • 支持非等价负载均衡:这是EIGRP的独特优势。它不仅能进行等价负载均衡(ECMP),还能在路径度量值不同的情况下,按比例进行非等价负载均衡(Unequal-Cost Load Balancing)
  • 支持多种被路由协议:通过协议依赖模块(PDM),EIGRP历史上支持IPX、AppleTalk等协议。如今主要支持IPv4和IPv6(需使用独立进程)。

报文类型

EIGRP路由器之间通过5种类型的报文进行通信:

  1. Hello:用于发现和维持邻居关系。默认在高速接口(带宽≥1.544 Mbps)每5秒发送一次,在低速接口每60秒发送一次。
  2. Update(更新):包含路由信息。在建立邻居关系初期或网络拓扑变化时发送。
  3. Query(查询):当路由器丢失某条路由且没有可用备份路径时,向所有邻居发送查询,询问通往目的网络的路由。
  4. Reply(应答):邻居路由器对查询报文的响应。
  5. ACK(确认):用于确认收到的UpdateQueryReply等可靠报文,确保传输可靠性。

这些报文封装在IP包中,协议号为88。组播地址为224.0.0.10


DUAL算法与关键概念

EIGRP的强大核心在于DUAL算法。要理解它,需要先掌握几个关键概念。

三张表

EIGRP维护三张表来运作:

  1. 邻居表(Neighbor Table):记录所有建立EIGRP邻居关系的路由器信息,包括邻居IP、本地出口接口、保持时间等。这是所有通信的基础。
  2. 拓扑表(Topology Table):存储从所有邻居学到的、前往某个目的网络的所有可能路由及其详细信息(包括度量值参数)。
  3. 路由表(Routing Table):从拓扑表中选出前往每个目的网络的最佳路径(后继路径)放入此表,用于实际数据转发。

度量值计算

EIGRP使用复合度量值计算路径开销,默认考虑带宽和延迟两个参数,公式为:
度量值 = [K1 * 带宽 + (K2 * 带宽) / (256 - 负载) + K3 * 延迟] * [K5 / (可靠性 + K4)]
默认K1=1, K3=1, K2/K4/K5=0,因此公式简化为:
度量值 = 带宽 + 延迟
其中:

  • 带宽:取路径中最小带宽的倒数,再乘以一个常数(10^7)。
  • 延迟:取路径中所有链路延迟的总和
    其他参数(负载、可靠性、MTU)默认不参与计算,且邻居间K值必须一致才能建立邻接关系。

后继与可行后继

这是DUAL算法的核心:

  • 可行距离(FD, Feasible Distance):本路由器到达目的网络的最佳度量值。
  • 通告距离(AD, Advertised Distance):邻居路由器通告的、它自己到达该目的网络的FD。
  • 后继(Successor):当前使用的、最优路径的下一跳路由器(或路径本身)。
  • 可行后继(Feasible Successor):备份路径的下一跳路由器。要成为可行后继,必须满足可行性条件(FC, Feasible Condition)备用路径的AD < 主用路径的FD

可行性条件的意义:如果邻居通告的、它去往目的地的度量值(AD)比我自己当前的最佳度量值(FD)还要小,说明这个邻居比我离目的地更近。那么,即使我将数据转发给它,数据包也是朝着离目的地更近的方向前进,从而绝对避免了路由环路

收敛过程

DUAL算法通过两种计算实现快速收敛:

  1. 本地计算:当最优路径失效,但存在满足FC条件的可行后继时,路由器会立即将可行后继路径提升为后继,并放入路由表。此过程瞬间完成。
  2. 扩散计算:当最优路径失效,且没有可行后继时,路由器会向所有邻居发送Query报文。邻居们查询自己的拓扑表后,用Reply报文回应。路由器根据回应重新计算最优路径。此过程涉及多台路由器协作,但依然非常高效。

EIGRP基础配置

本节我们来看看如何在思科路由器上配置EIGRP。其配置思路与RIP类似,但更加灵活。

以下是配置EIGRP的基本步骤:

  1. 启用EIGRP进程:在全局配置模式下,使用router eigrp [AS号]命令。AS号具有全局意义,需要互通的路由器必须配置相同的AS号。通常使用其管理距离90作为AS号。
  2. 关闭自动汇总(在较老IOS版本中需要):在EIGRP进程下,使用no auto-summary命令。新版本IOS(如15.x)默认已关闭。
  3. 宣告网络:在EIGRP进程下,使用network命令宣告直连网络。支持两种方式:
    • 主类宣告network [网络地址],如network 10.0.0.0。这会宣告所有属于该主类网络的接口。
    • 精确宣告network [接口IP地址] [通配符掩码],如network 10.1.1.1 0.0.0.0。通配符掩码中的0表示精确匹配,1表示忽略。这种方式更精确,推荐使用。
  4. (可选)配置路由器ID:使用eigrp router-id [ID]命令,通常配置为环回口地址。

配置示例:

Router(config)# router eigrp 90
Router(config-router)# eigrp router-id 1.1.1.1
Router(config-router)# no auto-summary
Router(config-router)# network 10.1.1.1 0.0.0.0
Router(config-router)# network 192.168.1.0 0.0.0.255

常用验证命令:

  • show ip eigrp neighbors:查看EIGRP邻居表。
  • show ip route eigrp:查看通过EIGRP学到的路由。
  • show ip eigrp topology:查看EIGRP拓扑表,可以看到后继和可行后继信息。

总结

本节课我们一起学习了EIGRP协议。我们从RIP协议的局限性引入,探讨了在中大型网络中为何需要EIGRP这类更强大的协议。我们详细剖析了EIGRP作为高级距离矢量协议的核心特性,特别是其快速收敛、无环路由和低资源消耗的优点。我们深入理解了DUAL算法的关键概念,如可行距离(FD)、通告距离(AD)、后继与可行后继,以及实现快速收敛的本地计算和扩散计算机制。最后,我们掌握了EIGRP的基础配置和验证方法。EIGRP是一个设计精良、效率极高的路由协议,虽然其历史发展受限于私有属性,但其技术优势使其在未来网络演进中依然具有重要价值。

CCNA教程合集:14:OSPF协议详解 🚀

概述

在本节课中,我们将要学习OSPF协议。OSPF是一款非常重要的链路状态路由协议,广泛应用于中大型网络和企业网中。我们将从OSPF的基本概念、工作原理、协议特点以及基础配置等方面进行详细讲解,帮助初学者理解其核心机制。


OSPF协议概述与定位 🌐

上一节我们介绍了RIP和EIGRP协议,本节中我们来看看OSPF。

OSPF的定位是用于中大型网络,尤其是在混合厂商设备并存的园区网环境中。早期,EIGRP是私有协议,很多厂商的设备不支持,因此在混合环境中,通常选择OSPF或IS-IS协议。

OSPF曾经在运营商内网(如电信、联通、移动)中使用最多。但由于网络规模过大,OSPF的某些优化机制不足,导致在国内运营商网络中曾出现过问题。因此,现阶段运营商内网中,OSPF和IS-IS协议并存。

当前,OSPF主要应用于大型企业网、跨国公司网络等复杂网络架构中。由于OSPF特性丰富,非常适合这种复杂环境的部署。

OSPF在互联网中占比非常大,因此作为网络工程师,面对OSPF协议的概率最高。正因如此,厂商、代理商、甲方和乙方都非常重视该协议。在面试网络工程师时,OSPF常被用作筛选人才的重要标准。


OSPF基本特性与分类 📊

OSPF全称为开放式最短路径优先协议。它与EIGRP有许多相似之处,但最本质的区别在于,OSPF自始至终都是公有协议,而EIGRP在2013年才被公有化。

协议分类

以下是OSPF协议的主要分类:

  • 按照范围分类:OSPF属于IGP协议,只能在一个自治系统内使用。但其支持的网络规模远大于RIP,与EIGRP相当。
  • 按照核心算法分类:OSPF是典型的链路状态协议。早期只使用SPF算法,现在升级为ISPF和PRC算法。ISPF用于计算拓扑连接信息,PRC用于计算叶节点路由。
  • 按照有类/无类分类:链路状态协议都是无类协议。OSPF在传递信息时,不直接发送路由条目,而是发送链路状态通告,因此无需担心自动汇总问题。

报文封装与可靠性

OSPF定义了5种报文。报文封装在IP报头内,协议号为89。它使用两个组播地址:224.0.0.5和224.0.0.6。

虽然OSPF使用无连接的封装协议,但其内部设置了报文可靠传输机制,确保控制层面信息的可靠交互。


链路状态协议工作原理 🔄

链路状态协议与距离矢量协议有本质区别。

在距离矢量协议(如RIP)中,路由器通过邻居获知路由,但并不清楚整个网络的拓扑结构。它只知道去往目的网络的第一跳该怎么走。

而在链路状态协议(如OSPF)中,路由器不会直接发送路由条目。它会向邻居发送链路状态通告。LSA中包含路由器自身的标识符以及其接口所连接的链路信息。

邻居收到LSA后,会将其存入本地的链路状态数据库。通过收集网络中所有路由器产生的LSA,每台路由器都能构建出一张完全相同的网络拓扑“地图”。

路由器基于这张“地图”,运行SPF算法,以自己为树根,计算出到达所有非直连网络的最优路径,并将这些路径转换为路由条目加入路由表,用于数据转发。

简单来说,链路状态协议是先了解全网拓扑,再自行计算路由;而距离矢量协议是基于邻居的“传闻”来获知路由。


OSPF工作三部曲与多区域设计 🗺️

OSPF的工作流程可以概括为以下三步:

  1. 建立邻居关系:通过周期性发送Hello报文发现并维护邻居。
  2. 同步链路状态数据库:邻居之间交互LSA,并通过泛洪机制使同一区域内的所有路由器拥有完全相同的LSDB。
  3. 计算路由:每台路由器基于LSDB,运行SPF算法,计算出最优路径并加入路由表。

单区域的问题与多区域设计

如果将大量路由器放在同一个OSPF区域,会带来严重问题:无法进行路由汇总,导致路由表庞大,消耗大量内存和CPU资源;任何链路抖动都会触发全网路由器的SPF重计算。

为了解决这些问题,OSPF采用了层次化的多区域设计

  • 骨干区域:区域0,有且只有一个,作为传输区。
  • 非骨干区域:其他所有区域,必须与骨干区域直接相连。

多区域设计的好处包括:

  • 减少资源消耗:将拓扑变化的影响限制在单个区域内。
  • 便于汇总:可以在区域边界路由器上对路由进行汇总,大幅减少路由表大小。
  • 增强网络稳定性:区域间路由传递由ABR完成,非骨干区域内的路由器无需了解其他区域的详细拓扑。

区域边界路由器是指同时连接骨干区域和非骨干区域的路由器。它负责将本区域的路由以汇总后的形式通告给其他区域。


OSPF邻居建立与配置 ⚙️

OSPF建立邻居的条件非常严格,需要在Hello报文中匹配多个字段,例如Hello时间、死亡时间、区域ID、认证密钥、特殊区域标志等。

邻居状态与类型

OSPF邻居关系状态机非常复杂,包含多达8种状态。通常我们用两个名词来简化描述:

  • 邻居:仅交互过Hello报文。
  • 邻接:交互了所有5种OSPF报文,并且LSDB已完全同步。只有建立邻接关系的路由器才会同步LSA。

在MA网络(如以太网)中,还需要选举DR和BDR来优化LSA的泛洪过程。

基础配置命令

以下是OSPF的基础配置步骤:

  1. 启用OSPF进程并配置路由器ID。
    Router(config)# router ospf 110
    Router(config-router)# router-id 1.1.1.1
    
    注意:进程号仅本地有效,邻居间无需一致。修改路由器ID后需要重置OSPF进程才能生效。

  1. 宣告接口进入OSPF区域。
    • 方式一:在OSPF进程下宣告。
      Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
      
    • 方式二:在接口下宣告(优先级更高)。
      Router(config-if)# ip ospf 110 area 0
      

关于环回接口的注意点:默认情况下,OSPF通告环回接口路由时,会使用32位主机路由掩码。如果希望以其真实掩码通告,需要在环回接口下修改其OSPF网络类型。

Router(config-if)# ip ospf network point-to-point

总结

本节课中我们一起学习了OSPF协议的核心内容。我们了解了OSPF作为链路状态协议的工作原理,它与距离矢量协议的根本区别在于通过同步LSDB来掌握全网拓扑,并自行计算路由。我们还探讨了OSPF多区域设计的必要性和优势,以及建立邻居的严格条件和基础配置方法。

OSPF是一个内容非常丰富的协议,在NP课程中会深入讲解LSA类型、SPF算法细节、网络类型、路由汇总、特殊区域等高级主题。掌握OSPF是成为一名合格网络工程师的关键一步。

CCNA教程合集:01:网络工程师行业与认证体系概述

在本节课中,我们将要学习网络工程师行业的概况、厂商认证体系的价值,以及学习本课程的目标和路径。我们将从宏观角度了解这个行业,帮助你建立清晰的学习规划。

课程定位与学习方法

上一节我们介绍了课程的基本信息,本节中我们来看看学习网络技术的正确方法。我坚信在学习一项技术的细节之前,必须先了解这项技术能解决什么问题。技术永远是用来解决问题的。

以下是学习网络技术的四部曲,希望大家在研究任何技术时都能基于此进行思考:

  1. 了解问题:明确当前出现了什么问题,问题的根源是什么,以及它会带来什么困扰。
  2. 分析解决方案:研究什么样的技术能解决这些问题,其解决的出发点是什么。
  3. 研究技术细节:深入探究技术到底是如何工作的,如何具体解决问题。
  4. 发散性思考:评估该技术是否为最优解决方案。如果不是,是否存在弥补缺陷的方法或更优的替代方案。

遵循这四部曲,能帮助你在学习技术时考虑到其根源和本质,从而在面试、就业、项目实践或运维中真正做到学以致用。

行业认证:国家认证与厂商认证

上一节我们探讨了学习方法,本节中我们来了解进入网络行业的关键凭证——认证。本课程分为“学”和“考”两部分。“学”是掌握网络技术原理与操作,“考”则是获取业界认可的资格证书。

在IT业界,证书主要分为两类。

第一类是国家认证,例如计算机等级考试、软考等。这类认证由教育部、人社局等国家部门颁发,通常采用笔试形式。它们对于进入国企、考取公务员或事业单位编制有较大帮助,但内容可能偏理论化,与实践结合不够紧密。

第二类是厂商认证,这也是本课程的重点。这类认证由设备制造商(厂商)颁发,例如思科(Cisco)和华为(Huawei)。厂商认证直接对应其生产的网络设备(如路由器、交换机)的实操技能,实用性更强,是大多数外企、私企招聘网络工程师时更看重的资质。

主流厂商认证体系详解

上一节我们区分了两类认证,本节中我们重点剖析主流的厂商认证体系。思科和华为作为全球网络设备市场的领导者,都建立了完善的认证金字塔。

思科认证体系分为五个级别,我们主要关注其中三个核心等级:

  • CCNA:思科认证网络助理工程师。公式表示为:CCNA = Cisco Certified Network Associate
  • CCNP:思科认证资深网络工程师。公式表示为:CCNP = Cisco Certified Network Professional
  • CCIE:思科认证互联网专家。公式表示为:CCIE = Cisco Certified Internetwork Expert

华为认证体系与思科类似,其核心三级为:

  • HCIA:华为认证ICT工程师(原HCNA)。公式表示为:HCIA = Huawei Certified ICT Associate
  • HCIP:华为认证ICT资深工程师(原HCNP)。公式表示为:HCIP = Huawei Certified ICT Professional
  • HCIE:华为认证ICT专家。公式表示为:HCIE = Huawei Certified ICT Expert

对于初学者,CCNA/HCIA是入门的起点;CCNP/HCIP是大多数企业招聘的常见要求;而CCIE/HCIE则代表了顶尖的技术专家水平,能帮助你进入更好的平台,获得更高的薪酬。

课程核心内容与技能构成

上一节我们了解了认证体系,本节中我们来看看本课程具体教授哪些内容。网络工程师的核心技能可以概括为以下四个部分:

  1. 网络工作原理:理解互联网(Internet)如何运作,核心是掌握 TCP/IP协议栈。这就像网络的通用语言,确保所有设备能够按照统一规则通信。
  2. 网络连接架构:学习如何为企业设计和搭建网络。这涉及到设备选型(企业级路由器、交换机)、连接方式以及如何构建一个成本节约、可扩展且高性能的网络拓扑。
  3. 网络设备工作原理:深入理解核心设备——交换机路由器——是如何工作的。它们是企业网络的基石,其功能与配置是面试和工作的重点。
  4. 实战操作配置:学习如何通过命令行界面(CLI)登录并配置网络设备。思科设备的操作系统称为 IOS,华为设备的称为 VRP。你需要掌握通过命令启用、调试和验证网络功能。

提示:路由交换方向是网络所有其他方向(如安全、无线、数据中心)的基础。学好路由交换,才能为学习更高级的增值技术打下坚实基础。

职业发展路径与行业生态

上一节我们明确了要学习的技能,本节中我们来看看学成之后的职业发展前景。网络技术适用于所有行业,就业方向主要分为甲方和乙方。

乙方(服务提供方)

  • 厂商:如思科、华为,主要从事设备研发,也招聘销售、售前/售后工程师。门槛和薪资最高。
  • 代理商:代理厂商设备进行销售和实施。分为总代、金牌、银牌等级别,是招聘售前/售后工程师的主力军,薪资范围较广。
  • 集成商:规模较小的公司,可能销售多家厂商设备。适合入门积累经验。

甲方(服务采购方)
指各行各业拥有自己IT部门的公司,如银行、政府、互联网企业等。甲方的IT部门负责网络规划、选型和运维管理。薪资因行业和公司差异很大,发展空间广阔。

建议职业生涯从乙方开始,积累项目经验和技术能力,之后可向甲方或更高层级的乙方发展。IT行业包容性强,更看重技能和证书,为个人改变职业命运提供了无限可能。

课程安排与认证验证

上一节我们展望了职业前景,本节中我们来了解课程的具体安排并掌握一项实用技能。本课程系列通常在周一、三、五晚上进行。课程注重“学以致用”,我会根据多年的教学经验,按照科学的体系讲解知识,并布置作业帮助大家巩固。

最后,分享一个实用技能:如何验证一个人是否真的拥有CCIE证书?

  1. 访问思科官网的认证验证页面。
  2. 输入被验证人的 姓氏(Last Name)名字(First Name)CCIE编号
  3. 提交查询,系统会显示该编号与姓名是否匹配。

这能帮助你在求职或招聘时辨别真伪。

总结

本节课中我们一起学习了网络工程师行业的基本情况、厂商认证体系的价值、CCNA课程的核心内容构成以及未来的职业发展路径。我们明确了学习技术的四部曲方法,并认识到“学”与“考”并重的重要性。网络是一个充满机遇的行业,通过系统学习和获取权威认证,你将具备改变职业轨迹的能力。从下一节课开始,我们将正式进入网络技术的具体学习。

CCNA教程合集:02:网络基础入门与设备原理 🚀

概述

在本节课中,我们将从零开始学习网络的基础知识。我们将了解什么是网络、网络如何组建、网络中的通信规则以及核心网络设备的定位和工作原理。课程内容力求简单直白,帮助初学者建立清晰的概念框架。


什么是网络?🌐

上一节我们介绍了行业生态和学习内容,本节中我们来看看网络的基础定义。

网络是一组设备组成的混合产物,主要作为数据流量的载体。数据流量通过网络从一个主机传输到另一个主机,最终实现资源共享。网络本质上是一个媒介,由各种设备连接而成,目的是方便数据在连接入网的设备之间交互。

组成网络的所有设备大体分为三大类:

  • 终端系统:用户直接使用的设备,如个人电脑、手机。
  • 中间系统:各式各样的网络设备。
  • 介质:连接设备的线缆或无线信道。

网络为应用程序提供服务,而应用程序安装在终端系统上,因此网络最终是为用户服务的。


网络的三要素 🔧

了解了网络的定义后,我们来详细拆解其核心组成部分。

以下是组成网络的三个基本要素:

  1. 终端系统

    • 定义:位于网络末端的设备,是网络的边界,由用户直接操作。
    • 作用:产生和消费数据,通过运行应用程序(如QQ、浏览器)实现具体的网络功能。
    • 示例:个人电脑(PC)、笔记本、智能手机。
  2. 介质

    • 定义:数据传输的物理通道。
    • 作用:承载数据流量,是设备间通信的必经之路。
    • 类型:分为有线(如双绞线、光纤)和无线(如Wi-Fi)。现代网络通常采用“有线核心 + 无线接入”的混合架构,兼顾稳定性与灵活性。
  3. 中间系统(网络设备)

    • 定义:部署在网络中间,用户通常接触不到的设备。
    • 作用:连接终端和转发数据,是网络扩展的关键。
    • 重要性:早期网络(如工作组)可以没有它们,但有了它们,网络的规模、覆盖范围和效率才能大幅提升。
    • 核心设备:在本课程中,我们主要研究集线器 (Hub)交换机 (Switch)路由器 (Router)

如何组建一个简单网络?🏗️

认识了网络组件后,本节我们来看看如何实际搭建一个网络。

最简单的网络组建方式是使用接入设备(集线器或交换机),通过线缆将办公室内的计算机连接起来。给计算机配置合理的设置(如IP地址)后,它们就能彼此通信。

当网络规模扩大(如一个房间有几十台电脑)时,可以用多台接入设备级联。但一个网络内的主机数量不宜过多(建议不超过200-300台),否则效率会下降。

对于更大规模的场景(如拥有多个部门、上千台电脑的企业),需要引入路由器。路由器可以将多个独立的网络连接起来,形成互联网,从而实现网络间的通信,同时保证每个内部网络的高效运行。

关键概念英特网 (Internet) 是全球最大的互联网,而非单一的“网络”。它由无数个通过路由器互联的小网络组成。


网络拓扑图 📐

设计网络时,我们需要一种方式来描述设备间的连接关系,这就是网络拓扑图。

网络拓扑图分为两类:

  1. 物理拓扑

    • 定义:严格按照设备间物理连接的真实情况绘制的图纸。
    • 特点:包含所有设备(A类:一/二层设备,如集线器、交换机;B类:三层及以上设备,如路由器)和连线,非常详细,但也可能显得杂乱。
  2. 逻辑拓扑

    • 定义:忽略部分物理细节(尤其是A类设备),着重描绘设备间逻辑通信关系的图纸。
    • 特点:通常只画出B类设备(如路由器),并用线表示它们之间“可以通信”。图纸更简洁,便于分析流量路径和排查故障。

此外,还有拓扑分类的概念,它根据网络的工作原理进行归类,例如总线型(使用集线器)、星型(使用交换机)、环型拓扑。


网络通信规则与协议 📜

设备连接好后,必须遵循统一的规则才能通信,这些规则称为协议。

应用程序产生的数据(称为载荷)不能直接发送。为了确保数据能正确送达目标主机并被正确的应用程序处理,必须在载荷前添加辅助信息,即报头

至少需要两类报头:

  1. 地址信息报头:包含源地址目的地址,告诉网络设备“数据从哪来,到哪去”。网络设备(如路由器)主要查看这部分。
    • 公式:数据包 = 地址报头 + 载荷
  2. 端口信息报头:包含源端口目的端口,告诉目的主机“数据来自哪个应用,应交由哪个应用处理”。
    • 公式:数据包 = 地址报头 + 端口报头 + 载荷

协议是网络中的“交通法规”。以太网协议是当前最主流的局域网协议,它规定了在类似双绞线这样的介质上如何进行通信。


总线型网络与集线器原理 ⚙️

现在,让我们深入一种经典的网络类型——总线型网络,其核心设备是集线器。

集线器是一个物理层(一层) 设备,智能性很低。它采用泛洪方式工作:当从一个接口收到数据后,会复制多份,从除接收接口外的所有其他接口发送出去。

这种机制导致总线型网络存在严重问题:

  • 效率低下:无关主机也会收到数据,浪费带宽和CPU资源。
  • 冲突频发:集线器接口是半双工模式,同一时间只能单向传输。若多台主机同时发送,数据会碰撞产生冲突碎片,导致通信失败。

为了缓解冲突,以太网为总线型网络引入了CSMA/CD(载波侦听多路访问/冲突检测) 机制:

  1. 先听后发:发送前先侦听链路是否空闲。
  2. 冲突检测:发送中持续检测是否发生冲突。
  3. 冲突退避:一旦检测到冲突,立即停止发送,并等待一段随机时间后重试。

尽管有CSMA/CD,但随着网络内主机增多,冲突概率仍会急剧上升,导致网络性能恶化。这是集线器和总线型网络被淘汰的根本原因。

带宽小知识:带宽是描述网络速度的关键指标,单位是比特/秒 (bps)。常见的100兆宽带指的是100Mbps。而下载软件显示的11MB/s字节/秒1字节=8比特,且单位换算涉及10001024的差异,因此100Mbps的理论下载速度约为12.5MB/s左右。


总结

本节课中我们一起学习了网络的基础核心知识。

我们首先定义了网络作为数据载体和资源共享媒介的角色,并拆解了其三大要素:终端系统、介质和中间系统。接着,我们探讨了从小型办公室到大型企业网的不同组建思路,并学会了用物理和逻辑两种拓扑图来描述网络。

我们明确了网络通信必须遵循协议规则,数据需要添加地址和端口报头才能正确路由和处理。最后,我们深入剖析了以集线器为核心的总线型网络的工作原理,理解了其效率低下、易发冲突的缺陷,以及CSMA/CD机制如何试图缓解这些问题,这也为集线器被更先进的设备淘汰埋下了伏笔。

下一节,我们将学习集线器的升级版——交换机,看看它是如何解决冲突问题,并引领星型网络成为主流的。

CCNA教程合集:03:网络拓扑与交换机基础

在本节课中,我们将要学习网络拓扑的演进,特别是星型拓扑如何成为现代网络的主流,并深入理解以太网交换机的核心工作原理。

上一节我们介绍了网络的基本概念和拓扑类型,本节中我们来看看以太网交换机如何解决早期网络的缺陷,并构建出高效的星型网络。

以太网与地址体系

以太网协议定义了局域网通信的规则,其中最关键的两点是定义了二层MAC地址全双工通信模式

  • MAC地址:这是一个48比特(6字节)的全球唯一硬件地址,用于在网络内部标识一个网络接口。其格式通常表示为12个十六进制数,如 0000.0C12.3456。前24位是厂商代码(OUI),后24位由厂商分配。
  • 全双工模式:允许设备在同一链路上同时发送和接收数据,这是现代网络应用(如在线游戏、视频通话)的基础。

为什么有了MAC地址还需要IP地址?

  • MAC地址用于网络内通信,标识同一局域网内的设备。
  • IP地址用于网络间通信,在全球互联网范围内唯一标识设备。这类似于你在学校用学号,在国内用身份证号,出国用护照号,在不同范围内使用不同的标识符。

交换机:星型网络的核心

星型网络使用以太网交换机作为中心设备连接所有计算机。交换机是一种智能的二层网络设备,其核心功能是学习MAC地址并实现数据的精确转发。

交换机的两大层面

研究交换机需要从两个层面理解:控制层面数据层面

  1. 控制层面:负责“学习”网络是如何连接的。具体来说,就是构建和维护 MAC地址表
  2. 数据层面:负责根据已知的连接信息“转发”数据。

MAC地址表与自学习机制

交换机的智能源于其内部的 MAC地址表。这张表记录了哪个MAC地址连接在它的哪个接口上。

表示例:

接口 MAC地址 VLAN
Fa0/1 0050.7966.6800 1
Fa0/2 0000.0C12.3456 1

交换机通过 自学习机制 动态填充这张表,过程如下:

以下是交换机自学习MAC地址的基本步骤:

  1. 初始状态:交换机启动时,MAC地址表为空。
  2. 接收帧:当主机A(MAC_A)向主机B发送数据时,帧会进入交换机的接口Fa0/1。
  3. 学习源地址:交换机会查看帧中的源MAC地址(MAC_A),并将其与接收接口(Fa0/1)的绑定关系记录到MAC地址表中。
  4. 转发决策:接着,交换机查看帧中的目的MAC地址(MAC_B),并查询MAC地址表。
    • 如果找到对应条目(如MAC_B在Fa0/2),则进行精确转发,只将帧从Fa0/2发出。
    • 如果未找到对应条目,则进行泛洪,将帧从除接收接口外的所有其他接口复制并发送出去。

通过这个过程,交换机无需管理员手动配置,就能自动获知整个网络的连接拓扑。

交换机的优势

基于上述工作原理,交换机带来了革命性的优势:

  • 消除冲突:交换机每个接口都是一个独立的冲突域,且工作在全双工模式,从根本上杜绝了冲突。
  • 高效转发:基于MAC地址表进行精确转发,避免了像集线器那样的泛洪,极大提升了网络效率和带宽利用率。
  • 即插即用:自学习机制使得网络部署和维护非常简单。

总结

本节课中我们一起学习了:

  1. 星型拓扑和以太网交换机如何取代老旧的总线型和环形拓扑,成为现代网络的标准。
  2. 理解了MAC地址和IP地址在不同通信范围中的作用。
  3. 掌握了以太网交换机的核心:通过控制层面的自学习机制构建 MAC地址表,并在数据层面依据该表进行精确转发或必要的泛洪。
  4. 认识到交换机通过分割冲突域支持全双工通信,实现了高效、无冲突的网络环境,满足了当今所有网络应用的需求。

下一节,我们将探讨网络中不同类型的流量(单播、广播、组播)及其在交换网络中的传播方式。

CCNA教程合集:04:OSI模型与端到端通信

概述

在本节课中,我们将学习网络通信的核心框架——OSI七层模型,并深入理解数据如何在网络中从一台主机传输到另一台主机。我们将重点探讨数据封装与解封装的过程,以及交换机与路由器在网络中的不同角色。


回顾:交换机工作原理

上一节我们介绍了交换机的工作原理,本节中我们来看看网络通信的宏观模型。

交换机是二层设备,其工作原理可以从两个层面分析:

  • 控制层面:通过自动学习,根据接收到的数据帧的源MAC地址,形成MAC地址表项。
  • 数据层面:根据数据帧的目的MAC地址查表转发。若找到对应表项则精确转发,若未找到则泛洪转发。

交换机的硬件转发效率极高,但单纯使用交换机连接的网络存在一个根本缺陷:无法隔离广播域。因为交换机无法学习广播或组播MAC地址,收到此类流量时只能泛洪,导致网络中的所有主机都可能被不必要的广播流量消耗资源。


广播域与冲突域

为了优化网络性能,我们需要理解两个关键概念:广播域和冲突域。

  • 广播域:指网络中一个节点发送广播流量所能影响到的所有设备的集合。一个广播域通常等同于一个IP网络(或网段)。路由器接口可以隔离广播域。
  • 冲突域:指网络中两个节点同时发送数据会产生冲突,且冲突碎片能影响到的所有设备的集合。交换机的每个接口都是一个独立的冲突域。

在现代纯交换网络中,冲突域的概念已不那么重要,我们更关注如何通过路由器来分割广播域,从而控制每个网络内的主机数量(建议200-300台),提升整体网络质量。


端到端通信与OSI模型

接下来,我们探讨数据如何实现从源应用到目的应用的传输。这需要一套标准来确保不同厂商设备间的兼容性,即OSI(开放式系统互联)模型

OSI模型将网络通信功能分为七层,下层为上层提供服务。作为网络工程师,我们更关注下四层。

以下是OSI各层核心功能:

上三层:应用相关层

  1. 应用层 (第7层):为应用程序提供网络访问的接口。协议内嵌于软件中,如HTTP、FTP。
  2. 表示层 (第6层):负责数据格式的转换,如编码、加密、压缩,确保不同系统间的应用能理解彼此的数据。
  3. 会话层 (第5层):负责建立、管理和终止应用程序之间的会话(连接)。

下四层:数据传输层

  1. 传输层 (第4层)
    • 数据分片:将应用产生的数据流切割成适合传输的大小(受MSS限制)。
    • 添加协议头:在分片前添加传输层头,其中最关键的是源端口和目的端口,用于标识发送和接收数据的应用程序。
    • 形成的协议数据单元称为数据段
  2. 网络层 (第3层)
    • 在数据段前添加网络层头,主要包含源IP地址和目的IP地址,用于标识发送和接收数据的主机。
    • 形成的协议数据单元称为数据包
  3. 数据链路层 (第2层)
    • 在数据包前后分别添加帧头和帧尾(如FCS帧校验序列)。
    • 帧头中包含源MAC地址和目的MAC地址,供交换机等二层设备识别和转发。
    • 形成的协议数据单元称为数据帧。这是网络中实际传输的数据单元形式。
  4. 物理层 (第1层):负责将数据帧转换为比特流,并通过线缆(电信号/光信号)进行传输。

数据封装与解封装

数据从发送方到接收方的过程,就是不断封装和解封装的过程。

发送过程:封装 (Encapsulation)

发送方主机从上至下处理数据:

  1. 应用产生数据。
  2. 传输层将数据分片并添加TCP/UDP头(含端口号)→ 形成数据段
  3. 网络层添加IP头(含IP地址)→ 形成数据包
  4. 数据链路层添加帧头(含MAC地址)和帧尾 → 形成数据帧
  5. 物理层将帧转换为比特流发送出去。

公式表示封装过程:应用数据 + 传输层头 + 网络层头 + 数据链路层头尾 = 数据帧

传输与接收过程:解封装 (Decapsulation)

  1. 中间设备(如路由器):收到数据帧后,检查目的MAC地址。如果是自己,则拆掉帧头和帧尾(解封装到网络层),查看目的IP地址以决定转发路径。转发前,它会为数据包重新封装一个新的数据链路层帧头帧尾(因为出接口的MAC地址变了)。
  2. 最终接收方主机:从物理层到应用层逐层解封装。拆掉各层头部,根据端口号将重组后的数据交给正确的应用程序处理。

核心原则:网络设备(如交换机)默认只能查看数据帧的二层头部。只有认为数据是发给自己的(MAC地址匹配),才会解封装查看上层内容。


总结

本节课我们一起学习了:

  1. 广播域与冲突域:理解了使用路由器分割广播域的重要性。
  2. OSI七层模型:掌握了从应用层到物理层每一层的核心职责,特别是下四层在数据传输中的关键作用。
  3. 数据封装与解封装:明白了数据从发送到接收的完整流程,以及封装头部(端口、IP地址、MAC地址)的意义。

这些概念是理解所有后续网络技术的基础。下节课我们将探讨TCP/IP模型及其与OSI模型的区别。

CCNA教程合集:05:物理层与线缆详解

概述

在本节课中,我们将深入学习OSI参考模型与TCP/IP协议栈的区别,并重点探讨物理层的核心概念。我们将详细讲解以太网中使用的各种线缆,包括双绞线、同轴电缆和光纤,以及广域网中使用的串行线缆。通过本节课,你将能够理解不同线缆的特性、用途及在网络工程中的实际应用。


OSI参考模型与TCP/IP协议栈

上一节我们介绍了OSI七层模型的基本概念。本节中,我们来看看它与实际使用的TCP/IP协议栈之间的区别与联系。

OSI模型由ISO组织提出,旨在为不同厂商的硬件和软件开发提供一个统一的标准化框架,以解决兼容性问题,促进网络扩展。事实证明,OSI的出现极大地提升了网络的兼容性和集成度。

然而,随着技术日新月异,OSI模型因其更新缓慢、难以快速响应新技术需求而逐渐变得“固步自封”。此时,包括TCP/IP在内的许多“后起之秀”协议栈凭借其灵活性和对新特性的快速支持,开始抢占市场。

经过一段时间的“群雄逐鹿”,TCP/IP协议栈凭借其优秀机制,最终成为互联网(Internet)中事实上的唯一标准。所有希望接入互联网的计算机、软件和设备都必须遵循TCP/IP的规则。

尽管OSI的具体协议已不再使用,但其严谨的分层思想和封装概念被认为优于TCP/IP。因此,OSI模型现今主要作为参考模型,用于研究和理解TCP/IP协议栈中协议的功能、定位和封装过程。而我们实际部署和使用的,则是TCP/IP中的具体协议。

协议栈分层对比

TCP/IP协议栈采用四层模型,与OSI七层模型的对应关系如下:

  • 应用层 (Application Layer):对应OSI的应用层、表示层、会话层(第5、6、7层)。
  • 主机到主机层 (Host-to-Host Layer):对应OSI的传输层(第4层)。
  • 互联网层 (Internet Layer):对应OSI的网络层(第3层)。
  • 网络接口层 (Network Interface Layer):对应OSI的数据链路层和物理层(第1、2层)。

核心封装机制区别

两者最核心的区别在于数据封装机制:

  • OSI逐层封装:任何应用产生的数据,在发送前都必须经过固定的三次封装:传输层添加头部、网络层添加头部、数据链路层添加头部和尾部。规则刻板,一视同仁。
  • TCP/IP越层封装:非常灵活,应用可以根据自身需求决定封装次数。封装过程并非固定不变。
    • 封装三次的案例:例如通过HTTP访问网页,数据会依次封装TCP头部、IP头部、以太网帧头和帧尾。
    • 封装两次的案例:例如OSPF路由协议的数据,直接封装IP头部和以太网帧头/尾,没有传输层封装。
    • 封装一次的案例:例如ARP(地址解析协议)请求/应答,直接封装以太网帧头/尾。

这种灵活性是TCP/IP协议栈的一大优势,因此在分析网络流量时,看到封装次数不同的数据包是非常正常的现象。


物理层详解

了解了协议栈的基础后,我们从最底层开始,深入探讨物理层的具体内容。物理层主要涉及“弱电”部分,包括线缆、接口、插槽以及集线器等设备。对于网络工程师而言,重点在于了解各种线缆的特性与适用场景。

以下是物理层中需要掌握的核心组件:

局域网线缆

当前网络环境中,局域网线缆占据主导地位,其中又以以太网(Ethernet) 相关线缆最为常见。以太网因其易于研发、带宽支持能力极强(从百兆到百万兆)且介质多样(双绞线、光纤),已成为绝对的行业标准。

1. 双绞线 (Twisted Pair)

这是最常见的网线,内部由8根铜质线芯两两绞合而成,以抵消电磁干扰,保证约100米的传输距离。

双绞线分类:

  • 按线序与用途分类
    • 直通线 (Straight-through cable):两端线序相同,通常两端都采用TIA/EIA-568B标准。用于连接不同类型设备(如计算机-交换机、路由器-交换机)。
    • 交叉线 (Crossover cable):一端为568B,另一端为568A。用于连接相同类型设备(如计算机-计算机、交换机-交换机、路由器-路由器)。

    注意:现代多数设备接口支持自动线序适应(Auto-MDI/MDIX),可自动识别并调整线序,使得直通线几乎能用于所有场景。但在使用老旧设备或模拟器(如Cisco Packet Tracer)时,仍需正确选择线缆类型。

  • 按带宽性能(类别)分类:类别越高,支持的带宽和频率也越高。
    • 三类线 (Cat 3):支持10 Mbps。
    • 五类线 (Cat 5):支持100 Mbps。
    • 超五类线 (Cat 5e):支持1000 Mbps (1 Gbps)。
    • 六类线 (Cat 6):支持1 Gbps以上,工艺更好。
    • 七类线 (Cat 7):支持10 Gbps。
    • 八类线 (Cat 8):支持40/100 Gbps。
  • 按屏蔽性能分类
    • 非屏蔽双绞线 (UTP):无额外屏蔽层,成本低,布线方便,适用于大多数办公环境。
    • 屏蔽双绞线 (STP):在线缆和/或线对外有金属屏蔽层,抗干扰能力强,适用于工厂、医院等电磁干扰强烈的环境。

双绞线的接头称为RJ-45接头(俗称水晶头)。

2. 同轴电缆 (Coaxial Cable)

中心为铜芯,外层有屏蔽层。曾用于有线电视和早期网络骨干。

  • 细缆 (Thinnet):传输距离约185米,使用BNC接头。
  • 粗缆 (Thicknet):传输距离约500米。
    由于其带宽和传输距离限制,以及消耗铜资源,正逐渐被光纤取代。目前在一些国家(如澳大利亚)的运营商网络中仍有遗留。

3. 光纤 (Fiber Optic Cable)

利用光在玻璃或塑料纤维中的全反射原理传输数据,具有带宽极高、传输距离极远、抗干扰能力极强、不消耗铜资源等优点。

  • 多模光纤 (MMF):纤芯较粗,允许多种模式的光传输,传输距离较短(通常约1公里),成本较低,常用于园区网内部互联。
  • 单模光纤 (SMF):纤芯极细,只允许一种模式的光传输,传输距离极长(可达1000公里以上),成本较高,常用于运营商骨干网。

设备连接光纤时,需要先安装光模块(如SFP, SFP+, QSFP),再将光纤跳线连接到光模块上。光纤跳线通常成对使用(一发一收),常见接口类型为LC。

广域网线缆

广域网协议(如HDLC, PPP, Frame Relay)过去常使用专用的串行线缆。

  • 串行线缆 (Serial Cable):用于连接路由器和运营商设备。
    • 异步串行线:效率低,基本被淘汰。
    • 同步串行线:通过时分复用提高效率,是主流。线缆两端分别为:
      • DCE (数据通信设备):通常为运营商侧设备,负责提供时钟频率。
      • DTE (数据终端设备):通常为企业侧路由器,同步DCE的时钟。
  • 在现代网络中,串行线缆已基本被以太网光纤取代。广域网协议(如PPP)也演进为在以太网上运行的PPPoE等形式。

总结

本节课中,我们一起学习了OSI参考模型与TCP/IP协议栈的核心区别,特别是“逐层封装”与“越层封装”的概念。随后,我们深入探讨了物理层的各种线缆:

  1. 双绞线:了解其直通线与交叉线的用法、不同类别的性能差异以及屏蔽与非屏蔽的区别。
  2. 同轴电缆:认识其作为过渡技术的定位和现状。
  3. 光纤:掌握单模与多模光纤的特性及其在现代网络中的核心地位。
  4. 广域网串行线缆:了解其历史作用及DCE/DTE的概念。

理解这些线缆的特性和适用场景,是进行网络设计、布线和故障排查的基础。下一节课,我们将继续向上探索,进入数据链路层的世界。

CCNA教程合集:06:数据链路层与以太网详解 📡

在本节课中,我们将深入学习OSI模型中的数据链路层,并重点探讨以太网协议。我们将了解数据链路层在网络通信中的核心作用,以及以太网协议如何定义网络通信的规则、地址和封装格式。


数据链路层概述

上一节我们介绍了OSI模型的物理层,本节中我们来看看数据链路层。对于网络工程师而言,数据链路层比物理层更为重要,因为它包含了具有“智能”的网络设备和协议,允许我们进行配置、优化和故障排除。

数据链路层主要包含各种局域网(LAN)和广域网(WAN)协议。其中,以太网(Ethernet)是当前应用最广泛的局域网协议,而PPP(点对点协议)则是重要的广域网协议。本课程将重点讲解以太网。


以太网协议的核心功能

以太网作为一个数据链路层协议,主要定义了以下三方面内容:

  1. 网络类型与通信规则:定义了网络的拓扑结构(如多路访问网络)以及在该网络上发送数据的规则。
  2. 节点标识符:为网络中的每个接口(节点)定义了一个唯一的二层地址,即MAC地址。
  3. 封装格式:规定了在以太网中发送数据时,数据帧头部和尾部的格式及其包含的信息。

接下来,我们将逐一详细解析。


1. 网络类型与通信规则

以太网定义了两类网络:

  • 多路访问网络(MA, Multi-Access):在这种网络中,可以连接任意数量的节点(如主机、交换机)。典型的以太网环境(使用交换机连接)就是MA网络。
  • 点到点网络(P2P, Point-to-Point):在这种网络中,只存在两个节点,由一条链路直接连接。许多广域网协议(如PPP)运行在P2P网络上。

通信规则取决于链路的双工模式:

  • 半双工:采用CSMA/CD(载波侦听多路访问/冲突检测) 机制。发送数据前需监听链路是否空闲,以避免数据冲突。这常见于早期的总线型网络。
  • 全双工:链路允许双向数据同时传输,不会产生冲突。发送数据前无需监听,可直接发送。这是现代交换网络(星型拓扑)的典型模式。

公式/代码表示

  • CSMA/CD 机制可以简述为:if (链路空闲) { 发送数据; } else { 等待并重试; }

2. 节点标识符:MAC地址

在以太网中,每个网络接口都有一个唯一的二层标识符,称为MAC地址(Media Access Control Address)。

  • 作用:在一个广播域(网络)内唯一标识一个接口。类似于接口的“身份证号”。
  • 格式:48位(6个字节),通常以十六进制表示,如 AAAA.BBBB.CCCC
  • 与IP地址的区别
    • MAC地址是二层地址,由设备制造商固化,通常不可更改,用于网络内的寻址。
    • IP地址是三层地址,由用户或网络动态分配,用于端到端的全球寻址。

核心概念网络内通信网络间通信

  • 网络内通信:通信双方IP地址的网络位相同。主机A需要知道主机B的MAC地址才能封装数据帧,通过交换机进行转发。
  • 网络间通信:通信双方IP地址的网络位不同。主机A需要将数据发送给网关(通常是路由器的接口)。此时,数据帧的目的MAC地址是网关接口的MAC地址,而非最终主机B的MAC地址。

数据转发流程示例

  1. 主机A判断目的主机B不在同一网络。
  2. 主机A将数据帧的目的MAC地址设置为网关R1的MAC地址。
  3. 路由器R1收到帧,发现目的MAC是自己,于是拆掉二层帧头。
  4. R1查看三层IP包头中的目的IP(主机B的IP),查询路由表。
  5. R1将数据包重新封装成新的数据帧,源MAC改为自己的出接口MAC,目的MAC改为主机B的MAC(通过ARP解析获得)。
  6. 新数据帧被发送到主机B所在的网络。

重要结论:在端到端通信中,三层IP地址(源IP、目的IP)始终保持不变,而二层MAC地址在每一跳(每个网络)都会改变


3. 封装格式:以太网帧

以太网规定了数据帧的封装格式,以便设备能够识别和处理。值得注意的是,以太网有两种主要的封装标准:

  • 以太网 II(Ethernet II):由DEC、Intel、Xerox定义后公有化,格式简洁高效。
  • IEEE 802.3:由IEEE标准组织定义,格式更为复杂。

当前约定是:数据流量(如网页、文件传输)使用以太网 II 封装;控制流量(如交换机间的STP、CDP协议报文)使用 IEEE 802.3 封装

以下是两种帧格式的对比:

以太网 II 帧格式

| 目的MAC (6字节) | 源MAC (6字节) | 类型 (2字节) | 数据 (46-1500字节) | FCS (4字节) |
  • 类型字段:标识上层协议(如 0x0800 代表IPv4,0x0806 代表ARP)。

IEEE 802.3 帧格式

| 目的MAC (6字节) | 源MAC (6字节) | 长度 (2字节) | LLC (3字节) | SNAP (5字节) | 数据 | FCS (4字节) |
  • 长度字段:指示数据字段的长度。
  • LLC 和 SNAP:用于支持多种网络层协议,但使帧头变得冗长。

如何区分:查看源MAC地址后的两个字节。若值 ≥ 0x0600 (1536),则为类型字段,属于以太网 II帧。若值 ≤ 0x05DC (1500),则为长度字段,属于IEEE 802.3帧。

MTU(最大传输单元):以太网规定,数据字段(即三层数据包)的最大长度为 1500字节。超过此值的数据包需要分片。


总结

本节课中我们一起学习了数据链路层的核心协议——以太网。我们掌握了:

  1. 以太网定义了多路访问网络和相应的全双工/半双工通信规则
  2. 以太网使用 MAC 地址 作为网络内节点的二层标识符,并理解了其与 IP 地址网络内通信网络间通信中的不同作用。
  3. 以太网数据帧有两种封装格式:高效的 以太网 II 和较为复杂的 IEEE 802.3,并能通过帧头字段进行区分。
  4. 理解了数据在跨越网络时,IP地址保持端到端一致,而MAC地址逐跳变化的关键原理。

这些概念是理解局域网通信和后续学习IP路由、交换机配置等知识的重要基础。

CCNA教程合集:07:IP协议详解与报文结构 📚

概述

在本节课中,我们将要学习网络层最核心的协议——IP协议。我们将重点了解IP协议的作用、IP报文的详细结构以及各个字段的功能,为后续学习路由交换技术打下坚实的基础。


回顾与引入

上一节我们详细讲解了OSI模型的下两层(物理层和数据链路层)。本节中,我们来看看网络层,特别是网络层中至关重要的IP协议。

网络工程师主要关注OSI模型的下四层,而网络层是其中的核心。网络层包含了许多协议,但最核心、最重要的就是IP协议。可以说,网络中80%的协议都与IP相关,后续要学习的路由选择协议(如OSPF、EIGRP、BGP)和各种VPN技术,其根源都是IP协议。因此,理解IP协议是学习网络技术的关键。


IP协议的作用

网络存在的意义是让应用程序之间能够彼此通信。为了实现通信,数据包必须包含地址信息,以便网络设备(如路由器)知道数据从哪里来、要到哪里去,并进行正确的转发。

IP协议的核心作用就是定义了这个用于端到端标识主机的地址——IP地址

  • 与二层地址(如MAC地址)的区别:MAC地址只能在同一个局域网内标识主机。不同的网络可能使用不同的二层协议(如以太网、帧中继),导致MAC地址无法跨网络使用。而IP地址是独立于二层协议的,只要设备支持三层功能,就能拥有IP地址,从而实现跨网络的端到端通信。
  • 类比:可以将MAC地址比作身份证(在国内有效),将IP地址比作护照号(在全球有效)。IP地址使得无论主机在哪个网络,都能被唯一标识并相互通信。

因此,IP协议主要定义了两件事:

  1. 三层地址(IP地址):用于唯一标识网络中的主机。
  2. 三层封装报头的格式:规定了数据在网络层应该如何被封装,以便网络设备能够正确解析和转发。


IP协议版本:IPv4与IPv6

IP协议的全称是Internet Protocol。我们常说的IPv4指的是该协议的第4版。

  • IPv6:是IPv4的升级版本,在地址空间、安全性、效率等方面都更优,是未来的发展趋势(大势所趋)。
  • 现状:目前网络仍以IPv4为主流,但正在向IPv6过渡。许多网络采用“双栈”模式,即设备同时支持IPv4和IPv6。
  • 本课重点:由于当前IPv4仍是主流,且CCNA认证主要考察IPv4,因此本节课我们将专注于IPv4的讲解。


IPv4报文头格式详解

数据封装是网络通信的基础。封装的目的之一就是在应用数据前添加报头,其中包含关键的地址信息。三层封装(IP报头) 中包含了源和目的IP地址,这是实现跨网络通信的核心。

IPv4报文头长度可变(20-60字节),通常我们关注其20字节的固定报头(主报头)。可选项字段一般用于高级功能(如网络测试、攻击),普通通信中不常用。

以下是IPv4主报头(20字节)的详细结构,我们将按顺序解析每个字段:

1. 版本 (Version - VER)

  • 作用:指明IP协议的版本。对于IPv4,此字段值固定为 4
  • 长度:4比特。

2. 首部长度 (Internet Header Length - IHL)

  • 作用:指明整个IP报头的长度(以4字节为单位)。因为IP报头长度可变(可能包含可选项),需要此字段来界定报头结束和负载开始的位置。
  • 常见值:当没有可选项时,报头长度为20字节,此字段值为 5 (20 ÷ 4 = 5)。
  • 长度:4比特。

3. 服务类型 (Type of Service - ToS)

  • 作用:用于标识数据包的优先级或服务类别,主要为实现服务质量 (QoS)
  • QoS背景:企业内网带宽高,但连接互联网的外网带宽有限。当网络拥塞时,需要对不同类型的流量区别对待(如语音、视频对延迟敏感,电子邮件对延迟不敏感)。
  • 工作原理:通过此字段给不同应用的数据包打上不同的标记值。网络设备根据标记值,在拥塞时优先转发高优先级的流量(如语音),延迟转发低优先级的流量(如邮件)。
  • 长度:8比特。

4. 总长度 (Total Length)

  • 作用:定义整个IP数据包(包括报头和负载)的总长度,单位为字节。
  • 长度:16比特。

5. 标识符 (Identification)

  • 作用:用于IP分片和重组。当数据包过大,需要被拆分成多个“分片”传输时,所有属于同一个原始数据包的分片,其标识符字段的值相同。接收方根据此值将分片归类,以便重组。
  • 长度:16比特。

6. 标志 (Flags)

  • 作用:同样是用于IP分片控制的字段,包含3个比特。
    • 第一位:保留未用,恒为0。
    • DF位 (Don‘t Fragment):置为 1 时,表示不允许路由器对此数据包进行分片。如果数据包太大无法转发,则会被丢弃。此位可用于路径MTU发现
    • MF位 (More Fragments):置为 1 时,表示当前分片不是原始数据包的最后一个分片;置为 0 时,表示是最后一个分片。
  • 长度:3比特。

7. 片偏移 (Fragment Offset)

  • 作用:用于IP分片重组。它指明了当前分片在原始数据包中的起始位置(以8字节为单位)。接收方根据此字段对乱序到达的分片进行正确排序。
  • 长度:13比特。

关于IP分片的总结:标识符、标志、片偏移三个字段共同协作,完成了IP层的数据分片与重组功能。分片会消耗设备资源并可能加剧拥塞,应尽量避免。

8. 生存时间 (Time to Live - TTL)

  • 作用:防止数据包在网络中无限循环(路由环路)。该值定义了数据包在被丢弃前最多能经过多少台三层设备(跳数)
  • 工作原理:每经过一台路由器,TTL值减1。当TTL值减为0时,路由器将丢弃该数据包,并向源端发送错误消息。
  • 取值范围:0-255。实际网络中,任意两点间跳数远小于255。
  • 长度:8比特。

9. 协议 (Protocol)

  • 作用:标识IP负载部分所使用的上层协议。接收方根据此字段的值,将解封装后的数据交给相应的上层协议处理。
  • 常见协议号
    • 1 -> ICMP
    • 6 -> TCP
    • 17 -> UDP
    • 88 -> EIGRP
    • 89 -> OSPF
  • 类比:类似于以太网帧中的“类型”字段,用于标识上层协议。
  • 长度:8比特。

10. 首部校验和 (Header Checksum)

  • 作用:用于检查IP报头在传输过程中是否出现错误(如比特翻转)。发送方计算校验和,接收方验证。如果校验失败,数据包将被丢弃。
  • 注意:此校验和只针对IP报头,不校验数据部分。
  • 长度:16比特。

11. 源IP地址 (Source IP Address)

  • 作用:标识发送数据包的主机的IP地址。
  • 长度:32比特。

12. 目的IP地址 (Destination IP Address)

  • 作用:标识接收数据包的目的主机的IP地址。路由器主要根据此字段来查询路由表,决定如何转发数据包。
  • 长度:32比特。

关于路由器处理报文的补充:路由器只有在数据链路层帧的目的MAC地址是自己接口的MAC地址时,才会拆开二层封装,查看三层IP报头。因此,PC需要配置网关,将去往外网的数据帧发给网关路由器。


核心概念总结

  • 路由 (Route):指路由器去往某个目的网络的路径信息。
  • 路由表:路由器中存储的所有路由信息的集合。
  • 路由协议:用于在路由器之间动态交换路由信息,自动生成路由表的协议(如OSPF)。没有路由协议,路由器只知道直连的网络。


下节预告与学习建议

本节课我们详细剖析了IPv4报文头的结构和每个字段的含义。IP协议另一个核心——IP地址编址与子网划分——内容非常丰富且重要。

学习建议:请大家在课后预习IP地址和子网划分的相关内容,特别是子网划分。理解子网划分是掌握IP地址规划、进行网络设计的基础。大家可以联系课程顾问获取往期公开课视频进行预习。

我们将在下节课(周四晚8点)深入讲解IP地址、子网掩码、子网划分等核心内容。


总结

本节课我们一起学习了:

  1. IP协议的核心作用:定义了三层IP地址和封装格式,是实现端到端通信的基石。
  2. IPv4与IPv6的关系:IPv6是更先进的版本,目前网络处于IPv4向IPv6过渡的双栈时期。
  3. IPv4报文头12个字段的详细功能
    • 版本、首部长度、总长度(基础信息)
    • 服务类型(用于QoS)
    • 标识符、标志、片偏移(用于分片与重组)
    • 生存时间(防止路由环路)
    • 协议号(标识上层协议)
    • 首部校验和(检错)
    • 源IP地址、目的IP地址(通信的起点与终点)

理解IP报文结构是理解后续所有路由协议和数据转发原理的基础。虽然内容有些枯燥,但这是成为合格网络工程师必须掌握的基本功。

CCNA教程合集:08:IP地址基础与子网划分详解 📚

在本节课中,我们将要学习IPV4协议的核心——IP地址。我们将从IP地址的基本概念、格式、分类讲起,并深入探讨如何通过子网划分来高效利用宝贵的IP地址资源。


IP地址概述 🌐

IP地址是TCP/IP网络环境中用于标识设备接口的逻辑地址。所有具备三层功能的设备接口,如计算机、服务器、路由器、多层交换机和防火墙的接口,都需要配置IP地址才能进行网络通信。

IP地址与你所处的网络位置息息相关。在同一个网络中,所有主机的IP地址网络位必须相同;在不同网络中,主机的IP地址网络位必须不同。地址的分配可以通过手工配置或DHCP(动态主机配置协议)自动完成。


IP地址格式与进制转换 🔢

一个IPV4地址由32位二进制数组成,通常以“点分十进制”格式表示,例如 192.168.1.1。它将32位地址分为4段,每段8位,用十进制数表示,段间用点分隔。

二进制与十进制转换

理解进制转换是计算IP地址的基础。

  • 二进制转十进制:使用加法。二进制数每一位对应一个十进制权值(从右向左,依次是2^0, 2^1, 2^2...)。将值为“1”的位对应的权值相加即可。

    • 公式十进制结果 = Σ(二进制位值 * 2^(位置索引)),其中位置索引从0开始(最右位)。
    • 示例10110110 = 128 + 32 + 16 + 4 + 2 = 182
  • 十进制转二进制:使用减法。用给定的十进制数依次减去可能的最大2的幂次(128, 64, 32...),能减则对应二进制位为1,否则为0。

    • 示例197
      • 197 - 128 = 69 -> 第8位为1
      • 69 - 64 = 5 -> 第7位为1
      • 5 - 4 = 1 -> 第5位为1
      • 1 - 1 = 0 -> 第1位为1
      • 结果:11000101

因此,IP地址每段的十进制取值范围是 0 到 255


IP地址的分类(主类)🏷️

IANA将IP地址分为五大类,其中A、B、C类为单播地址,用于标识单个接口。

我们可以通过地址的首字节(第一段)来快速判断其类别:

  • A类地址:首字节范围 1 - 126。网络位为前8位,主机位为后24位。每个A类网络包含约1677万个地址。

    • 特殊地址0.0.0.0(未指定地址/默认路由),127.0.0.1(环回地址)。
  • B类地址:首字节范围 128 - 191。网络位为前16位,主机位为后16位。每个B类网络包含65534个地址。

  • C类地址:首字节范围 192 - 223。网络位为前24位,主机位为后8位。每个C类网络包含254个地址。

  • D类地址:首字节范围 224 - 239。用于组播,标识一组接收者。

  • E类地址:首字节范围 240 - 255。保留地址。

注意:在每个网络中,有两个特殊地址不能分配给主机使用:

  1. 主机位全为0的地址:称为网络号,用于标识网络本身。
  2. 主机位全为1的地址:称为定向广播地址,用于向该网络内所有主机发送数据。


子网划分的必要性与概念 ✂️

直接使用主类地址会造成巨大的浪费。例如,一个A类网络可容纳1600多万台主机,但实际一个网络(广播域)内主机数量通常不超过300台,否则网络性能会严重下降。

为了解决地址浪费问题,我们引入了子网划分。其核心思想是:借用原本属于主机位的高位,将其变为“子网位”,从而将一个大的主类网络划分成多个较小的子网,分配给不同的物理网络使用。

子网掩码 🛡️

由于子网划分是自定义行为,我们需要一个工具来明确指定位地址中哪些位是网络位(包括子网位),哪些位是主机位。这个工具就是子网掩码

子网掩码也是32位,由连续的“1”和连续的“0”组成。

  • “1”对应的IP地址位是网络位
  • “0”对应的IP地址位是主机位

示例:IP地址 192.168.1.1 与掩码 255.255.255.0 进行“与”运算,可以得到该地址所在的网络号 192.168.1.0。主机通过对比自身与目标IP地址的网络号是否相同,来判断通信是否发生在同一网络内。


子网划分的两种方式 🔀

根据划分后各子网的网络位长度是否相同,子网划分分为两种:

  1. 定长子网掩码 (FLSM)

    • 将一个主类网络划分成多个网络位长度相同的子网。
    • 适用于早期运行有类路由协议(如RIPv1)的网络环境。
  2. 变长子网掩码 (VLSM)

    • 将一个主类网络划分成多个网络位长度不同的子网。
    • 允许更精细的地址规划,进一步减少浪费。
    • 需要无类路由协议(如OSPF、EIGRP、RIPv2)的支持,是现代网络中的标准做法。

VLSM示例:假设公司有一个 192.168.1.0/24 的C类网络。

  • 可以为拥有50台主机的财务部划分一个 /26 的子网(192.168.1.0/26,可用主机62个)。
  • 为拥有10台主机的行政部划分一个 /28 的子网(192.168.1.64/28,可用主机14个)。
  • 为点对点链路划分一个 /30 的子网(192.168.1.80/30,可用主机2个)。
    这样能最大程度地节约地址。

总结 📝

本节课中我们一起学习了IPV4地址的核心知识。我们首先了解了IP地址作为逻辑地址的作用和格式,并掌握了二进制与十进制的转换方法。接着,我们学习了IP地址的主类分类(A、B、C、D、E)及其特点。

针对主类地址分配造成的巨大浪费,我们深入探讨了子网划分这一关键技术。通过借用主机位作为子网位,我们可以将大网络切分为小网络。而子网掩码则是声明网络位长度的关键工具。最后,我们比较了FLSMVLSM两种子网划分方式,认识到VLSM结合无类路由协议是实现地址高效利用的现代网络基础。

理解并掌握这些概念,是成为一名合格网络工程师的必经之路。

CCNA教程合集:P9:IPV4进阶、私有地址与NAT、ICMP与ARP详解

📚 概述

在本节课中,我们将深入学习IPV4的剩余核心内容。我们将探讨子网化的根本目的、IPV4地址枯竭的现状及其解决方案——私有地址与NAT技术。同时,我们还将介绍网络层两个至关重要的辅助协议:ICMP和ARP,理解它们如何保障网络的连通性与通信效率。


🔍 上一节回顾:IPV4子网化

上一节我们介绍了IP地址的架构、网络位与主机位的概念,以及ABCDE类地址。我们还讲解了子网化技术。

本节中,我们来看看子网化的根本目的及其局限性。

子网化的目的与局限性

IPV4子网化是为了节约地址。购买一个主类地址段后,若将所有地址分配给单一网络,会造成大量地址浪费。由于IPV4地址总数有限(约42亿,其中仅约一半为单播地址),必须通过借位将一个主类地址段划分为若干子网,分配给不同网络,以节约地址并避免冲突。

然而,子网化本身也会造成地址浪费。每划分一次,每个子网段中的全零(网络地址)和全一(广播地址)地址不可用,划分次数越多,浪费的地址也越多。更重要的是,即使通过子网化极致节约,IPV4地址总量也无法满足互联网设备的爆炸式增长。根据统计,全球IPV4公网地址池已于2013年2月宣告耗尽。


🌐 IPV4地址枯竭的应对方案

既然地址总量不足,而互联网仍在持续扩展,我们必须改变地址使用规则。

从“一对一”到“一对多”:公有地址与私有地址

早期规则是一个节点使用一个全球唯一的IP地址(公有地址),以避免冲突。为解决地址不足问题,IETF在RFC1918中定义了私有地址

  • 公有地址:需要购买或租赁,保证全球唯一性,用于互联网核心(如运营商网络、数据中心服务器)。
  • 私有地址:无需成本,可在内网(如企业、家庭园区网)自由使用,但无法保证全球唯一性。

当前,绝大多数新增的互联网终端(企业内主机、个人设备)都使用私有地址。这使得无论内网主机数量如何增长,对公有地址的消耗都极其有限,从而延续了IPV4的使用寿命。

南北流量与东西流量

要理解私有地址的使用场景,需先了解园区网的流量类型。

  • 南北走向流量:指内网主机访问外网(如互联网服务器)的流量,以及返回的流量。这是上网行为的主体。
  • 东西走向流量:指同一内网中,主机之间的相互访问流量。

私有地址主机在进行东西流量通信时没有问题,但在进行南北流量通信时会遇到障碍:数据包能出去,但回不来。原因是公网服务器无法将回应包正确送达一个全球不唯一的私有地址。


🔧 NAT/PAT:私有地址访问公网的关键

为了让使用私有地址的内网主机能够访问互联网,必须在园区网的边界设备(路由器或防火墙)上部署网络地址转换技术。

NAT/PAT工作原理

  1. 出向转换:当内网私有地址主机发送的数据包到达边界设备时,设备将其源IP地址从私有地址转换为一个公有地址,并记录该转换关系。
  2. 公网路由:转换后的数据包以公有地址身份在互联网中路由,到达目的服务器。
  3. 入向转换:服务器回应的数据包目的地址是该公有地址。当回应包到达边界设备时,设备根据之前记录的转换关系,将目的地址转换回原始的私有地址,并转发给内网主机。

通过这种方式,内网主机得以访问公网资源。PAT(端口地址转换) 是NAT的增强版,它允许使用一个公有IP地址,通过不同的端口号来区分内网成千上万台主机,实现了极致的地址复用。

内网主机(私有IP) <-> 边界设备(NAT/PAT) <-> 公网服务器(公有IP)

NAT带来的影响

NAT打破了端到端地址一致性原则,使得通信变得不对称:

  • 内网主机可以主动访问公网服务器
  • 公网服务器无法主动访问内网主机(因为不知道其对应的公有地址和端口)。

这种不对称性催生了专线、MPLS VPN、IPSec VPN等昂贵或复杂的技术,以实现不同私有地址园区网之间的互访。


🚀 IPV6:未来的解决方案

IPV4的根源问题在于32位的地址空间太小。最终的解决方案是迁移到IPV6

IPV6的核心优势

  1. 海量地址空间:128位地址长度,地址数量为2^128个,几乎是无限的。
    地址总数对比:IPv6 / IPv4 = 2^128 / 2^32 = 2^96
  2. 回归对等通信:地址充足,无需大量使用NAT,有望恢复端到端的对等通信。
  3. 协议栈优化:报头更简洁,并原生集成IPsec、移动性支持等增强功能。

尽管面临运营商传统利益(如专线业务)等迁移阻力,但在全球范围内,向IPV6的迁移已是大势所趋,预计在未来几年内将加速普及。


🛠️ 网络层辅助协议详解

当前网络仍以IPV4为主流,其稳定运行离不开两个重要的辅助协议。

ICMP:互联网控制报文协议

ICMP是一个工具集,用于辅助IPV4进行网络诊断和管理。其主要功能可分为三类:

以下是ICMP的三大功能类型及典型工具:

  1. 测试工具

    • Ping:测试双向连通性。发送ICMP Echo Request(类型8),接收ICMP Echo Reply(类型0)则表明连通。
    • Traceroute:跟踪数据包路径。通过发送TTL递增的UDP包,并接收沿途路由器返回的ICMP Time Exceeded报文,逐跳显示路径。
  2. 差错报告工具
    当路由器无法转发数据包时,会向源端发送ICMP差错报文,例如:

    • Destination Network Unreachable:目的网络不可达(无路由)。
    • Destination Host Unreachable:目的主机不可达(ARP解析失败)。
    • Protocol Unreachable:协议不可达。
    • Port Unreachable:端口不可达。
  3. 路径优化工具

    • 重定向 (Redirect):当路由器发现主机使用的并非最优下一跳时,会发送ICMP Redirect报文,告知主机更优的网关地址。

ARP:地址解析协议

在以太网中,通信需要知道对方的MAC地址。ARP用于动态地将IP地址解析为MAC地址

ARP工作流程

  1. 主机A想与同网段的主机B通信,但不知道B的MAC地址。
  2. A在本网段内广播发送ARP请求报文,内容为:“我是IP_A/MAC_A,谁是IP_B?请告诉MAC_B。”
  3. 网内所有主机收到请求,但只有B会响应。B单播回复ARP应答报文:“我是IP_B,我的MAC地址是MAC_B。”
  4. A收到应答,将IP_B到MAC_B的映射存入本地ARP缓存表,随后便可封装数据帧进行通信。

高级ARP特性

  • 代理ARP:当主机未配置网关,且欲访问外网主机时,网关路由器可以“冒充”目的主机回应ARP请求,将自己的MAC地址告知源主机,从而代为转发数据。
  • 免费ARP:主机在获取IP地址(尤其是通过DHCP)后,会主动广播一个以自己IP地址为目标的ARP请求。若无冲突,则无响应;若收到应答,则说明地址冲突,需要重新获取。

📝 总结

本节课我们一起深入学习了IPV4地址规划的核心思想与实践。我们了解到子网化旨在节约地址,但无法解决根本的数量危机;私有地址与NAT/PAT技术的结合,通过地址复用巧妙地延续了IPV4的生命,但也带来了通信不对称等新问题。而IPV6以其近乎无限的地址空间,是解决这些问题的根本方向。最后,我们探讨了ICMP和ARP这两个关键的网络层辅助协议,它们分别是网络连通性的“诊断师”和局域网通信的“翻译官”,对于网络排错和日常通信至关重要。


教程内容整理自公开课《CCNA09 - 向向向晚o》,仅供学习交流。

思科认证CCNA网络技术:第1节:网络基础扫盲预科 🧭

在本节课中,我们将学习网络技术中最基础、最核心的概念。我们将从零开始,扫清你对网络的各种疑惑,建立一个清晰的层次化认知框架。无论你是完全的初学者,还是对某些概念感到模糊,这节课都将为你打下坚实的基础。

模拟器准备 🛠️

在开始动手练习之前,我们需要准备好实验环境。以下是两种主流的网络模拟器,它们可以让我们在电脑上模拟真实的网络设备进行配置和实验。

  • 小凡模拟器:这是GNS3模拟器的前身,界面相对简单。在课程前期的基础实验中,我们将主要使用它。安装时,如果你的操作系统是Win7及以上版本,需要配合安装WinPcap 4.1.2或更高版本,以确保网络通信正常。
  • EVE-NG模拟器:这是一个功能更强大的模拟器,集成在Linux系统中。它支持更多类型的设备镜像,如IOL(IOS on Linux)。在课程后期进行包含40-50台设备的大型综合实验时,我们会用到它。

对于电脑配置,前期实验要求不高。中后期进行复杂实验时,建议内存至少为8GB,最好能达到16GB,CPU为i3级别或以上即可。

认识身边的网络 🌐

上一节我们准备好了工具,现在让我们看看网络在我们身边以哪些形态存在。你可能会听到很多术语,我们先来对它们进行一个初步的归类。

  • 无线网络:主要分为室内和室外覆盖。
    • 3G/4G/5G:属于移动通信标准,主要用于室外的广域无线覆盖。
    • Wi-Fi:属于无线局域网标准,主要用于室内的局部无线覆盖。家庭常用无线路由器,而企业级环境则会使用更稳定、功能更强的无线AP(接入点)和AC(无线控制器)解决方案。
  • 有线接入方式(演进史)
    • 1.0 窄带时代:使用电话线通过Modem(猫)拨号上网,上网时电话无法打入。
    • 2.0 宽带时代:依然是电话线,但升级为ADSL技术,使用PPPoE协议拨号,可以实现上网、通话同时进行。
    • 3.0 光网时代:网线或光纤直接入户。目前主流是光纤入户,通过光猫进行光电转换,再使用PPPoE拨号获得高速网络。
  • 企业网络服务
    • 企业带宽:用于普通办公上网。分为上下行不对等的ADSL和上下行对等的固定带宽。后者通常伴有固定公网IP,适用于有对外服务(如网站、视频会议)的企业。
    • 企业专线:如MSTP、MPLS专线,主要用于连接企业的总部与分支机构,保障内部数据(如语音、视频会议)稳定、高效互通,与访问互联网无关。
    • VPN:虚拟专用网络。企业除了购买专线,也可以通过互联网搭建VPN,来实现分支机构的安全互联。

网络的核心划分:局域网 vs. 广域网 🗺️

无论网络形态如何变化,从结构上看,所有网络都可以归结为两种基本类型:局域网和广域网。

  • 局域网:通常指一个局部地理范围内的网络,比如一个家庭、一个办公室、一栋楼。它的核心设备是交换机,用于连接相同IP网段内的设备。例如,你和室友在宿舍用交换机联机打游戏,就是一个典型的局域网。
  • 广域网:连接不同地理位置的局域网,构成更大范围的网络,最典型的例子就是互联网。它的核心设备是路由器(或具备路由功能的设备),负责在不同IP网段之间转发数据。例如,你用电脑访问百度的网站,数据就需要通过路由器进行跨网段转发。

简单来说:同网段通信,找交换机;跨网段通信,找路由器

数据转发的秘密:MAC地址与IP地址 🔑

既然知道了局域网和广域网的区别,那么它们各自是依靠什么来转发数据的呢?这是理解网络通信的关键。

  • 局域网转发:依靠MAC地址

    • MAC地址是设备的“物理地址”或“硬件地址”,通常烧录在网卡芯片中,理论上全球唯一。
    • 交换机内部维护着一张 MAC地址表 ,记录了每个端口连接着哪个MAC地址的设备。当数据在局域网内传递时,交换机会查看数据帧中的目的MAC地址,然后根据这张表将数据从正确的端口转发出去。
    • 公式表示:局域网通信 = 交换机 + MAC地址表
  • 广域网转发:依靠IP地址

    • IP地址是设备的“逻辑地址”,可以手动配置或通过DHCP协议自动获取。它是网络层的标识。
    • 路由器内部维护着一张 路由表 ,这张表就像地图,告诉路由器“要去往某个IP网段,应该从哪个接口走”。
    • 当数据需要跨网段传输时,路由器会检查数据包中的目的IP地址,查询路由表,决定转发路径。
    • 公式表示:跨网段通信 = 路由器 + 路由表(IP地址转发表)

设备的本质:它们都是计算机 💻

你可能觉得路由器、交换机很神秘,但实际上,它们的核心架构和你的电脑、手机、服务器没有本质区别。

无论是PC、服务器、手机还是网络设备,都包含CPU、内存、存储器和网卡这些核心组件。它们的区别主要在于:

  • 设计目标不同:家用设备追求速度,商用设备(服务器、网络设备)追求稳定性和可靠性
  • 操作系统不同:家用PC多用Windows;服务器和网络设备则多采用Linux/Unix及其衍生系统(如思科的IOS就是基于Unix开发的)。

了解这一点有助于破除对高端网络设备的神秘感。许多网络功能(如软路由)完全可以用一台安装特定软件的普通PC来实现。

总结 📚

本节课中我们一起学习了网络世界的入门知识。我们首先准备了实验工具——小凡和EVE模拟器。然后,我们梳理了生活中常见的各种网络形态,包括无线网络、有线接入的演进以及企业级服务。接着,我们抓住了网络最核心的划分:局域网(LAN)广域网(WAN),并理解了交换机处理同网段通信、路由器处理跨网段通信的核心原则。最后,我们揭示了数据转发的两大凭据:局域网的MAC地址与广域网的IP地址,并认识到所有智能设备在架构上的共通性。

记住这个简单的框架:网络 = 局域网 + 广域网;通信 = 同网段(MAC地址) + 跨网段(IP地址)。在接下来的课程中,我们将基于这个框架,深入每一个技术细节。

CCNA网络技术:第2节:网络基础扫盲与模拟器入门 🚀

在本节课中,我们将学习网络通信的基本概念,包括协议分层、IP地址、DNS服务、端口等核心知识,并初步了解如何使用模拟器搭建实验环境。


协议分层与TCP/IP基础

上一节我们介绍了局域网、广域网以及路由交换的基本概念。本节中,我们来看看网络设备之间是如何“对话”的,这依赖于一套共同的规则——网络协议。

网络协议是设备之间通信的语言。目前最通用的是TCP/IP协议族。我们可以这样理解它的分层结构:

  • TCP/IP协议地基。它定义了最基础的通信规则,核心是IP地址。就像每部电话必须有号码,每台联网设备也必须配置IP地址才能进行最基本的点对点通信。
  • OSPF、EIGRP等路由协议建筑的框架。在设备配置了IP地址(打好地基)后,运行这些协议是为了在多个设备间自动学习路径,生成路由表,从而实现跨设备的通信。
  • HTTP、FTP等服务协议建筑内的活动和功能。在网络连通(建筑框架建成)的基础上,这些协议提供了网页浏览、文件传输等具体的应用服务。

简单来说,这是一个从底层到上层、逐层依赖的关系:没有TCP/IP(IP地址),就无法运行路由协议;网络不通,应用服务也就无法使用。


IP地址与数据包

理解了协议框架后,我们聚焦到网络通信的“身份证”——IP地址。

关于IP地址,初学者需要先记住三个要点:

  1. 大小:一个IPv4地址由 32个比特(bit) 组成,等于 4个字节(Byte)

    公式1 IPv4地址 = 32 bits = 4 Bytes

  2. 格式:它由4个0-255之间的数字组成,例如 192.168.1.1
  3. 版本:目前广泛使用的是IPv4,未来将全面过渡到IPv6。

设备之间传输的数据被分割成一个个“数据包”。每个数据包在默认情况下有一个最大尺寸限制,称为MTU(最大传输单元),通常为 1500字节。这就像一个快递包裹有标准尺寸,过大的包裹需要分拆运输,在网络中这称为“分片”,可能会影响传输效率。

注意:网络带宽的单位(如100兆“宽带”)通常是 比特每秒(bps),而文件大小的单位通常是字节(Byte)。它们的关系是:1 Byte = 8 bits。因此,100兆带宽的理论最大下载速度约为 100 Mbps / 8 = 12.5 MB/s


DNS:域名的翻译官

我们习惯用 www.baidu.com 这样的域名访问网站,但网络设备只认识IP地址。DNS(域名系统)的作用就是将域名“翻译”成IP地址。

其工作过程类似于查号台:

  1. 当你在浏览器输入域名时,计算机会首先向预设的DNS服务器发送查询请求。
  2. DNS服务器返回该域名对应的IP地址。
  3. 计算机获得IP地址后,才真正开始向目标服务器发起连接。

因此,如果电脑能上QQ(直接连接IP)但打不开网页,很可能就是DNS设置出现了问题。常见的公共DNS地址有:

  • 114.114.114.114
  • 8.8.8.8 (Google提供)

端口:服务的门牌号

有了目标IP地址,数据包需要知道访问目标设备上的哪个具体服务。这时就需要端口号

每个网络服务都监听一个特定的端口号,就像不同的房间有不同的门牌号。以下是一些必须记住的常见服务端口:

以下是常见网络服务及其默认端口:

  • HTTP(网页)80
  • HTTPS(安全网页)443
  • FTP(文件传输)20(数据), 21(控制)
  • SSH(安全远程登录)22
  • Telnet(远程登录)23
  • DNS(域名解析)53
  • RDP(远程桌面)3389

代码示例:在浏览器中访问 http://192.168.1.1:80,等同于访问 http://192.168.1.1,因为80是HTTP的默认端口。


模拟器环境搭建入门

理论学习需要实践巩固。我们将使用小凡模拟器来搭建一个接近真实的网络实验环境。以下是核心步骤的简要介绍。

以下是使用小凡模拟器创建实验环境的关键步骤:

  1. 安装与准备:安装小凡模拟器及WinPcap驱动。准备好路由器的IOS镜像文件(如 c3640 系列)。
  2. 创建设备:以管理员身份运行小凡模拟器,选择c3640 IOS,计算并设置正确的idle-pc值(以降低CPU占用),设置设备内存(如256MB)。
  3. 添加模块:为虚拟路由器添加网络模块,例如 NM-1FE-TX(1个百兆以太网口)。
  4. 连接设备:在拓扑图中,将两台路由器的指定接口(如F0/0)连接起来。
  5. 生成与启动:生成批处理(.bat)文件。运行它,即可启动虚拟路由器。
  6. 登录设备:使用终端软件(如SecureCRT、PuTTY),通过Telnet方式连接。关键点是:
    • 主机地址127.0.0.1(本机)
    • 端口号:第一台路由器是2001,第二台是2002,以此类推。

通过Alt+数字(如Alt+1Alt+2)可以在不同设备的终端窗口间快速切换。


总结

本节课中我们一起学习了网络通信的核心基础。我们明确了TCP/IP协议的基础地位,理解了IP地址、数据包MTU的概念,知道了DNS如何将域名转换为IP地址,以及端口如何标识不同服务。最后,我们初步掌握了使用小凡模拟器搭建实验环境的方法,为后续的动手实验打下了基础。记住,网络技术是一个分层、协作的体系,从底层连通到上层应用,每一步都不可或缺。

思科认证CCNA网络技术:第3节:网络基础入门与ARP协议详解 🖧

在本节课中,我们将要学习网络通信的基础架构,特别是数据如何在局域网内以及跨网段进行转发。我们将深入探讨IP地址、子网掩码、网关的作用,并重点解析ARP(地址解析协议)的工作原理、攻击方式及防御策略。通过本节课的学习,你将能够理解网络设备间通信的基本逻辑。

网络基础架构与通信原理

上一节我们进行了课程扫盲,本节中我们来看看网络的基本互连架构。在基础阶段,我们首先需要理解终端设备如何通过交换机、路由器等设备进行通信。

终端与网络连接

所有的个人电脑(PC)和服务器(Server)都通称为终端设备。它们是网络的末端,意味着没有其他线路从这些设备再连接出去。终端设备要接入网络,必须配置三个核心参数:IP地址子网掩码网关

  • IP地址:是本机在网络中的唯一标识,类似于定位符。
  • 子网掩码:核心作用是划分网段。它用于判断本机与网络中的其他主机(或网关)是否处于同一个IP地址段内。只有同处一个网段内的设备,才被认为在同一个局域网(LAN)中。
  • 网关:通常是一台硬件设备(如路由器或三层交换机),其特点是一个接口连接内网(局域网),另一个接口连接外网(如Internet)。网关的IP地址被称为“下一跳地址”(Next Hop),当终端需要访问非本网段的目标时,数据包会首先发送给网关。

注意:网关地址并非必须是常见的 192.168.1.1192.168.1.254。它可以是该网段内的任何一个有效IP地址,只要该地址确实配置在作为网关的设备上即可。

基础网络设备角色

在一个简单的企业网络中,通常包含以下几种设备:

  • 交换机(Switch, 简称SW):主要作用是连接局域网内的设备,实现同网段数据的快速转发。
  • 路由器(Router, 简称R):主要作用是连接不同的网络(跨网段),实现广域网(WAN)接入和数据路由。
  • 防火墙(Firewall, 简称FW):主要作用是对网络流量进行安全策略控制。

现代设备趋势:在实际项目中,设备常以业务系列划分(如思科的ASR、NCS系列),而非严格按传统交换、路由功能区分。现代设备多为多业务集成产品,可能同时具备路由、交换、安全等多种功能。

数据转发过程:MAC地址与ARP

当一台PC(例如PC1)需要与另一台设备通信时,它不仅需要知道对方的IP地址,还需要知道对方的MAC地址(物理硬件地址)才能在局域网内进行数据封装和传递。

以下是通信过程中的关键表项:

  • MAC地址表:存在于交换机中。交换机通过记录每个接口所连接设备的MAC地址来学习网络拓扑。当数据包进入交换机,交换机会查询此表,以决定从哪个接口转发出去。如果表中没有目的MAC地址的记录,交换机会将数据包向所有接口(除接收口外)广播。
  • ARP表:存在于终端设备(如PC、服务器)中。终端为了获取目标IP地址对应的MAC地址,会使用ARP协议

ARP(地址解析协议)的核心作用是通过IP地址来寻找对应的MAC地址。其工作过程如下:

  1. ARP请求(广播):当PC1需要与网关(IP: 192.168.1.1)通信时,它会先在局域网内广播一个ARP请求包,内容为:“谁的IP是192.168.1.1?请告诉你的MAC地址。”
  2. ARP响应(单播):局域网内所有设备都会收到这个广播包。只有IP地址为192.168.1.1的网关设备会做出响应,向PC1发送一个单播回复:“我的IP是192.168.1.1,我的MAC地址是XX:XX:XX:XX:XX:XX。”
  3. 记录ARP表:PC1收到响应后,会将IP 192.168.1.1 -> MAC XX:XX:XX:XX:XX:XX的对应关系记录到本机的ARP表中。后续发往该IP的数据包,都会直接使用这个MAC地址进行封装。

你可以通过在电脑的命令行(CMD)中输入 arp -a 命令来查看本机的ARP表。

ARP攻击与防御策略

理解了ARP的工作原理,我们就能分析常见的网络攻击——ARP欺骗/攻击。

ARP攻击原理

攻击者通过伪造ARP响应包,扰乱正常设备的ARP表,主要分为两种目的:

  1. ARP欺骗(断网攻击)

    • 攻击者(例如被病毒感染的PC2)持续向网络发送伪造的ARP广播,声称:“网关IP(192.168.1.1)的MAC地址是GG:GG:GG:GG:GG:GG”(一个虚假的MAC)。
    • 同局域网内的PC1收到后,会更新自己的ARP表,错误地将网关IP指向这个虚假的MAC。
    • 当PC1尝试上网时,数据包被发往虚假MAC,由于该地址不存在,数据包在局域网内泛洪后丢失,导致PC1无法上网。由于网关也会发送正确的ARP响应,受害主机的ARP表会不断被正确和错误的条目刷新,造成网络时断时续的现象。
  2. ARP挂马(中间人攻击)

    • 攻击者发送伪造的ARP响应,声称:“网关IP的MAC地址是BB:BB:BB:BB:BB:BB”(即攻击者PC2自己的真实MAC)。
    • PC1信以为真,将所有发往网关的数据都发送给PC2。
    • PC2收到数据后,可以窃取所有明文传输的数据(如用户名、密码),然后再将数据转发给真正的网关,PC1依然可以上网,不易察觉。
    • 更甚者,PC2可以在返回给PC1的数据流中插入恶意代码(挂马),导致PC1感染病毒或木马。

ARP攻击的防御方法

以下是几种常见的防御策略:

  • 手动静态绑定:在终端电脑上,通过命令手动将网关的IP和正确的MAC地址进行绑定。
    arp -s 192.168.1.1 00-11-22-33-44-55
    

    缺点:电脑重启后绑定失效。可通过编写批处理(.bat)脚本并加入开机启动项来实现每次开机自动绑定。

  • 网络设备防护:在交换机上启用安全功能。
    • 动态ARP检测(DAI):交换机会检查ARP包的合法性,拦截非法的ARP报文。
    • ARP速率限制:在交换机接口上配置,限制单位时间内通过的ARP报文数量。如果某个接口发送的ARP包超过阈值,交换机可自动关闭该接口,并触发日志报警。
  • 安全软件与监控:安装杀毒软件、部署网络监控系统(如Zabbix),通过抓包分析定位ARP攻击源。

网络硬件基础认识

了解一些基础硬件有助于后续的实验和项目工作。

服务器与网卡

  • 服务器:常见为机架式服务器(如1U、2U规格),用于节省数据中心空间。现代趋势是虚拟化云主机,它们能提供弹性计算资源,根据业务峰值灵活调配CPU、内存和带宽,节约成本。
  • 服务器网卡:不同于普通PC的百兆/千兆网卡(如Realtek 8139),服务器通常使用高性能、高负载的专用千兆/万兆网卡,以满足7x24小时大流量数据处理的需求。

控制台连接(Console)

网络设备初始配置通常通过Console口进行。由于现代笔记本电脑已没有串口(COM口),我们需要使用以下工具:

  • Console线:一端为RJ-45水晶头(连接设备Console口),另一端为DB9母头(连接电脑串口)。注意,此水晶头线序为反转线,非普通网线。
  • USB转串口适配器:将Console线的DB9头通过此适配器连接到笔记本电脑的USB口。建议购买免驱的集成线缆,方便使用。

给工程师的建议:从事网络工程建议配备一台轻便、耐用的二手商务笔记本(如ThinkPad X或T系列)。调试时养成使用主键盘区上方数字键的习惯,因为许多项目用的小尺寸笔记本和部分考场键盘可能没有小键盘区。


本节课中我们一起学习了网络通信的基础,包括IP、掩码、网关的作用,深入剖析了ARP协议的工作机制、常见的ARP攻击原理(欺骗与挂马)以及相应的防御策略。同时,我们也认识了服务器、网卡和控制台连接等基础硬件知识。理解这些概念是后续学习更复杂网络技术的基石。请务必完成手写ARP流程与攻击防御分析的课后作业,以巩固理解。下节课我们将学习如何连接和初始化配置网络设备。

CCNA网络技术详解:第4节:OSI模型-1

在本节课中,我们将学习网络通信的基础框架——OSI参考模型。我们将重点探讨其下四层(物理层、数据链路层、网络层、传输层)的核心概念与实际应用,帮助你理解数据在网络中传输的基本步骤和原理。

物理层:网络通信的基石

上一节我们介绍了网络组建的基本框架,本节中我们来看看OSI模型的最底层——物理层。物理层定义了网络通信的物理介质和电气信号标准,是数据传输的物理基础。

物理层的主要职责是传输原始的比特流。它不关心数据的含义或结构,只负责通过物理介质(如网线、光纤)将信号从一个点传送到另一个点。

以下是物理层涉及的一些关键组件和概念:

  • 传输介质:包括双绞线(网线)、同轴电缆、光纤等。例如,常见的网线遵循 568A568B 线序标准。
  • 接口与设备:如网卡(NIC)、光纤收发器(光猫)、中继器(Hub)等。这些设备负责信号的生成、接收和放大。
  • 信号与编码:将数字数据(0和1)转换为可以在介质上传输的物理信号(如电脉冲、光信号)。

需要注意的是,随着技术发展,一些早期的物理层概念(如集线器Hub、交叉线与直通线的严格区分)在实际工作中已较少见,现代设备大多支持自动翻转功能。

数据链路层:局域网内的可靠传输

理解了物理层的信号传输后,我们进入数据链路层。这一层负责在同一局域网(LAN) 内的两个设备之间建立可靠的数据链路。

数据链路层将网络层传来的数据包封装成,并添加头部和尾部信息(如源和目的MAC地址、帧校验序列)。它的核心功能包括帧的封装与解封装物理寻址(MAC地址)差错检测

数据链路层的典型代表设备是交换机。与物理层的集线器(Hub)相比,交换机带来了显著改进:

  1. 全双工通信:交换机支持同时进行发送和接收,有效提升了带宽利用率。公式表示为:全双工带宽 = 端口速率 × 2
  2. 基于MAC地址的转发:交换机内部维护一张 MAC地址表,记录每个端口所连接设备的MAC地址。当数据帧到达时,交换机会查询此表,将帧单播转发到目标端口,而非像Hub那样向所有端口泛洪。这提高了效率并增强了安全性。
  3. 冲突域隔离:交换机的每个端口都是一个独立的冲突域,大大减少了数据帧碰撞的可能性。

MAC地址是一个48位的全球唯一标识符,通常表示为 XX:XX:XX:XX:XX:XX 的形式。交换机通过“学习”机制动态构建MAC地址表。

网络层:实现跨网段的通信

数据链路层解决了局域网内部的通信问题,但当数据需要跨越不同的网络(网段)时,就需要网络层发挥作用。网络层负责将数据从源主机经过多个中间节点(路由器)路由到目的主机。

网络层的核心任务是逻辑寻址路由选择。它使用IP地址来唯一标识网络中的设备,并通过路由表来决定数据包传输的最佳路径。

网络层的核心协议是IP协议。一个IP数据包的基本头部包含源IP地址、目的IP地址、生存时间(TTL)等关键字段。

该层的典型设备是路由器。路由器根据目的IP地址查询自身的路由表,决定将数据包从哪个接口转发出去。路由表可以通过手动配置(静态路由)或路由协议(如OSPF、EIGRP)动态学习。

此外,网络层还有一个重要协议——ICMP。它用于传递控制消息,例如常用的 ping 命令就是利用ICMP回显请求和应答来测试网络连通性。代码示例:ping 192.168.1.1

传输层:端到端的连接与控制

网络层确保了数据包能够跨网络送达目标主机,而传输层则负责确保数据可靠、有序地送达主机上的特定应用程序

传输层通过端口号来区分同一主机上的不同服务或应用。例如,Web服务通常使用80端口,电子邮件服务使用25端口。

传输层主要有两个协议:

  1. TCP:一种面向连接的、可靠的协议。它通过“三次握手”建立连接,并提供确认、重传、流量控制和拥塞控制机制,确保数据无误交付。代码示例(伪代码):
    # TCP三次握手
    客户端发送 SYN
    服务器回复 SYN-ACK
    客户端发送 ACK
    # 连接建立,开始可靠数据传输
    
  2. UDP:一种无连接的、不可靠的协议。它不建立连接,直接将数据包发送出去,不保证顺序和可达性。但正因为其开销小、速度快,常用于视频通话、在线游戏等实时性要求高的场景。

简单来说,TCP注重可靠性,UDP注重效率。应用层协议会根据需求选择使用TCP或UDP。

应用层、表示层、会话层简介

OSI模型的上三层(应用层、表示层、会话层)通常被合并称为“应用层面”,它们更贴近用户和具体的应用程序。

  • 应用层:为应用程序提供网络服务接口。例如,HTTP用于网页浏览,FTP用于文件传输,SMTP用于发送电子邮件。
  • 表示层:负责数据的格式转换、加密与解密、压缩与解压缩,确保应用层发出的数据能被另一端系统理解。
  • 会话层:负责建立、管理和终止应用程序之间的会话(Session)。它控制对话的同步和检查点。

对于网络工程师而言,重点通常在于确保下四层(数据层面)的畅通,而上三层的具体问题多由应用开发或服务器运维人员处理。

总结与下节预告

本节课中我们一起学习了OSI参考模型的核心框架。我们深入探讨了:

  1. 物理层的介质与信号基础。
  2. 数据链路层的MAC寻址与交换机工作原理。
  3. 网络层的IP寻址、路由选择及ICMP协议。
  4. 传输层的TCP与UDP协议,及其在端到端通信中的作用。
  5. 简要介绍了上三层(应用层面)的基本功能。

理解OSI模型的分层思想,是进行网络故障排查、协议分析和网络设计的基石。下一节中,我们将结合OSI模型,探讨常见的网络攻击(如DDoS攻击)原理及其防御思路,并继续深化对网络实际运维的理解。

CCNA网络技术:第5节:OSI模型详解(第二部分)📚

在本节课中,我们将深入学习OSI模型的第三层(网络层)和第四层(传输层),并了解它们在实际网络通信中的核心作用。我们还将探讨一些相关的网络安全概念,并学习如何连接和使用网络模拟设备。


回顾:OSI模型第三层(网络层)

上一节我们介绍了OSI模型的基本框架,本节中我们来看看网络层的具体功能。

网络层主要负责跨网段的数据转发,这是其最核心的工作。在网络层中,最重要的两个概念是路由IP地址

网络层的核心协议

除了路由和IP,网络层还包含一个重要的协议:ICMP

ICMP是Internet Control Message Protocol(互联网控制消息协议)的缩写。它主要用于网络诊断和错误报告。ICMP包含两个常用的工具:

  • Traceroute:用于检查数据包从源到目的地所经过的路径。其主要作用是检查路径,帮助我们了解数据包传输的全局路由。
  • Ping:用于检查网络连通性。其主要作用是检查通不通,即测试两台设备之间是否可以通信。

在Ping的过程中,数据包的大小是可以调整的。例如,在命令中可以使用 -l 参数指定数据包大小,但其最大值通常为 65500字节

早期攻击:利用超大Ping包发起的攻击被称为 Ping of Death(死亡之Ping),这是早期DDoS攻击的一种形式。其原理是让大量主机同时向目标发送巨大的Ping包,消耗目标的带宽和处理能力。


现代DDoS攻击与防御

上一节我们提到了早期的攻击方式,本节中我们来看看现代更常见的攻击手段。

现代的DDoS攻击已经很少使用Ping,而是采用 UDP洪水攻击。与需要回复的Ping包不同,UDP攻击是无连接的,攻击者只是单向地、持续地向目标发送大量UDP数据包,耗尽目标的带宽资源。

以下是关于DDoS攻击的两个关键方面:

攻击来源

DDoS攻击流量通常来源于被黑客控制的、感染了病毒的计算机,这些计算机被称为 “肉鸡”。攻击者通过网页挂马、捆绑恶意软件、利用软件漏洞等方式传播病毒,远程控制这些“肉鸡”,并利用它们发起协同攻击。

为了控制这些散布各处的“肉鸡”,攻击者常使用 DDNS 服务。由于大多数“肉鸡”和攻击者自身都使用动态IP(如家庭宽带),IP地址会经常变化。攻击者会申请一个固定的域名,并通过DDNS服务使其始终解析到攻击者当前的控制端IP上,这样“肉鸡”就能随时找到控制端。

解决方案

面对DDoS攻击,一个常见的应急措施是 封禁IP。但需要注意的是,封禁的不是攻击者的IP(因为攻击源成千上万,无法逐一封禁),而是封禁被攻击服务器的IP地址

具体操作是,将受到攻击的服务器IP地址上报给上级网络运营商,由运营商在骨干网上将该IP的流量导入“黑洞”(即丢弃所有发往该IP的流量),从而保护机房内其他服务器不受影响。单纯拔掉被攻击服务器的网线是无效的,因为攻击流量依然会到达网络总出口并造成拥堵。

重要提示:对于大型网络,部署流量监控系统至关重要。没有它,在发生攻击时你将难以快速定位问题根源。


传输层:TCP与UDP

理解了网络层的寻址和路由后,本节我们来看看传输层如何管理数据的传输方式。

传输层位于网络层之上,负责建立端到端的通信。最常见的传输层协议是 TCPUDP。它们都基于IP协议工作,但提供了截然不同的数据传输服务。

TCP:传输控制协议

TCP是一种面向连接的、可靠的传输协议。它在数据传输前需要进行“三次握手”来建立连接,确保通信双方都已准备好。

TCP三次握手过程

  1. 客户端发送 SYN 报文给服务器,请求建立连接。
  2. 服务器回复 SYN-ACK 报文,表示同意建立连接。
  3. 客户端再发送 ACK 报文进行最终确认。至此,连接建立。

TCP的可靠性体现在确认和重传机制上。发送方发送数据后,会等待接收方的确认回复。如果未收到确认,发送方会重传数据,确保数据最终能完整到达。因此,TCP适用于对数据完整性要求高、但对实时性要求不高的场景,例如:

  • 网页浏览
  • 电子邮件
  • 文件传输

UDP:用户数据报协议

UDP是一种无连接的、不可靠的传输协议。它不建立连接,直接发送数据,也不提供确认和重传机制。

UDP的优势是速度快、开销小。它适用于对实时性要求高、能容忍少量数据丢失的场景,例如:

  • 视频会议
  • 在线直播
  • 语音通话
  • DNS查询

关联知识组播技术通常与UDP结合使用,用于实现一对多的高效数据传输(如视频直播),避免发送方为每个接收者复制一份数据流。


协议层次总结

通过OSI模型,我们可以清晰地理解网络协议的层次关系:

  1. 网络层:以 IP协议 为核心,负责逻辑寻址和路由,为数据包选择路径。
  2. 传输层:包含 TCPUDP 等协议,负责定义数据传输的方式(是否可靠、是否面向连接)。
  3. 应用层:包含 HTTP、FTP、SMTP 等协议,这些是最终面向用户的具体网络服务。它们都建立在底层的TCP/IP协议栈之上。

这种分层结构使得网络设计模块化,每一层只需关注自己的核心功能,通过标准的接口与上下层交互。


实验环境搭建与设备连接

理论需要实践来巩固,本节我们将学习如何搭建实验环境并连接网络设备。

我们将使用 EVE-NG 网络模拟器来创建实验环境。以下是基本步骤:

  1. 启动EVE-NG虚拟机:导入并启动EVE-NG的虚拟机镜像。
  2. 配置网络连接:将虚拟机的网络适配器设置为 VMnet1(仅主机模式)。在本机电脑上,为VMnet1网卡配置一个与EVE-NG管理IP在同一网段的IP地址。
  3. 登录Web界面:在浏览器中输入EVE-NG的管理IP地址(如 http://192.168.10.100),使用默认用户名 eve 和密码 eve 登录。
  4. 创建实验拓扑
    • 在界面中添加新实验。
    • 从设备列表中拖入所需设备,如路由器(选择 vIOS3725 镜像)和交换机(选择 vIOS L2 镜像)。
    • 使用连线工具连接设备接口。
  5. 启动并连接设备
    • 右键点击设备,选择 Start 启动。
    • 将鼠标悬停在设备上,会显示其Telnet连接端口号(如 32769)。
    • 使用终端软件(如SecureCRT)新建Telnet连接,地址为EVE-NG的IP,端口为设备对应的端口号,即可登录设备进行配置。

本节课总结

本节课中我们一起学习了:

  1. OSI模型网络层的深入知识,包括路由、IP地址以及ICMP协议中的Ping和Traceroute工具。
  2. 现代 DDoS攻击 的原理、来源和基本的防御思路。
  3. 传输层 的核心协议 TCPUDP,理解了它们面向连接/无连接、可靠/不可靠的特性及其适用场景。
  4. 网络协议的层次化模型,明确了从IP到TCP/UDP,再到上层应用协议的承载关系。
  5. 如何使用 EVE-NG 模拟器搭建实验环境并连接虚拟网络设备,为后续的动手实验打下基础。

通过本课的学习,你应该对数据在网络中是如何被寻址、路由以及可靠或高效地传输有了更清晰的认识。这些概念是理解更复杂网络技术的基础。

思科认证CCNA网络技术:第6节:基础命令集教程 🖥️

在本节课中,我们将学习思科网络设备的基础命令集。我们将从连接设备开始,逐步了解不同的操作模式、基本配置命令以及一些实用的工程技巧。通过本教程,初学者可以掌握配置和管理思科设备的基本技能。

设备连接与初始界面

上一节我们介绍了模拟器的使用方法,本节中我们来看看如何连接设备并进行初始操作。

当我们首次连接一台未配置的思科设备(路由器或交换机)时,会看到以下提示:

Would you like to enter the initial configuration dialog? [yes/no]:

这个提示询问是否要进入初始配置向导。配置向导是一种逐步引导用户完成基本设置的图形化或命令行工具。然而,对于灵活和高级的配置,我们通常选择手动命令行模式。

输入 no 并按下 Ctrl+C 可以退出向导,进入自由的命令行模式。

认识命令行模式

思科设备的命令行界面分为几个不同的模式,每个模式有不同的功能和权限。理解这些模式是进行配置的基础。

用户模式

退出配置向导后,我们首先进入的是用户模式。提示符为设备主机名后跟一个大于号 >,例如 Router>

  • 功能:主要用于查看有限的设备信息。
  • 限制:不能进行任何配置更改,能查看的信息也非常有限。

特权模式

在用户模式下输入 enable 命令,可以进入特权模式。提示符变为井号 #,例如 Router#

  • 功能:可以查看设备的所有信息,并能执行一些全局性操作,如保存配置、删除文件等。
  • 命令示例
    • show running-config:查看当前运行配置。
    • copy running-config startup-config:保存配置。
    • erase flash::擦除闪存中的文件(如IOS系统文件)。

全局配置模式

在特权模式下输入 configure terminal 命令,可以进入全局配置模式。提示符变为 (config)#,例如 Router(config)#

  • 功能:用于配置设备的全局性参数,这些设置会影响整个设备。
  • 配置示例:修改主机名、启用路由协议、设置全局访问控制列表等。

接口配置模式

在全局配置模式下,输入 interface 命令加上接口名称(如 interface fastEthernet 0/0),可以进入接口配置模式。提示符变为 (config-if)#

  • 功能:用于配置特定接口的参数,如IP地址、开启/关闭接口等。
  • 配置示例
    interface fastEthernet 0/0
     ip address 192.168.1.1 255.255.255.0
     no shutdown
    

模式切换与退出

以下是如何在不同模式间切换和退出的关键命令:

  • enable:从用户模式进入特权模式。
  • disable:从特权模式退回用户模式。
  • configure terminal (可简写为 conf t):从特权模式进入全局配置模式。
  • interface <接口名>:从全局配置模式进入特定接口配置模式。
  • exit逐级退出当前模式,返回上一级模式。
  • endCtrl+Z直接退出所有配置模式,返回到特权模式。

养成清晰识别当前提示符模式的习惯,对于高效配置至关重要。

基础配置命令

现在,我们来看一些最常用的基础配置命令。

修改主机名

默认所有设备都叫 RouterSwitch,为了方便管理,首先应修改主机名。

在全局配置模式下使用 hostname 命令:

hostname R1

主机名中不能包含空格,虽然支持一些特殊字符,但建议使用简洁明了的字母和数字组合。在实际项目中,应遵循公司的命名规范(如 IDC-Public-SW-01),而不是简单的R1、R2。

配置接口IP地址

为设备的接口配置IP地址是网络通信的基础。

  1. 进入接口配置模式:
    interface fastEthernet 0/0
    
  2. 配置IP地址和子网掩码:
    ip address 192.168.1.1 255.255.255.0
    
  3. 思科路由器接口默认是关闭(shutdown)状态,必须使用 no shutdown 命令手动开启:
    no shutdown
    

查看设备信息

show 命令是用于查看设备状态和信息的最重要命令。

以下是几个常用的 show 命令:

  • show running-config:查看设备当前正在使用的所有配置。
  • show version:查看设备型号、IOS系统版本、运行时间、接口数量、内存等基本信息。
  • show ip interface brief非常常用,以简洁格式查看所有接口的IP地址、物理状态和协议状态。
    • 状态解读
      • Status (物理状态):up 表示管理员已开启(no shutdown),down 表示管理员关闭(shutdown)或接口故障。
      • Protocol (协议状态):up 表示链路正常(已连接线缆且对端设备正常),down 表示链路故障(未接线或对端问题)。
      • 如果 Statusdown,那么 Protocol 一定是 down

设备密码设置

为了设备安全,需要设置不同用途的密码。

1. 特权模式密码 (Enable Password)

此密码用于从用户模式进入特权模式。

在全局配置模式下设置:

enable password cisco

或者使用更安全的加密方式(设置后查看配置显示为密文):

enable secret cisco123

注意:设置密码时,末尾不要无意中添加空格,否则空格会成为密码的一部分,导致无法登录。

2. 远程登录密码 (Telnet/SSH Password)

此密码用于通过Telnet或SSH远程登录到设备。

  1. 进入VTY线路配置模式(用于管理远程登录会话):
    line vty 0 4
    
    0 4 表示同时支持5个远程连接会话)
  2. 设置登录密码:
    password cisco
    
  3. 启用登录验证:
    login
    

3. 本地用户名密码认证 (Local Username/Password)

更安全的管理方式是使用用户名和密码组合进行认证。

  1. 在全局配置模式下创建本地用户:
    username CCIE password CCIE
    username admin password admin123
    
  2. 在VTY线路下指定使用本地用户数据库进行认证:
    line vty 0 4
     login local
    

这样,远程登录时就需要输入正确的用户名和密码。这种方式便于审计,因为日志可以记录是哪个用户执行了操作。

密码加密:为了防止配置文件中密码明文显示,可以在全局配置模式下使用命令对所有密码进行加密:

service password-encryption

工程实用技巧 (“工程三招”)

在实际工程和维护中,有三个小技巧可以极大提升配置效率。注意:这些技巧主要用于自己维护的设备或实验环境,在严格的客户生产环境中可能不符合安全规范,需谨慎使用。

第一招:关闭域名解析

命令no ip domain-lookup
作用:当输入错误命令时,设备默认会尝试将其当作域名去查询DNS服务器,导致命令行卡住约30秒等待超时。关闭此功能后,输入错误命令会立刻报错。
配置位置:全局配置模式。

第二招:关闭会话超时

命令no exec-timeout
作用:默认情况下,控制台会话在一段时间无操作后会自动退出(超时),需要重新登录。此命令可以关闭超时,使会话一直保持,方便长时间调试。
配置位置:线路配置模式 (line console 0)。

第三招:开启日志同步

命令logging synchronous
作用:设备产生的日志消息有时会打断正在输入的命令行,导致界面混乱。开启此功能后,日志消息不会打断输入行,而是会新起一行显示,使配置界面更清晰。
配置位置:线路配置模式 (line console 0)。

配置辅助工具

熟练使用命令行工具可以提高配置速度。

  1. 问号 ? 帮助:在任何位置输入 ?,可以查看当前可用的命令或参数列表。这是学习命令和排除输入错误的最佳工具。
  2. Tab键补全:输入命令的前几个字母后按 Tab 键,可以自动补全命令。如果有多个可能选项,多次按 Tab 可以循环切换。
  3. 命令简写:思科IOS支持命令简写,只要输入的字符能唯一标识该命令即可。例如:
    • conf t 代表 configure terminal
    • int f0/0 代表 interface fastEthernet 0/0
    • sh run 代表 show running-config
      熟练后使用简写可以极大提升输入效率。

总结

本节课中我们一起学习了思科网络设备的基础命令集。我们从连接设备开始,认识了用户模式、特权模式、全局配置模式和接口配置模式等核心概念。我们学习了如何修改主机名、配置接口IP、使用 show 命令查看信息,以及设置特权密码和远程登录密码。此外,我们还介绍了一些提升效率的工程技巧和配置辅助工具。

掌握这些基础命令是进行更复杂网络配置的基石。请务必在实验环境中反复练习,直到能够熟练、快速地在不同模式间切换并完成基本配置。

思科认证CCNA网络技术:第7节:静态路由配置详解 🚀

在本节课中,我们将要学习网络通信中的一个核心概念——跨网段互通,并重点掌握实现这一功能的关键技术之一:静态路由。我们将了解静态路由的原理、配置方法、应用场景以及与动态路由的区别。


概述:路由与跨网段通信

上一节我们介绍了网络设备和基础配置命令。本节中我们来看看如何让数据在不同网段之间传输,这主要依赖于路由器及其路由表。

路由器最主要的作用是实现跨网段的数据转发。当数据到达路由器后,路由器需要查询其路由表来决定将数据包发往何处。路由表可以通过多种方式构建,其中两种主要方式是静态路由动态路由。我们的目标是学习如何正确构建这张表,因为错误的路径会导致数据绕远、延迟,甚至产生路由黑洞(数据无法到达目的地)。


静态路由与动态路由

首先,我们来区分静态路由和动态路由的核心概念。

  • 静态路由:由网络管理员手动配置,一条一条写入设备。其优点是稳定、可控,但缺点是维护工作量大,尤其是在大型网络中。
  • 动态路由:由网络设备(如路由器)之间通过特定的路由协议(如OSPF、EIGRP)自动学习并同步路由信息。其优点是能自动适应网络变化,减少人工配置,但在网络不稳定时可能出现路由抖动(路径频繁切换)。

传统观念认为静态路由只适用于中小型网络。但实际上,在追求极高稳定性的场景(如运营商骨干网)中,即使网络规模很大,也会大量使用静态路由。在实际工作中,通常是静态路由和动态路由结合使用


静态路由的两种类型

静态路由主要分为两种:普通静态路由和默认静态路由。

以下是两种类型的核心区别:

  1. 普通静态路由
    • 定义:指向特定目标网络或主机的明细路由条目。
    • 格式ip route [目标网络] [子网掩码] [下一跳地址]
    • 示例ip route 192.168.3.0 255.255.255.0 192.168.1.2
    • 含义:去往 192.168.3.0/24 网段的数据包,全部发送给地址为 192.168.1.2 的下一台设备。

  1. 默认静态路由
    • 定义:一条“包罗万象”的路由,当数据包的目标地址与路由表中的任何明细条目都不匹配时,将使用这条路由。通常用于连接互联网的出口。
    • 格式ip route 0.0.0.0 0.0.0.0 [下一跳地址或出接口]
    • 示例ip route 0.0.0.0 0.0.0.0 192.168.1.1
    • 含义:所有目的地未知的数据包,都发送给地址为 192.168.1.1 的网关设备。这类似于我们个人电脑上设置的“默认网关”。

注意:当设备上同时存在明细路由和默认路由时,路由器遵循最长匹配原则。即,它会选择子网掩码最长的、最精确的那条路由进行转发。


实验:配置静态路由实现互通

接下来,我们通过一个实验来演示如何配置静态路由。我们搭建一个包含三台路由器(R1, R2, R3)的拓扑。

实验拓扑与地址规划:

  • R1 与 R2 互联:192.168.1.0/24 (R1: .1, R2: .2)
  • R2 与 R3 互联:192.168.2.0/24 (R2: .1, R3: .2)
  • R3 上创建一个环回接口(Loopback)模拟一个网段:3.3.3.3/32

目标:让 R1 能够 ping 通 R3 的环回地址 3.3.3.3

配置步骤:

  1. 基础IP配置:为各接口配置上述IP地址。
  2. 在R1上配置静态路由:R1需要知道如何去往 3.3.3.3。下一跳是 R2。
    R1(config)# ip route 3.3.3.3 255.255.255.255 192.168.1.2
    
  3. 在R2上配置静态路由:R2收到目标为 3.3.3.3 的数据包后,需要知道如何转发给 R3。
    R2(config)# ip route 3.3.3.3 255.255.255.255 192.168.2.2
    
  4. 在R3上配置回程路由:数据包从 R1 成功到达 R3 后,R3 需要回复。回复包的源IP是 3.3.3.3,目标IP是 R1 的 192.168.1.1。因此,R3 需要知道如何去往 192.168.1.1
    R3(config)# ip route 192.168.1.1 255.255.255.255 192.168.2.1
    

    关键概念:网络通信是双向的,必须确保去程和回程都有正确的路由。

配置完成后,在 R1 上执行 ping 3.3.3.3 应该能够成功。可以使用 show ip route 命令查看路由表,确认静态路由条目(以 S 标识)是否存在。


高级概念与排错工具

在配置和排查路由问题时,以下工具和概念非常有用:

  • traceroute 命令:用于追踪数据包从源到目的地所经过的路径。当网络不通时,可以精确定位故障发生在哪一跳设备。命令为 traceroute [目标地址]
  • CEF(Cisco Express Forwarding):思科快速转发表。这是现代路由器使用的核心转发机制。它并非直接查询复杂的路由表,而是根据路由表生成一个高效的转发信息库(FIB),极大地提高了数据包转发速度。
  • 负载均衡:当存在多条等价路径到达同一目的地时,路由器可以进行负载均衡。常见方式有:
    • 基于数据包:轮流使用不同路径发送数据包(可能造成数据包乱序)。
    • 基于CEF的流负载均衡:根据数据流的五元组(源IP、目的IP、源端口、目的端口、协议)哈希决定路径,同一流的数据走同一路径,这是更优的选择。


总结

本节课中我们一起学习了静态路由的核心知识。我们首先理解了路由器通过路由表实现跨网段通信的原理,然后重点学习了静态路由的手动配置方法,包括普通静态路由默认静态路由。通过实验,我们掌握了如何通过配置双向路由来实现网络互通,并了解了 tracerouteCEF 等重要的排错和转发概念。

记住,路由是网络的基础,而静态路由是构建可控、稳定网络环境的基石。下一节,我们将开始探索能够自动适应网络变化的动态路由协议

思科认证CCNA网络技术:第8节:设备管理与动态路由基础 🚀

在本节课中,我们将学习两个关键的设备管理操作:如何破解设备密码以及如何使用Xmodem模式上传IOS系统。随后,我们将深入探讨动态路由协议的基础概念,包括其分类、工作原理以及路由表的选择标准。这些知识是构建稳定、高效网络的基础。

设备密码恢复 🔑

上一节我们学习了静态路由的配置。本节中,我们先来看看当忘记设备密码时,如何进行恢复。其核心原理是阻止设备在启动时加载保存了密码的配置文件。

密码恢复原理与步骤

密码保存在名为 config.text 的配置文件中。设备每次启动时,会按顺序执行:硬件自检 -> 启动IOS系统 -> 加载 config.text 配置文件。我们的目标是在启动过程中,让设备“找不到”这个配置文件,从而跳过密码验证,进入无配置状态。

以下是具体的操作步骤:

  1. 连接并重启设备:通过Console线连接设备。关闭设备电源后再打开,在启动过程中立即并持续按住设备上的 Mode 键(部分设备可能是其他快捷键,如 Ctrl+Break,需查阅设备手册)。
  2. 进入引导模式:成功后会进入 switch: 提示符的引导模式(类似电脑的BIOS)。
  3. 修改配置文件名称:在此模式下,加载闪存并重命名配置文件,使其无法被正常识别。
    flash_init
    dir flash:
    rename flash:config.text flash:config.old
    
  4. 正常启动设备:重启设备。由于找不到 config.text,设备会进入初始设置向导,此时无密码。
  5. 恢复配置并修改密码:进入特权模式,将配置文件改回原名,然后设置新密码并保存。
    enable
    rename flash:config.old flash:config.text
    copy flash:config.text system:running-config
    configure terminal
    enable secret cisco
    write memory
    
  6. 重启验证:重启设备,使用新密码 cisco 即可登录。原有配置得以保留,仅密码被更新。

注意:不同品牌、型号的设备进入引导模式的方法和命令可能略有不同,操作前请务必参考官方文档。

使用Xmodem上传IOS 📤

接下来我们看看当设备IOS系统损坏或需要升级时,如何通过最基础的Console线进行恢复。这种方法速度较慢,通常在其他方式(如TFTP/FTP)失败时使用。

Xmodem使用场景与步骤

当通过常规方式升级IOS失败,导致设备无法启动到正常系统时,我们可以进入引导模式,通过Xmodem协议从本地计算机直接上传IOS镜像文件到设备的闪存中。

以下是操作流程:

  1. 进入引导模式:参照密码恢复的步骤1-2,使设备进入 switch: 引导模式。
  2. 准备上传:在引导模式下,使用 xmodem 命令指定接收文件的路径和名称。
    flash_init
    dir flash:
    copy xmodem: flash:c2900-universalk9-mz.SPA.152-4.M3.bin
    

    提示:文件名 c2900-universalk9-mz.SPA.152-4.M3.bin 应替换为你要上传的实际IOS文件名。

  3. 开始传输:执行命令后,终端软件(如SecureCRT)会弹出文件选择窗口。选择本地的IOS镜像文件开始传输。传输速度约为1KB/s,请耐心等待。
  4. 设置启动并重启:传输完成后,将新的IOS设置为启动文件,然后重启设备。
    boot flash:c2900-universalk9-mz.SPA.152-4.M3.bin
    reload
    

动态路由协议基础 🛣️

在掌握了设备管理操作后,我们将视角转向网络的核心功能——路由。动态路由协议使网络设备能够自动学习并更新路由信息,大大简化了大型网络的管理。

动态路由概述

与需要手动逐条配置的静态路由不同,动态路由要求网络中的路由器都运行相同的路由协议。它们之间会自动交换路由信息,并独立计算到达目标网络的最佳路径,最终将最优路径放入路由表。

根据协议算法和设计目标,动态路由协议主要有两种分类方式。

协议分类一:算法类型

这种分类依据协议传递和计算路由信息的方式。

  • 距离矢量协议:此类协议(如RIP、EIGRP)的工作方式是,路由器将自己路由表中的条目通告给邻居。邻居可能继续向外通告,这可能导致“以讹传讹”——如果一台路由器选择了非最优路径,它通告出去的路径信息也会影响其他路由器的决策,容易造成次优路径问题。
  • 链路状态协议:此类协议(如OSPF、IS-IS)的工作方式是,路由器向整个网络通告自己直连的链路状态信息(如接口、带宽、邻居)。每台路由器都会收集这些信息,构建出完整的网络拓扑图,并独立计算出到达所有目标的最短路径。这种方式避免了“以讹传讹”,但对设备资源要求较高。

重要理解:距离矢量和链路状态只是算法类型的不同,并无绝对的优劣之分。OSPF的广泛应用主要因为它是开放标准,而EIGRP历史上是思科私有协议。在实际选择时,需考虑网络环境、设备兼容性和具体需求。

协议分类二:应用范围

这种分类依据协议使用的网络范围。

  • 内部网关协议:用于在单一自治系统内部交换路由信息,如一个公司、一个数据中心内部。常见的IGP协议有RIP、EIGRP、OSPF、IS-IS。它好比城市内的主干道。
  • 外部网关协议:用于在不同自治系统之间交换路由信息,如企业网与运营商之间、不同运营商之间。最主要的EGP协议就是BGP。它好比连接城市与城市之间的高速公路。

路由表与选路原则 ⚖️

无论使用何种协议,最终目标都是生成路由表。当有多条路径可达同一目的地时,路由器依据以下严格顺序进行选择:

  1. 最长前缀匹配:优先选择子网掩码最长的路由条目,因为它指向的网络范围更精确。
  2. 管理距离:如果掩码长度相同,则比较来源的可信度。管理距离值越小,可信度越高。
    • 直连接口0
    • 静态路由1
    • EIGRP90
    • OSPF110
    • RIP120
  3. 度量值:如果前两者都相同(例如,来自同一路由协议的多条路径),则比较协议内部定义的度量值(如RIP的跳数、OSPF的成本),值越小路径越优。

举例说明
假设路由表中有两条路由:

  • R 192.168.1.0/24 [120/2] via 10.1.1.1
  • O 192.168.0.0/16 [110/10] via 10.1.1.2
    要去往 192.168.1.10,路由器首先看掩码:/24/16 更长,因此无论管理距离优劣,都会选择RIP那条路由。

本节课中我们一起学习了设备密码恢复和Xmodem上传IOS的实用技能,并深入探讨了动态路由协议的核心概念。我们了解了距离矢量与链路状态协议的区别,IGP与EGP协议的应用场景,以及路由器选择最佳路径的三大黄金法则:最长匹配、管理距离和度量值。理解这些基础原理,是后续配置和优化具体路由协议(如OSPF、EIGRP)的坚实基石。

思科认证CCNA网络技术:第9节:EIGRP协议详解 🚀

在本节课中,我们将深入学习思科私有协议EIGRP(增强型内部网关路由协议)。我们将探讨其工作原理、核心算法、配置方法以及它为何在某些网络环境中备受青睐。


协议概述与背景

上一节我们介绍了静态路由以及距离矢量与链路状态协议的区别。本节中,我们来看看一个结合了二者特点的协议——EIGRP。

EIGRP全称为增强型内部网关路由协议。它是思科私有协议IGRP的升级版,后期已对其他厂商开放。虽然OSPF协议更为普及,但在一些全思科设备构成的环境中(如部分银行或外企网络),EIGRP因其收敛速度快的优势仍被使用。

收敛速度:指网络拓扑发生变化后,路由协议重新计算并稳定到最优路径的速度。收敛越快,网络中断时间越短。


核心概念:管理距离与度量值

理解EIGRP前,需要回顾两个上节课提到的关键概念:

  • 管理距离 (Administrative Distance):用于比较不同路由协议获悉的、通往同一目的地的路由条目。数值越小,优先级越高。EIGRP的默认管理距离是 90
  • 度量值 (Metric):用于在同一路由协议内,比较通往同一目的地的不同路径。EIGRP使用一个复合度量值进行计算。

当一台设备从不同协议学到相同路由时,比较管理距离。当从同一协议(如EIGRP)的不同路径学到相同路由时,则比较度量值


EIGRP的复合度量值

EIGRP的度量值是一个复合值,默认参考以下两个参数进行计算:

  1. 带宽 (Bandwidth):路径中的最小带宽。
  2. 延迟 (Delay):路径的总延迟。

此外,它还可以选择性地参考可靠性(Reliability)、负载(Load)和MTU,但默认不启用。度量值的计算公式相对复杂,我们只需知道它由带宽和延迟计算得出,用于选择最优路径。


EIGRP的工作机制与三张表

EIGRP通过三张表来维护路由信息:

  1. 邻居表 (Neighbor Table):记录所有建立了EIGRP邻居关系的直连路由器。
  2. 拓扑表 (Topology Table):包含从所有邻居那里学到的、通往目标网络的所有可能路由(需满足特定条件)。
  3. 路由表 (Routing Table):从拓扑表中选出最优路径(后继者)放入此表,用于实际数据转发。

以下是EIGRP的关键工作角色:

  • 后继者 (Successor):当前到达目的网络的最优下一跳路由器,其路由条目存放在路由表中。
  • 可行后继者 (Feasible Successor):到达目的网络的备份下一跳路由器,其路由条目存放在拓扑表中。要成为可行后继者,必须满足可行性条件(FC)。

可行性条件与快速收敛

EIGRP快速收敛的秘诀在于其可行后继者DUAL(弥散更新)算法

可行性条件 (Feasible Condition, FC):一个邻居要成为可行后继者,它通告的到达目的网络的度量值(称为通告距离,AD),必须小于本地路由器当前最优路径的可行距离 (FD)

可行距离 (FD):本地路由器到达目的网络当前最优路径的总度量值。
通告距离 (AD):邻居路由器通告的、它自己到达该目的网络的度量值。

简单比喻:你想买一部手机。最优路径(后继者)的朋友A说:“我进货价3000元,卖你4000元”(FD=4000)。备份路径(可行后继者)的朋友B说:“我进货价3500元”。由于3500(B的AD)< 4000(当前FD),B满足FC,成为可行后继者。如果A断联,你可以立即以“3500元+少量利润”的价格从B那里购买,实现快速切换。

如果拓扑表中没有满足FC的可行后继者,当主路径失效时,路由器会启动DUAL算法,向所有邻居发送查询(Query)报文,寻找新路径,并等待应答(Reply)。这个过程比直接切换要慢。


EIGRP的报文与邻居建立

EIGRP使用多种报文类型来维持邻居关系和交换路由信息:

  • Hello报文:用于发现和维持邻居关系。默认每5秒发送一次,保持时间为15秒。以组播方式发送到 224.0.0.10
  • Update报文:携带路由更新信息。在邻居关系建立时或拓扑变化时发送,采用增量更新(只发送变化的部分)和可靠传输(需要确认)。
  • ACK报文:确认收到的Update报文,以单播方式发送。
  • Query与Reply报文:在DUAL算法计算过程中使用。

建立EIGRP邻居必须满足以下条件:

  1. 收到对方的Hello报文。
  2. 双方配置的自治系统号(AS)相同。
  3. 计算度量值的K值(即权重因子,决定参考哪些参数)必须一致。


基础配置演示

以下是一个简单的三台路由器EIGRP配置示例,实现全网互通。

拓扑说明:

  • R1 - R2: 网段 192.168.1.0/24
  • R2 - R3: 网段 192.168.2.0/24
  • R1 环回口: 1.1.1.1/24
  • R3 环回口: 3.3.3.3/24

配置步骤:

  1. 在R1上配置:

    ! 进入全局配置模式
    configure terminal
    ! 启动EIGRP进程,自治系统号为100
    router eigrp 100
    ! 关闭自动汇总(重要,避免路由黑洞)
    no auto-summary
    ! 宣告直连网段(注意使用反掩码)
    network 192.168.1.0 0.0.0.255
    network 1.1.1.0 0.0.0.255
    
  2. 在R2上配置:

    configure terminal
    router eigrp 100
    no auto-summary
    network 192.168.1.0 0.0.0.255
    network 192.168.2.0 0.0.0.255
    
  3. 在R3上配置:

    configure terminal
    router eigrp 100
    no auto-summary
    network 192.168.2.0 0.0.0.255
    network 3.3.3.0 0.0.0.255
    

验证命令:

  • show ip route:查看路由表,应能看到以 D 标记的EIGRP路由。
  • show ip eigrp neighbors:查看EIGRP邻居表。
  • ping 3.3.3.3:在R1上测试与R3环回口的连通性。

总结

本节课中我们一起学习了EIGRP协议。我们了解到EIGRP是一个高级距离矢量协议,具有收敛快速的优点。其核心在于通过后继者可行后继者实现备份,并利用DUAL算法确保无环路径计算。我们掌握了其管理距离复合度量值三张表的关系,以及通过HelloUpdate等报文维持邻居和更新路由的机制。最后,我们完成了基础的EIGRP配置,实现了网络互通。

理解EIGRP的工作原理,对于构建稳定、高效的网络至关重要。

网络工程入门:01:行业介绍与职业规划 🚀

在本节课中,我们将要学习网络工程的基本概念、行业内的主要厂商、产业链结构以及网络工程师的职业发展路径。通过本节课,你将了解什么是网络,什么是网络工程,以及学习这门课程后能获得哪些技能,未来可以从事什么样的工作。

什么是网络与网络工程? 🌐

网络是由网络设备(如路由器、交换机)、线缆和主机(如计算机、服务器)连接在一起,使主机之间能够相互通信的计算机系统。网络中的主体是网络设备。

网络工程是指通过调试网络设备,实现网络联通的工作。从事网络工程的人被称为网络工程师,简称网工。

网络设备厂商 🏢

网络设备由特定的厂商制造。厂商可以分为一线和二线。

一线厂商

一线厂商产品线广,能提供网络领域几乎所有设备的解决方案。国内主要的一线厂商有三家:

  • 思科 (Cisco):美国公司,技术领先,是网络设备领域的标杆,类似于手机行业的苹果。其设备操作系统为 IOS
  • 华为 (Huawei):中国公司,从通信领域扩展到企业网络市场。其设备操作系统为 VRP
  • 新华三 (H3C):原为华为与3Com的合资公司,几经易手,现为清华紫光旗下。其设备操作系统早期与华为相同,现为 Comware

二线厂商

二线厂商产品线相对单一,通常专注于某个细分领域,例如:

  • 中兴 (ZTE)
  • 锐捷 (Ruijie)
  • 迈普 (Maipu)
  • 深信服 (Sangfor)

网络产业链结构 🔗

网络产业链主要包含以下几个角色:

厂商

负责研发、设计和生产网络设备及制定技术标准。

代理商

代理特定厂商的产品,负责销售、实施和售后服务。代理商内部主要角色有:

  • 销售:开拓客户,促成交易。
  • 售前工程师:配合销售,根据客户需求提供技术方案。
  • 售后工程师:负责设备交付、安装、调试、运维和故障排除。

集成商

规模较小的公司,业务灵活,可集成多家厂商的产品,为中小型项目提供一站式解决方案。员工往往身兼数职。

甲方

即采购方,如运营商、大型企业、数据中心等。甲方设立IT部门,负责制定IT战略、采购设备、管理项目并运维系统。甲方工程师需要了解技术,但更多侧重于规划、管理和协调。

网络工程师的技能与职业发展 🛠️

要成为一名合格的网络工程师(以售后为例),需要掌握三大核心技能:

  1. 网络通信原理:理解数据如何在网络中端到端传输,掌握 OSI/TCP/IP 模型及各种通信协议。
  2. 网络架构设计:了解不同场景(企业网、数据中心、运营商网络)的网络架构设计方法。
  3. 设备配置与排错:掌握登录和配置网络设备的方法,包括命令行(CLI)和新型的API(如NETCONF/RESTCONF)配置方式。

随着技能提升,工程师可以沿着以下路径发展:

  • 认证路径:从初级认证(如HCIA/CCNA)到中级认证(如HCIP/CCNP),最终到专家级认证(如HCIE/CCIE)。高级认证是获得高薪职位的重要敲门砖。
  • 职业路径
    • 乙方发展:从售后工程师起步,可转向售前工程师或销售,也可深耕技术成为技术总监。
    • 甲方发展:通常在乙方积累经验后,转向甲方的IT部门,工作更侧重于规划、管理和运维,相对稳定。

课程体系与学习建议 📚

我们的课程体系遵循从易到难的原则:

  • NA (初级):零基础入门,讲解网络基础框架、协议原理和基本命令。
  • NP (中级):深化路由交换等核心技术的理解,培养设计、分析和排错能力。
  • IE (专家级):网络技术的金字塔尖,是获得高薪和重要职位的保证。

对于初学者,首要且必须学习的方向是 路由交换(华为称为Datacom,思科称为EI),这是所有其他网络方向(如安全、无线、数据中心)的基础。

总结 📝

本节课我们一起学习了网络与网络工程的基本定义,认识了思科、华为、新华三等主要设备厂商,了解了由厂商、代理商、集成商和甲方构成的产业链。我们还探讨了网络工程师所需的三大核心技能以及从初级到专家的认证与职业发展路径。最后,明确了以路由交换为基础开始学习的重要性。希望本节课能帮助你建立起对网络行业的整体认知,为后续的技术学习打下坚实的基础。

华为认证HCIA→HCIP→HCIE:P2:网络三要素

在本节课中,我们将学习网络的基础概念。我们将了解什么是网络、如何组建网络以及网络中通信的基本流程。这些知识是后续学习更复杂网络技术的基石。

什么是网络?

网络,这里特指计算机网络,是流量的载体。它承载数据流量,为各种应用程序提供数据传输能力。应用程序安装在计算机上,计算机连接网络后,应用程序之间通过网络媒介,利用其数据传输能力相互传输数据,最终目的是实现资源共享。

网络的三要素

网络主要由三个要素构成:

  1. 网络设备:也称为中间系统,如交换机和路由器。
  2. 终端:如计算机、打印机、服务器等。
  3. 介质:连接设备与终端的线缆,分为有线和无线两类。常见的有线介质包括同轴电缆、光纤和双绞线。

网络组建的过程很简单:采购网络设备,通过介质(线缆)将它们连接起来,再将终端连接到网络设备上。组建完成后,计算机之间的应用程序就可以利用网络进行通信,实现资源共享。

从工作组到互联网

工作组:网络的雏形

最早期的网络没有网络设备,只有终端和介质。例如,两台PC用一根线直接相连,这也构成一个网络,称为“工作组”。工作组通常指安装了Windows系统的主机通过双绞线(俗称网线)互联而成的网络,这是一种以太网。

然而,工作组有很大的缺陷:不可扩展。这体现在两个方面:

  1. 无法连接更多主机,因为主机的网卡接口有限。
  2. 主机间距离不能太远,因为双绞线传输数据有衰减,长度通常不超过100米。

引入网络设备:实现扩展

为了解决扩展性问题,我们引入了网络设备。网络设备主要有两个功能:

  1. 提供连接:拥有大量接口,可以连接众多终端。
  2. 流量中转:在主机通信时,负责转发数据。

在HCIA阶段,我们主要关注两类设备:

  • 交换机:接入设备,接口多,通常位于网络边缘,负责将终端(如PC、打印机)连接入网。
  • 路由器:非接入设备,接口相对较少,通常位于网络核心,负责连接多个网络。

网络与互联网

  • 网络:由交换机连接众多主机所组成的环境。一个网络中可以有多台交换机。
  • 互联网:由路由器将多个独立的网络连接在一起所形成的更大环境。

相应地,通信也分为两种:

  • 网络内通信:通信双方在同一个网络内。
  • 网络间通信:通信双方在不同的网络内,需要跨越路由器。

为何需要划分多个网络?

一个网络中的主机数量不宜过多,通常建议不超过200-300台。这是因为在网络通信中,主机会发送广播流量。广播流量会被网络内的所有主机接收和处理,即使这些流量对大多数主机无用,也会消耗带宽和CPU资源。

主机越多,广播流量越频繁,网络整体品质就越低。因此,需要通过路由器来分割广播域,将主机划分到不同的网络中。这样既能保证不同网络的主机通过路由器进行通信(单播),又能确保一个网络的广播流量不会影响到其他网络。

企业网与Internet

在实际组网中,我们通常关注的是企业园区网(内网)。企业网通过边界路由器连接到运营商的网络。全球运营商的网络相互连接,形成了最大的互联网——Internet

用户通过办理宽带业务接入运营商网络,进而连接到Internet,理论上可以访问其中的任何资源。企业网的边界路由器以内的部分是我们需要设计和维护的重点,之外的部分可以暂时理解为“外网”或“云”。

拓扑图

在设计网络时,需要先绘制网络连接图,即拓扑图。拓扑图主要分为两类:

  • 物理拓扑:如实反映所有网络设备(路由器、交换机)和链路(二层、三层)的连接情况。
  • 逻辑拓扑:省略二层设备和链路,只展示三层设备(主要是路由器)及其连接关系,更侧重于路由策略。

绘制拓扑图可以使用Visio等工具。

拓扑分类

拓扑分类描述的是网络设备连接方式的类型,主要有三种:

  1. 总线型拓扑:使用集线器连接主机。集线器已被淘汰。
  2. 星型拓扑:使用交换机连接主机。这是当前最主要的组网方式。
  3. 环形拓扑:使用支持特定协议(如令牌环)的环网交换机连接主机。这类协议和设备也已基本被淘汰。

当前,绝大多数网络都是基于以太网协议的星型网络。

局域网与广域网

局域网和广域网的传统定义(根据网络规模大小)已不准确。现在的理解更侧重于协议和用途:

  • 局域网:通常指内网,使用局域网协议(如以太网)。
  • 广域网:通常指Internet接入、运营商专线(MPLS VPN)或各种Overlay VPN(如IPSec VPN)连接。

关键在于:线缆上运行的数据传输协议是局域网协议,就是局域网;是广域网协议,就是广域网。

网络设备如何延伸距离?

网络设备具备信号放大功能。当数据经过交换机时,交换机会将衰减的信号还原清晰后再转发出去。因此,通过在多台交换机间级联,可以大大延长端到端的有效传输距离。

交换机接口分为:

  • 下联接口:连接终端,常用电口(连接双绞线)。
  • 级联接口:连接其他网络设备,常用光口(通过光模块连接光纤)。级联接口的带宽通常是下联接口的10倍,以满足上行流量汇聚的需求。

网络通信原理

网络通信的核心是数据封装与解封装

数据封装

当主机上的应用程序(如微信)产生需要发送的数据(称为载荷)时,不能直接发送。发送方主机会给数据添加三层“包头”:

  1. 传输层包头:包含源端口目的端口,用于标识发送和接收的应用程序。
  2. 网络层包头:包含源IP地址目的IP地址,用于在网络中定位发送方和接收方主机。
  3. 数据链路层包头:包含源MAC地址目的MAC地址,用于在一个网络内标识发送方和接收方的网卡。

添加了包头的数据单元称为数据帧。这个过程就像寄快递:数据载荷是货物,三层包头分别是小盒子、中盒子和大箱子,上面写明了寄件人和收件人信息。

数据转发

  • 交换机:查看数据帧的目的MAC地址,查询自身的MAC地址表,找到对应的接口进行精确转发。如果表中没有记录,则进行泛洪(向除接收口外的所有接口发送)。
  • 路由器:查看数据帧的目的IP地址,查询自身的路由表,确定下一跳。在转发前,路由器需要先解封装数据链路层包头。
  • 接收方主机:收到数据帧后,发现目的MAC地址与自己匹配,便开始解封装。逐层去掉包头后,根据目的端口号将数据载荷交给相应的应用程序处理。

总结一下:发送方封装,中间设备根据特定包头转发,接收方解封装并交付应用。

总线型网络 vs 星型网络

上一节我们介绍了网络通信的基本流程,本节我们来对比一下两种典型的网络形态。

总线型网络(基于集线器)

  • 带宽:共享式带宽(如10 Mbps),连接的主机越多,每台主机平均带宽越低。
  • 双工模式半双工。同一时间只能发送或接收,不能同时进行。双向流量同时存在会产生冲突,导致数据损坏。
  • 设备层级:集线器是物理层(一层)设备,看不懂数据帧的任何包头信息。
  • 转发方式:只能进行泛洪转发,效率低且不安全。
  • 冲突避免:依靠以太网协议中的CSMA/CD(载波侦听多路访问/冲突检测)机制。主机发送前先监听链路是否空闲,以减少冲突概率,但无法完全避免。
  • 冲突域:整个总线型网络是一个大的冲突域,任何冲突都会影响域内所有主机。

由于上述诸多缺点,集线器已被淘汰。

星型网络(基于交换机)

  • 带宽:独享式带宽,每个接口的带宽独立。
  • 双工模式全双工。可以同时发送和接收数据,没有冲突。
  • 设备层级:交换机是数据链路层(二层)设备,能识别数据帧的MAC地址包头。
  • 转发方式:支持精确转发(查MAC地址表)、泛洪(对广播、组播和未知单播帧)和丢弃
  • 安全性:精确转发保证了数据只被目标主机接收,安全性高。
  • 无冲突域:在全双工模式下,没有冲突问题。

交换机全面优于集线器,是现代网络的标准接入设备。

总结

本节课我们一起学习了网络的基础概念。我们了解了网络的定义、三要素(设备、终端、介质),以及从简单的工作组发展到复杂互联网的过程。我们明确了交换机(用于网络内连接和转发)和路由器(用于网络间连接和转发)的不同角色与定位。

我们还学习了拓扑图的概念、局域网与广域网的新定义,并深入探讨了网络通信的核心——数据封装与转发流程。最后,通过对比总线型网络和星型网络,我们理解了交换机取代集线器的必然性。

记住,设计网络时,需要合理划分网络(广播域),控制每个网络的主机数量,并使用交换机和路由器来构建一个高效、可扩展的网络架构。

华为认证HCIA-DATACOM教程:P10:交换机工作原理详解 🖧

概述

在本节课中,我们将学习以太网的基础知识、交换机与集线器的核心区别,并深入剖析二层交换机的工作原理。我们将从控制层面和数据层面两个维度,理解交换机如何学习网络连接信息并高效转发数据。


以太网与网络接入设备

上一节我们介绍了OSPF等路由协议,其目的是让路由器了解网络拓扑并转发数据。本节中,我们来看看数据最终为谁转发——为计算机。那么,计算机如何接入网络?

在组网时,无论是企业网、数据中心还是运营商网络,终端设备通常不能直接连接到路由器。原因在于路由器接口较少,且每个接口分隔一个广播域,直接连接主机会造成接口浪费且地址规划不便。因此,在路由器与主机之间,需要一种接入设备

历史上主要有两类接入设备:

  • 集线器 (Hub): 一种物理层(一层)设备,智能性低,已基本被淘汰。
  • 交换机 (Switch): 数据链路层(二层)设备,由以色列公司开发,可视为集线器的智能升级版,在功能性、转发能力上远强于集线器。

交换机又可分为两大类:

  1. 二层交换机: 传统的以太网交换机,工作在数据链路层。
  2. 多层交换机 (MLS): 集成了交换机和路由器功能的设备,更为复杂。

在企业网中,接入层多使用二层交换机,汇聚层和核心层则可能使用多层交换机。


网络拓扑类型:总线型 vs. 星型

根据使用的接入设备不同,会形成两种主要的以太网拓扑:

  • 总线型以太网: 使用集线器连接计算机组建的网络。
  • 星型网络: 使用交换机连接计算机组建的网络。

无论哪种拓扑,都使用以太网协议进行通信。


集线器的工作原理与缺陷

使用集线器组建的总线型网络存在诸多严重缺陷,这也是其被淘汰的原因。

以下是集线器的主要问题:

  1. 带宽共享且低下: 集线器接口带宽通常只有10Mbps,且所有连接设备共享这10Mbps带宽。连接设备越多,每台设备可用带宽越少。
  2. 半双工模式与冲突: 集线器接口工作在半双工模式。这意味着同一时间,链路上只能存在一个方向的流量。如果发送和接收同时进行,数据会发生碰撞,产生冲突碎片,导致通信失败。
  3. CSMA/CD机制: 为了尽可能减少冲突,以太网采用了载波侦听多路访问/冲突检测 (CSMA/CD) 机制。主机在发送前先监听链路是否空闲,空闲则发送,忙则等待。但这无法完全避免冲突(例如两台主机同时监听到空闲并发送)。
  4. 物理层设备的局限性: 集线器是物理层设备,这意味着它只能识别比特流,无法识别数据帧中任何二层(如MAC地址)或更高层的封装信息。由于看不懂目的地址,它采用一种简单的转发方式:泛洪 (Flooding)
    • 泛洪: 集线器从任一接口收到数据后,会将其复制多份,从除接收接口外的所有其他接口发送出去。
  5. 冲突域: 在总线型网络中,一旦发生冲突,冲突碎片会经集线器泛洪到全网。因此,整个网络(所有主机和集线器)处于同一个冲突域内。冲突域定义为冲突碎片所能影响到的设备集合。
  6. 组网限制(5-4-3规则): 使用集线器组网时有严格限制,例如一个网络中最多包含5台集线器,集线器间最大距离不超过400米等,严重限制了网络规模。

交换机的优势与工作原理

交换机全面解决了集线器的问题,是现代网络的核心设备。

交换机的核心优势

  1. 高带宽: 接口带宽起步为百兆(100Mbps),远高于集线器。
  2. 全双工模式: 交换机接口工作在全双工模式,可以同时收发数据,从根本上避免了冲突的产生
  3. 数据链路层智能: 交换机是二层设备,能够识别数据帧的二层帧头和帧尾(如MAC地址、帧校验序列FCS)。
  4. 基于MAC地址表转发: 交换机通过维护一张 MAC地址表(CAM表) 来记录网络连接信息,从而实现精确转发。
  5. 隔离冲突域: 交换机能够识别冲突碎片(通过检查FCS)并将其丢弃,不会转发。因此,交换机的每个物理接口都隔离了一个独立的冲突域

流量类型与广播域

在以太网中,流量按目标范围分为三类:

  • 单播 (Unicast): 一对一通信。帧头中源和目的MAC地址都是单播地址。
  • 组播 (Multicast): 一对多通信。帧头中源MAC为单播地址,目的MAC为组播地址。
  • 广播 (Broadcast): 一对所有(同一网络内)通信。帧头中源MAC为单播地址,目的MAC为广播地址(全F)。

对于广播流量,交换机(在未使用特殊技术时)的处理方式与集线器类似:泛洪。因此,一个交换机网络(默认所有接口在同一VLAN)中的所有主机属于同一个广播域。广播域定义为广播流量所能影响到的设备集合。

二层接口与三层接口的区别

  • 节点接口(三层及以上): 如路由器、PC、服务器的接口。需要配置IP地址才能进行三层通信。
  • 非节点接口(二层及以下): 如交换机、集线器的物理接口。只需连接网线即可工作,无需也无法配置IP地址(管理地址除外)。但交换机接口拥有MAC地址。

注意: 思科交换机每个物理接口有独立MAC地址;华为交换机所有物理接口默认共享同一个MAC地址。


以太网封装格式演进

以太网标准在发展过程中产生了两种主要的封装格式:

  1. 以太网II (Ethernet II)

    • 由IBM、施乐、DEC公司开发,后公有化。
    • 帧头简单,共14字节(6字节目的MAC + 6字节源MAC + 2字节类型)。
    • 类型字段 (Type) 用于标识上层网络层协议(如0x0800代表IPv4,0x0806代表ARP)。
    • 效率高,是数据流量主要的封装格式。
  2. IEEE 802.3

    • 由Novell公司的私有标准演化而来,经IEEE标准化。
    • 帧头更复杂,在14字节基础之上增加了LLC(逻辑链路控制)和SNAP(子网接入协议)头部,共22字节。
    • 通过SNAP中的类型字段标识上层协议,兼容性虽强但效率较低。
    • 历史上多用于控制协议流量(如生成树、VTP等),但现在也越来越多地被以太网II取代。

结论: 当前网络中,以太网II是绝对主流的封装格式,因其封装开销小,效率更高。


MAC地址详解

MAC地址(媒体访问控制地址)是数据链路层用于在网络内唯一标识设备的地址。

  • 构成: 48位(6字节),常用十六进制表示,如 00-1A-2B-3C-4D-5E001A.2B3C.4D5E
  • 分配: 由设备制造商烧录在网卡的ROM中,通常全球唯一。
  • 结构
    • 前24位:OUI(组织唯一标识符),代表厂商。
    • 后24位:由厂商分配。
  • 类型判断: 查看从左往右第二个十六进制数(即第8比特):
    • 若为偶数,则是单播地址
    • 若为奇数,则是组播地址
    • 若为 FF-FF-FF-FF-FF-FF,则是广播地址
  • 与IP地址对比
    • MAC地址: 物理地址,用于局域网内标识设备,一般不变。
    • IP地址: 逻辑地址,用于全球网络标识设备,随网络位置变化。

主机在通信时,若不知道目标的MAC地址,会使用ARP(地址解析协议) 来动态查询。


二层交换机工作原理详解

交换机的核心工作是基于MAC地址表进行数据帧的转发。其工作可分为控制层面和数据层面。

控制层面:MAC地址表的学习

MAC地址表(CAM表)记录了 MAC地址 - 接口 - VLAN 的映射关系。交换机通过以下方式学习表项:

  1. 动态学习(主要方式)
    • 交换机从某个接口收到一个数据帧时,会检查帧中的源MAC地址
    • 交换机会假定该源MAC地址对应的设备就连接在这个接收接口上。
    • 于是,它将 源MAC地址、接收接口、接口所属VLAN 作为一个表项记录到MAC地址表中。
    • 老化机制: 动态学习的表项不是永久的。如果一段时间(默认300秒)内没有再次收到该MAC地址发来的帧,表项会被自动删除。如果接口状态变为down,相关表项也会立即删除。

  1. 静态配置(辅助方式)
    • 管理员可以手动添加MAC地址表项。
    • 不灵活,通常不建议在大规模网络中使用。

数据层面:数据帧的转发决策

交换机收到一个数据帧后的处理流程如下:

  1. 检查帧完整性: 检查帧校验序列(FCS),如果是冲突碎片或错误帧,则直接丢弃。
  2. 学习源MAC: 将帧的源MAC地址和接收接口学习/更新到MAC地址表。
  3. 查找目的MAC: 查看帧的目的MAC地址,并在MAC地址表中查找匹配项。
  4. 转发决策: 根据查找结果,采取三种行动之一:
    • 情况A:未知单播/广播/组播(泛洪)
      • 如果目的MAC地址在表中查不到(对于单播),或者目的MAC是广播/组播地址,则交换机会进行泛洪
      • 泛洪: 将数据帧复制多份,从接收接口所属VLAN内所有其他活动接口发送出去。
      • 注意:交换机泛洪是基于VLAN的,这是与集线器泛洪的关键区别。
    • 情况B:已知单播,且出接口 != 入接口(精确转发)
      • 如果目的MAC地址在表中能查到,且查到的出接口不等于帧的接收接口。
      • 交换机将数据帧仅从查到的那个出接口发送出去。
    • 情况C:已知单播,且出接口 == 入接口(丢弃)
      • 如果目的MAC地址在表中能查到,但查到的出接口等于帧的接收接口。
      • 这意味着发送方和接收方连接在交换机的同一个接口上(可能下联了一个集线器)。如果转发,会导致接收方收到重复帧。
      • 为了避免重复帧,交换机会将数据帧丢弃

通信流程示例(主机A访问主机B)

假设主机A(IP_A, MAC_A) 首次访问同网段的主机B(IP_B, MAC_B):

  1. A检查ARP缓存,无B的MAC地址。
  2. A发送ARP请求广播帧(目的MAC=广播,目的IP=IP_B)。
  3. 交换机收到帧:
    • 学习源MAC_A和接口的映射。
    • 查表,目的MAC为广播,执行泛洪
  4. 主机B收到ARP请求:
    • 学习A的IP-MAC映射到ARP缓存。
    • 发送ARP应答单播帧(目的MAC=MAC_A,目的IP=IP_A)给A。
  5. 交换机收到ARP应答:
    • 学习源MAC_B和接口的映射。
    • 查表,目的MAC_A已知,且出接口 != 入接口,执行精确转发给A。
  6. A收到ARP应答,学习B的IP-MAC映射。此后双方即可进行单播通信,交换机进行精确转发。


实验与验证

通过模拟器(如eNSP)可以验证上述理论:

  1. 搭建包含PC、交换机、路由器的拓扑。
  2. 配置IP地址后,同网段PC可直接通信。
  3. 在交换机上使用 display mac-address 命令查看动态学习到的MAC地址表。
  4. 在PC上使用 arp -a 命令查看ARP缓存表。
  5. 使用抓包工具可以清晰看到ARP请求(广播,Opcode=1)和ARP应答(单播,Opcode=2)的过程,以及以太网II的封装格式。

总结

本节课我们一起学习了:

  1. 网络接入设备的演进: 从智能性低、存在冲突的集线器,发展到智能、高效的交换机。
  2. 核心概念辨析
    • 冲突域: 集线器共享,交换机接口隔离。
    • 广播域: 默认情况下,一个二层网络(一个VLAN)就是一个广播域,路由器用于分隔广播域。
    • 单播、组播、广播流量及其转发特点。
  3. 以太网封装: 理解了高效的以太网II格式及其类型字段的作用。
  4. MAC地址: 作用、结构、类型及其与IP地址的区别。
  5. 二层交换机核心工作原理
    • 控制层面: 通过动态学习数据帧的源MAC地址来构建MAC地址表。
    • 数据层面: 基于目的MAC地址和MAC地址表,做出泛洪、精确转发或丢弃的转发决策。
    • 掌握了完整的端到端通信流程(结合ARP)。

理解交换机的工作原理是掌握局域网技术的基础,也为后续学习VLAN、生成树等更复杂的交换技术做好了准备。

华为认证HCIA-DATACOM教程:P11:XCNA-11-VLAN

概述

在本节课中,我们将要学习交换机上最常用的技术之一——VLAN。VLAN是一个用于隔离广播域的二层工具,而非协议。我们将了解VLAN的作用、工作原理,以及交换机上三种关键的接口模式:Access、Trunk和Hybrid。通过本课的学习,你将掌握如何通过VLAN来规划和优化企业网络。


VLAN的基本概念与作用

上一节我们介绍了交换机的基本工作原理,本节中我们来看看VLAN这个核心工具。

VLAN的全称是Virtual Local Area Network,即虚拟局域网。它的核心作用是在二层交换机上实现广播域的隔离。

在设计网络时,一个广播域内的主机数量不宜过多(通常建议不超过300台)。如果主机数量过多,虽然通信仍能进行,但网络质量会变差。这是因为在一个以太网环境中,主机发送的广播帧(如ARP请求)会被同一广播域内的所有主机接收和处理,造成不必要的资源消耗和潜在的网络拥塞。

传统上,我们使用路由器来隔离不同的网络(广播域)。然而,路由器接口数量有限、成本较高,且其基于软件的三层转发效率低于交换机的硬件二层转发。因此,在企业内网中,我们更倾向于使用交换机作为主要互联设备。

那么,如何仅用交换机来实现网络隔离呢?答案就是使用VLAN。

VLAN的本质是一个二层隔离工具。交换机收到一个数据帧后,首先需要确定这个帧来自哪个VLAN。一旦确定,交换机就只能将该帧转发给同一VLAN内的其他成员。来自VLAN A的流量不能通过二层交换直接发送给VLAN B的成员。

  • 同一VLAN内的主机:IP地址属于同一网段,可以通过二层交换直接通信。
  • 不同VLAN间的主机:IP地址属于不同网段,它们之间的通信必须通过三层设备(如路由器或三层交换机)进行路由转发。

默认情况下,交换机所有接口都属于VLAN 1。因此,未配置VLAN时,所有连接的主机都在同一个广播域内。通过创建新的VLAN并将交换机接口划分到不同的VLAN,我们可以将一个大广播域分割成多个小的广播域。


交换机的接口模式

了解了VLAN的基本作用后,我们来看看交换机上如何配置接口以支持VLAN。以下是交换机三种主要的二层接口模式:

Access接口

Access接口通常用于连接终端设备,如PC、服务器或路由器。

  • 特点:一个Access接口只能属于一个VLAN,这个VLAN称为该接口的PVID。
  • 数据帧处理
    • 接收:收到不带VLAN标签的帧,会打上接口PVID的标签;收到带标签的帧,仅当标签VLAN ID与接口PVID一致时才接收。
    • 发送:在将帧发送给终端设备前,会剥离VLAN标签,因为终端设备无法识别带标签的帧。

Trunk接口

Trunk接口通常用于交换机之间的互联,以实现跨交换机的VLAN通信。

  • 特点:可以允许多个VLAN的流量通过,用于链路复用。有一个特殊的“本征VLAN”,默认为VLAN 1。
  • 数据帧处理
    • 接收:收到带标签的帧,根据标签确定VLAN;收到不带标签的帧,则认为是来自本征VLAN。
    • 发送:对于非本征VLAN的帧,携带标签发送;对于本征VLAN的帧,则不带标签发送。某些协议报文(如STP BPDU)必须在本征VLAN中不带标签传输。

Hybrid接口

Hybrid接口是华为设备的特色模式,兼具Access和Trunk接口的特性,提供了更灵活的标签控制能力。

  • 特点:可以以taggeduntagged方式加入多个VLAN。接口的PVID用于标识收到的无标签帧所属的VLAN。
  • 数据帧处理
    • 接收:根据是否带标签以及接口配置决定是否接收。
    • 发送:根据接口上针对该VLAN的配置是tagged还是untagged,决定发送时是否携带标签。这允许我们精细控制流量在何处剥离标签。

Hybrid接口的默认隐藏命令:华为交换机的Hybrid接口默认有两条隐藏命令:port hybrid pvid vlan 1port hybrid untagged vlan 1。这使得未配置的接口默认允许VLAN 1的流量以无标签方式通行。


VLAN的部署方式

根据VLAN成员关系的确定方式,可以分为静态部署和动态部署。

基于接口的静态VLAN部署

这是最常用、最标准的部署方式。

  • 方法:在交换机上创建VLAN,然后将交换机的接口(设为Access模式)静态绑定到特定的VLAN。
  • 特点:配置简单、稳定。接口连接的主机自动属于该接口绑定的VLAN。

基于MAC地址的动态VLAN部署

这种方式提供了设备移动的灵活性。

  • 方法:在交换机上创建VLAN,并将VLAN与主机的MAC地址进行绑定。连接主机的接口需设置为Hybrid模式,并untagged方式放行相关VLAN。
  • 特点:主机无论连接到网络中哪台交换机的哪个接口,只要其MAC地址已绑定,就能保持其VLAN身份不变。适用于小型网络或特定安全要求场景,大型网络配置维护工作量巨大。

其他动态VLAN部署方式(如基于IP子网、协议、策略)在实际应用中较少见。


VLAN间通信与802.1Q标签

要实现跨交换机的同一VLAN内通信,交换机间链路必须能够区分不同VLAN的流量。这是通过802.1Q标签实现的。

802.1Q帧格式:在标准的以太网帧头(目的MAC、源MAC、类型字段)之间,插入了4字节的802.1Q标签。

  • TPID:固定值0x8100,表明这是一个带802.1Q标签的帧。
  • Priority:3比特,用于QoS优先级。
  • CFI:1比特,通常为0。
  • VLAN ID:12比特,标识VLAN,范围1-4094。

通信流程示例

  1. PC1(VLAN 10)发送无标签帧给Switch1。
  2. Switch1从Access接口收到帧,打上VLAN 10的标签。
  3. Switch1通过Trunk链路将带VLAN 10标签的帧发送给Switch2。
  4. Switch2从Trunk接口收到带标签帧,识别出属于VLAN 10。
  5. Switch2将帧转发给目标PC2(VLAN 10)所在的Access接口,并在发送前剥离VLAN 10标签。
  6. PC2收到标准的无标签以太网帧。


总结

本节课中我们一起学习了VLAN技术的核心内容。

我们首先明确了VLAN是一个二层隔离工具,用于将大的广播域划分为多个小的广播域,从而提高网络效率和安全性。同一VLAN内主机可直接二层通信,不同VLAN间主机通信需要三层设备介入。

接着,我们深入探讨了交换机上支持VLAN的三种接口模式:连接终端的Access接口、交换机互联的Trunk接口,以及华为特色、功能灵活的Hybrid接口。每种接口对数据帧标签的处理方式是其关键区别。

然后,我们了解了VLAN的两种主要部署方式:最常用的基于接口的静态部署和基于MAC地址的动态部署

最后,我们学习了跨交换机VLAN通信的基础——802.1Q标签协议,它通过在以太网帧中插入VLAN ID标签,使得Trunk链路能够承载多个VLAN的流量。

掌握VLAN是构建高效、可管理企业网络的基础。在后续课程中,我们将学习如何实现不同VLAN之间的通信(如单臂路由、SVI),以及更高级的VLAN扩展技术。

华为认证HCIA-DATACOM教程:P12:XCNA-12-STP

概述

在本节课中,我们将学习生成树协议(STP)的核心原理。STP是二层网络中防止环路和广播风暴的关键协议。我们将从交换机的工作原理和缺陷入手,逐步理解环路产生的原因,并深入探讨STP如何通过选举机制阻塞冗余路径,构建无环网络拓扑,同时保证网络的高可用性。


交换机的工作原理与缺陷

上一节我们介绍了交换机的基本转发机制。本节中我们来看看交换机控制层面的一个重要缺陷。

交换机总会认为,通过一个接口收到一个帧,那么该帧的发送者主机就连在这个接收接口上。换句话说,交换机认为一个网络里所有能收到其数据的主机都直连在它的某个接口上。

由于这种认知,交换机无法真正了解网络的整体连接情况,其对于网络连接的认知是有缺陷的。

示例场景
假设有一台主机A连接在Switch1上,Switch1连接Switch2。当主机A发送数据时,Switch2能收到。Switch2会认为主机A连接在它接收数据的接口上。但实际上,这个接口连接的是Switch1,而Switch1身后才连接着主机A。

这种错误的连接认知,会导致在一个包含多台交换机的网络中,由于交换机的认知问题,引发交换环路和广播风暴。


冗余设计与环路问题

在设计网络时,我们通常使用交换机。一个标准的交换机通常有24个下行接口,最多连接24台主机。如果网络需要包含更多主机,就需要添加更多交换机,并将它们连接起来。

单点故障与冗余

如果网络中只有两台交换机,用一根线连接,虽然能通信,但可靠性不高。这根线一旦故障,网络就会被分隔。这被称为单点故障,即由于没有连接冗余,端到端通信只有一条可行路径,一旦该路径故障,整体网络就会崩溃。

规避单点故障最简单的方式是增加冗余连接。例如,连接两根线。这样不仅带宽翻倍,而且当一根线故障时,流量可以切换到另一根链路,继续通信,从而提供网络高可用性,增加网络健壮性。

冗余:指相同的东西准备两份或多份。例如,交换机间连接两根线,这两根线就是冗余关系。

冗余带来的新问题:环路与广播风暴

然而,连接冗余链路后,网络会出现新的问题。

实验场景分析
假设主机A和主机B都属于VLAN 10。交换机连接主机的接口是接入接口,绑定VLAN 10。交换机间互联的链路使用中继链路,并放行VLAN 10的流量。

  1. ARP广播泛洪:主机A发送给主机B的第一个报文通常是ARP请求广播。Switch1收到后,会学习主机A的MAC地址,并将其与接收接口关联。由于是广播帧,Switch1会进行泛洪,通过VLAN 10的所有其他接口(包括两条上行中继链路)发送出去。
  2. MAC地址表漂移:Switch2会先后通过上下两条链路收到这个广播帧。它会先通过上面链路学到主机A的MAC表象,然后又通过下面链路收到,瞬间将表象更新为下面接口。这称为MAC地址表象漂移
  3. 环路形成:Switch2收到广播帧后,同样会进行泛洪。它会将帧发送给主机B,同时也会通过另一条中继链路发回给Switch1。Switch1收到返回的广播帧后,又会再次学习(导致MAC表象再次漂移)并再次泛洪。如此循环,广播帧会在两台交换机间来回传递,永无止境。
  4. 广播风暴:主机A产生的一份广播流量,会被拷贝成多份,在冗余链路间来回发送。由于二层帧头中没有类似IP TTL的限制字段,这些帧永远不会被丢弃。随着广播报文越来越多,链路带宽和交换机转发资源会被耗尽,最终导致网络假死,这就是广播风暴

环路与风暴的根源:根源在于交换机控制层面的认知缺陷(认为帧的发送者直连接收接口)。当网络中包含多台交换机且存在冗余链路时,就会引发环路和广播风暴。


生成树协议(STP)的引入

既然交换机的认知无法提升,那么如何防止环路呢?一个直接的方法是不连接冗余链路,只连一根线。这样确实能消除环路和广播风暴,但会引入单点故障,客户无法接受。

因此,我们需要一种在冗余连接环境下避免环路和广播风暴的机制,这就是生成树协议(STP)

STP的定位与作用

STP通过一个树形结构算法,判断交换机间哪些链路最优,哪些是次优的冗余路径。然后,它会阻塞所有冗余路径,只保留最优的无环路径来转发数据。

核心作用

  1. 阻塞冗余路径:分析网络拓扑,阻塞非最优的冗余链路,确保任意两点间只有一条无环路径。
  2. 实时监控与自适应调整:持续监控网络状态(交换机、接口、链路)。当拓扑发生变化(如链路故障)时,根据变更进行自适应调整(如恢复曾被阻塞的路径)。

这样,我们既设计了冗余连接以保证高可用性,又通过STP临时阻塞冗余路径解决了环路问题。当最优路径故障时,STP能快速恢复被阻塞的路径,保证通信不中断。

协议版本

  • STP (802.1D):第一代,经典生成树。
  • RSTP (802.1W):第二代,快速生成树,收敛速度快。
  • MSTP (802.1S):第三代,多生成树,效率高且兼容性好。

本节课我们重点学习STP (802.1D) 的工作原理。


STP关键概念与参数

在深入STP选举过程前,我们需要先理解几个核心概念和参数。

1. 桥ID (Bridge ID, BID)

桥ID是交换机的标识符,类似于OSPF中的Router ID。

  • 格式:8字节。前2字节是优先级,后6字节是交换机的背板MAC地址(全球唯一)。
  • 优先级:取值范围0-65535。实际可配置部分为前4比特,因此调整值必须是4096的倍数。默认值为32768。
  • 作用:用于选举根桥。比较BID时,值越小越优。先比较优先级,优先级相同则比较MAC地址。

2. 路径开销 (Cost)

路径开销用于衡量链路的优劣,基于带宽计算。

  • 原则:带宽越高,开销值越小,链路越优。
  • 计算公式标准:有多种,如802.1D-1998标准、华为私有标准、802.1T标准。802.1T标准是线性计算,更合理(例如:百兆=200,000,千兆=20,000,万兆=2,000)。
  • 根路径开销 (RPC):一台非根桥通过某接口到达根桥的端到端路径上,所有入方向接口的Cost值累加总和。这是选择最优路径的关键依据。

3. 端口ID (Port ID)

端口ID是交换机接口的标识符。

  • 格式:2字节。前1字节是端口优先级,后1字节是端口编号
  • 优先级:默认128。修改时通常为16的倍数(依设备型号而定)。
  • 作用:在比较路径优劣时,作为最后的裁决依据。比较时也是值越小越优

4. BPDU (网桥协议数据单元)

BPDU是STP协议交互的报文,是选举和监控的基础。

  • 封装:基于802.3封装。
  • 类型
    • 配置BPDU:由根桥周期性(默认2秒)发送,用于维护拓扑信息。
    • TCN BPDU:当拓扑发生变化时,由感知变化的交换机产生,用于通知根桥。
  • 关键字段
    • Root ID:根桥的BID。
    • RPC:根路径开销。根桥始发时为0,每经过一台交换机,就在接收接口累加该接口的Cost值。
    • Bridge ID:转发此BPDU的交换机的BID。
    • Port ID:发送此BPDU的接口的Port ID。
    • Message Age:BPDU已传递的跳数。每经过一台交换机加1,不能超过Max Age(默认20)。
    • Max Age:BPDU的最大生存时间(默认20秒)。接口缓存BPDU的超时时间。
    • Hello Time:根桥发送配置BPDU的周期(默认2秒)。
    • Forward Delay:端口状态迁移的延迟时间(默认15秒)。用于避免临时环路。
    • Flags:标志位。最重要的是TC位(拓扑变更位)和TCA位(拓扑变更确认位)。

BPDU传递与字段变化
根桥始发BPDU时,Root ID和Bridge ID都是自己的BID,RPC为0,Port ID为发送接口ID。
下游交换机收到后,在接收接口累加RPC,将Bridge ID改为自己的BID,将Port ID改为转发接口的ID,然后发送出去。Root ID始终保持不变。


STP的选举过程

STP通过三步选举来构建无环树形拓扑。

第一步:选举根桥 (Root Bridge)

  • 原则:一个STP域内,有且只有一台根桥。
  • 过程:初始时,所有交换机都认为自己是根桥,并向外发送BPDU。通过比较BPDU中的Root ID(即发送者自己的BID),BID最小的交换机成为根桥。
  • 结果:根桥确定后,只有根桥会周期性发送配置BPDU。其他交换机(非根桥)停止发送,并转发根桥的BPDU。

第二步:在每台非根桥上选举根端口 (Root Port, RP)

  • 定义:非根桥上去往根桥路径最优的接口。每台非根桥有且只有一个根端口。
  • 选举原则:比较该非根桥所有能收到根桥BPDU的接口,选择收到“最优BPDU”的接口。
  • 比较顺序(逐级比较)
    1. 比较RPC:累加接收接口Cost后,RPC最小的路径最优。
    2. 比较对端BID:如果RPC相同,则比较发送该BPDU的邻居交换机的BID,越小越优。
    3. 比较对端PID:如果对端BID也相同(例如连接到同一台交换机的不同接口),则比较邻居发送BPDU的那个接口的Port ID,越小越优。
    4. 比较本端PID:如果以上全部相同(极少见,如通过Hub连接),则比较本端接收接口自身的Port ID,越小越优。
  • 结果:选举出的根端口所连接的路径,就是该非根桥去往根桥的最优路径,将被保留用于转发数据。

第三步:在每个网段上选举指定端口 (Designated Port, DP)

  • 定义:在每一个交换机互联的链路上,需要选出一个负责转发BPDU和数据流的端口,即指定端口。链路的另一端可能是根端口或非指定端口
  • 选举原则:在链路两端的端口之间进行PK,选出“更优”的一方作为DP。
  • 比较顺序
    1. 比较两端端口所能发出的BPDU中携带的RPC,RPC小的更优(离根桥更近)。
    2. 如果RPC相同,比较两端交换机本身的BID,BID小的更优。
    3. 如果BID也相同(例如同一台交换机的两个接口通过Hub连接对端),则比较两端端口自身的Port ID,小的更优。
  • 特殊规则根桥的所有端口都是指定端口(因为其发出的BPDU中RPC为0,总是最优)。
  • 结果:未被选为根端口或指定端口的端口,将成为非指定端口,被逻辑阻塞,不转发用户数据。

最终状态

  • 根端口指定端口最终会进入Forwarding状态,正常转发数据。
  • 非指定端口会进入Blocking状态,被阻塞。

通过这三步选举,STP成功地在冗余网络中阻塞了部分链路,形成了一个无环的树形拓扑。


STP的端口状态与拓扑变更

端口状态

为了避免临时环路,STP端口状态迁移需要时间,共有5种状态:

  1. Disabled:接口物理关闭。
  2. Blocking:阻塞状态。仅接收BPDU,不学习MAC地址,不转发数据。是非指定端口的最终状态。
  3. Listening:侦听状态。可以收发BPDU,参与选举,但不学习MAC地址,不转发数据。是RP/DP的临时状态,持续一个Forward Delay(15秒)。
  4. Learning:学习状态。可以收发BPDU,并开始学习MAC地址,但仍不转发数据。是RP/DP的另一个临时状态,再持续一个Forward Delay(15秒)。
  5. Forwarding:转发状态。正常收发BPDU和数据,学习MAC地址。是RP/DP的最终工作状态。

状态迁移:RP/DP从Blocking到Forwarding需要经历 Listening -> Learning -> Forwarding,总共需要30秒(2 * Forward Delay)。这保证了网络拓扑信息在全网同步,避免了临时环路。

拓扑变更机制

当网络拓扑发生变化(如链路故障、新增设备)时,STP需要重新收敛。收敛时间取决于变更类型:

  • 直接拓扑变更:故障后,非根桥仍有接口能直接收到根桥BPDU。收敛较快,约需30秒(主要是Forward Delay时间)。
  • 间接拓扑变更:故障后,非根桥所有接口都收不到根桥BPDU。需要等待Max Age(20秒)超时删除旧BPDU,才能开始重新选举,再加上Forward Delay,总时间约50秒。

为了加速MAC地址表在拓扑变更后的更新,STP引入了TCN BPDU机制:

  1. 感知拓扑变化的交换机会从根端口向上游发送TCN BPDU。
  2. 上游交换机收到后,回复TCA置位的BPDU进行确认,并继续向上游转发TCN,直至根桥。
  3. 根桥收到TCN后,会向下游发送TC置位的配置BPDU。
  4. 所有交换机收到TC BPDU后,会将动态MAC地址表的老化时间缩短为Forward Delay(默认15秒),从而快速清除旧拓扑下的MAC表象,加速新拓扑下的通信恢复。

总结

本节课我们一起学习了生成树协议(STP)的完整工作原理。

我们首先了解了交换机在冗余网络中为何会产生环路广播风暴,其根源在于二层转发机制的认知缺陷。为了解决这个问题,引入了生成树协议(STP)

STP的核心是通过三步选举(根桥、根端口、指定端口)在网络中构建一棵无环的树,逻辑阻塞冗余路径。我们详细学习了选举中使用的关键参数:桥ID (BID)路径开销 (Cost)端口ID (PID) 以及协议报文 BPDU

此外,我们还探讨了STP的端口状态机(Blocking, Listening, Learning, Forwarding)及其迁移延迟的作用,以及网络发生拓扑变更时的收敛过程和TCN BPDU机制。

STP是二层网络稳定运行的基石。虽然经典的802.1D STP收敛较慢,但它为后续快速的RSTP和多实例的MSTP奠定了基础。理解STP是掌握更高级二层网络技术的关键。

华为认证HCIA-DATACOM教程:P13:XCNA-13-ACL 🔐

概述

在本节课中,我们将要学习一个网络工程中至关重要的工具——访问控制列表(ACL)。我们将了解ACL的基本概念、分类、工作原理以及它在网络安全和流量控制中的核心应用。


什么是访问控制列表(ACL)?

访问控制列表,简称ACL,全称是Access Control List。这是一个功能强大的网络工具。

ACL主要有两大用途:一是用于安全领域的流量过滤,二是用于路由交换层面的路由控制。随着课程的展开,我们会详细探讨这两大用途的具体应用场景。

ACL在安全领域的核心贡献

ACL最关键的作用体现在安全领域。有了ACL,我们能够将路由器当作一台简易的防火墙来使用。

这里简单介绍一下防火墙。华为的防火墙产品线叫USG,在模拟器中可以使用的是USG 6000V虚拟防火墙。防火墙与路由器不同,虽然它也有三层接口,但通常不作为网关使用。在企业网络中,防火墙更多地被部署在网络边界。

防火墙的一个核心概念是安全区域(Security Zone)。通常,企业网络会被划分为三个基本的安全区域:

  • Trust区域:放置内网主机、打印机、IP电话等内部资源。
  • Untrust区域:连接外部网络(如互联网)的接口所属区域。
  • DMZ区域:放置需要对外提供服务的服务器,如Web服务器、FTP服务器。

划分区域的好处在于,即使DMZ区的服务器被外部攻击者攻陷,由于从DMZ区访问内网(Trust区)的流量仍需经过防火墙的安全策略检查,攻击者难以将服务器作为跳板进一步攻击内网,从而极大地保障了内网安全。

防火墙的核心规则是:默认情况下,不同安全区域之间不允许通信。 任何需要在区域间流通的流量,都必须通过安全策略显式放行。这与路由器“有路由即转发”的行为有本质区别。


将路由器模拟为防火墙

在实际网络中,客户可能希望用路由器实现类似防火墙的流量控制功能,即:即使有去往目的网络的路由,也能选择性地放行或过滤特定流量。这可以通过在路由器接口上调用ACL来实现。

简单来说,创建一个ACL,并在路由器的接口上调用它(分为入方向和出方向调用),就能实现对流量的精细化控制。

ACL的调用方向

  • 入方向调用:当路由器通过该接口接收数据时,会根据ACL策略决定是接收并查表转发,还是直接丢弃。
  • 出方向调用:仅对“穿越流量”生效,不影响路由器自身“始发”的流量(如路由协议报文、Ping包)。穿越流量指源和目的都不是本路由器,只是经过本设备中转的流量。出方向ACL会在流量离开接口前进行检查。

ACL的类型与特点

ACL有多种类型,如基于IPv4、IPv6、ARP、MAC地址等。本节课我们聚焦最常用的IPv4 ACL

IPv4 ACL主要分为两类:

1. 基本ACL

  • 数字范围:2000-2999。
  • 特点:纯三层工具。
  • 匹配依据只能基于数据包的三层源IP地址进行流量识别。
  • 局限性:它只关心“流量是谁发的”,不关心“流量发给谁”或“流量是什么类型”。因此,控制粒度较粗。例如,一条策略拒绝源IP为A的流量,意味着A发出的、去往任何目的地的所有类型流量都会被拒绝。
  • 部署建议:由于控制粒度粗,为避免误伤,在用于流量过滤时,建议尽可能靠近流量的目的地部署

2. 高级ACL

  • 数字范围:3000-3999。
  • 特点:三层+四层工具。
  • 匹配依据:可以基于源IP、目的IP、协议类型(如TCP/UDP)、源端口、目的端口,甚至TCP标志位等进行精细化的流量识别。
  • 优势:控制粒度非常细。可以实现诸如“允许A访问B的Web流量,但拒绝A访问B的Telnet流量”这样的复杂策略。
  • 部署建议:由于控制精确,不会误伤其他流量,建议尽可能靠近流量的源端部署,以尽早丢弃非法流量,节省网络资源。

ACL的结构与匹配机制

一个ACL由若干条策略语句组成,每条语句称为一个ACE(Access Control Entry,访问控制条目)。

关键概念:序列号

每个ACE都有一个序列号(Sequence Number)。配置时若不指定,默认第一条为5,后续以5为步长递增(如10,15…)。序列号越小,优先级越高

匹配流程

ACL采用“自顶向下,首次匹配”的匹配流程:

  1. 对ACL中的所有ACE,按照序列号从小到大排序。
  2. 当检查一个数据包时,从序列号最小的ACE开始逐一匹配。
  3. 一旦某条ACE匹配成功,则立即执行该ACE规定的动作(permit或deny),并停止后续匹配。
  4. 如果所有ACE都未能匹配该数据包,则执行默认处理请注意,华为设备与思科设备在此处有重要区别
    • 华为:对未匹配的数据包进行“自然转发”,即:有路由则转发,无路由则丢弃。华为ACL末尾没有隐式的“deny any”语句。
    • 思科:在ACL末尾有一条隐式的“deny any”语句,会拒绝所有未匹配的流量。

策略行为

  • permit:允许(放行)匹配的流量。
  • deny:拒绝(丢弃)匹配的流量。
    • 在流量过滤场景下,permit/deny表示放行/拒绝。
    • 在其他场景(如匹配兴趣流量),permit/deny表示抓取/不抓取。

ACL的配置语法

1. 创建数字型基本ACL

[Router] acl number 2000
[Router-acl-basic-2000] rule 5 deny source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000] rule 10 permit # 允许所有其他流量(华为中非必须)
  • acl number 2000:创建编号为2000的基本ACL。
  • rule 5:定义序列号为5的规则。
  • deny:动作为拒绝。
  • source 192.168.1.0 0.0.0.255:匹配源IP地址为192.168.1.0/24网段。0.0.0.255是通配符掩码。

2. 创建数字型高级ACL

[Router] acl number 3000
[Router-acl-adv-3000] rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Router-acl-adv-3000] rule 10 deny tcp source 10.1.1.1 0 destination 10.1.3.1 0 destination-port eq 21
  • permit ip:允许所有IP协议流量。
  • deny tcp:拒绝TCP协议流量。
  • destination-port eq 21:匹配目的端口等于21(FTP)。

3. 在接口上调用ACL

[Router] interface GigabitEthernet 0/0/0
[Router-GigabitEthernet0/0/0] traffic-filter inbound acl 2000  # 入方向调用
[Router-GigabitEthernet0/0/0] traffic-filter outbound acl 3000 # 出方向调用

关于通配符掩码

通配符掩码(Wildcard Mask)用于匹配一个IP地址范围。它由0和1组成:

  • 0 表示必须精确匹配。
  • 1 表示“任意”(该位可以是0或1)。

例如:source 192.168.1.0 0.0.0.255 匹配的是 192.168.1.0192.168.1.255 这个范围。

  • 通配符掩码 0.0.0.255 的二进制是 00000000.00000000.00000000.11111111
  • 前24位(三个0.0.0)为0,要求IP地址的前三组必须严格是192.168.1。
  • 最后8位为1,意味着IP地址最后一组可以是0-255中的任意值。

特殊写法

  • 0:是 0.0.0.0 的简写,表示精确匹配一个IP地址。例如 source 10.1.1.1 0
  • any:是 0.0.0.0 255.255.255.255 的简写,表示匹配任何源或目的IP地址。


ACL的广泛应用

ACL作为一个基础工具,其用途远不止于接口流量过滤:

  1. 网络地址转换:在NAT中,用于匹配哪些内网流量需要进行地址转换。
  2. VPN:在IPSec VPN中,用于定义哪些流量需要受到VPN保护。
  3. 路由策略:在路由控制中,用于匹配特定的路由条目,以便修改其属性(如度量值、管理距离)。
  4. 服务质量:在QoS中,用于分类和标记感兴趣的流量。
  5. 防火墙策略:在防火墙中,作为更高级安全策略的基础。


总结

本节课我们一起学习了访问控制列表(ACL)的核心知识。我们了解了ACL如何作为一款关键工具,将路由器赋予基础的防火墙能力,实现流量过滤。我们重点区分了基本ACL高级ACL的特点、匹配方式及部署原则,并掌握了ACL“自顶向下,首次匹配”的工作机制以及华为与思科在默认行为上的差异。最后,我们学习了ACL的基础配置命令。请记住,ACL是许多高级网络功能(如NAT、VPN、QoS)的基石,理解其原理至关重要。

华为认证HCIA-DATACOM教程:P14:NAT - 网络地址转换

概述

在本节课中,我们将要学习网络地址转换技术。这项技术是解决IPv4地址空间不足、实现内网私有地址主机访问公网服务器的关键。我们将从NAT的必要性讲起,逐步深入到其工作原理、不同类型以及具体配置方法。

为什么需要NAT?

在IPv4时代,32位的地址空间总共只有约43亿个地址。这些地址需要分配给全球互联网上的所有节点。为了保证通信,每个节点都需要一个全球唯一的IP地址。然而,节点数量远超地址数量,地址显然不够用。

为了解决这个问题,我们改变了地址的使用规则,将IP地址分为两大类:

  • 公有地址:用于公网环境,如运营商网络、数据中心。这些地址需要购买或租赁,并保证全球唯一性。
  • 私有地址:用于企业、学校、政府等内部网络。这些地址无需购买,可以在不同网络内部重复使用。

私有地址段包括:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

虽然私有地址解决了地址不足的问题,但带来了新的挑战:使用私有地址的内网主机无法直接与公网主机通信。因为公网路由器的路由表中不允许存在私有路由,当它们收到目的IP为私有地址的回包时,会直接丢弃。

NAT技术正是在企业网络的边界设备(路由器或防火墙)上,为解决这一问题而诞生的。

NAT的工作原理

NAT的核心思想是在数据包经过边界设备时,修改其IP头部中的地址信息。

以下是NAT的基本工作流程:

  1. 出方向转换(内网到外网):当内网主机(如 192.168.1.10)访问公网服务器(如 200.1.2.3)时,数据包到达边界路由器。路由器识别其源IP为私有地址,便从预先配置的公有地址池中选取一个地址(如 122.1.2.1),将数据包的源IP地址进行替换。
    • 转换前:源IP=192.168.1.10, 目的IP=200.1.2.3
    • 转换后:源IP=122.1.2.1, 目的IP=200.1.2.3
  2. 建立映射记录:路由器会生成一条NAT转换表项,记录“内部本地地址(Inside Local)”到“内部全局地址(Inside Global)”的映射关系(例如:192.168.1.10 <-> 122.1.2.1)。
  3. 公网路由:转换后的数据包以公有地址 122.1.2.1 的身份在公网中路由,最终到达服务器。服务器回应时,目的IP就是 122.1.2.1
  4. 入方向转换(外网到内网):回包到达边界路由器。路由器查询NAT转换表,发现目的IP 122.1.2.1 对应内网地址 192.168.1.10。于是将数据包的目的IP地址替换回私有地址。
    • 转换前:源IP=200.1.2.3, 目的IP=122.1.2.1
    • 转换后:源IP=200.1.2.3, 目的IP=192.168.1.10
  5. 内网路由:替换后的数据包根据内网路由表,被转发给原始的内网主机。

通过这个过程,内网主机“伪装”成公网地址与外界通信,成功收到了回包,实现了上网功能。

NAT的类型

NAT技术主要分为两大类:基本NAT和NAPT(端口地址转换)。华为设备对NAPT有更细致的分类。

静态NAT

静态NAT建立的是私有地址和公有地址之间固定的一对一映射。

特点

  • 手动配置:管理员通过命令明确指定哪个内网地址映射到哪个公网地址。
  • 双向通信:映射关系永久存在于NAT表中,因此既能实现内网访问外网,也能实现外网主动访问内网的特定服务器。这常被称为“服务器发布”。
  • 缺点:不灵活,浪费公网地址(一个公网地址只能给一台内网主机用),配置量大。

配置示例
将内网服务器 192.168.1.1 发布为公网地址 12.1.2.100

interface GigabitEthernet 0/0/1 # 进入连接公网的接口
 nat static global 12.1.2.100 inside 192.168.1.1 # 配置静态NAT映射

动态NAT

动态NAT使用一个公有地址池,为内网主机的出站流量动态分配公有地址。

特点

  • 动态分配:内网主机需要访问外网时,从地址池中临时分配一个空闲的公网地址。
  • 单向发起:NAT表项是临时生成的(有超时时间,如5分钟)。主要用于解决内网主机上网问题,一般不支持外网主动访问内网主机
  • 缺点:同样存在地址浪费问题,一个公网地址在同一时刻只能给一台内网主机使用。如果地址池中的地址耗尽,后续的主机需要等待。

配置示例

  1. 创建ACL,定义哪些内网地址需要做NAT。
    acl 2000
     rule 5 permit source 192.168.1.0 0.0.0.255
    
  2. 创建NAT地址池。
    nat address-group 1 12.1.2.10 12.1.2.20
    
  3. 在外网接口上应用动态NAT策略。
    interface GigabitEthernet 0/0/1
     nat outbound 2000 address-group 1 no-pat
    
    注意:no-pat 参数表示不使用端口转换,即纯动态NAT。

NAPT(网络地址端口转换)

NAPT是NAT的增强版,它不仅能转换IP地址,还能转换传输层的端口号。

核心优势:地址复用。一个公有地址可以通过不同的端口号,同时为多个内网主机进行转换,极大地节约了公网地址。

工作原理
当两台内网主机(192.168.1.10:1234192.168.1.11:5678)同时访问同一个公网服务器时,边界路由器进行NAPT转换:

  • 主机A:192.168.1.10:1234 -> 12.1.2.1:1025
  • 主机B:192.168.1.11:5678 -> 12.1.2.1:1026

路由器通过记录 “五元组”(协议、源IP、源端口、目的IP、目的端口) 的转换关系,可以准确地将返回的数据包(目的IP为 12.1.2.1,目的端口分别为 10251026)正确还原并转发给对应的内网主机。

在华为设备中,NAPT主要通过以下两种方式实现:

1. 动态NAPT(使用地址池)

配置与动态NAT类似,但不加 no-pat 参数

interface GigabitEthernet 0/0/1
 nat outbound 2000 address-group 1
# 不加 ‘no-pat‘,即启用NAPT(端口转换)

2. Easy IP

Easy IP是NAPT的一种特殊形式,它直接使用路由器外网接口的IP地址作为NAPT转换的公有地址,无需单独配置地址池。

特点:配置最简单,最节约地址(整个企业只需一个公网地址)。

interface GigabitEthernet 0/0/1
 nat outbound 2000
# 直接调用ACL,使用接口IP进行NAPT转换

注意:Easy IP功能通常在中小型企业级设备上支持。

NAT Server(端口映射)

NAT Server属于静态的NAPT,用于将内网服务器发布到公网。

特点

  • 静态端口映射:将一个公网地址的特定端口,固定映射到内网服务器的IP和端口。
  • 服务器发布:实现外网用户通过公网地址和端口访问内网服务(如Web、FTP)。
  • 节约地址:多个不同的服务(如Web的80端口、FTP的21端口)可以映射到同一个公网地址的不同端口上。

配置示例
将内网IP为 192.168.1.100,端口为 8080 的Web服务器,发布为公网地址 12.1.2.180 端口。

interface GigabitEthernet 0/0/1
 nat server protocol tcp global 12.1.2.1 www inside 192.168.1.100 8080
# ‘www‘ 代表端口80

实验演示要点

在实验环境中,我们模拟了企业内网(10.1.1.0/24)、边界路由器、运营商网络(12.1.1.0/24)和公网服务器(100.1.1.100)。关键配置步骤如下:

  1. 基础网络配置:为所有设备配置IP地址和网关,在边界路由器上配置指向运营商的默认路由。
    ip route-static 0.0.0.0 0.0.0.0 12.1.1.2
    
  2. 配置Easy IP实现内网上网
    • 创建ACL匹配内网网段。
    • 在外网接口直接应用 nat outbound 命令。
  3. 配置NAT Server发布内网服务器
    • 使用 nat server 命令将内网服务器的私有IP和端口映射到公网IP和端口。
  4. 验证与抓包:通过Ping测试连通性,并在边界路由器的内外网接口抓包,可以清晰地看到数据包在进出时IP头部地址的变化过程。

总结

本节课我们一起学习了网络地址转换技术。我们从IPv4地址短缺的背景出发,理解了NAT技术存在的必要性。我们深入探讨了NAT的工作原理,即通过在网络边界修改数据包的IP地址,实现私网与公网之间的通信。

我们系统地学习了NAT的几种主要类型:

  • 静态NAT:用于固定的服务器发布,实现双向访问。
  • 动态NAT:为内网主机动态分配公网地址,但地址利用率低。
  • NAPT/Easy IP:通过同时转换IP地址和端口号,实现一个公网地址供大量内网主机共用,是实际应用中最主流、最节约的方案。
  • NAT Server:用于将内网服务器的特定端口映射到公网,提供对外服务。

尽管NAT技术打破了IP协议端到端通信的原则,并带来了一些复杂性(如影响某些对等连接应用),但在IPv4向IPv6过渡的漫长时期内,它仍然是保障网络连通性不可或缺的关键技术。理解并掌握NAT,是成为一名合格网络工程师的重要基础。

HCIA-DATACOM教程:P15:XCNA15-NA综合实验

概述

在本节课中,我们将通过一个综合实验,应用之前NA阶段学到的所有核心知识点。这个实验模拟了一个包含总部和分部的网络环境,我们将完成从基础VLAN划分、SVI配置、动态路由协议(OSPF)部署,到NAT地址转换、VRRP网关冗余,以及GRE VPN隧道建立等一系列配置任务。通过动手实践,你将巩固对网络基础架构的理解。


实验需求分析

实验网络分为总部和分部两个部分。以下是具体的配置要求:

  1. 总部内网VLAN划分:PC1和PC3属于VLAN 10,使用192.168.10.0/24网段;PC2和PC4属于VLAN 20,使用192.168.20.0/24网段;服务器A属于VLAN 99,使用192.168.99.0/24网段。具体IP地址和网关自行规划。
  2. 总部内网三层互通:在核心交换机SW1上配置SVI(交换虚拟接口),实现总部内不同VLAN间的通信。
  3. 动态路由协议:在总部和分部的边界路由器及核心设备上运行动态路由协议OSPF,确保内网主机能够成功到达各自的边界设备。
  4. 总部网络地址转换与服务器发布
    • 配置NAT,使总部内网主机可以访问互联网(外网)。
    • 配置NAT Server,将内部服务器A发布到公网,使外网能够访问该服务器。
  5. 分部网关冗余(VRRP):在分部网络中配置VRRP(虚拟路由器冗余协议),实现网关的冗余备份。具体要求是:PC5以SW7作为主网关,SW8作为备份网关;PC6以SW8作为主网关,SW7作为备份网关。
  6. 分部网络地址转换:配置NAT,使分部内网主机可以访问互联网。
  7. 总部与分部间VPN互通:在总部(R1)和分部(R2)的边界路由器之间建立GRE VPN隧道,并通过OSPF交换路由,实现总部与分部内网之间的安全通信。


实验配置步骤

第一步:总部基础网络配置

上一节我们分析了实验需求,本节中我们首先来完成总部网络的基础配置,包括设备命名、VLAN划分和接口配置。

1. 设备命名
为了方便管理,首先修改所有网络设备的名称。

# 在每台设备上执行,例如将核心交换机命名为SW1
[Huawei] sysname SW1

2. VLAN创建与接口划分
在总部三台交换机上创建所需的VLAN(10, 20, 99, 12),并将相应接口划入VLAN。连接交换机的链路需配置为Trunk类型。

# 在SW1, SW2, SW3上创建VLAN
[SW1] vlan batch 10 20 99 12

# 配置交换机之间的Trunk链路(以SW1的G0/0/2口为例)
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type trunk
[SW1-GigabitEthernet0/0/2] port trunk allow-pass vlan all

# 配置连接PC和服务器的Access链路(以SW2连接PC1的接口为例)
[SW2] interface Ethernet 0/0/1
[SW2-Ethernet0/0/1] port link-type access
[SW2-Ethernet0/0/1] port default vlan 10

3. 配置SVI实现三层互通
在核心交换机SW1上为VLAN 10, 20, 99创建SVI接口,并配置IP地址作为各网段的网关。

# 创建VLANIF 10接口并配置IP
[SW1] interface Vlanif 10
[SW1-Vlanif10] ip address 192.168.10.254 24

# 创建VLANIF 20接口并配置IP
[SW1] interface Vlanif 20
[SW1-Vlanif20] ip address 192.168.20.254 24

# 创建VLANIF 99接口并配置IP(服务器网关)
[SW1] interface Vlanif 99
[SW1-Vlanif99] ip address 192.168.99.254 24

配置完成后,总部内不同VLAN的主机之间以及主机与服务器之间应能正常通信。


第二步:配置动态路由协议(OSPF)

上一节我们实现了总部内网的互通,本节中我们通过配置OSPF动态路由协议,让内网路由能够传递到边界设备。

1. 总部OSPF配置
在总部边界路由器R1和核心交换机SW1上配置OSPF,宣告内网网段和互联网段。

# 在R1上配置OSPF
[R1] ospf 10 router-id 1.1.1.1
[R1-ospf-10] area 0
[R1-ospf-10-area-0.0.0.0] network 12.1.1.0 0.0.0.255 # 宣告与SW1的互联网段

# 在SW1上配置OSPF
[SW1] ospf 10 router-id 11.11.11.11
[SW1-ospf-10] area 0
[SW1-ospf-10-area-0.0.0.0] network 192.168.10.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0] network 192.168.20.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0] network 192.168.99.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0] network 12.1.1.0 0.0.0.255

配置后,R1应能通过OSPF学习到总部内网的路由。

2. 配置默认路由与下发
在R1上配置指向运营商(ISP)的默认路由,并通过OSPF将其下发到内网。

# 在R1上配置静态默认路由
[R1] ip route-static 0.0.0.0 0 20.1.1.2

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/9804df15e7eb3c47c64cca45eb7bb8c7_23.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/9804df15e7eb3c47c64cca45eb7bb8c7_25.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/9804df15e7eb3c47c64cca45eb7bb8c7_27.png)

# 在R1的OSPF进程中下发默认路由
[R1-ospf-10] default-route-advertise always

第三步:配置NAT实现上网与服务器发布

上一节我们通过OSPF打通了内网到边界的路由,本节中我们配置NAT,使内网可以访问互联网,并将内部服务器发布到公网。

1. 配置ACL匹配内网流量
创建一个基本ACL,匹配需要做NAT转换的内网私网地址。

[R1] acl 2000
[R1-acl-basic-2000] rule permit source 192.168.0.0 0.0.255.255

2. 配置Easy IP实现内网上网
在R1连接运营商的出接口上应用Easy IP,将ACL匹配的流量源IP转换为该接口的公网IP。

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] nat outbound 2000

3. 配置NAT Server发布内部服务器
在R1的出接口上配置NAT Server,将内部服务器192.168.99.1映射为公网IP 20.1.1.3。

[R1-GigabitEthernet0/0/0] nat server protocol tcp global 20.1.1.3 www inside 192.168.99.1 www
[R1-GigabitEthernet0/0/0] nat server protocol icmp global 20.1.1.3 inside 192.168.99.1

配置完成后,总部内网主机可以访问互联网,外网主机也可以通过公网IP 20.1.1.3访问内部的服务器A。


第四步:分部网关冗余配置(VRRP)

现在我们将视线转向分部网络。分部网络的核心需求是实现网关的冗余备份,我们使用VRRP协议来完成。

1. 分部基础VLAN与接口配置
首先,在分部交换机SW7和SW8上创建VLAN 30和40,并划分接入接口。交换机之间的链路配置为Trunk。

# 在SW7和SW8上创建VLAN
[SW7] vlan batch 30 40

# 配置交换机间Trunk链路
[SW7] interface GigabitEthernet 0/0/2
[SW7-GigabitEthernet0/0/2] port link-type trunk
[SW7-GigabitEthernet0/0/2] port trunk allow-pass vlan all

2. 配置VRRP虚拟网关
在SW7和SW8上为VLAN 30和40的SVI接口配置VRRP。通过调整优先级,指定主备设备。

# 在SW7上配置VLAN 30的VRRP,并设置较高优先级使其成为Master
[SW7] interface Vlanif 30
[SW7-Vlanif30] ip address 172.16.30.253 24
[SW7-Vlanif30] vrrp vrid 30 virtual-ip 172.16.30.254
[SW7-Vlanif30] vrrp vrid 30 priority 120

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/9804df15e7eb3c47c64cca45eb7bb8c7_43.png)

# 在SW8上配置VLAN 30的VRRP,使用默认优先级(100)作为Backup
[SW8] interface Vlanif 30
[SW8-Vlanif30] ip address 172.16.30.252 24
[SW8-Vlanif30] vrrp vrid 30 virtual-ip 172.16.30.254

VLAN 40的配置逻辑类似,但主备角色相反(SW8为Master, SW7为Backup)。当主设备故障时,备份设备会自动接管网关职责,保障网络不中断。


第五步:分部动态路由与NAT配置

上一节我们为分部网络配置了高可用的网关,本节中我们配置分部的OSPF和NAT,使其能够访问互联网。

1. 分部OSPF配置
在分部边界路由器R2、交换机SW7和SW8上配置OSPF,宣告分部内网路由。

# 在R2上配置OSPF,宣告与分部的互联网段
[R2] ospf 10 router-id 2.2.2.2
[R2-ospf-10] area 0
[R2-ospf-10-area-0.0.0.0] network 23.1.1.1 0.0.0.0

# 在SW7和SW8上配置OSPF,宣告内网VLAN网段
[SW7] ospf 10 router-id 7.7.7.7
[SW7-ospf-10] area 0
[SW7-ospf-10-area-0.0.0.0] network 172.16.30.0 0.0.0.255
[SW7-ospf-10-area-0.0.0.0] network 172.16.40.0 0.0.0.255

2. 分部NAT配置
在R2上配置ACL匹配分部内网地址,并在出接口上应用Easy IP。

[R2] acl 2000
[R2-acl-basic-2000] rule permit source 172.16.0.0 0.0.255.255
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] nat outbound 2000

配置完成后,分部内网主机应能访问互联网。


第六步:建立GRE VPN实现总部与分部互通

最后,也是最关键的一步,我们需要在总部(R1)和分部(R2)之间建立一条穿越公网的隧道,让双方的内网能够安全通信。这里我们使用GRE隧道。

1. 配置Tunnel接口
在R1和R2上创建Tunnel接口,并指定隧道的源目IP地址(即双方连接公网的接口IP)以及隧道自身的IP地址。

# 在R1上配置Tunnel接口
[R1] interface Tunnel 0/0/12
[R1-Tunnel0/0/12] tunnel-protocol gre
[R1-Tunnel0/0/12] source 20.1.1.1
[R1-Tunnel0/0/12] destination 21.1.1.2
[R1-Tunnel0/0/12] ip address 172.99.1.1 24

# 在R2上配置Tunnel接口
[R2] interface Tunnel 0/0/12
[R2-Tunnel0/0/12] tunnel-protocol gre
[R2-Tunnel0/0/12] source 21.1.1.2
[R2-Tunnel0/0/12] destination 20.1.1.1
[R2-Tunnel0/0/12] ip address 172.99.1.2 24

2. 通过OSPF发布隧道路由
将Tunnel接口的网段宣告到OSPF进程中,这样双方就能通过OSPF学习到对端内网的详细路由。

# 在R1的OSPF进程中宣告Tunnel接口网段
[R1-ospf-10] area 0
[R1-ospf-10-area-0.0.0.0] network 172.99.1.0 0.0.0.255

# 在R2的OSPF进程中宣告Tunnel接口网段
[R2-ospf-10] area 0
[R2-ospf-10-area-0.0.0.0] network 172.99.1.0 0.0.0.255

配置完成后,总部和分部的内网主机之间(例如PC1与PC5)应能相互ping通。数据包会被封装在GRE隧道中穿越公网。


总结

本节课中我们一起完成了一个综合性的网络实验,系统地应用了HCIA-DATACOM阶段的核心技术:

  1. 二层技术:VLAN划分、Access/Trunk接口配置。
  2. 三层技术:SVI接口配置、静态路由、OSPF动态路由协议。
  3. 网络地址转换:通过ACL和Easy IP实现PAT,满足内网上网需求;通过NAT Server实现内部服务器对外发布。
  4. 网络可靠性:使用VRRP协议实现网关设备的冗余备份,提升网络可用性。
  5. 广域网技术:通过建立GRE VPN隧道,在公网上构建虚拟私有通道,实现总部与分部内网的安全互联。

这个实验涵盖了中小型企业网络的典型部署场景。通过亲手配置和排错,相信你对这些技术的原理和实际操作有了更深刻的理解。建议保存实验配置,并尝试独立完成,以巩固学习成果。

华为认证HCIA-DATACOM教程:01:网络行业概览与课程架构介绍

概述

在本节课中,我们将一起了解网络工程师的行业背景、华为公司的发展历程、网络设备厂商的竞争格局,以及华为认证体系的结构和职业发展路径。这些知识将帮助你理解整个行业的运作方式,并为后续的技术学习奠定基础。

什么是网络工程师?

网络工程师的核心工作是围绕“网络”展开的。具体来说,网络工程师负责设计、实施、配置、维护和排错计算机网络。

那么,什么是计算机网络呢?计算机网络是一个通信载体,它使用各种网络设备(如路由器、交换机、防火墙、无线控制器和AP)通过线缆连接而成,以实现设备间的通信。

华为的崛起之路

网络设备需要有人研发和生产。本节中,我们将聚焦于一家伟大的公司——华为。

华为最初的主营业务是通信技术,为中国的三大运营商(电信、联通、移动)提供2G、3G、4G乃至5G的通信设备。为了拓展产品线和增加利润,华为决定进入网络设备领域。

当时,网络领域的全球领导者是美国的思科公司。华为通过学习思科的产品和技术,快速进入了市场,并以价格优势和强大的销售能力,在中国运营商市场与思科展开了激烈竞争。

2003年,思科以侵权为由起诉华为。华为败诉后,决定自主研发,推出了中国第一款网络操作系统VRP 5.0,从此走上了自主创新的道路。

在巩固了运营商市场后,华为希望进军企业网市场。但企业网更依赖交换机技术,而华为当时主要擅长路由器。为此,华为选择了与擅长交换机的美国公司3Com合资,成立了H3C(华为3Com),以此学习交换机技术。

当华为掌握了所需技术后,便与H3C分道扬镳。后来,H3C先后被惠普和中国的清华紫光收购,成为了今天的“新华三”。

2014年的“棱镜门”事件曝光了美国公司设备可能存在安全后门,导致中国开始大力推行“去IOE”(IBM、Oracle、EMC)及国产化替代。思科等美国厂商的市场份额急剧下滑,华为则凭借过硬的技术和国产化优势,迅速成为中国市场的绝对领导者。

目前,在中国网络设备市场,华为是S级厂商,思科和新华三是A级厂商,其他如中兴、锐捷等属于B级厂商。

华为认证体系

作为设备制造商,华为为了帮助工程师更好地使用其设备,建立了一套专业的认证体系。这套体系分为三个级别:

  1. HCIA(华为认证ICT初级工程师)
    • 定位:网络入门,培养助理工程师。
    • 学习内容:网络基础概念、IP地址、OSI模型、基础路由交换技术(如静态路由、VLAN、STP)。
    • 公式/代码示例:一个基础的IP地址配置可能如下所示:
      system-view
      interface GigabitEthernet 0/0/1
      ip address 192.168.1.1 255.255.255.0
      

  1. HCIP(华为认证ICT高级工程师)

    • 定位:资深工程师,可独立负责中小型项目。
    • 学习内容:高级路由协议(如OSPF、BGP)、高级交换技术(如堆叠、MSTP)、企业网常用技术(如DHCP、VRRP)。
    • 核心概念:OSPF的邻居建立过程涉及Hello报文交换和状态机转换。
  2. HCIE(华为认证ICT专家)

    • 定位:专家级工程师,能处理复杂大型项目。
    • 学习内容:前沿技术,如VXLAN、SDN、各种VPN(MPLS VPN、SSL VPN)及跨领域融合技术。
    • 职业价值:在一线城市起薪较高,且职业生命周期长,经验越丰富越有价值。

网络工程师的职业路径

了解了厂商和认证,我们来看看网络工程师具体的职业发展方向。网络工程师主要服务于两类公司:设备厂商(如华为)和渠道伙伴(代理商、集成商)。

在岗位类型上,主要有两个方向:

  1. 售前工程师

    • 工作:配合销售,与客户沟通需求,设计技术方案,解决“做什么”的问题。
    • 要求:技术扎实,沟通能力强,善于呈现和方案设计。
  2. 售后工程师

    • 工作:负责设备的安装、调试、配置和故障排除,解决“怎么做”的问题。
    • 要求:技术精湛,动手能力强,善于分析和解决问题。

职业发展通常从售后工程师开始,积累经验后,可根据个人兴趣和特长向售前、技术管理或架构师等方向发展。

如何学习与课程介绍

要成为一名优秀的网络工程师,必须理解网络的基础原理。华为、思科的设备实现的是公共的标准协议。因此,学习的关键在于:

  1. 理解问题:清楚网络通信中遇到了什么问题。
  2. 掌握原理:理解协议和技术是如何解决这些问题的。
  3. 动手实践:在设备上通过命令实现技术,并验证结果。
  4. 对比思考:思考不同技术的优劣及适用场景。

本课程体系旨在贯彻“学以致用”和“应试取证”相结合的理念。课程由我(杨辉)主讲,我拥有多个方向的CCIE和HCIE认证,并有十余年的授课与项目经验。我们的目标是不仅帮助大家通过考试,更要掌握扎实的技能,真正改变职业命运。

总结

本节课我们一起学习了网络工程师的职责、华为公司的成长历史、网络设备市场的竞争格局、华为三级认证体系的内容与价值,以及网络工程师主要的职业发展路径。从下一节课开始,我们将正式进入技术学习阶段,从最基础的网络概念讲起,一步步构建完整的知识体系。请大家做好准备,我们共同开启这段学习之旅。

华为认证HCIA-DATACOM教程:XCNA-02:网络三要素 📚

概述

在本节课中,我们将要学习网络的基础概念,特别是构成网络的三个核心要素。通过本节课的学习,你将能够理解网络的基本组成,并初步了解路由器、交换机等网络设备的作用。


网络的作用与主体

计算机网络的核心作用是实现通信,最终目标是资源共享。但需要通过网络进行通信的,并非计算机、手机或平板电脑本身,而是这些终端设备上运行的应用程序。

  • 终端:指直接面向用户的设备,如计算机、手机、平板电脑等。
  • 应用程序:安装在终端操作系统之上的软件,如QQ、浏览器、游戏等。正是这些应用程序需要通过网络来交互数据。

网络为应用程序提供数据传输服务,使不同终端上的应用能够彼此交换信息,从而实现“我有的你也有”的资源共享。


网络的三要素

一个成熟的网络通常包含以下三个基本要素:

1. 终端 🖥️

终端是网络的主体和服务的对象。终端通过网卡接入网络,其上的应用程序利用网络连接来收发数据。没有终端,网络就失去了存在的价值。

2. 介质 📡

介质是数据传输的物理通道,主要分为两类:

  • 有线介质:如双绞线(网线)、光纤等,需要物理连接。
  • 无线介质:如Wi-Fi信号,通过无线接入点提供连接。

3. 中间系统(网络设备)🔄

中间系统是指各种网络设备,如路由器、交换机、防火墙等。这些设备通常部署在机房,用户不可见,但它们对于组建可扩展、高性能的网络至关重要。它们负责在终端之间转发数据,是实现通信的关键。


网络的演进与连接

上一节我们介绍了网络的三要素,本节中我们来看看网络是如何连接和发展的。

从工作组到互联网

  • 工作组:最简单的网络形式,如两台计算机直接用网线相连。但受限于网卡接口数量和网线传输距离(通常不超过100米),可扩展性极差。
  • 引入交换机:为了解决连接更多设备的问题,我们使用交换机。交换机接口多、成本较低,适合作为接入设备连接大量终端。多台交换机还可以通过级联接口互连,进一步扩大网络规模。
  • 引入路由器与网络分段:然而,一个网络(也称为一个广播域)内的设备过多会导致广播流量(如ARP请求)泛滥,严重影响网络性能。因此,需要使用路由器这类汇聚/核心设备将一个大网络分割成多个较小的网络(即分段)。路由器能隔离广播流量,提升网络效率。
  • 互联网:通过路由器将多个不同的网络连接起来,就形成了互联网。全球最大的互联网就是由各国运营商网络互连而成的 Internet

企业网络架构

一个典型的企业园区网络通常采用分层设计:

  • 接入层:连接终端用户,设备以交换机为主,可能部署无线AP。
  • 汇聚层:汇聚接入层的流量,常采用多层交换机,并部署冗余设备。
  • 核心层:高速转发不同汇聚层之间的流量,是网络的骨干。
  • 出口:通过防火墙或路由器连接到Internet。

网络通信原理:快递的比喻

理解了网络如何连接,我们再来看看数据是如何在网络中传输的。这个过程很像寄送快递。

  1. 数据载荷:好比你要寄送的巧克力,是应用程序产生的实际内容(如聊天文字)。
  2. 封装:不能直接寄送巧克力,需要将它放入快递盒并贴上快递单。在网络中,这就是给数据载荷添加报头的过程。报头中包含了关键的控制信息:
    • 网络层报头:包含源IP地址目的IP地址,就像快递单上的收寄件人地址,告诉网络设备数据从哪里来、到哪里去。
    • 传输层报头:包含源端口号目的端口号,用于标识发送和接收数据的具体应用程序,确保数据能交给正确的“收件人”(如QQ程序)。
  3. 传输与转发:封装好的数据包(快递包裹)被交给网络设备(快递小哥)。设备根据目的地址(路由表)选择最佳路径进行转发。
  4. 解封装:数据包到达目的终端后,终端会逐层拆开“包裹”(移除报头),最终将数据载荷交给目标应用程序处理。

核心概念公式/代码描述

  • 数据包 = 应用数据 + TCP/UDP报头 + IP报头 + 二层帧头帧尾
  • 封装过程伪代码示意:数据包 = 添加帧头(添加IP头(添加TCP头(应用数据)))

关键概念解析

以下是本节课涉及的一些核心名词解释:

  • 网关:一个网络的“出口”。通常指路由器(或三层交换机、防火墙)连接该网络的接口IP地址。终端设备必须配置正确的网关地址,才能访问本网络之外的资源。
  • 广播域:广播流量所能到达的所有设备的集合。通常一个IP子网(网络)就是一个广播域。路由器是广播域的边界。
  • 路由:路由器根据路由表确定去往目的网络的最佳路径的过程。路由表记录了“如何到达某个网络”的信息。
  • 防火墙:部署在网络边界的安全设备,通过安全策略控制不同区域(如内网、外网、DMZ区)之间的访问,保护网络安全。


总结

本节课中我们一起学习了网络的基础知识。我们首先明确了网络为应用程序提供通信服务的核心目的,然后深入探讨了构成网络的三大要素:终端、介质和中间系统。我们了解了网络从简单的工作组演进到复杂互联网的过程,以及企业网络的分层架构。最后,我们通过生动的快递比喻,理解了数据封装、传输和解封装的基本通信原理,并掌握了网关、广播域、路由等关键概念。这些内容是后续深入学习网络技术的基石。

华为认证HCIA-DATACOM教程:XCNA-03:OSI模型与TCP/IP协议栈详解 📚

在本节课中,我们将要学习网络通信的核心框架——OSI参考模型与TCP/IP协议栈。我们将了解网络通信为何需要规则,这些规则如何分层组织,以及每一层的关键协议和功能。通过对比OSI七层模型和实际广泛应用的TCP/IP四层/五层模型,您将建立起清晰的网络分层概念,为后续深入学习打下坚实基础。

协议与协议栈:网络的交通法规 🚦

上一节我们介绍了网络的基本概念。本节中我们来看看网络通信的规则。

网络中的应用程序要进行通信和资源共享,必须遵循特定的规则。这些规则被称为协议。协议定义了通信的方方面面,例如数据如何封装、采用何种地址、使用有线还是无线传输等。

如果没有统一的规则,网络将无法正常运行。这就像交通系统需要交通法规来约束车辆和行人一样。网络中存在着大量协议,它们相互关联、协同工作,共同构成了一个完整的规则集合,我们称之为协议栈

协议可以分为两大类:

  • 私有协议:由特定厂商(如思科、华为)制定,通常只有该厂商的设备支持。
  • 公有协议:由国际标准化组织(如ISO、IEEE、IETF)制定,被业界广泛采纳和兼容。

为了避免因私有协议不兼容导致的网络互通问题,现代网络主要基于公有协议构建。

OSI参考模型:经典的理论框架 🏗️

在众多协议栈中,最著名、理论最完善的是由国际标准化组织(ISO)制定的OSI(开放式系统互联)参考模型。它提出了一个七层的网络通信框架。

分层的目的在于简化复杂系统的设计、学习和故障排查。每一层都专注于特定的功能,并为上层提供服务。

以下是OSI模型的七个层次,从高到低分别是:

  1. 应用层:为应用程序提供网络接入服务。
  2. 表示层:负责数据格式的转换、加密与解密。
  3. 会话层:负责建立、管理和终止应用程序之间的会话(连接)。
  4. 传输层:提供端到端的可靠或不可靠数据传输服务。
  5. 网络层:负责逻辑寻址和路径选择,实现数据包从源到目的地的转发。
  6. 数据链路层:负责在直接相连的节点间进行帧的传输和差错校验。
  7. 物理层:负责在物理媒介上传输原始的比特流。

虽然OSI模型理论严谨,但在实际网络发展中,另一个协议栈——TCP/IP协议栈因其简洁高效而胜出,成为了互联网的实际标准。

TCP/IP协议栈:现实的互联网基石 🌐

TCP/IP协议栈是当前互联网和绝大多数企业网络所使用的协议集合。与OSI的七层相比,TCP/IP通常被划分为更简洁的四层或五层。

一个常见的五层划分及其与OSI模型的对应关系如下:

  • 应用层:对应OSI的应用层、表示层、会话层。包含HTTP、FTP、DNS等直接面向用户的协议。
  • 传输层:对应OSI的传输层。核心协议是TCP和UDP。
  • 网络层:对应OSI的网络层。核心协议是IP(IPv4/IPv6)。
  • 数据链路层:对应OSI的数据链路层。包含以太网、PPP等协议。
  • 物理层:对应OSI的物理层。定义线缆、接口、信号等。

在学习网络时,我们常以OSI七层模型作为理论参考,而以TCP/IP协议栈作为实践标准。

数据封装与解封装:数据的旅程 📦

理解了分层,我们来看看数据是如何在网络中传输的。这个过程包括封装解封装

当应用程序产生数据(称为数据载荷)后,为了让它能在网络中传输,各层协议会为其添加本层的控制信息(称为报头)。这个过程就像寄快递时需要层层打包:

  1. 传输层:添加第一个报头(如TCP或UDP报头),形成数据段。关键字段是源端口目的端口,用于标识通信的应用程序。
  2. 网络层:添加第二个报头(如IP报头),形成数据包。关键字段是源IP地址目的IP地址,用于在网络中全局寻址。
  3. 数据链路层:添加第三个报头(如以太网报头)和尾部(帧校验序列),形成数据帧。关键字段是源MAC地址目的MAC地址,用于在本地网络段内寻址。
  4. 物理层:将数据帧转换为比特流,通过物理介质(如网线、光纤)发送出去。

接收方收到比特流后,执行相反的过程,即解封装:从物理层到应用层,逐层剥离报头,最终将原始数据载荷交给目标应用程序。

关键协议详解 🔍

上一节我们介绍了数据封装流程。本节中我们来看看各层的一些关键协议。

应用层协议

应用层协议使应用程序能够利用网络收发数据。它们通常是客户端-服务器(C/S)模型。服务器使用知名端口,客户端使用随机端口

以下是几个经典应用层协议:

  • HTTP:超文本传输协议,用于浏览网页,默认端口80
  • HTTPS:安全的HTTP,端口443
  • FTP:文件传输协议,用于大文件传输。使用两个连接:控制连接(端口21)和数据连接。
  • TFTP:简单文件传输协议,用于小文件传输,端口69
  • Telnet:远程登录协议,明文传输,端口23
  • SSH:安全的远程登录协议,加密传输,端口22
  • SMTP:简单邮件传输协议,用于发送邮件,端口25
  • POP3:邮局协议版本3,用于接收邮件,端口110
  • DNS:域名系统协议,用于将域名解析为IP地址,端口53

传输层协议:TCP vs UDP

传输层协议为数据段添加第一个报头,主要任务是提供端到端的通信服务。两大核心协议是TCP和UDP。

TCP 是一种面向连接的、可靠的传输协议。它的可靠性通过以下机制实现:

  • 三次握手建立连接,四次挥手断开连接
  • 序列号和确认号机制,确保数据有序、不丢失。
  • 重传机制,应对数据包丢失。
  • 流量控制(滑动窗口),防止发送过快导致接收方缓冲区溢出。

TCP报头较复杂,最小20字节。其可靠性的代价是传输效率较低、延迟较高,且只支持单播。

UDP 是一种无连接的、尽力而为的传输协议。它不保证可靠性,但具有以下优点:

  • 报头简单,仅8字节,开销小。
  • 无需建立连接,传输延迟低。
  • 支持单播、组播和广播。

选择TCP还是UDP取决于应用需求。需要可靠传输的应用(如网页、邮件)使用TCP;对实时性要求高、能容忍少量丢失的应用(如语音、视频、实时游戏)常使用UDP,由应用层自身实现必要的控制逻辑。

网络层与数据链路层协议

网络层的核心协议是IP。它定义了全球唯一的IP地址(如 192.168.1.1),使得数据包能够跨网络路由。IP协议是“尽力而为”的,不保证可靠交付。

数据链路层在局域网中最重要的协议是以太网。它定义了本地唯一的MAC地址(如 00-1A-2B-3C-4D-5E),用于在同一个广播域内标识设备。MAC地址就像设备的“身份证号”,而IP地址更像“邮政地址”。

标准化组织 🏛️

网络协议的制定离不开标准化组织:

  • IETF:互联网工程任务组,负责制定和维护TCP/IP协议族的标准。
  • IEEE:电气和电子工程师协会,制定了包括以太网(802.3)和Wi-Fi(802.11)在内的众多局域网标准。
  • ISO:国际标准化组织,制定了OSI参考模型。

总结 📝

本节课中我们一起学习了网络通信的基石——协议栈。我们从网络需要规则(协议)讲起,深入剖析了经典的OSI七层参考模型和实际应用的TCP/IP协议栈。我们明确了数据在网络中传输时,经历的封装与解封装过程,以及各层的关键职责:应用层面向服务,传输层管理端到端通信,网络层负责寻址和路由,数据链路层和物理层处理本地连接和比特流传输。

我们重点对比了传输层的两大协议:可靠的TCP与高效的UDP,并介绍了各层的代表性协议,如HTTP、IP、以太网等。理解这些分层概念和核心协议,是成为一名合格网络工程师的第一步。在接下来的课程中,我们将基于这些理论,开始具体的设备配置和实践操作。

华为认证HCIA-DATACOM教程:04:IP协议与子网划分

概述

在本节课中,我们将要学习网络层最核心的协议——IP协议。我们将从IP报头结构开始,深入理解IP地址的构成、分类与作用,并重点掌握子网划分的原理与方法,以解决实际网络规划中的地址分配问题。


IP协议概述

上一节我们介绍了OSI模型,网络层是与网络工程师关联最紧密的一层。网络层中最关键的技术就是IP协议。

多层交换机和路由器负责网络间的数据转发,而转发时需要基于地址进行寻址。在TCP/IP协议栈中,这个地址就是IP地址。IP协议属于网络层,因此网络层是OSI模型中与网络工程师工作最贴近的一层。

IP协议主要有两大贡献:

  1. 定义了IP报头结构。
  2. 定义了IP地址体系。

IP报头详解

报头封装与结构

数据在网络上传输时需要进行层层封装。例如,用浏览器访问百度时,数据包的封装层次如下:

  • 应用层数据(HTTP载荷)
  • 传输层报头(TCP)
  • 网络层报头(IPv4)
  • 数据链路层报头(以太网帧头)和帧尾(FCS)

IP协议定义的报头就是网络层报头。

IPv4报头长度可变,范围是20到60字节。通常,正常通信不需要使用可选项字段,因此报头长度一般为20字节。报头必须是4字节的整数倍。

以下是IPv4报头的主要字段:

  1. 版本:标识IP协议版本,IPv4值为4,IPv6值为6。
  2. 报头长度:描述当前数据包三层报头的长度(单位:4字节)。
  3. 服务类型:用于标识数据包的服务质量类别,是实施QoS(服务质量)的基础。通过为不同类型的数据(如语音、视频、文本)标记不同的TOS值,网络设备可以优先转发对延迟敏感的数据。
  4. 总长度:描述包含IP报头在内的完整三层数据包的总字节数。
  5. 标识符、标记、分段偏移量:这三个字段共同用于实现三层分片。当数据包大小超过链路MTU时,需要进行分片。
    • 标识符:标识分片属于哪个原始数据包。
    • 标记
      • DF位:置1表示不允许分片。
      • MF位:置1表示后面还有更多分片,置0表示是最后一个分片。
    • 分段偏移量:描述该分片在原始数据包中的起始字节位置,用于接收端重组数据包。
  6. 生存时间:限制数据包在网络中经过的最大跳数(路由器数量)。每经过一台路由器,TTL值减1。当TTL减为0时,数据包被丢弃。这可以防止因路由环路导致的数据包无限循环。
  7. 协议:标识上层(传输层)使用的协议,例如:1代表ICMP,6代表TCP,17代表UDP。
  8. 首部校验和:用于验证IP报头在传输过程中是否出错。
  9. 源IP地址:发送数据包的节点IP地址。
  10. 目的IP地址:接收数据包的节点IP地址。在端到端传输中,源和目的IP地址应保持不变,这称为端到端地址一致性规则

IP地址基础

了解了IP报头后,我们来看IP协议的另一大贡献——IP地址。

IP地址的作用与构成

IP地址具有双重作用:

  1. 标识一个节点:作为网络设备接口的唯一标识。
  2. 描述节点位置:指明节点位于哪个网络,并在该网络内区分不同的节点。

一个节点通常指一个配置了IP地址的三层或三层以上接口。在整个Internet范围内,不能有两个节点使用相同的IP地址,否则会发生地址冲突。

IP地址是一个32位的二进制数,通常以点分十进制表示,例如 192.168.1.1。它被分为4段,每段8位,取值范围是0到255。

网络位与主机位

IP地址由两部分组成:

  • 网络位:高位部分,描述节点所在的网络。
  • 主机位:低位部分,在同一个网络内区分不同的节点。

例如,地址 192.168.10.1 配合子网掩码 255.255.255.0,表示前24位是网络位,后8位是主机位。同一个网络内的所有节点,其网络位必须相同,主机位必须不同。

子网掩码

子网掩码是一个32位的工具,用来明确标识IP地址中哪些位是网络位,哪些位是主机位。其特点是高位为连续的1,低位为连续的0。

  • 子网掩码中的“1”对应IP地址的网络位。
  • 子网掩码中的“0”对应IP地址的主机位。

书写时,除了使用点分十进制(如 255.255.255.0),更常用斜杠加位数表示(如 /24),代表网络位的长度。


IP地址分类与特殊地址

地址分类

IANA将IP地址分为五大类:

类别 首字节范围 网络位长度 主机位长度 用途
A类 1 - 126 8位 24位 单播地址
B类 128 - 191 16位 16位 单播地址
C类 192 - 223 24位 8位 单播地址
D类 224 - 239 N/A N/A 组播地址
E类 240 - 255 N/A N/A 保留地址

注意

  • 0.0.0.0 代表默认路由或未指定地址。
  • 127.0.0.1 是环回地址,用于测试本机TCP/IP协议栈。
  • D类地址用于组播,标识一组接收者。
  • E类地址被保留,用于研究。

网络号与广播地址

在一个网段中,有两个特殊地址不能分配给主机使用:

  1. 网络号:主机位全为0的地址,用于标识网络本身。例如 192.168.1.0/24
  2. 广播地址:主机位全为1的地址,用于向该网络内所有主机发送数据。例如 192.168.1.255/24

因此,一个网段中可用的主机地址数量是 2^(主机位数) - 2

公有地址与私有地址

由于IPv4地址枯竭,引入了地址分类:

  • 公有地址:需要在IANA注册,保证全球唯一,用于Internet。
  • 私有地址:无需注册,仅在私有网络内部保证唯一,不能直接在Internet上路由。企业内网通常使用私有地址。
    • A类私有:10.0.0.0/8
    • B类私有:172.16.0.0/12 (172.16.0.0172.31.255.255)
    • C类私有:192.168.0.0/16 (192.168.0.0192.168.255.255)

为了让使用私有地址的内网主机访问Internet,需要在网络边界设备上部署NAT技术。


子网划分

子网划分的目的

将一个主类地址段(如一个C类网段 192.168.1.0/24)直接用于一个网络,可能会造成地址浪费(该网络可能只有几十台主机)。若将其中的不同地址用于多个不同网络,又会因网络位相同而导致地址冲突。

子网划分通过“借位”的方式解决这个问题:从主机位借用若干高位,将其变为子网位(扩展的网络位)。这样,一个大的主类网络就被划分成了多个更小的子网,每个子网拥有不同的网络标识,可以分配给不同的物理网络使用,既避免了冲突,又节约了地址。

子网划分示例

假设有主类网络 192.168.1.0/24(网络位24,主机位8)。

  • 借1位:从主机位最高位借1位作为子网位。

    • 新掩码:/25 (255.255.255.128)
    • 划分出2个子网:
      • 子网1:192.168.1.0/25 (子网位为0)
      • 子网2:192.168.1.128/25 (子网位为1)
    • 每个子网有7位主机位,可用主机地址为 2^7 - 2 = 126 个。
  • 借2位:可划分出 2^2 = 4 个子网,掩码为 /26

  • 借n位:可划分出 2^n 个子网,新掩码长度为 原网络位长度 + n

关键规则:借位时,必须从主机位的最高位开始借,依次向低位进行。

FLSM 与 VLSM

根据子网划分的灵活性,分为两种方式:

  • FLSM:使用同一个子网掩码长度来划分所有子网。所有子网大小相同。
  • VLSM:允许使用不同的子网掩码长度来划分子网。可以针对不同大小的网络(如30台主机的网络和10台主机的网络)分配大小合适的子网,实现地址的精细化管理与最大程度的节约。

现代网络规划中普遍采用VLSM。


ICMP协议

网络层除了IP协议,还有一个重要的辅助协议——ICMP

ICMP协议封装在IP数据包内(IP报头协议字段值为1),主要用于网络连通性测试和错误报告。

常用工具

  • Ping:使用ICMP Echo Request和Echo Reply消息,测试网络连通性。
  • Traceroute:通过发送TTL值递增的数据包,探测到达目的地址的路径,并显示途径的每一跳路由器地址。

常见ICMP消息类型

  • Type 0: Echo Reply (Ping应答)
  • Type 8: Echo Request (Ping请求)
  • Type 3: Destination Unreachable (目的不可达)
    • Code 0: Network unreachable (网络不可达)
    • Code 1: Host unreachable (主机不可达)
    • Code 2: Protocol unreachable (协议不可达)
    • Code 3: Port unreachable (端口不可达)
  • Type 5: Redirect (重定向) - 用于优化路径。

总结

本节课我们一起学习了网络层的核心内容:

  1. IP报头结构:理解了各字段的作用,特别是TTL、分片、协议类型等关键字段。
  2. IP地址体系:掌握了IP地址的点分十进制表示、网络位/主机位的概念、子网掩码的作用,以及ABC类地址的范围和公有/私有地址的区别。
  3. 子网划分:这是本节课的重点。我们学习了通过借位进行子网划分的原理、目的和方法,理解了FLSM与VLSM的区别,并掌握了基本的子网计算思路。
  4. ICMP协议:了解了这个用于网络测试和差错报告的辅助协议及其常用工具Ping和Traceroute。

这些知识是进行网络设计、地址规划、故障排查的基础,需要大家认真理解和掌握。

华为认证HCIA-DATACOM教程:05:思科华为模拟器的安装 🖥️

在本节课中,我们将学习如何安装思科和华为的网络模拟器。掌握模拟器的安装是进行后续网络实验的基础,能帮助我们更好地理解理论知识。

概述

网络模拟器是学习和验证网络配置的重要工具。本节课将详细介绍华为ENSP模拟器和思科Packet Tracer模拟器的下载、安装步骤、常见问题解决方法以及基础配置操作。我们将分步进行,确保初学者能够顺利完成安装并开始第一个实验。


华为ENSP模拟器安装

上一节我们介绍了课程概述,本节中我们来看看华为ENSP模拟器的具体安装步骤。

准备工作

在开始安装前,需要完成以下准备工作。这些步骤对于确保安装成功至关重要。

以下是安装前的必要操作:

  1. 关闭防火墙和安全软件:必须关闭电脑的防火墙以及360安全卫士、腾讯电脑管家等所有安全软件,否则可能导致部分组件安装失败。
  2. 以管理员身份运行:所有安装包都需要右键点击,选择“以管理员身份运行”。

下载与安装顺序

模拟器安装文件通常由班主任老师上传至班级群。下载后,请注意安装包有严格的安装顺序,不能随意安装。

以下是正确的安装顺序(从底层组件开始):

  1. VirtualBox:虚拟机平台。
  2. WinPcapWireshark:网络抓包工具(Wireshark功能更强大)。
  3. VLC:媒体播放器(用于NA阶段之后的组播实验,NA阶段可不安装)。
  4. eNSP:华为企业网络仿真平台本身。

核心要点:最后安装 eNSP

安装过程与常见问题

安装过程中,所有组件均建议使用默认设置(如安装到C盘),直接点击“下一步”即可。安装eNSP时,如果检测到前三个组件已安装,则“下一步”按钮会亮起。

安装完成后,启动路由器设备时,可能会遇到错误代码 4041。以下是解决方法。

以下是解决启动报错的步骤:

  1. 关闭eNSP。
  2. 以管理员身份打开 VirtualBox
  3. 删除VirtualBox管理器中所有虚拟机文件。
  4. 关闭VirtualBox。
  5. 重新以管理员身份运行eNSP。
  6. 在eNSP菜单栏点击 工具 -> 注册设备
  7. 在弹出的对话框中,勾选所有设备类型,点击 注册,直至全部显示“注册成功”。
  8. 再次尝试启动路由器设备。

设备启动后,命令行界面出现 <Huawei> 提示符,即表示安装成功。


华为模拟器基础操作

成功安装模拟器后,本节我们来熟悉eNSP的基本界面和操作。

设备与界面介绍

eNSP主界面左侧为设备栏。常用设备包括:

  • 路由器:常用 AR2220
  • 交换机S5700(三层交换机),S3700(二层接入交换机)。
  • 终端PCServer
  • 连线:点击设备接口进行手动连线,或使用“自动连线”功能。

设备启动后,命令行界面默认为 用户视图,提示符为 <Huawei>。在此视图下只能执行少量查看命令。

要进入配置界面,需输入 system-view 命令进入 系统视图,提示符变为 [Huawei]

<Huawei> system-view
[Huawei]

常用基础命令

在系统视图下,可以进行大部分配置。

以下是几个最基础的配置命令:

  • 修改设备名称sysname R1
  • 进入接口视图interface GigabitEthernet 0/0/1
  • 配置IP地址ip address 10.1.1.254 24
  • 查看当前配置display this
  • 查看接口摘要display ip interface brief
  • 保存配置:在用户视图下输入 save,并根据提示输入 y

技巧:可以使用 Tab 键自动补全命令。如果输入的字符能唯一确定一条命令,按 Tab 键后会直接补全。


思科Packet Tracer模拟器安装

上一节我们掌握了华为模拟器的使用,本节中我们来看看思科Packet Tracer模拟器的安装与配置。

所需软件及安装

思科模拟器环境需要安装三款软件。

以下是必须安装的三款软件:

  1. VMware Workstation:虚拟机软件。可从官网下载,安装时需要使用序列号激活(群文件内提供)。
  2. Cisco Packet Tracer 镜像:文件格式为 .ova。这是模拟器的虚拟机镜像。
  3. SecureCRT (CRT):终端连接软件,用于登录和配置设备。安装时需暂时关闭Windows的“实时防护”功能,并使用注册机激活(详见群内安装文档)。

导入镜像与初始设置

安装好VMware后,需要导入Packet Tracer镜像并进行设置。

以下是导入和设置的步骤:

  1. 打开VMware,点击 文件 -> 打开,选择下载好的 .ova 镜像文件。
  2. 导入完成后,点击 编辑虚拟机设置
  3. 内存:根据电脑配置分配(如8GB)。
  4. 网络适配器:将两个网络适配器都设置为 仅主机模式。这对于NA阶段实验已足够。
  5. 点击 开启此虚拟机

登录与访问

虚拟机启动后,屏幕上会显示一个IP地址(例如 192.168.241.128)。

  1. 火狐浏览器(推荐)地址栏中输入该IP地址。
  2. 在登录页面输入:
    • 用户名:admin
    • 密码:pnet
    • 验证码:(根据图片输入,区分大小写)
  3. 登录后,建议在 系统设置 中关闭“随机验证码”功能,方便后续登录。

使用CRT连接设备

首次点击拓扑图中的设备时,浏览器会询问使用何种方式打开。选择 SecureCRT 并勾选“始终允许”。此后点击设备即可自动用CRT打开。

在CRT中首次连接设备时,会询问是否进入初始化配置对话框,请选择 no


思科模拟器基础操作

本节我们学习在思科模拟器中进行基本的设备配置。

设备添加与拓扑搭建

在Web界面中,点击 + 号添加节点,可以选择 路由器交换机PC 等设备。拖动设备间的橙色插头图标可以进行连线。选中所有设备后可以一键启动。

配置模式与基础命令

思科设备的配置模式比华为多一层。

以下是思科的命令行模式切换:

  • 用户模式Router>,权限最低。
  • 特权模式:在用户模式下输入 enable,进入 Router#。可查看信息。
  • 全局配置模式:在特权模式下输入 configure terminal,进入 Router(config)#。在此模式下进行主要配置。
Router> enable
Router# configure terminal
Router(config)#

在全局配置模式下,可以进行如下操作:

以下是几个基础配置命令:

  • 修改设备名称hostname R1
  • 进入接口视图interface gigabitEthernet 0/0
  • 配置IP地址ip address 10.1.1.254 255.255.255.0
  • 开启接口no shutdown (思科设备接口默认关闭,必须执行此命令)
  • 查看接口摘要show ip interface brief
  • 查看路由表show ip route

一个简单的连通性实验

我们可以参照华为实验的拓扑,在思科模拟器中搭建类似环境(PC-交换机-路由器-交换机-PC),并配置IP地址与网关。配置完成后,使用 ping 命令测试跨网段通信,验证路由器的直连路由学习功能。


总结

本节课中我们一起学习了思科和华为两款主流网络模拟器的完整安装流程与基础操作。

我们掌握了华为eNSP的组件安装顺序、常见故障(错误40/41)的解决方法,以及设备启动、基础配置和命令补全等技巧。同时也学习了思科Packet Tracer在VMware中的部署、通过Web界面访问和配置,以及思科设备特有的配置模式切换和基础命令。

安装并熟练使用模拟器是网络工程师入门实践的第一步。建议大家在课后按照教程亲自操作一遍,并尝试完成一个简单的双PC通过路由器互通的实验,以巩固学习成果。下节课我们将学习更具体的设备配置命令和实验。

华为认证HCIA-DATACOM教程:P6:思科华为系统及常用命令

在本节课中,我们将学习华为ENSP模拟器的基本操作、常用命令,并通过一个简单的网络实验,理解不同网段间通信的原理。课程最后,我们会简要对比思科设备的配置方式。

🖥️ 华为ENSP模拟器基础

上一节我们介绍了课程安排,本节中我们来看看华为ENSP模拟器的基本界面和操作。

运行环境与注意事项

在运行ENSP模拟器前,需注意以下事项:

  • 关闭或卸载电脑管家、杀毒软件等,它们可能拖慢系统速度并干扰模拟器运行。
  • 下载软件时,请认准官方网站,避免下载捆绑了恶意软件的安装包。
  • 运行ENSP时,请务必使用管理员身份打开。

主界面与设备介绍

打开ENSP后,主界面顶部有7个图标,代表不同类型的网络设备:

  • 路由器 (R)
  • 交换机 (S/W)
  • 无线设备 (W)
  • 防火墙 (F)
  • 终端 (End)
  • 其他设备
  • 连线 (Link)

以下是常用设备型号建议:

  • 路由器:常使用 AR2220,性能适中。
  • 交换机:接入层使用 S3700,汇聚层使用 S5700
  • 终端:使用 PCServer

将设备拖入拓扑区后,蓝色表示设备未启动。可以右键设备查看后面板,以添加或更换接口板卡。

工具栏功能

工具栏提供了快速操作按钮,以下是核心功能介绍:

  • 新建/打开/保存拓扑:管理实验文件。
  • 撤销/恢复:用于操作回退。
  • 删除:删除选中设备或所有连线。
  • 放大/缩小/1:1:调整拓扑视图。
  • 显示接口/网络:在拓扑上显示设备接口或网络信息。
  • 数据抓包:点击链路可启动抓包工具。
  • 显示网格:辅助对齐设备。

设备连线

点击闪电图标进行连线。选择 Copper(铜缆)即可。连线后,可点击“显示接口标签”按钮,以便查看接口名称。

界面设置

在“设置”菜单中,可以调整界面:

  • 界面设置:可调整设备标签、背景、对话框透明度等。
  • 字体设置:可修改命令行字体颜色和大小,建议初学者保持默认。

常见问题解决

如果启动设备时出现 4041 错误,请尝试以下步骤:

  1. 以管理员身份打开 VirtualBox
  2. 删除所有虚拟机。
  3. 在ENSP的“工具”菜单中,点击“注册设备”,全选后注册。


⌨️ 华为设备基础命令

熟悉了模拟器界面后,本节我们来看看华为设备的基本配置命令和操作技巧。

视图与导航

华为设备配置具有层级关系,称为“视图”。

  • 用户视图:设备启动后进入的视图,提示符为 <Huawei>。在此视图下可执行少量查看命令。
  • 系统视图:在用户视图下输入 system-view 进入,提示符变为 [Huawei]。大部分配置在此视图下进行。
  • 接口视图等:在系统视图下输入 interface GigabitEthernet 0/0/0 可进入特定接口的配置视图。

导航命令

  • quit:退出当前视图,返回上一级视图。
  • Ctrl+Zreturn:直接从任何视图一次性返回用户视图

常用快捷键与帮助

  • 方向键 ↑ ↓:调出历史命令。
  • Tab键:自动补全命令。当输入的前几个字母能唯一确定一条命令时,按 Tab 可直接补全。
  • ? 键:获取帮助。在命令后输入 ?,会显示该位置所有可用的参数或子命令。

基础配置命令

以下是几个最常用的配置和查看命令:

  • 修改设备名称:在系统视图下,使用 sysname R1 将设备名称改为 R1
  • 查看当前视图配置:在任何视图下,使用 display this 查看本视图下已做的配置。
  • 查看设备全部配置:在用户视图下,使用 display current-configuration
  • 查看接口IP摘要:使用 display ip interface brief 快速查看所有接口的IP地址和状态。
  • 查看路由表:使用 display ip routing-table
    • 可附加参数细化查看,例如 display ip routing-table protocol ospf 只查看通过OSPF学到的路由。

接口配置与测试

进入接口视图后,可以配置IP地址:

[Huawei] interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0] ip address 10.1.1.1 255.255.255.0

配置完成后,接口协议状态会变为 Up

测试命令

  • ping {IP地址}:测试网络连通性。
  • tracert {IP地址}:追踪数据包路径,用于网络故障排查。

🌐 实现跨网段通信实验

上一节我们学会了基础命令,本节我们通过一个实验,理解如何让不同网段的主机相互通信。

实验拓扑与需求

我们构建一个包含多台路由器和PC的简单网络。目标是让 PC1 (192.168.1.0/24网段) 能够与 PC2 (172.16.1.0/24网段) 通信。

核心概念:路由器只能自动知晓与其直连的网络。对于非直连的网络,必须通过静态路由动态路由协议来告知路由器如何到达。

配置步骤

  1. 基础IP配置:为所有路由器的接口配置正确的IP地址,并确保直连链路能 ping 通。
  2. 配置静态路由
    • R1 上,告诉它如何去往 PC2 所在的网络 172.16.1.0/24。下一跳是 R2 的接口地址 12.1.1.2
      [R1] ip route-static 172.16.1.0 255.255.255.0 12.1.1.2
      
    • R2 上,告诉它如何去往 PC1 所在的网络 192.168.1.0/24。下一跳是 R1 的接口地址 12.1.1.1
      [R2] ip route-static 192.168.1.0 255.255.255.0 12.1.1.1
      
    • 下一跳:指数据包从本设备发出后,第一个接收它的邻居设备接口地址。

验证与排错

配置完成后,在 PC1ping PC2 的地址 172.16.1.1

  • 若不通,可使用 tracert 172.16.1.1 命令追踪路径,查看数据包在哪个节点中断,从而缩小故障排查范围。
  • 检查路由表:使用 display ip routing-table 确认静态路由是否已生效。

通过此实验,我们理解了路由是跨网段通信的基础。


🔄 思科设备命令简要对比

最后,我们简要对比思科设备的配置,其逻辑与华为相似,但命令格式有差异。

主要区别

  1. 视图进入:思科的用户视图叫“用户执行模式”,系统视图叫“全局配置模式”,使用 configure terminal 进入。
  2. 命令关键字:华为的 display 在思科中为 show
  3. 接口默认状态:思科路由器接口默认是关闭的,配置IP后需执行 no shutdown 命令手动开启。
  4. 静态路由配置:思科命令为 ip route,且子网掩码必须用点分十进制格式(如255.255.255.0),不能直接写24
    R1(config)# ip route 172.16.1.0 255.255.255.0 12.1.1.2
    

配置保存

  • 华为:在用户视图下使用 save 命令保存配置。
  • 思科:在特权执行模式下使用 writecopy running-config startup-config 保存配置。

尽管命令不同,但网络配置的原理(如IP规划、路由概念)是完全相通的。


📚 本节课总结

在本节课中,我们一起学习了:

  1. 华为ENSP模拟器的基本操作、设备添加、连线及界面设置。
  2. 华为设备命令行的基础,包括视图切换、快捷键、帮助系统以及常用的配置和查看命令。
  3. 网络通信原理,通过一个静态路由实验,理解了路由器如何通过路由表实现跨网段通信,并掌握了 pingtracert 等测试工具。
  4. 思科与华为的对比,了解了两者在配置命令上的主要差异,认识到其底层网络原理的一致性。

掌握这些基础是成为一名网络工程师的第一步。下节课我们将深入讲解路由条目的构成、静态路由与默认路由的详细配置。

华为认证HCIA-DATACOM教程:07:静态路由与路由器工作原理 🚦

在本节课中,我们将要学习路由器的核心工作原理,包括其定位、路由表的概念、以及数据层面与控制层面的区别。我们还将深入探讨静态路由的配置方法,并理解路由条目中的关键要素。这些知识是理解网络数据如何在不同网络间传输的基础。

路由器的定位 🧭

上一节我们介绍了网络的基本构成,本节中我们来看看网络中的关键设备——路由器。路由器在网络中扮演着两个核心角色。

首先,路由器可以隔离广播域。这意味着它能阻止广播流量从一个网络传播到另一个网络,从而将大型网络划分为更小、更易管理的广播域。

其次,路由器用于连接不同的网络。它作为不同网络(或广播域)之间的桥梁,使得这些网络中的设备能够相互通信。同时,路由器负责执行网络间的数据转发,根据目的IP地址将数据包从一个网络传递到另一个网络。

路由条目与路由表 📋

理解了路由器的定位后,我们来看看它是如何知道该把数据发往何处的。这依赖于路由条目和路由表。

  • 路由:指的是一台路由器去往一个特定目的网络的路径
  • 路由表:是路由器中存储的所有路由条目的集合。路由表中的每一条路由条目都能告诉路由器,去往某个目的网络应该如何走。

简单来说,路由是具体的“路线指示”,而路由表是存储所有这些“路线指示”的“地图册”。

路由器的控制层面与数据层面 ⚙️

路由器的工作可以清晰地分为两个层面:控制层面和数据层面。这是理解路由器工作原理的重中之重。

控制层面:学习路由

控制层面负责学习和生成路由表。路由器通过以下三种方式获取路由信息:

以下是路由器学习路由的三种主要方式:

  1. 直连路由:当路由器的接口配置了IP地址并处于激活状态时,路由器会自动发现并学习到该接口所直接连接的网络路由。
  2. 静态路由:由网络管理员手动配置并写入路由器的路由条目。管理员明确指定了去往某个网络应该通过哪个接口、下一跳地址是什么。
  3. 动态路由选择协议:路由器运行如OSPF、RIP等协议,通过与网络中的其他路由器自动交换路由信息,动态地学习到最佳路径。

数据层面:转发数据

数据层面则负责根据已有的路由表来实际转发数据包。其工作流程可以分为三步:

以下是数据层面处理数据包的三个核心步骤:

  1. 检查数据包目标:路由器收到数据帧后,首先检查其目的MAC地址是否与接收接口的MAC地址匹配。如果不是发送给自己的,则丢弃;如果是,则拆开数据帧,查看三层IP包头。
  2. 查找路由表:查看IP包头中的目的IP地址,将其与自身路由表中的条目逐一进行匹配(这个过程涉及IP地址与掩码的“与”运算,以得到网络号)。
  3. 执行转发或丢弃
    • 如果找到匹配的路由条目,则按照该条目的指示(指定出接口和下一跳)转发数据包。
    • 如果找不到任何匹配的路由条目,则丢弃该数据包。
    • 如果有多条路由条目都能匹配目的地址,则遵循最长掩码匹配规则,选择掩码最长(即最精确)的那条路由进行转发。

直连路由与非直连路由 🔗

根据路由的获取方式,我们可以将其分类:

  • 直连路由:路由器接口直接相连的网络路由,可以自动获悉。
  • 非直连路由:非直接相连的远程网络路由,必须通过配置静态路由或运行动态路由选择协议来学习。

网关的概念 🚪

网关是一个网络的“出口”。当一台设备(如PC)需要将数据发送到其他网络时,它首先会把数据包发送给其配置的网关地址(通常是本地路由器接口的IP地址)。网关是数据离开本地网络的第一站。

路由条目六要素 🧮

一条完整的路由条目通常包含六个关键要素,无论是查看还是配置路由时都需要理解它们。

以下是构成一条路由条目的六个核心要素及其解释:

  1. 前缀/目的网络:指目的网络的网络号(通过IP地址与掩码“与”运算得出)。
  2. 掩码:用于区分IP地址中的网络部分和主机部分,并指明前缀的长度。
  3. 出接口:数据包离开路由器去往目的网络时,从本路由器的哪个物理或逻辑接口发出
  4. 下一跳:数据包为了到达目的网络,需要经过的下一个三层设备(通常是路由器)接口的IP地址。它描述了路径上的第一个节点。
  5. 管理距离/优先级:用于衡量从不同来源(直连、静态、不同动态协议)学到的同一条路由的可靠性数值越小,优先级越高,路由越可信。例如,华为设备中OSPF路由的优先级为10,静态路由为60,OSPF路由更优。
  6. 度量值:用于比较从同一种路由协议学到的、通往同一目的地的不同路径的优劣。度量值计算方式因协议而异(如RIP使用跳数,OSPF使用带宽成本),值越小路径越优

注意:管理距离用于在不同“信息来源”间做选择;度量值用于在同一“信息来源”的不同“路径”间做选择。

静态路由配置示例 💻

理论需要结合实际操作。下面我们通过一个简单示例,演示如何在华为设备上配置静态路由,使两个非直连网络能够通信。

假设我们需要让R1知道如何到达网络 20.1.1.0/24
在R1上的配置命令如下:

ip route-static 20.1.1.0 255.255.255.0 GigabitEthernet 0/0/0 12.1.1.2
  • 20.1.1.0 255.255.255.0:目的网络的前缀和掩码。
  • GigabitEthernet 0/0/0:出接口。
  • 12.1.1.2:下一跳IP地址。

配置完成后,可以使用 display ip routing-table 命令查看路由表,确认静态路由是否已生效。

环回接口简介 🔄

在实验环境中,我们经常使用环回接口来模拟路由器身后的主机或网络。环回接口是路由器内部的虚拟接口,非常稳定(因为不存在物理链路故障)。

创建环回接口并配置IP地址的命令示例如下:

interface LoopBack 0
 ip address 2.2.2.2 255.255.255.255

这样,2.2.2.2/32 这个地址就可以代表R2所连接的一个终端,简化了实验拓扑。


本节课中我们一起学习了路由器的核心工作原理。我们明确了路由器隔离广播域、连接不同网络并进行数据转发的定位;深入剖析了路由表如何通过控制层面(直连、静态、动态)学习生成,以及数据层面如何依据路由表执行转发决策(包括最长掩码匹配规则);我们还详细解析了路由条目的六个要素,并通过实例演示了静态路由的配置。理解这些概念是掌握IP路由和进行网络故障排查的坚实基础。

华为认证HCIA-DATACOM教程:P8:XCNA-08-动态路由选择协议基础

概述

在本节课中,我们将学习动态路由选择协议的基础知识。上节课我们介绍了静态路由的配置,本节中我们来看看如何通过运行动态路由选择协议,让路由器自动学习到非直连网络的路径信息。

路由条目的分类

之前我们研究路由器的路由条目,路由条目分为两类。

  • 一类叫直连路由。
  • 还有一类叫非直连路由。

直连路由用来告诉路由器,一个直连的网络怎么走。因为路由就是去往一个网络的路径信息。

这种路由能够自动获悉。获悉条件是路由器连接一个网络的接口,需要 no shutdown 开启,保证状态为 up。然后给这个接口配置正确的IP地址和掩码。只要接口地址正确且状态为 up,路由器就能自动学习到直连网络的路径信息。

非直连路由指向的是一些非直连网络。路由器如何获得这些路由?靠自动获悉是无效的,需要做一些相关配置。这个配置可以通过写静态路由的方式,管理员登录路由器写静态路由来强制告诉路由器,一个目的网络该怎么走。

静态路由的优点就是精准。静态路由怎么写,路由器就会怎么执行。管理员告诉路由器希望访问一个网络使用哪条路径,它就会使用哪条路径。

静态路由的缺点是,当在一个园区内,路由器数量比较多,网络数量比较多的情况下,写静态路由没有那么方便。因为一条静态路由只能告诉路由器一个目的网络怎么走。网络一多,静态路由写起来没完没了。第二点,静态路由写完之后,如果指定的路径不可用,在绝大多数情况下,管理员需要删除原有路由,并根据新路径重新配置,非常不灵活。

静态路由一般用在园区边界,例如边界路由器或防火墙上,写一条静态默认路由指向运营商,实现内网主机到公网的访问。但在一个大型园区内,如果有很多路由器和网络,不太适合写静态路由。这时需要通过第二个方式:运行动态路由选择协议。

动态路由选择协议简介

动态路由选择协议不是单一协议,而是一类协议。这类协议的统称称为路由选择协议。它们共同的目标是让路由器自动了解到非直连网络的路径信息。

这类协议包含很多成员,分别是:

  • RIP
  • EIGRP
  • OSPF
  • IS-IS
  • BGP

在一个园区内,可以运行RIP、EIGRP、OSPF、IS-IS。如果在多个园区之间,可以通过运行BGP来解决路由传递问题。

动态路由选择协议通过让路由器之间互通有无来实现路由信息共享。例如,路由器R1连接网络X,路由器R2连接网络Y。在R1和R2之间运行动态路由选择协议后,R1会通过一种特殊的报文(称为路由更新 Update)把已知的X网络路由通告给R2。R2也会把Y网络路由通告给R1。这样,双方的路由表中就都有了去往对方网络的路由。

路由选择协议的分类

路由选择协议有多种分类方式。

按工作范围分类

按照工作范围,路由选择协议分为两类。

  • IGP:内部网关协议。这类协议适合在一个 AS 内使用。
  • EGP:外部网关协议。这类协议适合在多个 AS 之间使用。

AS 的全称是 Autonomous System,称为自治系统。它是一组属于相同组织、拥有相同管理策略的网络设备的集合。简单来说,一个 AS 指的就是一个园区,例如一个企业网园区。能够称为 AS 的园区通常会购买一个 AS 号来标识自身。

IGP 协议包括 RIP、EIGRP、OSPF、IS-IS。它们适合在一个园区内使用。
EGP 协议主要指 BGP。它适合在多个园区(通常是运营商网络)之间使用,用于在不同自治系统之间传递路由。

按核心算法或运行方式分类

按照核心算法或运行方式,路由选择协议分为两类。

  • 距离矢量协议:也称为基于传闻的协议。
  • 链路状态协议:也称为基于拓扑的协议。

距离矢量协议 的特点是,路由器之间交互的更新报文中只包含路由信息,不包含拓扑信息。路由器只是听信邻居的“传闻”,邻居告诉它去往一个目的网络可以拿谁做下一跳,它就信任并把路由加入表。路由器并不知道网络的连接方式和分布情况。这类协议包括 RIP、EIGRP 和 BGP。

链路状态协议 的特点是,路由器之间交互的更新报文中包含的是拓扑连接信息(链路状态通告 LSA),而不是直接的路由条目。每台路由器会通告自己的身份、运行的接口及连接的网络、以及连接的邻居等信息。所有路由器收集这些 LSA 后,能构建出整个网络的拓扑图,然后基于拓扑信息自行计算出去往每个网络的最优路径。这类协议包括 OSPF 和 IS-IS。

距离矢量协议的细分:有类与无类

距离矢量协议在发展过程中经过了一次变革。

  • 有类距离矢量协议:路由器之间交互路由时,更新报文中只包含路由前缀和度量值,不包含掩码和下一跳。接收方需要猜测掩码和下一跳。为了避免猜错,要求网络规划时使用定长子网掩码 FLSM,即属于同一个主类网络的所有子网段,其网络位长度必须相同。RIP 版本1 就是有类协议。
  • 无类距离矢量协议:路由器之间交互的路由信息是完整的,包含前缀、掩码、下一跳和度量值。接收方无需猜测任何信息。因此,网络规划时可以使用变长子网掩码 VLSM,更加灵活地节约地址。RIP 版本2 和 EIGRP 都属于无类协议。

链路状态协议天然属于无类范畴,支持 VLSM

动态路由选择协议配置(思科)

本节中我们来看看如何在思科路由器上配置常见的动态路由选择协议。配置环境为三台路由器(R1, R2, R3)两两互联,每台路由器配置一个环回口模拟身后网络。

以下是配置的基本思路:

  1. 为所有接口配置IP地址,确保直连连通性。
  2. 在全局配置模式下启用路由协议进程。
  3. 进行必要的协议特性调优(如版本、关闭自动汇总等)。
  4. 将路由器的相关接口“宣告”进协议进程。

RIP 配置

以下是 RIP 的配置示例。

在 R2 上配置:

router rip
 version 2
 no auto-summary
 network 12.0.0.0
 network 2.0.0.0

在 R1 上配置:

router rip
 version 2
 no auto-summary
 network 1.0.0.0
 network 12.0.0.0
 network 13.0.0.0

在 R3 上配置:

router rip
 version 2
 no auto-summary
 network 3.0.0.0
 network 13.0.0.0

配置完成后,使用 show ip route 查看路由表,应能学到邻居的环回口路由,标识为 R。使用 ping 测试连通性。

EIGRP 配置

以下是 EIGRP 的配置示例。

在 R2 上配置:

router eigrp 90
 no auto-summary
 eigrp router-id 2.2.2.2
 network 12.1.1.2 0.0.0.0
 network 2.2.2.2 0.0.0.0

在 R1 上配置:

router eigrp 90
 no auto-summary
 eigrp router-id 1.1.1.1
 network 1.1.1.1 0.0.0.0
 network 12.1.1.1 0.0.0.0
 network 13.1.1.1 0.0.0.0

在 R3 上配置:

router eigrp 90
 no auto-summary
 eigrp router-id 3.3.3.3
 network 3.3.3.3 0.0.0.0
 network 13.1.1.3 0.0.0.0

配置完成后,使用 show ip route 查看路由表,应能学到邻居的环回口路由,标识为 D。使用 ping 测试连通性。

OSPF 配置

以下是 OSPF 的配置示例。

在 R2 上配置:

router ospf 110
 router-id 2.2.2.2
 network 12.1.1.2 0.0.0.0 area 0
 network 2.2.2.2 0.0.0.0 area 0

在 R1 上配置:

router ospf 110
 router-id 1.1.1.1
 network 1.1.1.1 0.0.0.0 area 0
 network 12.1.1.1 0.0.0.0 area 0
 network 13.1.1.1 0.0.0.0 area 0

在 R3 上配置:

router ospf 110
 router-id 3.3.3.3
 network 3.3.3.3 0.0.0.0 area 0
 network 13.1.1.3 0.0.0.0 area 0

配置完成后,等待邻居建立(约40秒),使用 show ip route 查看路由表,应能学到邻居的环回口路由,标识为 O。使用 ping 测试连通性。

动态路由选择协议配置(华为)

华为设备配置动态路由选择协议的流程与思科高度相似。以下演示 RIP 和 OSPF 的配置(华为设备不支持 EIGRP)。

华为 RIP 配置

在 R2 上配置:

rip 100
 version 2
 undo summary
 network 12.0.0.0
 network 2.0.0.0

在 R1 上配置:

rip 100
 version 2
 undo summary
 network 1.0.0.0
 network 12.0.0.0
 network 13.0.0.0

在 R3 上配置:

rip 100
 version 2
 undo summary
 network 3.0.0.0
 network 13.0.0.0

配置完成后,使用 display ip routing-table 查看路由表。使用 ping -a 指定源地址进行测试。

华为 OSPF 配置

在 R2 上配置:

ospf 10 router-id 2.2.2.2
 area 0.0.0.0
  network 12.1.1.2 0.0.0.0
  network 2.2.2.2 0.0.0.0

在 R1 上配置:

ospf 10 router-id 1.1.1.1
 area 0.0.0.0
  network 1.1.1.1 0.0.0.0
  network 12.1.1.1 0.0.0.0
  network 13.1.1.1 0.0.0.0

在 R3 上配置:

ospf 10 router-id 3.3.3.3
 area 0.0.0.0
  network 3.3.3.3 0.0.0.0
  network 13.1.1.3 0.0.0.0

配置完成后,等待邻居建立,使用 display ip routing-table 查看路由表。使用 ping -a 测试连通性。

关于通配符掩码

在宣告网络时,常使用 network 命令后跟IP地址和通配符掩码。通配符掩码(反掩码)与子网掩码相反,0 表示需要精确匹配,1 表示忽略(任意)。例如:

  • network 10.1.1.0 0.0.0.255 匹配 10.1.1.010.1.1.255 的范围。
  • network 10.1.1.4 0.0.0.0 精确匹配 10.1.1.4 这一个地址。
  • network 0.0.0.0 255.255.255.255 匹配所有地址,常用于宣告设备所有接口。

企业边界与运营商连接

企业边界路由器通常不与运营商运行动态路由协议,原因有二:

  1. 运营商路由表极其庞大,企业设备性能可能无法承受。
  2. 运营商连接的企业众多,不屑于与每个企业建立对等的邻居关系。

常见的做法是,在企业边界路由器上配置一条指向运营商的静态默认路由。

ip route-static 0.0.0.0 0.0.0.0 <出接口或下一跳地址>

为了使内网其他路由器能访问外网,可以在边界路由器上将这条默认路由重分发到内部动态路由协议中(如OSPF中使用 default-route-advertise 命令)。

总结

本节课中我们一起学习了动态路由选择协议的基础知识。我们了解了路由器获得非直连路由的第二种方式,认识了常见的动态路由协议及其分类(IGP/EGP、距离矢量/链路状态、有类/无类)。我们掌握了在思科和华为设备上配置RIP、EIGRP(仅思科)、OSPF等协议的基本流程和命令模板。配置的核心步骤是:启用协议进程、进行必要调优、宣告相关接口。最后,我们还了解了企业网与运营商连接的常见方式。希望大家通过练习巩固这些配置。

华为认证HCIA-DATACOM教程:P9:XCNA-09-路由阶段性实验

概述

在本节课中,我们将进行一个路由综合实验。我们将使用四台路由器,模拟一个包含不同路由协议的网络环境,并最终实现跨协议网络的端到端通信。通过这个实验,我们将巩固静态路由、RIP和OSPF协议的基本配置,并理解不同网络区域间通信的原理。

路由协议阶段性回顾

在开始实验之前,我们先简要回顾一下NA阶段学习的路由协议要点。

对于OSPF协议,在NA阶段,你需要知道它的五种报文类型,以及它通过Hello报文和SLA(链路状态通告)来发现和建立邻居关系。至于详细的LSA类型(1到7类)和原理,将在NP阶段深入学习。

对于实验要求,从接触模拟器开始,你需要掌握:修改设备系统名、配置接口IP地址、配置静态路由,以及配置RIP和OSPF这类动态路由协议。

学完路由部分后,网络工程师还需要学习二层技术。在NA阶段,二层技术主要了解VLAN的作用、划分方法以及不同VLAN间如何通信,此外还包括交换机的工作模式。这些内容将在后续课程中学习。

实验拓扑与目标

本次实验的拓扑结构如下:我们拥有四台路由器(R1, R2, R3, R4)和两台PC(PC5, PC6)。

  • R1与R2之间:运行OSPF协议。
  • R3与R4之间:运行EIGRP协议(思科模拟器部分)或OSPF协议(华为模拟器部分)。
  • R2与R3之间:不运行任何动态路由协议,依靠静态路由或默认路由进行通信。

实验目标:实现PC5(192.168.10.0/24网段)与PC6(192.168.20.0/24网段)之间的相互通信。

思科设备配置演示

首先,我们在思科模拟器上完成此实验。

第一步:基础IP地址配置

我们需要为所有路由器的接口和环回口配置IP地址,并为PC配置IP地址及网关。

地址规划原则

  • 直连链路地址:例如R1-R2使用192.168.12.0/24,R2-R3使用192.168.23.0/24,R3-R4使用192.168.34.0/24。
  • 环回口地址:R1为1.1.1.1/32,R2为2.2.2.2/32,R3为3.3.3.3/32,R4为4.4.4.4/32。
  • PC网关地址:PC5的网关(R1的G0/1接口)为192.168.10.254/24;PC6的网关(R4的G0/1接口)为192.168.20.254/24。

配置示例(R1)

Router> enable
Router# configure terminal
Router(config)# hostname R1
R1(config)# interface loopback 0
R1(config-if)# ip address 1.1.1.1 255.255.255.255
R1(config-if)# interface gigabitEthernet 0/0
R1(config-if)# ip address 192.168.12.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# interface gigabitEthernet 0/1
R1(config-if)# ip address 192.168.10.254 255.255.255.0
R1(config-if)# no shutdown

使用 show ip interface brief 命令可以查看接口状态与IP地址信息。

关于环回口(Loopback)
环回口是一个虚拟接口,主要作用有两个:标识路由器本身和模拟路由器身后的网络。它的掩码可以不是32位,但配置为32位时,在路由表中代表一个精确的主机路由。在后续学习BGP等协议时,环回口将发挥重要作用。

第二步:配置动态路由协议

在R1和R2上配置OSPF协议。

OSPF配置要点

  1. 进程号:本地有效,邻居间可以不同。
  2. Router ID:最好手动指定,通常使用环回口地址。选举顺序为:优先选择最大的环回口地址;若无环回口,则选择最大的物理接口IP地址。
  3. 宣告网络:可以使用 network 命令加反掩码进行宣告。反掩码中,0表示精确匹配,1表示任意。

配置示例(R1)

R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 1.1.1.1 0.0.0.0 area 0
R1(config-router)# network 192.168.12.0 0.0.0.255 area 0

配置完成后,可以使用 show ip ospf neighbor 查看邻居状态,show ip route ospf 查看OSPF学习到的路由。

在R3和R4上配置EIGRP协议(思科私有)。

EIGRP配置要点

  1. 进程号:必须与邻居路由器一致。
  2. 关闭自动汇总:使用 no auto-summary 命令。
  3. 宣告网络:同样使用 network 命令加反掩码。

配置示例(R3)

R3(config)# router eigrp 90
R3(config-router)# no auto-summary
R3(config-router)# eigrp router-id 3.3.3.3
R3(config-router)# network 3.3.3.3 0.0.0.0
R3(config-router)# network 192.168.34.0 0.0.0.255

配置完成后,使用 show ip eigrp neighborsshow ip route eigrp 进行验证。

第三步:配置静态路由/默认路由实现互通

此时,PC5无法ping通PC6。因为R1没有去往192.168.20.0/24网段的路由,R2没有去往3.3.3.3或192.168.20.0/24的路由。

解决方案:在未运行动态协议的链路上,通过配置静态默认路由,引导数据包传递。

  1. 在R1上配置默认路由,指向R2。
    R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.2
    
  2. 在R2上配置默认路由,指向R3。
    R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.3
    
  3. 在R3上配置默认路由,指向R2(用于回包)。
    R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.2
    
  4. 在R4上配置默认路由,指向R3。
    R4(config)# ip route 0.0.0.0 0.0.0.0 192.168.34.3
    

通信过程分析(以PC5 ping PC6为例)

  1. PC5发送数据包,目的IP为PC6,查询本地路由,发现非本地网段,将数据包发往网关R1。
  2. R1查询路由表,没有精确匹配PC6的路由,但有一条默认路由,将数据包转发给R2。
  3. R2同样通过默认路由转发给R3。
  4. R3查询路由表,通过EIGRP协议学到了192.168.20.0/24的路由,将数据包转发给R4。
  5. R4将数据包送达PC6。
  6. PC6回复数据包,目的IP为PC5。R4通过默认路由发给R3。
  7. R3通过默认路由发给R2。
  8. R2查询路由表,通过OSPF协议学到了192.168.10.0/24的路由,将数据包转发给R1。
  9. R1将数据包送达PC5。

至此,端到端通信建立。在整个过程中,三层IP地址(源IP和目的IP)始终保持不变,而二层MAC地址在每一跳都会改变。

第四步:高级技巧——默认路由下放

手动配置多台设备的默认路由比较繁琐。在实际网络中,可以使用“默认路由下放”技术。例如,在OSPF中,可以在边界路由器(R3)上配置:

R3(config)# router ospf 1
R3(config-router)# default-information originate

这条命令会将R3上的默认路由以OSPF外部路由(O*E2)的形式发布给OSPF区域内的其他路由器(如R4),实现自动学习,无需每台设备手动配置。此技术细节将在NP课程中详解。

华为设备配置演示

接下来,我们在华为模拟器上完成一个类似的实验,将EIGRP替换为RIP和OSPF。

第一步:基础IP地址配置

华为设备接口默认开启。配置命令与思科类似,但掩码可以简写(如24代表255.255.255.0)。

配置示例(R1)

<Huawei> system-view
[Huawei] sysname R1
[R1] interface LoopBack 0
[R1-LoopBack0] ip address 1.1.1.1 32
[R1-LoopBack0] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.10.254 24

使用 display ip interface brief 查看接口信息。

第二步:配置动态路由协议

在R1和R2上配置RIP协议。

RIP配置要点:需要关闭自动汇总,并且宣告的是主类网络。

配置示例(R1)

[R1] rip 1
[R1-rip-1] version 2
[R1-rip-1] undo summary
[R1-rip-1] network 192.168.10.0
[R1-rip-1] network 192.168.12.0
[R1-rip-1] network 1.0.0.0

使用 display rip 1 neighbordisplay ip routing-table protocol rip 查看信息。

在R3和R4上配置OSPF协议。

配置示例(R3)

[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0] network 192.168.34.0 0.0.0.255

使用 display ospf peer briefdisplay ip routing-table protocol ospf 查看信息。

第三步:配置静态默认路由及下放

为实现通信,仍需配置默认路由。华为配置命令如下:

[R1] ip route-static 0.0.0.0 0.0.0.0 192.168.12.2
[R2] ip route-static 0.0.0.0 0.0.0.0 192.168.23.3
[R3] ip route-static 0.0.0.0 0.0.0.0 192.168.23.2

在华为OSPF中,同样可以下放默认路由,在R3的OSPF进程下配置:

[R3-ospf-1] default-route-advertise

配置后,R4会自动学习到一条下一跳为R3的默认路由(通过OSPF)。

关键命令总结

以下是本实验涉及的核心查看命令对比:

功能 思科命令 华为命令
查看接口IP show ip interface brief display ip interface brief
查看路由表 show ip route display ip routing-table
查看OSPF邻居 show ip ospf neighbor display ospf peer brief
查看OSPF路由 show ip route ospf display ip routing-table protocol ospf
查看OSPF数据库 show ip ospf database display ospf lsdb
查看RIP路由 show ip route rip display ip routing-table protocol rip
查看EIGRP邻居 show ip eigrp neighbors N/A
查看EIGRP路由 show ip route eigrp N/A

总结

本节课我们一起完成了一个综合性的路由实验。我们回顾并实践了静态路由、RIP和OSPF协议的配置,重点解决了在不同路由协议区域之间通过静态默认路由实现通信的问题。我们还探讨了数据包端到端转发过程中IP地址和MAC地址的变化规律,并简要介绍了“默认路由下放”这一高级特性。理解这些原理和配置,是构建和维护复杂网络的基础。下一阶段,我们将进入二层交换技术的学习。

OSPF高级特性:P100:FA、GR、NSR

概述

在本节课中,我们将学习OSPF协议中的三个高级特性:转发地址(FA)、平滑重启(GR)以及不间断路由(NSR)。这些特性旨在优化路径选择、提升网络在设备重启或故障切换时的可靠性,确保业务不中断。


FA(转发地址)回顾与路径优化

上一节我们介绍了OSPF与BFD的联动,本节中我们来看看FA地址。FA地址在HCIP阶段已经学习过,它属于OSPF的一种路径优化机制。

FA地址的作用与产生场景

FA地址主要用于解决外部路由引入时可能产生的次优路径问题。其核心思想是:在通告外部路由(5类或7类LSA)时,ASBR可以携带一个“转发地址”(FA)。收到该LSA的路由器在计算外部路由路径时,不再以ASBR作为下一跳,而是以FA地址作为目标,从而可能选择更优的路径。

以下是FA地址产生的三个必要条件:

  1. 接口启用OSPF:ASBR连接外部网络的出接口必须启用OSPF。
  2. 非被动接口:该接口不能被设置为被动接口(静默接口)。
  3. 网络类型限制:该接口的OSPF网络类型必须是广播(Broadcast)或NBMA,不能是点对点(P2P)或点对多点(P2MP)。

当满足以上条件时,ASBR在产生的外部LSA中会携带FA地址,其值为去往外部路由的下一跳IP地址

FA地址的工作机制示例

考虑以下拓扑:R1、R2、R3、R4运行OSPF。R1连接外部网络10.1.1.1/32,R2将这条静态路由引入OSPF。

  • 无FA地址时:R4计算去往10.1.1.1的路径时,会查找去往ASBR(R2)的最短路径,下一跳是R3。流量路径为:R4 -> R3 -> R2 -> R1。但R3其实有直连路径到R1,这形成了次优路径。
  • 有FA地址时:R2引入路由时,若其连接R1的接口满足FA条件,则会在5类LSA中携带FA地址(例如10.1.12.1,即R1的接口地址)。R4计算路径时,会查找去往FA地址10.1.12.1的最短路径,发现下一跳是R3。R3计算时,发现FA地址10.1.12.1直连可达。因此,最终路径优化为:R4 -> R3 -> R1。

公式/逻辑描述

外部路由计算路径(有FA):
    下一跳 = 计算去往 FA_Address 的最短路径的下一跳

NSSA区域中的FA地址

在NSSA区域中,7类LSA也支持携带FA地址,其规则与5类LSA类似,但有一个关键点:7类LSA总是尝试携带FA地址

  • 如果满足与5类LSA相同的三个条件,则FA地址取值为去往外部路由的下一跳。
  • 如果不满足(例如接口未启用OSPF),则FA地址会取值为ASBR上最大的Loopback接口地址;若无Loopback,则取物理接口地址。

在NSSA区域的ABR执行7转5时,会继承7类LSA中的FA地址。这样,其他区域的路由器在计算这条外部路由时,同样可以依据FA地址选择最优路径,避免了因ABR选举(Router ID大的执行转换)而可能选择的次优路径。这也解释了为什么NSSA区域通常只由一台ABR执行7转5,因为只要FA地址相同,由谁转换效果一致,多台转换只会浪费资源。


GR(平滑重启/优雅重启)

上一节我们介绍了用于路径优化的FA地址,本节中我们来看看用于提升可靠性的GR技术。GR旨在解决设备重启(如主控板切换、进程重启)时,邻居关系中断导致路由震荡和流量丢失的问题。

GR要解决的问题

在传统网络中,一台路由器重启OSPF进程或进行主备切换时:

  1. 其控制平面(邻居、路由表)需要重建。
  2. 邻居设备感知到该路由器邻居关系失效,会更新自己的LSDB并向网络泛洪LSA。
  3. 全网路由器重新计算拓扑,可能导致流量中断。

GR的目标是:在重启期间,保持转发平面(FIB)继续正常工作,同时控制平面(邻居、路由表)在“后台”静默地重建,不对网络中的其他设备造成影响

GR的工作原理与9类LSA

GR的实现依赖于一种新的LSA:9类LSA(不透明LSA)。OSPF GR使用不透明类型3(Opaque Type 3)的LSA来传递GR信令。

9类LSA(用于GR)结构简述

  • LS Type: 9
  • Opaque Type: 3
  • Opaque ID: 0
  • 通告者: 重启路由器的Router ID
  • 内容: 基于TLV格式,主要包含:
    • Grace Period TLV: 指定辅助路由器等待重启完成的最大时间(例如120秒)。
    • Graceful Restart Reason TLV: 说明重启原因(如软件重启、主备切换等)。
    • IP Interface Address TLV: 标识重启路由器的接口地址。

GR涉及两种角色:

  • 重启路由器 (Restarter): 即将进行重启的设备。
  • 辅助路由器 (Helper): 重启路由器的邻居设备。

以下是GR流程的关键步骤:

  1. 通告与协商:重启路由器在重启前,向所有邻居发送9类LSA(Grace-LSA),宣告自己即将进行GR,并请求帮助。
  2. 进入辅助模式:支持GR的邻居收到后,回复确认,并进入“辅助者”角色。它们会维持与重启路由器的邻居关系,并不向网络泛洪该邻居失效的LSA
  3. 重启与转发保持:重启路由器开始重启。在此期间,其接口板(LPU)和FIB表保持工作,流量转发不中断。但控制平面(OSPF进程)正在重建。
  4. 静默重建:重启完成后,重启路由器与辅助路由器之间重新建立邻居关系、同步LSDB。这个过程只在两者之间进行,网络中的其他路由器无感知。
  5. 状态恢复与退出:当重启路由器完全同步了最新的LSDB并更新FIB后,它会发送一个老化时间为3600秒的9类LSA,宣告GR结束。辅助路由器收到后,退出辅助模式,一切恢复正常。

代码/配置示例(华为)

# 1. 在所有路由器上开启不透明LSA能力
ospf 1
 opaque-capability enable

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_5.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_7.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_8.png)

# 2. 在所有路由器上开启GR能力
 graceful-restart

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_10.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_12.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_14.png)

# 3. (可选)在辅助路由器上配置GR参数,如等待时间
 graceful-restart helper-period 120

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_16.png)

# 4. 在重启路由器上执行GR重启
 reset ospf 1 process graceful-restart

GR失败场景

GR成功需要网络在“静默期”内保持稳定。以下情况可能导致GR失败:

  • 超时:在Grace Period内,重启路由器未能与所有邻居重建关系。
  • 拓扑变化:在GR期间,网络拓扑发生变化(如链路故障),辅助路由器收到的LSA与本地数据库不一致。
  • 双向检查失败:重启路由器发现辅助路由器发来的LSA中没有描述与自己的邻居关系(意味着对方可能未进入辅助模式)。
  • 多设备同时GR:同一网段内不能有多台设备同时进行GR。


NSR(不间断路由)

上一节我们介绍了需要邻居配合的GR,本节中我们来看看更高级的NSR技术。NSR进一步消除了对邻居设备的依赖,实现设备内部自愈。

NSR vs GR

  • GR (NSF):依赖于邻居设备的辅助(Helper)。需要协议扩展(9类LSA)和邻居设备的支持。重启期间,邻居知道并配合。
  • NSR:不依赖于邻居设备。完全通过设备内部主用主控板(MPU)和备用主控板之间的状态实时同步来实现。切换过程对邻居完全透明,邻居无任何感知。

NSR的工作原理

NSR的核心是主备主控板间的状态热备份

  1. 批量备份:当备用主控板上电后,主用主控板将完整的路由表、邻居表、协议状态等数据一次性同步给备用板。
  2. 实时备份:此后,任何控制平面或转发平面的状态变化(如新邻居建立、路由更新),主用板都会实时同步给备用板。因此,备用板始终拥有与主用板几乎一致的最新状态。
  3. 故障切换:当主用主控板发生硬件故障时,硬件通道会立刻感知。备用主控板随即升级为主用板。由于它拥有全部最新状态,因此可以无缝接管所有工作,包括处理协议报文、维护邻居关系、更新FIB等。邻居设备只会看到连续的Hello报文,完全感知不到切换。

NSR的优势

  • 对邻居无要求:邻居设备无需支持任何特殊功能。
  • 切换更快:无需协议重新协商和LSDB同步,切换速度在毫秒级。
  • 更可靠:不受网络拓扑变化影响,只要主备同步正常,切换就能成功。

代码/配置示例(华为)

# 将设备的切换模式从默认的NSF(GR)改为NSR
system-view
 switchover mode nsr   # 此命令通常在高端设备上支持

# 检查当前模式
display switchover mode

# (可选)查看主备同步状态
display switchover state

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_44.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/041173b42174f098d22de5697d946c83_46.png)

# 手动触发主备切换(测试用,谨慎操作)
slave switchover

注意:NSR是设备本身的高可靠性特性,其配置和命令支持度因设备型号和软件版本而异。模拟器环境通常无法模拟此功能。


总结

本节课中我们一起学习了OSPF的三个高级特性:

  1. FA(转发地址):一种路径优化机制,通过在外部分LSA中携带一个转发地址,让计算路径的路由器可以绕过ASBR,选择更优的路径访问外部网络,有效解决了次优路径问题。
  2. GR(平滑重启):一种保证转发不中断的协议级可靠性技术。重启路由器通过与邻居路由器协作(使用9类LSA),在后台静默重建控制平面,避免因自身重启引起全网路由震荡。但它依赖于邻居设备的支持。
  3. NSR(不间断路由):一种更先进的设备级可靠性技术。通过主备主控板间的实时状态同步,在主控板故障时实现无缝切换,且整个过程对邻居设备完全透明,不依赖任何协议扩展或邻居支持。NSR提供了比GR更快速、更可靠的故障恢复能力。

理解这些特性有助于在设计和管理大型、高可用性网络时,选择合适的工具来优化路径和保障业务连续性。

IS-IS高级特性:47:ISPF、快速扩散、等价路由与缺省路由

在本节课中,我们将学习IS-IS协议中的一系列高级特性,这些特性旨在优化网络性能、提高路由收敛速度并增强路由控制能力。我们将重点探讨增量SPF计算、LSP快速扩散、等价路由的处理以及缺省路由的生成机制。

IS-IS高级特性概述

上一节我们介绍了OSPF的可靠性技术。本节中,我们来看看IS-IS协议中用于提升网络性能和控制能力的一系列高级特性。这些特性与OSPF中的许多概念相似,但实现细节上存在差异。

IS-IS通过以下技术来提高路由收敛速度:

  • ISPF:增量最短路径优先算法。
  • PRC:部分路由计算。
  • 智能定时器
  • LSP快速扩散

对于链路故障的快速检测,IS-IS则提供了 IS-IS Auto FR 以及与 BFD联动 的功能。

增量SPF计算

传统的SPF算法在网络拓扑发生变化时,即使变化只影响局部,也需要重新计算整个区域的最短路径树,这类似于“一人感染,全城封锁”,效率较低。

ISPF 的核心思想是“精准防控”。它只对受影响的拓扑部分进行增量计算,从而加快路由收敛并节省设备资源。

其工作原理如下:

  1. 当网络中新增一台路由器(例如R6连接到R5)时,R5和R6会泛洪新的LSP。
  2. 收到更新的路由器(例如R1)识别出只有R5和R6相关的LSP发生了变化。
  3. R1仅针对R5和R6执行SPF计算,将R6作为新节点挂接到已有的最短路径树中R5的下游。
  4. 去往R6的下一跳直接继承去往R5的下一跳。
  5. 网络中其他未受影响的节点(如R2、R3、R4)的路径无需重新计算。

该功能默认启用,无需额外配置。

LSP快速扩散

LSP快速扩散旨在加快LSP在网络中的泛洪速度,从而让邻居设备能更快地进行路由计算,缩短业务恢复时间。

在默认机制下,路由器收到新的LSP后,会用一个定时器定期将已更新的LSP扩散出去。这可能导致收敛延迟,例如在定时周期开始时产生的更新,需要等到周期结束时才能发出。

快速扩散机制通过设置一个阈值来优化这个过程:

  • 当需要发送的LSP更新数量 小于或等于 设定的阈值时,这些LSP会 立即 被扩散出去。
  • 当需要发送的LSP更新数量 超过 设定的阈值时,达到阈值数量的LSP会立即扩散,其余LSP则等待定时器超时后再发送。

这就像客运车辆在乘客不多时允许“稍带”几个人,以提高整体效率。虽然从单个LSP看,可能有的被延迟,但从宏观上提高了网络的收敛速度。

以下是配置LSP快速扩散的命令示例,该命令对Level-1和Level-2 LSP同时生效:

isis 1
 flash-flood [ level-1 | level-2 ] max-flash-number 10 [ timer-interval 5000 ]
  • max-flash-number 10:设置立即扩散的阈值为10条LSP。
  • timer-interval 5000:设置定时器间隔为5000毫秒(5秒)。

等价路由与负载分担

当IS-IS计算出去往同一目的地的多条开销相等的路径时,会产生等价路由。设备默认会对这些等价路由进行负载分担。

关于负载分担,需要理解以下概念:

  • 负载分担:流量在多条路径上传输,没有严格的流量比例要求。
  • 负载均衡:是负载分担的一种理想化形式,追求在多条路径上平均分配流量。但在实际网络中,由于基于流或包的转发策略,以及数据流本身大小的差异,很难实现绝对的流量均衡。

IS-IS默认支持等价路由负载分担。可以通过以下命令调整负载分担的路径数量(默认为8条):

isis 1
 maximum load-balancing 2

调整等价路由优先级

有时,我们希望在等价路由中指定主备路径,而不是进行负载分担,但又不想通过修改接口开销来影响全局选路。这时可以配置下一跳的权重(优先级)。

配置命令如下:

isis 1
 nexthop 10.0.12.2 weight 100
 nexthop 10.0.13.3 weight 200
  • weight 值越小,优先级越高。
  • 关键点:只要为下一跳配置了权重(范围1-254),该路由就会优先于未配置权重的普通等价路由(默认权重为255)被选入路由表

因此,通过为优选下一跳配置较小的权重值,可以实现等价路由的主备切换。

缺省路由生成

IS-IS生成缺省路由的方式与OSPF有所不同,主要依靠 ATT比特位 和手动配置。

ATT比特位生成缺省路由

在IS-IS中,Level-1-2路由器如果存在 不同区域 的Level-2邻居,它在其产生的Level-1 LSP中会将ATT比特位置1。

Level-1路由器收到ATT比特位为1的LSP后,会自动产生一条指向该LSP生成者(即那台Level-1-2路由器)的缺省路由。

这是IS-IS帮助Level-1区域访问外部网络(其他区域或协议)的默认机制。

可以对ATT比特位进行控制:

  1. 在Level-1-2路由器上强制置位ATT
    isis 1
     attached-bit advertise always
    
  2. 在Level-1-2路由器上禁止置位ATT
    isis 1
     attached-bit advertise never
    
  3. 在Level-1路由器上忽略ATT比特位(不据此生成缺省路由):
    isis 1
     ignore-attached-bit
    

手动配置生成缺省路由

在纯Level-2网络中,或需要更灵活控制时,可以手动配置IS-IS发布缺省路由,类似于OSPF。

配置命令如下:

isis 1
 default-route-advertise [ always | match default | route-policy POLICY-NAME ] [ cost COST ] [ level-1 | level-2 | level-1-2 ] [ tag TAG ] [ [ avoid-learning ] | [ [ avoid-learning ] | advertise ] ]
  • always:总是发布缺省路由(此参数可省略,命令默认行为就是always)。
  • avoid-learning:关键参数。配置后,本路由器 不会计算 本IS-IS进程内其他路由器产生的缺省路由。这常用于双出口场景,防止两台出口路由器相互学习对方的缺省路由形成环路。
  • 其他参数用于控制发布条件、开销、级别和标签等。

课程总结

本节课我们一起学习了IS-IS的几项核心高级特性。

我们首先了解了 ISPF 如何通过增量计算来提升收敛效率。接着,探讨了 LSP快速扩散 机制如何通过阈值控制来加速LSP的泛洪。然后,我们研究了 等价路由 的处理,包括默认的负载分担以及如何通过配置下一跳权重来实现主备选路。最后,详细讲解了IS-IS中 缺省路由 的两种生成方式:一是通过Level-1-2路由器的ATT比特位自动触发,二是通过手动命令进行灵活配置,并特别强调了在双出口场景中使用avoid-learning参数防止环路的重要性。

这些特性使得IS-IS协议能够适应复杂网络环境的需求,提供高效、可靠的路由服务。

IS-IS高级特性:P102:IS-IS LSP分片扩展与GR

在本节课中,我们将要学习IS-IS协议的两个高级特性:LSP分片扩展和优雅重启。这些特性旨在解决大规模网络中LSP容量不足的问题,以及在路由器重启或主备切换时保证网络流量的不中断。

LSP分片扩展

上一节我们介绍了IS-IS的基础工作原理,本节中我们来看看当网络规模扩大时,如何解决LSP分片数量不足的问题。

核心概念与术语

在理解LSP分片扩展之前,我们需要先了解几个核心概念。

  • 初始系统:指实际运行IS-IS协议的物理路由器。
  • 初始系统ID:即我们在配置IS-IS时,通过network-entity命令设置的系统ID。
  • 虚拟系统:为了扩展LSP容量,我们可以在一个物理路由器上手动创建多个虚拟的IS-IS路由器实例。每个虚拟系统都需要一个唯一的系统ID来标识。
  • 虚拟系统ID:用于唯一标识一个虚拟系统的系统ID。

一个物理路由器最多可以配置50个虚拟系统,从而理论上可以支持超过1万个LSP分片,足以应对大规模网络的需求。

工作原理

虚拟系统的概念类似于OSPF中的伪节点。在邻居路由器的视角中,每个虚拟系统就像一台独立的路由器。为了保证路由计算的正确性,初始系统到所有虚拟系统的链路开销默认设置为0

启用LSP分片扩展时,有两种工作模式,适用于不同的网络环境。

以下是两种模式的主要区别:

  • 模式一:适用于网络中部分路由器不支持LSP分片扩展的场景。在此模式下,每个虚拟系统都会生成独立的LSP,并正常描述其邻居关系。不支持该特性的路由器会将这些虚拟系统视为真实的路由器并进行正常的SPF计算。
  • 模式二:适用于网络中所有路由器都支持LSP分片扩展的场景。在此模式下,虚拟系统产生的LSP会携带一个特殊的TLV 24,用于声明这些LSP属于哪个初始系统。支持该特性的路由器在计算SPF时,会将所有虚拟系统的LSP信息都归属到其初始系统上,从而简化拓扑视图。

配置演示

虽然模拟器环境难以复现LSP分片耗尽并触发扩展的场景,但我们可以了解其配置命令。

假设路由器R2的LSP分片已满,需要启用分片扩展,我们可以进行如下配置:

# 进入IS-IS视图
[R2] isis 1
# 为Level-2级别启用LSP分片扩展,并指定模式为模式二
[R2-isis-1] lsp-fragment extend level-2 mode-2
# 创建一个虚拟系统,并为其指定系统ID
[R2-isis-1] virtual-system 0000.0000.0022

配置完成后,当初始系统的LSP分片用尽时,新增的路由信息将由虚拟系统生成的LSP来携带。

IS-IS优雅重启

接下来,我们探讨IS-IS的优雅重启特性。其核心目标与OSPF GR一致:在路由器控制平面重启(如进程重启、主备切换)时,保持数据平面的转发不中断。

GR相关TLV与定时器

IS-IS GR引入了一个新的TLV 211来协助完成重启过程,其格式包含几个关键标志位:

  • R位:重启请求位,由重启路由器发出。
  • I位:重启应答位,由辅助路由器发出。
  • SA位:抑制邻接发布位,用于冷启动场景。

此外,GR过程依赖于三个定时器:

  • T1定时器:用于等待邻居对GR请求的确认报文。默认3秒,重传3次。
  • T2定时器:用于等待LSDB同步完成。默认60秒。
  • T3定时器:整个GR过程的最大等待时间。默认300秒,超时则GR失败。

热启动流程

热启动适用于设备不断电、仅IS-IS进程重启或主备切换的场景,其流程如下:

  1. GR协商:重启路由器(如R2)向邻居(R1/R3)发送携带R位的Hello报文,通知其将要GR重启。邻居回复携带I位的Hello报文进行确认。
  2. 进程重启:R2的IS-IS进程快速重启,但其转发表(FIB)保持不变。
  3. LSDB同步:R2重启后,邻居会向其发送CSNP摘要和完整的LSP,以同步链路状态数据库。
  4. 路由计算与收敛:R2在同步完LSDB后,进行SPF计算,并更新FIB表。整个过程在T3定时器内完成,对外表现为流量无中断。

冷启动流程

冷启动适用于设备意外掉电后重新开机的场景,主要解决IS-IS邻居建立先于LSDB同步可能导致的临时流量黑洞问题。

  1. 抑制邻接发布:重启路由器(R2)上线后,在发送的Hello报文中设置SA位为1,请求邻居暂时不要对外发布与自己的邻接关系。
  2. 建立邻居与同步LSDB:支持GR的邻居(R1/R3)与R2建立邻居关系,但遵循SA位的指示,不对外宣告。随后,双方在“保密”状态下完成LSDB同步。
  3. 恢复邻接发布:当R2完成LSDB同步和路由计算后,停止发送SA位为1的Hello。邻居此时才对外发布与R2的邻接关系,其他路由器(如R4)随之更新路由。
  4. 避免流量黑洞:通过此机制,确保了只有当R2完全具备转发能力后,流量才会被引导至R2,避免了同步期间的丢包。

热启动实验演示

我们可以在设备上配置并验证IS-IS GR热启动的效果。

# 在路由器R1、R2、R3上分别启用IS-IS GR能力
[R1] isis 1
[R1-isis-1] graceful-restart
[R2] isis 1
[R2-isis-1] graceful-restart
[R3] isis 1
[R3-isis-1] graceful-restart

配置完成后,在R1上持续ping测试目标(如3.3.3.3),同时在R2上重启IS-IS进程:

<R2> reset isis all 1

可以观察到,ping流量没有发生任何中断,验证了GR热启动的成功。

总结

本节课中我们一起学习了IS-IS的两个重要高级特性。

  • LSP分片扩展通过创建虚拟系统,极大地提升了单个IS-IS路由器所能通告的路由信息容量,增强了协议的可扩展性。
  • 优雅重启则保证了网络设备在计划内重启或意外故障恢复时,业务流量的连续性。其中,热启动保障了进程重启时的零丢包,而冷启动机制则巧妙地避免了设备刚上线时因LSDB未同步而产生的流量黑洞问题。

理解并合理应用这些特性,对于设计和维护一个高可靠、可扩展的大型网络至关重要。

BGP高级特性与安全:P103:Community Filter、ORF、认证、GTSM

概述

在本节课中,我们将学习BGP的几个高级工具和安全特性。我们将了解如何使用团体属性过滤器(Community Filter)来匹配和管理路由标记,如何使用按需发布路由(ORF)来优化路由更新,以及如何通过认证和GTSM来增强BGP邻居关系的安全性。这些知识对于构建高效、稳定且安全的BGP网络至关重要。


团体属性过滤器(Community Filter)

上一节我们介绍了BGP的各种路径属性,本节中我们来看看如何基于团体属性(Community)这一标记来高效地管理路由。

BGP的团体属性本质上是一种标记(Tag),类似于IGP中的Tag。但与IGP Tag只能携带一个值不同,BGP团体属性可以携带多个值。更重要的是,某些公认的团体属性(如 no-export)可以限制路由的传播范围,而自定义团体属性则体现了网络管理员的管理意图。

当我们需要基于团体属性值来执行路由策略(如修改MED、过滤路由)时,就需要一个工具来匹配这些属性值,这个工具就是团体属性过滤器。

团体属性过滤器的作用是:对BGP路由的团体属性进行匹配。

团体属性的分类与格式

团体属性主要分为两类:

  • 公认团体属性:如 internetno-exportno-advertiseno-export-subconfed。这些属性具有特定的、标准化的含义。
  • 自定义团体属性:管理员根据自身需求定义的标记。它有两种表达格式:
    1. 十进制格式:例如 65535。团体属性占4个字节,因此十进制数值范围很大。
    2. AA:NN格式:例如 65001:100AA 部分通常建议使用本地AS号(如65001),NN 部分是管理员自定义的数值(如100代表某个分部)。

Community Filter的配置与匹配逻辑

以下是配置和应用Community Filter的基本步骤:

  1. 为路由打上团体属性:在路由策略(Route-Policy)中使用 apply community 命令。
    route-policy SET_COMMUNITY permit node 10
     if-match acl 2000
     apply community 65001:1 65001:2 additive
    
    • additive 关键字表示在原有团体属性的基础上添加新的,而不是覆盖。

  1. 创建团体属性过滤器:使用 ip community-filter 命令。
    ip community-filter 1 permit 65001:1
    
    • 基本过滤器(序号1-99)直接匹配团体属性值。
    • 高级过滤器(序号100-199)使用正则表达式匹配,更为灵活但复杂,通常不使用。

  1. 在路由策略中调用过滤器:使用 if-match community-filter 进行匹配。
    route-policy MODIFY_MED permit node 10
     if-match community-filter 1
     apply cost 200
    

核心匹配逻辑

  • 松散匹配(默认):路由只要携带了过滤器列表中任意一个指定的团体属性值,即被视为匹配。例如,过滤器匹配 65001:1,路由携带 65001:165001:2,则匹配成功。
  • 严格匹配(使用 whole-match:路由携带的团体属性必须精确等于过滤器列表中的所有值。例如,过滤器匹配 65001:165001:2,路由必须同时且仅携带这两个值才匹配。
  • 逻辑关系:在同一个 ip community-filter 条目中配置多个值,是“逻辑与”关系(路由需包含所有值)。配置多个同名的 ip community-filter 条目,是“逻辑或”关系(路由匹配任一条目即可)。

应用场景举例

假设R1向R2发送两条路由:192.168.1.0/24(携带团体属性 65001:165001:2)和 192.168.2.0/24(仅携带 65001:1)。R2上希望将所有携带 65001:1 的路由的MED值改为200。

配置如下:

  1. 在R2上创建团体属性过滤器:ip community-filter 1 permit 65001:1
  2. 创建路由策略:
    route-policy CHANGE_MED permit node 10
     if-match community-filter 1
     apply cost 200
    route-policy CHANGE_MED permit node 20
    
  3. 在BGP进程下对R1邻居调用该策略:peer 10.0.12.1 route-policy CHANGE_MED import

执行后,两条路由的MED都会被修改为200。如果只想修改同时携带 65001:165001:2 的路由,则需将过滤器修改为 ip community-filter 1 permit 65001:1 65001:2


按需发布路由(ORF)

上一节我们学习了如何用过滤器控制接收的路由,本节中我们来看看如何让发送方“按需发送”,以优化网络资源。

在传统BGP交互中,即使接收方(R2)只需要少数路由,发送方(R1)也会将所有路由发送过去。R2再通过入口策略进行过滤。这会导致不必要的链路带宽消耗和接收方设备资源浪费。

ORF(Outbound Route Filtering,出口路由过滤) 技术解决了这个问题。它允许接收方(R2)将自己的入口过滤策略(必须是基于前缀列表的)发送给发送方(R1)。R1则根据这个策略来构建自己的出口过滤列表,只发送对方需要的路由。

ORF的工作原理与配置

  1. 接收方配置入口过滤:在R2上配置前缀列表,并应用于R1邻居的入方向。
    ip ip-prefix ORF_LIST permit 192.168.1.0 24
    bgp 100
     peer 10.0.12.1 ip-prefix ORF_LIST import
    

  1. 双方启用ORF能力
    • 在R2(发送策略方)上:peer 10.0.12.1 capability-advertise orf ip-prefix send
    • 在R1(接收并应用策略方)上:peer 10.0.12.2 capability-advertise orf ip-prefix receive

  1. 效果:配置完成后,R2会向R1发送一个ORF报文,其中包含了前缀列表 ORF_LIST 的内容。R1收到后,会动态生成一个出口过滤策略,此后只向R2发送 192.168.1.0/24 这一条路由。

命令说明

  • ip-prefixcisco 是两种ORF类型,ip-prefix 用于华为设备间,cisco 用于与思科设备兼容。
  • send 表示本端可以发送ORF策略,receive 表示本端可以接收并处理对端的ORF策略。

ORF的优势

  • 节省链路带宽:避免了不必要路由的传输。
  • 减轻接收方负担:发送方提前过滤,降低了接收方CPU处理入口策略的开销。
  • 动态策略同步:如果接收方的过滤策略发生变化,会通过ORF报文动态通知发送方更新。

BGP对等体组(Peer Group)

在配置多个具有相似策略的BGP邻居时,重复的配置命令会非常繁琐。BGP对等体组(Peer Group)功能可以简化配置并提高路由更新效率。

对等体组的作用是:将具有相同配置需求的BGP邻居分组,对组进行的配置会被组内所有成员继承。

对等体组的类型与配置

  1. IBGP对等体组:组成员都是IBGP邻居。
    bgp 100
     group IBGP internal // 创建名为IBGP的IBGP对等体组
     peer IBGP connect-interface LoopBack0 // 对组配置更新源
     peer 10.0.12.2 group IBGP // 将邻居加入组
     peer 10.0.13.3 group IBGP // 将另一个邻居加入组
    

  1. EBGP对等体组:组成员都是EBGP邻居,且位于同一个外部AS。
    bgp 100
     group EBGP external // 创建EBGP对等体组
     peer EBGP as-number 200 // 为组指定对端AS号
     peer 10.0.12.2 group EBGP
    

  1. 混合对等体组:组成员是EBGP邻居,但位于不同的外部AS。此时不能为组指定 as-number,需要为每个邻居单独配置。
    bgp 100
     group MIX external // 创建混合对等体组
     peer 10.0.12.2 as-number 200
     peer 10.0.12.2 group MIX
     peer 10.0.13.3 as-number 300
     peer 10.0.13.3 group MIX
     peer MIX route-policy SET_MED export // 组策略对两者都生效
    

对等体组的优势

  • 简化配置:共性的配置(如更新源、路由策略、认证等)只需在组内配置一次。
  • 提高更新效率:对于组内所有邻居,设备可以只打包和计算一次路由更新,然后复制给所有组成员,显著提升了处理效率。
  • 灵活定制:如果某个组成员需要特殊策略,仍然可以单独为其配置,且单独配置的优先级高于组配置。


BGP安全特性

在了解了BGP的效率工具后,本节我们关注如何保障BGP邻居关系本身的安全。

BGP面临的安全威胁主要有两类:

  1. 非法建立BGP邻居关系。
  2. 仿冒合法BGP报文进行泛洪攻击,消耗设备CPU资源。

BGP认证

BGP认证用于验证邻居的合法性,防止非法设备建立邻居关系。BGP认证基于TCP连接的MD5或Keychain认证实现。

配置MD5认证
在对等体或对等体组视图下配置密码即可。

bgp 100
 peer 10.0.12.2 password cipher Huawei@123
 # 或在对等体组中配置
 group IBGP
  peer IBGP password cipher Huawei@123
  • 双方必须配置相同的密码。
  • 认证失败将导致TCP连接无法建立,BGP状态停留在 ActiveIdle

GTSM(Generalized TTL Security Mechanism)

GTSM通过检查BGP报文的TTL值来防御非法报文攻击。对于直连的EBGP邻居,发送的报文TTL通常是255。管理员可以设置一个可接受的TTL范围,不在范围内的报文将被丢弃。

GTSM配置

bgp 100
 peer 10.0.12.2 ttl-security hops 1
  • hops 1 表示我们期望的跳数为1(直连)。
  • 设备会根据公式 [255 - hops + 1, 255] 计算有效TTL范围。当 hops=1 时,有效范围是 [255, 255]
  • 如果网络中存在备用路径,导致实际跳数可能大于1,则需要将 hops 设置为网络中的最大跳数。

GTSM的优势

  • 防御远程攻击:攻击者通常从远程发起攻击,其报文的TTL值经过多跳后必然小于255,会被GTSM丢弃。
  • 低开销:TTL检查在IP层进行,无需将非法报文上送到BGP进程处理,极大减轻了CPU负担。


总结

本节课我们一起学习了BGP的多个高级特性和安全机制:

  1. 团体属性过滤器(Community Filter):一个用于匹配BGP路由团体属性值的工具,支持松散匹配和严格匹配,是实现基于标记的路由策略的关键。
  2. 按需发布路由(ORF):一种优化技术,允许接收方将过滤策略告知发送方,实现“按需发送”,节省了网络资源和设备性能。
  3. BGP对等体组(Peer Group):用于简化具有相似策略的多个BGP邻居的配置,并能提高路由更新的处理效率。
  4. BGP安全特性
    • 认证:通过TCP MD5认证确保邻居关系的合法性。
    • GTSM:通过检查IP报文的TTL值,有效防御来自远程的BGP报文泛洪攻击。

掌握这些工具和技术,能够帮助你设计出更高效、更简洁、更安全的BGP网络。

BGP技术详解:P104:四字节AS号与路由反射器

概述

在本节课中,我们将学习BGP协议中的两个重要特性:四字节AS号和路由反射器。我们将了解为什么需要扩展AS号,以及如何通过路由反射器优化AS内部的BGP邻居关系。


四字节AS号

上一节我们介绍了BGP的基础知识,本节中我们来看看AS号的扩展。

传统的BGP AS号使用两个字节表示,其取值范围是1到65535。随着互联网的发展,可用的AS号资源逐渐耗尽,类似于IPv4地址面临的问题。因此,我们需要将AS号扩展到四个字节,其取值范围可达1到4,294,967,295。

为了兼容仅支持两字节AS号的旧设备,并方便人们记忆,四字节AS号有两种表达形式。

以下是四字节AS号的两种表达形式:

  • 十进制形式:一个简单的十进制数字,例如 65536
  • 点分形式 (X.Y):由两个部分组成,格式为 X.Y。其中 XY 各占两个字节。

这两种形式可以相互转换。

转换公式如下:

  • 点分形式转十进制十进制AS号 = X * 65536 + Y
    • 例如:1.0 转换为 1 * 65536 + 0 = 65536
  • 十进制转点分形式X = 十进制AS号 / 65536 的整数部分Y = 十进制AS号 / 65536 的余数部分
    • 例如:131249 / 65536 = 2 余 177,因此其点分形式为 2.177


四字节AS号的兼容性

为了实现新旧设备的互通,协议定义了特殊的AS号 23456 作为“过渡AS”。支持四字节AS号的新设备在与仅支持两字节AS号的旧设备建立BGP会话时,会在Open报文的My AS字段中填写 23456,而将自己真实的四字节AS号放在一个新增的“四字节AS号能力”扩展属性中。旧设备会忽略无法识别的扩展属性,从而将对方视为AS 23456的邻居,实现向下兼容。

根据设备能力和建立的会话,我们有以下术语:

  • 新发言者:支持四字节AS号的BGP路由器。
  • 旧发言者:仅支持两字节AS号的BGP路由器。
  • 新会话:在两个新发言者之间建立的BGP会话。
  • 旧会话:在旧发言者之间,或旧发言者与新发言者之间建立的BGP会话。


路由反射器

上一节我们解决了AS号不足的问题,本节中我们来看看如何优化AS内部的BGP连接。

在同一个AS内部,BGP路由器之间需要建立全互联的IBGP邻居关系,以防止路由环路。但这会带来配置复杂和资源消耗大的问题。路由反射器通过改变路由传递规则,允许IBGP路由被特定设备反射,从而无需建立全互联。

路由反射器涉及以下几种角色:

  • 路由反射器:执行路由反射的设备。
  • 客户端:路由反射器的反射对象。
  • 非客户端:与RR是IBGP邻居,但不是其客户端的设备。

路由反射器遵循以下反射规则:

  1. 客户端收到的路由,反射给所有其他客户端非客户端
  2. 非客户端收到的路由,只反射给所有客户端
  3. EBGP邻居收到的路由,发送给所有客户端和非客户端(这是正常传递,非反射)。
  4. 非客户端之间不进行反射


路由反射器的防环机制

路由反射器打破了IBGP水平分割规则,因此需要新的机制来防止环路。主要依赖两个属性:

1. 起源者ID

  • 作用:防止路由被发回给起源者。
  • 规则:当RR反射一条路由时,会将这条路由的起源者ID属性设置为该路由的原始通告者的路由器ID。当一台BGP路由器收到一条路由,如果其中的起源者ID与自身的路由器ID相同,则丢弃该路由。

2. 簇列表

  • 作用:防止路由在同一个簇内循环。
  • 规则:每个RR及其客户端构成一个簇,簇有一个簇ID(默认为RR的路由器ID)。当RR反射一条路由时,会将本地的簇ID添加到簇列表属性中。当一台RR收到一条路由,如果发现簇列表中包含自己的簇ID,则丢弃该路由,认为该路由已经在簇内传递过。


路由反射器的部署场景

根据网络规模和可靠性要求,路由反射器有多种部署方式:

1. 备份RR

  • 描述:在同一簇内配置多个RR,它们拥有相同的簇ID,为相同的客户端服务,提供冗余。
  • 优点:高可靠性,避免单点故障。

2. 同级RR

  • 描述:将一个大的AS划分为多个簇,每个簇有自己的RR。这些RR之间建立全互联的IBGP邻居关系,它们属于不同的簇(簇ID不同)。
  • 优点:适用于大规模网络,分散管理压力和邻居数量。

3. 分级RR

  • 描述:形成多级反射层次。例如,底层RR作为上层RR的客户端。底层RR服务于接入路由器,上层RR互联底层RR。
  • 优点:适用于层次化明显的超大型网络,如跨国企业网或运营商骨干网。

在部署多RR时,选择让备份RR使用相同还是不同的簇ID,需要在路由优化和冗余性之间进行权衡。


总结

本节课中我们一起学习了BGP的两个高级特性。首先,我们了解了四字节AS号产生的背景、两种表达形式及其转换方法,以及新旧设备如何通过AS 23456实现兼容。接着,我们深入探讨了路由反射器技术,理解了其解决IBGP全互联问题的工作原理、反射规则、关键的起源者ID和簇列表防环机制,以及备份、同级和分级等典型部署场景。掌握这些知识对于设计和维护大规模BGP网络至关重要。

IPv6技术详解:1:IPv6概述、报文结构与地址格式

概述

在本节课中,我们将要学习IPv6技术的基础知识。我们将从IPv4的局限性开始,了解为何需要向IPv6过渡,然后详细解析IPv6的报文结构、扩展包头以及其独特的地址格式。通过对比IPv4与IPv6,我们将清晰地看到新一代互联网协议的优势与设计理念。


IPv6的引入背景

上一节我们介绍了课程的整体安排,本节中我们来看看IPv6技术出现的背景。

IPv6是一个新的技术点。大家在IA阶段学习IPv4时,可能会觉得子网掩码、子网划分等内容比较绕。IPv6的基本原理与IPv4相似,有IPv4基础的同学学习起来会相对容易。但IPv6地址较长,初期可能不太习惯。

在IPv4中,我们学习的是第一版互联网协议。由于是初次尝试,就像人类第一次登月一样,缺乏经验和技术,对未来的宏观认知不足,因此IPv4在设计上存在一些先天的不足。随着互联网的迅猛发展,超出了最初的预期,IPv4的缺陷逐渐显现。

这些问题主要体现在地址不足上。当IPv4出现缺陷后,我们就像为软件打补丁一样,想办法更新版本,使其功能更加完善。IP协议也是如此,需要不断更新。

在真正理解IPv6之前,需要了解一些基础概念,例如国际IP地址是如何分配的。普通用户向运营商购买地址,运营商则从更上一级的机构获取。

以下是整个IP地址分配的组织架构:

  • IANA:互联网号码分配局,是IP地址管理的起点,相当于“董事长”。
  • RIR:区域互联网注册管理机构,全球共有五个,根据地理版图分配地址。
  • ISP:互联网服务提供商,即运营商。RIR将地址分配给ISP。
  • 机构/用户:运营商根据内部规划,将地址最终分配给机构或家庭用户。

地址的分配方式是从IANA到RIR,再到运营商,最后到终端用户,是一种层级式的分配。

目前,IPv4地址面临的最大问题是已经耗尽。2011年2月3日,IANA将最后468万个地址平均分配给了全球5个RIR,此后便没有新的IPv4地址可分配。互联网仍在快速发展,新的产业如物联网、自动驾驶不断涌现,但作为“基石”的IPv4地址已经用完,这限制了新技术的发展。

因此,从IPv4过渡到IPv6的最大动力,就是公网地址耗尽。这是无法回避的底线问题。

除了地址耗尽,IPv4还存在其他缺陷:

  1. 用户与设备快速增长:更多用户和种类的设备需要接入公网。
  2. 缺乏真正的端到端模型:理想的互联网模型是端到端一对一通信。NAT技术虽然解决了私网访问公网的问题,但破坏了端到端通信的完整性,并带来了配置复杂性。
  3. 无法适应新技术:未来的新兴产业需要更多的地址和更好的协议支持,IPv4难以胜任。
  4. 广播机制的安全隐患:IPv4依赖ARP协议进行地址解析,而ARP攻击频发,导致局域网运作问题。
  5. 对移动性支持不足:主要涉及移动基站等领域。

针对这些缺陷,早期也提出过一些临时应对措施,例如在1991年推出公网/私网地址划分,1993年推出NAT。但这些都只是过渡方案,只能减缓地址枯竭的速度,无法从根本上解决问题。

IPv6在20世纪90年代就被提出,作为IPv4的升级版本。其大规模部署需要时间,就像新技术的普及一样,需要逐步过渡。

截至2011年至2019年,全球各大RIR已相继宣布IPv4地址分配完毕。IPv6取代IPv4已成必然趋势。


IPv6的优势

上一节我们探讨了IPv4的诸多缺陷,本节中我们来看看IPv6带来了哪些优势。

相较于“年迈”的IPv4,IPv6就像一个“年轻健壮的小伙子”,拥有显著的优势:

  1. 近乎无限的地址空间:地址长度为128比特,提供了海量的地址空间,足以满足未来所有新兴业务的需求。其地址数量之多,甚至超过了绝大多数人对数学单位的认知。
  2. 层次化的地址结构:地址分配更加规范,有利于路由聚合,从而缩小路由表规模,提高查询效率。
  3. 即插即用:支持无状态地址自动配置,设备接入网络后可自动获得地址,无需DHCP服务器,特别适合物联网场景。
  4. 简化的报文头部:固定40字节的基本包头,提高了处理效率。
  5. 更高的安全性:原生支持IPsec等安全功能。
  6. 更好的移动性支持:优化了对移动设备的支持。
  7. 增强的QoS能力:通过流标签字段,可以基于流进行服务质量保障。

IPv6报文结构

上一节我们了解了IPv6的整体优势,本节中我们来深入剖析其报文结构。

我们将IPv6与IPv4的包头进行对比,可以清晰地看到其设计上的优化。

保留或语义更明确的字段

  • 版本:IPv4为4,IPv6为6。
  • 源/目的地址:IPv6为128比特,IPv4为32比特。
  • 上层协议:IPv4的“协议”字段,在IPv6中称为“下一个包头”,语义更明确。
  • 服务类型:IPv4的TOS字段,在IPv6中称为“流类别”。
  • 生存时间:IPv4的TTL字段,在IPv6中称为“跳数限制”,直接表明报文能经过多少跳。

新增字段

  • 流标签:用于标识特定流,使路由器可以基于“源IP+流标签”快速识别流,而无需深入解析传输层,大幅提高了转发效率,便于实施基于流的QoS。

删除的字段

  • 包头长度:因为IPv6基本包头固定为40字节,无可变选项,故无需此字段。
  • 分片相关字段:包括标识、标志、片偏移。这些功能被移至可选的“扩展包头”中,当报文无需分片时,不携带这些信息,提高了效率。
  • 首部校验和:因为二层和四层协议已有校验机制,此字段在IPv4中就较为鸡肋,IPv6将其删除以使包头更精简。

综上所述,IPv6的基本包头更加精简、高效,语义也更明确。


IPv6扩展包头

上一节我们介绍了高效的IPv6基本包头,本节中我们来看看如何通过扩展包头实现更多功能。

IPv6的扩展包头用于实现IPv4中“可选项”的功能,其特点是“按需携带”,即需要实现特定功能时才添加对应的扩展包头。

扩展包头采用链状结构组织。基本包头的“下一个包头”字段指向第一个扩展包头,而每个扩展包头也包含“下一个包头”字段,可以指向下一个扩展包头或上层协议。

每个扩展包头通常包含三个部分:

  1. 下一个包头:指示紧随其后的内容。
  2. 扩展包头长度:描述本扩展包头的长度。
  3. 扩展包头数据:携带具体的功能数据。

以下是常见的扩展包头类型,它们必须按照以下顺序出现:

  1. 逐跳选项包头:路径上的每一跳路由器都需要处理的信息,用于资源预留等。
  2. 目的选项包头:携带仅需目的节点处理的信息。
  3. 路由包头:指定报文的转发路径。
  4. 分段包头:当报文需要分片时使用。
  5. 认证包头:用于IPsec认证。
  6. 封装安全载荷包头:用于IPsec加密。

这种设计实现了“术业有专攻”。普通转发只需基本包头,高速高效;需要额外功能时,再添加对应的扩展包头。


IPv6地址格式

上一节我们学习了IPv6的报文封装,本节中我们来看看IPv6地址独特的表示方法。

IPv6地址长度为128比特。为了便于书写和阅读,采用冒号十六进制表示法:

  • 地址被冒号分割为8段。
  • 每段16比特,用4个十六进制数表示。

例如:2001:0DB8:0000:0000:0000:0000:0000:0001

为了进一步简化,IPv6地址支持缩写:

缩写规则

  1. 每段中前导的零可以省略。
    • 例如,0DB8 可缩写为 DB8
  2. 如果一整段都为0,可以缩写为一个0。
  3. 一个或多个连续的全0段,可以用双冒号 :: 代替。注意:一个地址中只能使用一次双冒号

缩写示例
原始地址:2001:0DB8:0000:0000:0000:0000:0000:0001

  1. 省略前导零:2001:DB8:0:0:0:0:0:1
  2. 压缩连续全0段:2001:DB8::1

缩写冲突处理
当存在多处连续全0段时,压缩规则是:

  • 首先,压缩最长的一段。
  • 如果长度相同,则压缩靠前(高位)的一段。

配置示例
在接口上配置IPv6地址非常简单:

  1. 系统视图下开启IPv6功能:ipv6
  2. 接口视图下启用IPv6:ipv6 enable
  3. 配置IPv6地址:ipv6 address 2001:db8::1/64

IPv6使用前缀长度表示法(如/64)作为子网掩码,其子网划分原理与IPv4相同。


总结

本节课中,我们一起学习了IPv6技术的基础核心内容。

我们首先回顾了IPv4的局限性,特别是地址耗尽问题,理解了向IPv6过渡的必要性。接着,我们探讨了IPv6的诸多优势,如巨大的地址空间、简化的报头和更高的效率。

然后,我们深入分析了IPv6的报文结构,对比了其与IPv4包头的异同,并理解了新增的“流标签”和“扩展包头”机制如何提升网络性能和灵活性。

最后,我们掌握了IPv6地址的冒号十六进制表示法及其缩写规则,这是使用和配置IPv6的基础。

通过本节课的学习,我们已经对IPv6有了一个全面的初步认识,为后续学习IPv6地址分类、路由协议等更深入的内容打下了坚实的基础。

IPv6协议详解:P106:IPv6地址分类

概述

在本节课中,我们将深入学习IPv6协议的核心内容之一:IPv6地址的分类。我们将详细探讨单播、组播和任播地址的结构、作用及生成方式,特别是单播地址中的全球单播地址、唯一本地地址和链路本地地址。通过本课,你将能够理解IPv6地址体系的设计逻辑及其相较于IPv4的优势。


单播地址结构

上一节我们介绍了IPv6的基础和优势,本节中我们来看看IPv6地址的具体分类。首先,我们来了解单播地址的基本结构。

IPv6单播地址与IPv4地址类似,也由两部分组成:网络前缀和接口标识符(接口ID)。网络前缀相当于IPv4中的网络位,接口ID则相当于主机位。IPv6地址的总长度为128比特。

IPv6的掩码表示法只有一种,即前缀表示法。例如:2001:db8::/64。网络前缀的长度由掩码决定,剩余部分即为接口ID。

接口ID的生成方式有三种:

  • 手动配置:由管理员手动指定。
  • 系统自动生成:操作系统使用私有算法自动生成。
  • EUI-64规范生成:根据接口的MAC地址,通过特定算法生成64比特的接口ID。

EUI-64生成算法详解

EUI-64是一种将48比特MAC地址转换为64比特接口ID的标准方法。其步骤如下:

  1. 将48比特MAC地址转换为二进制。
  2. 将MAC地址的第7比特取反(0变1,1变0)。
  3. 在取反后的MAC地址中间(第24和25比特之间)插入固定的16比特值FFFE(十六进制)。
  4. 将得到的64比特二进制数转换为IPv6地址格式的十六进制表示。

公式/代码示例
假设MAC地址为 00-10-5A-65-78-81

  1. 转换为二进制:00000000 00010000 01011010 01100101 01111000 10000001
  2. 第7比特取反(原为0,变为1):00000010 00010000 01011010 01100101 01111000 10000001 -> 十六进制 02-10-5A-65-78-81
  3. 中间插入 FF-FE02-10-5A-FF-FE-65-78-81
  4. 转换为IPv6接口ID格式:0210:5AFF:FE65:7881

注意事项

  • EUI-64算法固定生成64比特接口ID。如果网络前缀长度小于64,则接口ID占用后64比特,中间不足部分用0填充。如果网络前缀长度大于64,导致接口ID部分不足64比特,则无法使用EUI-64配置(华为设备会报错)。
  • 使用EUI-64可能带来安全隐患,因为可以从IPv6地址反推出设备的MAC地址。因此,一些操作系统会采用私有、随机的算法来生成接口ID,以增强隐私性。

单播地址类型详解

了解了单播地址的结构后,我们来看看单播地址的具体类型。IPv6单播地址主要分为以下几类,每种类型都有其特定的用途和格式。

全球单播地址

全球单播地址类似于IPv4中的公网地址,用于全球范围内的路由。其地址结构有建议的分配方式:

  • 前3比特固定为 001
  • 接下来的45比特为全球路由前缀,分配给ISP或大型机构。
  • 随后的16比特为子网ID,供机构内部进行子网划分。
  • 最后64比特为接口ID

示例格式2001:db8:1:1::1/64(其中 2001:db8::/32 是分配给文档使用的测试地址段)。

需要强调的是,这只是一种分配建议,并非强制规定。在实际网络中,可以根据需要灵活分配地址空间。

唯一本地地址

唯一本地地址类似于IPv4的私网地址,其特点是在公网上不可路由,主要用于不连接互联网的内部网络(如科研、军事网络)。

  • 地址范围FC00::/7。这个范围被进一步划分为两个 /8 的地址块:
    • FC00::/8:目前尚未分配使用。
    • FD00::/8:实际使用的唯一本地地址范围。
  • 唯一性保证FD00::/8 地址块中,全球ID部分(40比特)通过伪随机算法生成,冲突概率极低。算法通常结合精确时间戳和设备唯一标识符(如序列号),通过哈希函数(如SHA-1)计算得出,确保了地址在全球范围内的“唯一”性。

链路本地地址

链路本地地址是IPv6引入的新概念,每个启用IPv6的接口都会自动生成一个。它仅在同一个二层链路(广播域)内有效,不能跨路由器转发。

  • 核心优势
    1. 即插即用:使设备在不配置全球单播地址的情况下,也能与同一链路上的其他设备通信(类似于IPv4的169.254.0.0/16地址)。
    2. 协议稳定性:许多路由协议(如OSPFv3)使用链路本地地址建立邻居关系。即使设备的全球单播地址发生变化,只要链路本地地址不变,邻居关系和路由就不会中断,保证了业务的稳定性。
  • 地址范围FE80::/10。实际常用的地址段是 FE80::/64。接口ID通常通过EUI-64生成。
  • 配置:可以自动生成,也可以手动配置。对于网络设备间的互联地址,建议手动配置便于管理的链路本地地址。


特殊地址与其他单播地址

除了上述主要类型,IPv6还定义了一些特殊地址,并且为未来发展预留了空间。

以下是两种重要的特殊地址:

  • 未指定地址::/128。类似于IPv4的 0.0.0.0,表示地址缺失,常用作数据包的源地址,例如在DHCPv6请求过程中。
  • 环回地址::1/128。类似于IPv4的 127.0.0.1,用于设备向自身发送数据包,测试协议栈是否正常。

IPv6技术仍在不断发展,因此存在一些为特定技术或未来应用预留的“其他单播地址”空间,例如:

  • 2002::/16:用于6to4隧道技术。
  • 3FFE::/16:早期用于IPv6实验网络,现已被回收。


组播地址

在IPv6中,广播地址被取消,其功能完全由组播地址替代。组播用于一对多通信,只有加入特定组播组的设备才会接收发往该组的数据。

组播地址结构

IPv6组播地址有固定的格式:

  • 前8比特固定为 FF(十六进制)。
  • 随后4比特为标志位
    • 0000:表示永久分配(知名)的组播地址,由IANA分配,用于协议(如FF02::5 用于OSPFv3路由器)。
    • 0001:表示临时(动态)分配的组播地址。
  • 随后4比特为范围字段,定义组播数据包的传播范围:
    • 1:接口本地范围。
    • 2:链路本地范围(最常用,如FF02::1 表示链路上所有节点)。
    • 5:站点本地范围。
    • 8:组织本地范围。
    • E:全球范围。
  • 剩余112比特为组ID,用于标识具体的组播组。

被请求节点组播地址

这是IPv6中一个非常重要且巧妙的设计,用于替代IPv4的ARP,进行邻居发现和地址解析。

  • 生成规则:每个配置了单播地址(全球或链路本地)的接口,都会自动加入一个对应的被请求节点组播组。该组播地址由固定前缀 FF02::1:FF00:0/104 加上该单播地址的最后24比特构成。
    • 公式被请求节点组播地址 = FF02::1:FFXX:XXXX (其中 XX:XXXX 是单播地址的最后24比特)。

  • 工作流程与优势
    1. 当设备A需要解析设备B的单播地址对应的MAC地址时,它会向B对应的被请求节点组播地址发送一个“邻居请求”报文。
    2. 由于B已经加入了该组,因此它能收到这个请求并回复。
    3. 链路上其他设备(如设备C)的后24比特与B不同,因此没有加入这个组,它们的网卡在数据链路层就会丢弃这个组播帧,CPU无需处理
    • 优势
      • 高效节能:大大减少了对非目标设备的干扰(对比IPv4的ARP广播)。
      • 安全性提升:攻击者难以像监听ARP广播那样轻易窃听所有地址解析请求。
      • 与链路层解耦:地址解析由IPv6协议自身(ICMPv6)完成,不依赖特定链路层协议(如以太网的ARP),扩展性更强。

组播MAC地址映射

在以太网中传输IPv6组播包时,需要对应的组播MAC地址。映射规则如下:

  • 组播MAC地址的前16比特固定为 33:33(十六进制)。
  • 后32比特直接复制IPv6组播地址的最后32比特。
  • 公式组播MAC地址 = 33:33:XX:XX:XX:XX (其中 XX:XX:XX:XX 是IPv6组播地址的最后32比特)。


总结

本节课我们一起深入学习了IPv6地址的分类体系。

我们首先剖析了单播地址的结构,理解了网络前缀、接口ID以及EUI-64生成算法。接着,我们详细探讨了三种主要的单播地址:用于全球路由的全球单播地址、用于内部网络的唯一本地地址,以及实现即插即用和增强协议稳定性的链路本地地址。此外,我们还了解了::::1等特殊地址。

然后,我们学习了IPv6如何用组播完全取代广播。掌握了组播地址的结构、分类和作用范围。其中,被请求节点组播地址是重点,它通过精巧的设计,高效、安全地完成了邻居发现和地址解析,解决了IPv4中ARP广播带来的安全和性能问题。

通过本课的学习,你应该对IPv6庞大的地址空间如何被有条理地划分和利用有了清晰的认识,并理解了这些设计背后提升效率、安全性和可扩展性的初衷。

IPv6 技术详解:P107:IPv6,DAD,地址冲突检测

概述

在本节课中,我们将深入学习 IPv6 协议中的几个核心概念,包括任播地址、ICMPv6 协议、邻居发现协议、地址解析、邻居状态跟踪以及重复地址检测。这些内容是理解 IPv6 网络通信和地址管理机制的基础。


IPv6 任播地址

上一节我们介绍了 IPv6 的各种地址类型,本节中我们来看看一种特殊的地址应用——任播地址。

任播与其说是一种地址类型,不如说是一种网络应用模式。它的设计初衷是为了解决早期互联网中,用户访问远端服务器延迟高的问题。例如,一个网站在全球多个地区部署了内容相同的服务器,希望用户能自动访问距离最近的那一台,以提升访问速度。

在 IPv4 时代,为了实现类似效果,需要在不同地区部署不同 IP 地址的服务器,并通过复杂的 DNS 解析策略将用户引导到最近的服务器。而在 IPv6 中,任播地址被明确定义:多台位于不同地理位置的服务器可以配置相同的 IPv6 任播地址

以下是其工作流程:

  1. 用户访问一个域名。
  2. DNS 服务器将该域名解析到那个唯一的任播地址。
  3. 用户的设备将数据包发送给该任播地址。
  4. 网络中的路由器根据路由协议(如 OSPFv3)计算出到达该任播地址的最短路径,将数据包转发给离用户最近的那台配置了该任播地址的服务器。

核心特点与命令

  • 地址空间:任播地址使用单播地址空间,在配置时通过特定命令声明其为任播地址。
  • 无冲突检测:配置任播地址时,不进行 DAD 检测。
  • 配置示例(在路由器接口上,实际多用于服务器):
    interface GigabitEthernet0/0/0
      ipv6 address 2001:db8::1 64 anycast
    

过渡说明:任播地址主要用于优化服务访问,在网络设备配置中不常见。接下来,我们将探讨 IPv6 中用于网络控制和诊断的重要协议——ICMPv6。


ICMPv6 协议

ICMPv6 是 IPv6 版的互联网控制报文协议,它封装在 IPv6 数据包内,其下一个报头字段值为 58

ICMPv6 报文主要分为两大类:

  1. 差错报文:用于报告转发数据包时出现的错误,如目的不可达、超时、参数错误等。
  2. 信息报文:用于网络诊断和功能交互,如我们熟悉的 ping 命令(回送请求和回送应答)。

差错报文类型与代码示例

  • Type=1: 目的不可达
    • Code=0: 无路由到达目的地
    • Code=1: 因管理策略禁止通信
    • Code=3: 地址不可达
    • Code=4: 端口不可达
  • Type=3: 超时
    • Code=0: 传输中超过跳数限制
    • Code=1: 分片重组超时
  • Type=4: 参数错误

过渡说明:ICMPv6 不仅是诊断工具,更是 IPv6 许多核心功能的载体。其中最重要的就是邻居发现协议。


邻居发现协议

邻居发现协议是 IPv6 协议栈的核心组件之一,它没有自己独立的报文格式,而是借用 ICMPv6 的报文来实现多种功能。

NDP 实现的功能包括:

  • 地址解析(替代 ARP)
  • 路由器发现
  • 无状态地址自动配置
  • 重复地址检测
  • 邻居状态跟踪
  • 前缀重新编址
  • 路由重定向

NDP 主要使用四种 ICMPv6 报文:

  • 路由器请求:Type=133
  • 路由器通告:Type=134
  • 邻居请求:Type=135
  • 邻居通告:Type=136

过渡说明:了解了 NDP 的概貌后,我们首先深入看看它如何实现地址解析,这是设备间通信的第一步。


IPv6 地址解析

地址解析是指已知目标设备的 IPv6 地址,获取其链路层地址(如 MAC 地址)的过程。IPv6 使用 NDP 的 NSNA 报文完成此功能,替代了 IPv4 中的 ARP。

工作流程

  1. 主机 A 需要与主机 B 通信,已知 B 的 IPv6 地址。
  2. A 向 B 的被请求节点组播地址发送一个 NS 报文。该报文源 IP 是 A 的地址,目的 IP 是 B 对应的被请求节点组播地址,报文内包含 A 的 MAC 地址并询问“谁的 IP 是 B 的地址?”。
  3. 主机 B 收到发往自己监听组播地址的 NS 报文后,向 A 回复一个 NA 报文(单播)。该报文包含 B 的 MAC 地址,宣告“B 的 IP 地址对应的 MAC 地址是我”。
  4. 主机 A 收到 NA 后,即获得了 B 的 MAC 地址,可进行二层封装。

与 IPv4 ARP 对比的优势

  1. 基于三层:使用 ICMPv6 报文,独立于二层链路类型,通用性更强。
  2. 使用组播:NS 发往被请求节点组播地址,而非广播,减少了对链路上其他主机的干扰。
  3. 安全性提升:由于使用组播且基于三层,更容易与 IPsec 等安全机制结合,减少“ARP 欺骗”类攻击。

过渡说明:成功解析地址后,设备会生成一个邻居缓存表项。IPv6 对这个表项的状态管理比 IPv4 的 ARP 表更为精细和智能。


邻居状态跟踪

IPv6 邻居表记录了邻居的 IP 地址、MAC 地址、出接口及其状态。状态机机制确保了邻居的可达性得到动态维护。

邻居状态迁移过程如下:

  1. INCOMPLETE:地址解析进行中。设备发送了 NS 请求,但尚未收到 NA 应答。
  2. REACHABLE:可达状态。收到了 NA 应答,确认邻居可达。此状态默认持续 30 秒
  3. STALE:陈旧状态。REACHABLE 状态超时(30秒内无流量触发刷新)后进入。此状态表示“不确定邻居是否可达”,但表项仍保留。
  4. DELAY:延迟状态。当需要向处于 STALE 状态的邻居发送数据时,不会立即使用旧 MAC 地址,而是先进入 DELAY 状态(持续5秒),并同时发送新的 NS 请求。
    • 这5秒是给上层协议(如 TCP 握手成功)一个机会来证明邻居仍然可达。
  5. PROBE:探测状态。如果 DELAY 状态超时仍未收到 NA 或上层确认,则进入 PROBE 状态。此时会每隔1秒重传 NS,最多发送3次。
    • 如果收到 NA,则状态回到 REACHABLE。
    • 如果3次后均无应答,则删除该邻居表项。

这种机制有效避免了 IPv4 中 ARP 表项长期无效但仍被使用的问题,能更快地感知拓扑变化,清理无效条目。

过渡说明:在设备使用一个地址前,无论是手动配置还是自动获取,都必须确保该地址在网络中是唯一的。这就是 DAD 要完成的任务。


重复地址检测

重复地址检测用于确保一个单播 IPv6 地址在链路上是唯一的。任播地址不需要进行 DAD

DAD 过程

  1. 当接口配置了一个新的单播 IPv6 地址后,该地址首先处于 “试验” 状态,暂不可用于通信。
  2. 接口会立刻向这个“试验地址”对应的被请求节点组播地址发送一个 NS 报文。
    • 该 NS 报文的源 IP 地址是未指定地址 ::
    • 目标地址是“试验地址”的被请求节点组播地址。
    • 报文内容询问:“谁在使用这个‘试验地址’?”
  3. 如果在指定时间内(通常为1秒),没有收到任何 NA 应答,则认为该地址在链路上唯一,地址状态变为“首选”,可以正常使用。
  4. 如果收到了 NA 应答,则说明该地址已被其他设备使用。配置该地址的设备会将其标记为“重复”,该地址将无法用于通信。

实验现象
当尝试配置一个已存在的地址时,使用 display ipv6 interface 命令可以看到该地址后标记为 DUPLICATE

过渡说明:DAD 保证了地址本地唯一性。而 IPv6 地址的自动获取,则通过一种称为无状态地址自动配置的机制来实现,它同样依赖于我们之前提到的 NDP 报文。


无状态地址自动配置

无状态地址自动配置允许主机仅根据网络中的路由通告信息,自动生成全局 IPv6 地址,无需 DHCP 服务器。

工作流程

  1. 路由器周期性地FF02::1(所有节点组播地址)发送 RA 报文,或在收到主机的 RS 请求后立即回应 RA。
  2. RA 报文中携带网络前缀信息(例如 2001:db8::/64)以及其他标志位(如 M, O, A 标志)。
  3. 主机收到 RA 后,如果其中的 A 标志位为 1,则使用该前缀结合 EUI-64 算法生成接口标识符,组合形成完整的 128 位 IPv6 地址。
  4. 主机可以为该地址自动生成一条默认路由,指向发送 RA 的路由器链路本地地址。

关键配置命令

  • 在路由器上启用 RA 通告(默认抑制):
    interface GigabitEthernet0/0/0
      undo ipv6 nd ra halt
    
  • 配置 RA 参数
    interface GigabitEthernet0/0/0
      ipv6 nd ra interval min 100 max 200  # 设置RA发送间隔
      ipv6 nd ra prefix 2001:db8::/64 3600 3600 no-autoconfig # 通告前缀但不允许自动配置
    
  • 在主机上启用自动配置
    interface GigabitEthernet0/0/0
      ipv6 address auto global  # 仅获取地址
      ipv6 address auto global default-route  # 获取地址和默认路由
    

SLAAC 与 DHCPv6

  • SLAAC:无状态,路由器不记录主机信息。适用于物联网等大量简单设备接入的场景。
  • DHCPv6:有状态,服务器分配并记录地址。适用于需要精确管理地址的企业网。

总结

本节课中我们一起学习了 IPv6 的多个核心机制:

  1. 任播地址:一种服务部署模式,实现流量就近访问。
  2. ICMPv6:IPv6 的控制与诊断协议,也是 NDP 的载体。
  3. 邻居发现协议:IPv6 的核心,实现了地址解析、路由器发现、地址自动配置等关键功能。
  4. 地址解析:使用 NS/NA 报文,基于组播,更高效安全地获取邻居 MAC 地址。
  5. 邻居状态跟踪:通过精细的状态机(INCOMPLETE、REACHABLE、STALE、DELAY、PROBE)动态维护邻居可达性。
  6. 重复地址检测:在地址使用前,通过发送 NS 报文检测地址冲突,保证地址唯一性。
  7. 无状态地址自动配置:主机根据路由器通告的 RA 报文,自动生成 IPv6 地址和默认路由。

这些机制共同构成了 IPv6 即插即用、高效可靠的基础网络能力。

IPv6技术详解:第54讲:SLAAC与IPv6手工隧道

概述

在本节课中,我们将深入学习IPv6的两个重要技术:无状态地址自动配置(SLAAC)的进阶机制,以及IPv6与IPv4网络共存的过渡技术——手工隧道。我们将详细探讨IPv6地址的生命周期、RA报文中的关键标志位,并动手配置两种主要的手工隧道(6to4和GRE隧道),以实现IPv6网络跨越IPv4骨干网的通信。


IPv6地址生命周期与RA报文详解

上一节我们介绍了SLAAC的基本机制,即主机如何通过路由器通告(RA)报文自动配置IPv6地址。本节中,我们来看看IPv6地址配置中更精细的控制机制——地址的生命周期管理。

一个IPv6地址会经历几个阶段,类似于人的一生:

  • 试验地址(Tentative Address):在完成重复地址检测(DAD)之前,地址处于此状态。
  • 优选地址(Preferred Address):通过DAD后,地址进入“优选”阶段。此阶段由 优选生存期(Preferred Lifetime) 定义。
  • 不建议使用地址(Deprecated Address):超过优选生存期后,地址进入“不建议使用”阶段,直到 有效生存期(Valid Lifetime) 结束。
  • 无效地址(Invalid Address):超过有效生存期后,地址失效。

公式/概念

  • 有效生存期:地址可用的总时长,默认 30天
  • 优选生存期:地址处于“优选”状态的时间,默认 7天
  • 不建议使用期 = 有效生存期 - 优选生存期

这些时间值由路由器在RA报文中携带,并通告给主机。它们的主要作用是实现地址的 平滑切换。例如,当服务器需要更换IPv6地址时,可以先将新地址引入(优选期),让新连接使用新地址,而旧地址进入“不建议使用期”以维持已有的TCP连接,直到所有旧连接自然结束。这样可以在不中断业务的情况下完成地址迁移。


RA报文中的关键标志位

除了生存期,RA报文还包含几个重要的标志位,用于指导主机如何配置地址及其他网络参数。

以下是RA报文中用于地址配置的关键标记位(A, M, O)及其常见组合含义:

A位 (Autoconfig) M位 (Managed) O位 (Other) 配置含义
1 0 0 仅使用SLAAC配置IPv6地址。不获取DNS等信息。
1 0 1 使用SLAAC配置IPv6地址,同时使用无状态DHCPv6获取DNS等其他参数。
0 1 0 仅使用有状态DHCPv6配置IPv6地址和DNS等所有参数。
0 1 1 使用有状态DHCPv6配置地址和参数(O位通常被忽略)。

注意:这些标志位对主机而言通常是“建议”,某些操作系统(如Windows)可以通过命令忽略这些建议。


IPv6基础机制补充

在深入隧道技术前,我们简要回顾两个IPv6的基础机制。

ICMPv6重定向
当路由器发现数据包的下一跳与源主机在同一网段时,会发送ICMPv6重定向报文,告知主机更优的路径。例如,主机A访问主机B,网关RTA发现RTB是更近的下一跳,就会通知主机A后续直接发往RTB。

路径MTU发现(PMTUD)
IPv6规定中间路由器不能对数据包分片,分片只能在源主机进行。PMTUD机制确保主机能发现整条路径上的最小MTU。

  1. 主机按本机MTU发送数据包。
  2. 路径上任何路由器若因MTU太小无法转发,将回复“Packet Too Big” ICMPv6报文,并告知其接口MTU值。
  3. 主机根据此MTU值重新分片并发送。
    此过程持续进行,直到数据包能到达目的地。IPv6要求链路最小MTU为 1280 字节。

IPv6过渡技术:双栈与手工隧道

由于IPv4向IPv6的迁移无法一蹴而就,网络中常存在两种协议共存的场景。过渡技术主要分为两类:共存互通。本节重点介绍共存技术中的 双栈手工隧道

双栈技术

双栈是最简单直接的共存方式。网络中的设备(主机、路由器)同时运行IPv4和IPv6协议栈,并配置两种协议的地址。IPv4和IPv6通信相互独立,互不影响。

  • 优点:原理简单,无需协议转换。
  • 缺点:要求端到端所有设备支持双栈,且应用需兼容两者,是一种理想化模型。

配置示例

# 在路由器接口上同时配置IPv4和IPv6地址
interface GigabitEthernet0/0/0
 ip address 10.0.12.1 255.255.255.0
 ipv6 enable
 ipv6 address 2001:12::1/64

手工隧道技术

当两个IPv6网络被一个IPv4网络隔开时,可以使用隧道技术,将IPv6数据包封装在IPv4数据包中,通过IPv4网络进行传输。主要有两种类型:IPv6 over IPv4手动隧道GRE over IPv4隧道

实验拓扑与目标

  • PC1 (IPv6: 2001:192::1/64) 和 PC2 (IPv6: 2001:172::1/64) 位于两个IPv6网络。
  • 中间网络 (R1-R2-R3) 为IPv4网络。
  • 目标:在R1和R3之间建立隧道,使PC1与PC2能够互通。

基础配置(IP地址、路由略)


1. IPv6 over IPv4 手动隧道

这种隧道直接在IPv6数据包外封装一个IPv4头部。

在隧道端点R1和R3上的配置

# 创建隧道接口并指定封装类型
interface Tunnel0/0/1
 tunnel-protocol ipv6-ipv4  # 指定为IPv6 over IPv4手动隧道
 source 10.0.12.1           # 隧道源地址(本端IPv4地址)
 destination 10.0.23.3      # 隧道目的地址(对端IPv4地址)
 ipv6 enable
 ipv6 address 2001::1/64    # 为隧道接口配置一个IPv6地址,使协议UP

配置静态路由引流

# 在R1上,将去往PC2网段的路由指向隧道接口
ipv6 route-static 2001:172:: 64 Tunnel0/0/1

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/2869f29f46c9e521c80e04cfd115507c_25.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/2869f29f46c9e521c80e04cfd115507c_26.png)

# 在R3上,将去往PC1网段的路由指向隧道接口
ipv6 route-static 2001:192:: 64 Tunnel0/0/1

通信过程

  1. PC1访问PC2的IPv6包到达R1。
  2. R1查IPv6路由表,匹配到静态路由,将数据包送入隧道接口Tunnel0/0/1
  3. 隧道接口为原始IPv6包添加一个外层IPv4包头,源为10.0.12.1,目的为10.0.23.3
  4. 封装后的IPv4包在IPv4网络中路由,到达R3。
  5. R3拆掉外层IPv4包头,得到内层IPv6包,查其IPv6路由表,转发给PC2。
  6. 回程过程类似。

优点:封装开销小,比GRE隧道少一个协议头。
缺点:纯手工配置,无法检测隧道状态。


2. GRE over IPv4 隧道

这种隧道使用通用的GRE协议进行封装,灵活性更高。

在隧道端点R1和R3上的配置

# 创建隧道接口并指定封装类型为GRE
interface Tunnel0/0/1
 tunnel-protocol gre        # 指定为GRE隧道
 source 10.0.12.1           # 隧道源地址
 destination 10.0.23.3      # 隧道目的地址
 ipv6 enable
 ipv6 address 2001::1/64    # 为隧道接口配置IPv6地址

路由引流配置与手动隧道相同

通信过程
与手动隧道类似,区别在于封装时,在原始IPv6包和外层IPv4包之间,还添加了一个 GRE头部

GRE隧道相较于手动隧道的优势

  1. 支持Keepalive检测:可以配置keepalive命令来检测隧道链路的状态。
    interface Tunnel0/0/1
     keepalive
    
  2. 支持简单的认证:可以配置GRE Key,提供简单的验证机制。
    # 在R1和R3的隧道接口下配置相同的Key
    interface Tunnel0/0/1
     gre key 123
    
    如果两端Key不一致,隧道将无法建立。 但需注意,Key在报文中是明文传输的,安全性较弱。

缺点:比手动隧道多一个GRE头(通常4字节),有效载荷略少。


总结

本节课我们一起深入学习了IPv6的多个核心机制与过渡技术。

  1. IPv6地址生命周期:理解了优选生存期和有效生存期的概念及其在地址平滑切换中的重要作用。
  2. RA报文标志位:掌握了A、M、O标志位的含义及其组合所定义的地址配置方式(纯SLAAC、SLAAC+无状态DHCPv6、有状态DHCPv6)。
  3. 基础机制:回顾了ICMPv6重定向和路径MTU发现(PMTUD)的工作原理。
  4. 过渡技术-双栈:了解了最简单的IPv4/IPv6共存方式。
  5. 过渡技术-手工隧道:重点实践了两种手工隧道(IPv6 over IPv4和GRE over IPv4)的配置,理解了其封装原理、通信流程以及各自的优缺点(GRE隧道支持状态检测和简单认证,手动隧道封装效率更高)。

通过本课的学习,你已能够配置基本的IPv6网络,并使其通过隧道跨越IPv4网络进行通信。下一节课我们将探讨更自动化的隧道技术。

HCIE Datacom:P109:IPv6隧道技术与静态路由 🚀

概述

在本节课中,我们将学习IPv6的隧道技术,包括6to4隧道、ISATAP隧道以及IPv6静态路由。这些技术是实现IPv4网络向IPv6网络过渡的关键。我们将通过理论讲解和实验演示,帮助初学者理解这些技术的原理和配置方法。


6to4隧道 🔄

上一节我们介绍了IPv6的手动隧道。本节中我们来看看一种自动隧道技术——6to4隧道。

6to4隧道是一种自动隧道技术,它解决了手动隧道需要大量重复配置的问题。在手动隧道中,每新增一个站点,都需要在所有相关设备上配置新的隧道接口,工作量巨大。6to4隧道通过一种特殊的地址格式和自动封装机制,简化了这一过程。

6to4地址格式

6to4网络使用一种特殊的IPv6地址,其格式如下:

  • 所有6to4地址都以 2002::/16 开头。
  • 地址的第17到48位(共32位)由站点的IPv4公网地址转换而来。
  • 例如,如果路由器的IPv4公网地址是 2.2.2.2,那么其对应的6to4网络前缀就是 2002:0202:0202::/48

工作原理

6to4隧道的工作流程可以概括为以下几个步骤:

  1. IPv6主机发送一个目的地址为6to4地址的数据包。
  2. 边界路由器(6to4路由器)收到数据包后,根据路由表将其引导至6to4隧道接口。
  3. 路由器进行封装:IPv4源地址是隧道接口配置的地址,IPv4目的地址则从IPv6目的地址的第17到48位提取并转换得到。
  4. 封装后的IPv4报文通过IPv4网络传输到对端6to4路由器。
  5. 对端路由器解封装,将原始的IPv6报文转发给目标主机。

实验配置

以下是配置6to4隧道的核心步骤:

  1. 规划地址:确保站点内IPv6子网的前48位与本地公网IPv4地址转换后的6to4前缀一致。
  2. 配置隧道接口
    interface Tunnel0/0/1
     tunnel-protocol ipv6-ipv4 6to4  # 指定隧道协议为6to4
     source 1.1.1.1                 # 指定隧道源IPv4地址
     ipv6 enable
     ipv6 address 2002:0101:0101::1/64  # 配置隧道接口的IPv6地址
    
    注意:6to4隧道无需配置目的地址。
  3. 配置路由:添加一条静态路由,将所有去往 2002::/16 网段的流量指向隧道接口。
    ipv6 route-static 2002:: 16 Tunnel0/0/1
    

通过以上配置,两个6to4网络之间就能自动建立隧道并通信。新增站点时,只需在新站点配置6to4隧道和路由,原有站点无需任何改动。


6to4中继 🌉

上一节我们介绍了6to4网络之间的互通。本节中我们来看看6to4网络如何与普通的IPv6网络进行通信。

当6to4网络需要与一个使用普通全球单播地址(如 2001::/16)的IPv6网络通信时,就需要用到6to4中继技术。

工作原理

6to4中继的核心思想是:让去往普通IPv6网络的流量,其下一跳指向一个6to4地址

  1. 在6to4网络的路由器上,配置一条指向普通IPv6网络的静态路由。
  2. 这条静态路由的下一跳地址,是对端路由器隧道接口的6to4地址。
  3. 当数据包进入6to4隧道时,路由器无法从普通IPv6目的地址中提取IPv4目的地址。
  4. 此时,路由器会转而查询去往该路由的下一跳地址(即一个6to4地址),并从这个6to4地址中提取出IPv4目的地址进行封装。

配置示例

假设普通IPv6网络为 2001:33::/64,其网关路由器(AR3)的公网IP是 3.3.3.3,隧道接口6to4地址是 2002:0303:0303::1

在6to4网络的路由器(AR2)上需要配置两条路由:

# 1. 去往普通IPv6网络的路由,下一跳指向AR3的6to4地址
ipv6 route-static 2001:33:: 64 2002:0303:0303::1

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/0e5cf168cfd069a39fa57d8f591a02e4_84.png)

# 2. 去往所有6to4网络的路由,指向本地6to4隧道接口(用于路由迭代)
ipv6 route-static 2002:: 16 Tunnel0/0/1

第一条路由指明了方向,第二条路由提供了封装依据。数据包根据第一条路由被引导至隧道,再根据第二条路由的规则,从下一跳的6to4地址(2002:0303:0303::1)中提取出 3.3.3.3 作为IPv4封装的目的地址。


ISATAP隧道 🖥️

上一节我们介绍了站点间的隧道技术。本节中我们来看一种用于主机接入IPv6网络的隧道技术——ISATAP。

ISATAP隧道主要用于在纯IPv4网络内部,让IPv4主机能够访问IPv6资源。它允许主机通过现有的IPv4基础设施自动获得IPv6地址并创建隧道。

工作原理

  1. 地址生成:ISATAP接口的IPv6地址由64位前缀和64位接口标识符组成。接口标识符格式固定为:::5EFE: + 主机的IPv4地址(十六进制)。例如,主机IPv4地址 10.0.2.5 对应的接口ID是 ::5EFE:0A00:0205
  2. 隧道建立:主机需要知道ISATAP路由器的IPv4地址(如 10.0.2.1)。在Windows命令提示符中可配置:
    netsh interface ipv6 isatap set router 10.0.2.1
    
  3. 地址分配:主机通过IPv4网络向ISATAP路由器发送请求。路由器通过隧道为主机分配一个全球单播IPv6地址前缀(如 2001::/64),主机将其与自己的ISATAP接口ID组合,形成完整的IPv6地址。
  4. 通信过程:当主机访问IPv6网络时,IPv6报文被封装在IPv4报文中(源目IPv4地址为主机和ISATAP路由器),通过IPv4网络到达ISATAP路由器。路由器解封装后,将IPv6报文转发至IPv6网络。

特点

  • 主机侧配置:主要在主机操作系统上完成。
  • 无需网络设备大改:只需部署一台支持ISATAP的路由器,现有IPv4网络架构无需变动。
  • 自动地址分配:支持无状态地址自动配置。


NAT64 地址转换 🔀

上一节我们介绍了IPv6隧道技术。本节中我们简要了解一种协议转换技术——NAT64。

NAT64用于实现纯IPv6主机与纯IPv4主机之间的通信。它需要一台支持NAT64的网关设备(如高端防火墙),在IPv4和IPv6网络之间进行协议转换。

工作原理

  1. 地址映射:在NAT64网关上,需要配置IPv4地址与IPv6地址之间的映射关系。例如:
    • IPv4主机 1.1.1.1 在IPv6网络中对应 2002::AAAA:0101(假设)。
    • IPv6主机 2001::1 在IPv4网络中对应 2.2.2.2(假设)。
  2. 报文转换
    • IPv6访问IPv4:当IPv6主机 2001::1 访问IPv4主机 1.1.1.1 时,它实际发送给目的地址 2002::AAAA:0101。NAT64网关将报文头转换为:源 2.2.2.2,目的 1.1.1.1,然后发送给IPv4主机。
    • IPv4访问IPv6:反之,IPv4主机 1.1.1.1 访问 2.2.2.2,NAT64网关将报文头转换为:源 2002::AAAA:0101,目的 2001::1,然后发送给IPv6主机。

注意事项

  • 部署位置:通常部署在网络的边界。
  • 细节复杂:除了IP地址,还需要处理ICMP、TCP/UDP端口等协议的转换,细节较为复杂。
  • 非考试重点:了解其基本概念即可。

IPv6静态路由 🛣️

本节我们开始学习IPv6的路由技术。首先从最简单的静态路由开始。

IPv6静态路由的配置思路和命令格式与IPv4静态路由高度相似,主要区别在于地址族。

配置命令

基本配置命令如下:

ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ nexthop-address ] | nexthop-address }
  • ipv6-address prefix-length:目的IPv6网络地址和前缀长度。
  • interface-type interface-number:指定出接口。
  • nexthop-address:指定下一跳的IPv6地址。

配置要点

  1. 广播网络(如以太网):必须指定下一跳地址,不能只写出接口。
  2. 点到点网络(如PPP):可以只指定出接口。
  3. 缺省路由:目的地址为 ::/0
  4. 优先级:默认优先级为60,可以手动修改以实现路由备份(浮动静态路由)。
  5. 永久发布:某些设备支持在删除路由时使用特定参数,使配置保留但路由暂时失效,便于后续恢复。

配置示例

实现两个路由器环回口互通:

  • 在R1上配置:ipv6 route-static 2001:DB8:2345:2:: 128 2001:12::2
  • 在R2上配置:ipv6 route-static 2001:DB8:2345:1:: 128 2001:12::1

地址规划习惯:尽管IPv6地址空间巨大,但在实际部署中,出于管理和习惯,环回口地址通常仍配置为 /128 前缀,而非 /64


OSPFv3 概述 🏗️

上一节我们介绍了IPv6静态路由。本节开始,我们将学习IPv6的动态路由协议。首先介绍OSPFv3。

OSPFv3是OSPF协议针对IPv6的版本。它与OSPFv2(用于IPv4)原理相似,但相互独立,不兼容。

与OSPFv2的相同点

  • 核心概念:区域划分、路由器类型(IR/ABR/ASBR)、路由计算(SPF算法)。
  • 工作机制:邻居建立、链路状态同步、路由计算、生成路由表。
  • 网络类型:支持相同的四种网络类型。
  • 报文类型:同样有5种报文类型。

与OSPFv2的不同点(初步)

OSPFv3针对IPv6环境做了重要改进,主要不同点包括:

  1. 基于链路运行:OSPFv3邻居关系基于链路本地地址建立,不要求接口的全球单播地址在同一网段。只要链路层可达,就能建立邻居。
  2. 独立于网络协议:OSPFv3报文直接封装在IPv6报文中,协议号是89。
  3. 新的LSA格式:OSPFv3的LSA中不再包含IP地址信息,而是携带“前缀”和“链路状态”信息,格式被重新设计。
  4. Router ID:OSPFv3必须手动配置Router ID,它是一个32位的数字,通常仍以IPv4地址格式表示(如 1.1.1.1),但它与设备的IPv6或IPv4地址无关,只需保证全网唯一。

实验:基于链路的OSPFv3

即使不配置全球单播地址,仅凭链路本地地址也能建立OSPFv3邻居并传递路由。

  1. 在接口上启用IPv6并自动生成链路本地地址:ipv6 address auto link-local
  2. 进程下配置Router ID:router-id 1.1.1.1
  3. 在接口下启用OSPFv3:ospfv3 1 area 0

此时,邻居状态可以到达Full。如果为环回口配置全球单播地址并在OSPFv3中宣告,路由器就能学习到这些环回口路由。这证明了OSPFv3“基于链路运行”的特性:设备间互联可以只使用链路本地地址,全球单播地址仅用于终端业务或网络管理。


总结

本节课我们一起学习了IPv6的核心过渡技术和基础路由。

  1. 隧道技术:掌握了6to4隧道的自动建立原理,理解了6to4中继如何实现6to4网络与普通IPv6网络的互通,并了解了ISATAPNAT64的应用场景。
  2. 静态路由:回顾了IPv6静态路由的配置方法,其逻辑与IPv4静态路由一致。
  3. OSPFv3入门:认识了OSPFv3协议,理解了其与OSPFv2的主要异同,特别是其“基于链路运行”和“必须配置Router ID”的关键特性。

这些知识是构建和理解双栈网络及IPv6迁移方案的基础。

华为认证HCIA课程:P10:静态路由

概述

在本节课中,我们将要学习静态路由的核心概念、工作原理以及配置方法。我们将从回顾直连路由开始,逐步深入到静态路由的加表原则、查表过程,并通过实验演示如何配置静态路由以实现网络互通。


回顾:直连路由

上一节我们介绍了直连路由。直连路由是根据设备物理接口直接连接的网络自动生成的路由。例如,当我们在接口上配置IP地址并激活接口后,路由表中就会自动出现该接口所连接网段的路由条目。


静态路由基础

本节中我们来看看静态路由。与直连路由不同,静态路由需要网络工程师手动配置,明确指定去往特定目的网络的路径。

路由表参数详解

查看路由表时,我们会看到多个关键参数。以下是每个参数的含义:

  • 目的地/掩码 (Destination/Mask):标识数据包要到达的目标网络地址和子网掩码。
  • 协议 (Proto):表示该路由条目是通过何种方式学习到的。例如,Direct 代表直连路由,Static 代表静态路由。
  • 优先级 (Preference):这是一个关键参数,用于在不同协议学习到相同路由时进行优劣比较。数值越小,优先级越高
    • 直连路由优先级:0
    • 静态路由优先级:60
  • 开销 (Cost):通常与动态路由协议相关,表示到达目的地的路径开销。开销值越小,路径越优。静态路由的Cost值默认为0。
  • 下一跳 (NextHop):数据包离开本路由器后,下一个要送达的路由器接口的IP地址。
  • 出接口 (Interface):数据包应该从本路由器的哪个物理或逻辑接口发送出去。

路由加表原则

当有多条去往同一目的网络的路由时,路由器遵循“最优加表”原则,只将最优的一条(或几条等价路由)放入路由表。

以下是路由加表的比较顺序:

  1. 比较目的网络和掩码:如果目的网络和掩码不完全一致,则所有路由都会加表。只有在完全一致时,才会进入下一步比较。
  2. 比较优先级 (Preference):优先级数值小的路由更优。
  3. 比较开销 (Cost):在优先级相同的情况下,比较开销值,开销小的路由更优。
  4. 等价路由:如果优先级和开销都相同,则这些路由会全部加表,形成等价路由,实现负载分担。

公式示例:路由加表逻辑

如果 (目的网络A == 目的网络B) 且 (掩码A == 掩码B):
    如果 (优先级A < 优先级B):
        选择路由A
    否则如果 (优先级A == 优先级B):
        如果 (开销A < 开销B):
            选择路由A
        否则如果 (开销A == 开销B):
            A和B都加表(等价路由)
    否则:
        选择路由B
否则:
    A和B都加表

路由查表与最长掩码匹配

当路由器收到一个数据包时,会查询路由表以决定如何转发。查询遵循 “最长掩码匹配” 原则。

工作原理:路由器将数据包的目的IP地址与路由表中每一条路由的掩码进行“与”运算,得到网络地址。在所有匹配的路由条目中,选择子网掩码最长的那一条进行转发。掩码越长,代表网络范围越精确。

示例
假设路由表中有以下三条路由:

  1. 192.168.1.0/24 下一跳:A
  2. 192.168.1.0/25 下一跳:B
  3. 192.168.1.0/30 下一跳:C

当要转发目的IP为 192.168.1.4 的数据包时:

  • 与/24掩码计算:网络地址为192.168.1.0,匹配
  • 与/25掩码计算:网络地址为192.168.1.0,匹配
  • 与/30掩码计算:网络地址为192.168.1.4,不匹配

在匹配的/24和/25路由中,/25的掩码更长(更精确),因此路由器会选择下一跳B进行转发。


默认路由与路由环路

上一节我们了解了常规路由的匹配,本节中我们来看看两种特殊情况:默认路由和路由环路。

默认路由

默认路由是一种特殊的路由,其目的地和掩码均为 0.0.0.0。它可以匹配任何目的IP地址。

特点:默认路由的掩码长度为0,在“最长掩码匹配”原则中优先级最低。只有当数据包的目的IP无法匹配路由表中任何其他更精确的路由时,才会使用默认路由进行转发。

配置命令示例

# 去往任何目的地,都发送到下一跳 12.1.1.2
ip route-static 0.0.0.0 0.0.0.0 12.1.1.2

路由环路

如果网络中的路由配置出现错误,可能导致数据包在两个或多个路由器之间循环转发,永远无法到达目的地,这种现象称为路由环路。

环路的影响:环路会严重消耗网络带宽和设备CPU资源。虽然IP报文头中的 TTL (生存时间) 字段在每次经过路由器时减1,减至0时报文被丢弃并报告超时,这可以终止单个报文的环路,但无法消除环路本身。只要错误配置存在,新的报文仍会陷入环路。

实验演示:在两台路由器上互相指向对方作为默认路由的下一跳,就会形成一个简单的环路。使用 ping 命令测试一个不存在的地址,并在链路上抓包,可以观察到TTL值递减至0并产生大量ICMP超时报文的过程。


静态路由配置实验

理论需要实践来巩固。本节我们将通过一个实验,配置静态路由,使三台位于不同网段的PC能够互相通信。

实验拓扑与需求

实验拓扑包含三台路由器(R1, R2, R3)和三台PC。路由器之间以及路由器与PC之间通过不同网段连接。
需求:配置静态路由,使PC1(192.168.1.0/24)、PC2(192.168.2.0/24)、PC3(192.168.3.0/24)之间能够互相ping通。

配置思路与步骤

实现跨网段通信的关键是:路径上每一台需要处理该数据包的路由器,都必须拥有去往目的网段的路由。这包括去程回程

以下是配置步骤的核心思路:

  1. 配置基础IP地址:为所有路由器接口和PC配置正确的IP地址及网关。
  2. 分析通信路径:以PC1 ping PC3为例。
    • 去程:PC1 -> R1 -> R2 -> R3 -> PC3
    • 回程:PC3 -> R3 -> R2 -> R1 -> PC1
  3. 逐跳配置静态路由:确保路径上的每一台路由器都知道如何到达非直连的网段。
    • 在R1上:配置去往 192.168.2.0/24192.168.3.0/24 的路由,下一跳指向R2(12.1.1.2)。
    • 在R2上:配置去往 192.168.1.0/24192.168.3.0/24 的路由,前者下一跳指向R1(12.1.1.1),后者下一跳指向R3(23.1.1.3)。
    • 在R3上:配置去往 192.168.1.0/24192.168.2.0/24 的路由,下一跳均指向R2(23.1.1.2)。

配置命令示例 (在R1上)

# 去往PC2所在网段
ip route-static 192.168.2.0 255.255.255.0 12.1.1.2
# 去往PC3所在网段
ip route-static 192.168.3.0 255.255.255.0 12.1.1.2

验证:配置完成后,在PC1上分别ping PC2和PC3的IP地址,应该能够收到回复,表示网络已通。

重要概念澄清

  • “朋友的朋友”误区:数据通信依赖于每台设备自身的路由表。即使R1认识R2,R2认识R3,但R1的路由表里没有去往R3后方网段的路由,PC1也无法与PC3通信。通信是逐跳查询、独立转发的。
  • 中间链路路由:在本实验中,为了实现终端互通,我们并未配置到达路由器之间互联网段(如23.1.1.0/24)的路由。因为我们的目标是终端通信,只要路径上的路由器有到达终端网段的路由即可,无需关心是否能直接ping通中间路由器的接口。


补充知识:ARP代理

在特定网络编址情况下,主机可能误判目标与自己同网段,从而直接发送ARP请求,但该广播请求无法被路由器转发,导致通信失败。此时可以在路由器接口上启用 ARP代理 (ARP Proxy) 功能。

工作原理:当路由器接口启用ARP代理后,收到非本接口IP的ARP请求时,会先查询自己的路由表。如果路由表中有去往该目标IP的路由,则路由器会用自己的接口MAC地址进行应答,代理目标主机进行通信。

命令示例 (接口视图下)

arp-proxy enable

注意:ARP代理的详细配置与应用属于更高级的IP课程内容,此处仅作概念性了解。


总结

本节课中我们一起学习了静态路由的核心知识。我们首先回顾了直连路由,然后深入探讨了静态路由的加表原则(比较优先级和开销)和查表原则(最长掩码匹配)。我们认识了特殊的默认路由及其可能引发的路由环路问题。最后,通过一个完整的实验,我们掌握了如何规划和配置静态路由,以实现多网段之间的互通,并理解了数据通信中“逐跳转发”和“路由表决定可达性”的基本原则。这些是构建和理解任何IP网络的基础。

OSPFv3 课程:P110:OSPFv3 新增特性详解

在本节课中,我们将深入学习 OSPFv3 协议,重点探讨其相较于 OSPFv2 新增的核心特性。我们将从链路多实例支持开始,逐步分析 OSPFv3 报文结构、链路本地地址的使用以及 LSA 类型的重大变化,特别是其对未知 LSA 的泛洪支持机制。

链路支持多实例

上一节我们介绍了 OSPFv3 的基本概念,本节中我们来看看 OSPFv3 一个重要的新增特性:链路支持多实例

在 OSPFv2 中,提到“多实例”容易联想到多进程。但在 OSPFv3 中,情况有所不同。OSPFv3 在 Hello 报文中新增了一个字段:Instance ID(实例 ID)。这个字段相当于一个“暗号”。建立邻居时,不再要求两端 IP 地址在同一网段,但要求双方的 Instance ID 必须相同

我们可以通过抓包来观察 Instance ID。配置两台路由器运行 OSPFv3,在接口下启用 OSPFv3 时,可以指定实例 ID,默认值为 0。

# 在接口下配置 OSPFv3 并指定实例 ID
interface GigabitEthernet0/0/0
 ospfv3 1 area 0 instance-id 1

如果两台路由器的实例 ID 不一致(例如一端为 1,另一端为 0),则邻居关系无法建立。只有当双方实例 ID 修改为一致后,邻居关系才能正常建立。

基于此现象,我们可以得出结论:OSPFv3 建立邻居时,要求两端的实例 ID 相同,否则无法建立邻居关系。

那么,这个特性的作用是什么呢?它主要用于实现 链路的多路复用

考虑一个场景:四台路由器连接在同一台二层交换机上。我们希望 R1 只与 R4 建立邻居,R2 只与 R3 建立邻居,两组邻居彼此隔离。在 OSPFv2 中,可以通过划分 VLAN 或配置认证等方式实现,但配置相对复杂。

在 OSPFv3 中,利用实例 ID 可以更简洁地实现:

  • 让 R1 和 R4 使用相同的实例 ID(例如 1)。
  • 让 R2 和 R3 使用相同的实例 ID(例如 2)。
  • 由于实例 ID 不同,R1/R4 与 R2/R3 之间不会建立邻居关系,从而在逻辑上形成了两个独立的网络,共享同一条物理链路。

这种设计可以充分利用链路资源,无需额外的物理设备或复杂的二层隔离配置。需要注意的是,实例 ID 仅用于控制邻居关系的建立,并不能实现路由表的隔离(这是 VPN 实例的功能)。

OSPFv3 对链路本地地址的使用

接下来,我们探讨 OSPFv3 对链路本地地址的依赖,这是其与 OSPFv2 的另一个关键区别。

在 OSPFv3 中:

  1. 链路本地地址被用作报文发送的源地址和路由条目的下一跳
  2. 邻居关系的建立、维持以及 LSA 的同步都基于链路本地地址。

这带来了两大优势:

  • 实现拓扑与地址分离:无需配置全局单播地址,仅凭链路本地地址即可构建 OSPFv3 的拓扑。这实现了网络拓扑与全球单播地址的解耦。
  • 减少不必要的泛洪:OSPFv3 报文以链路本地地址为源,其组播目的地址(如 FF02::5)也仅在本地链路有效,因此报文不会被转发到始发链路之外,节省了带宽。

注意:关于第二点优势,OSPFv2 的组播报文同样只在本地链路传播,这是组播地址的特性。此处主要是说明 OSPFv3 具备此特点。

OSPFv3 报文类型与结构

OSPFv3 与 OSPFv2 一样,有五种报文类型:Hello、DD、LSR、LSU、LSAck。其协议号在 IPv6 报头中同样标识为 89,并使用类似的组播地址(FF02::5FF02::6)。这种设计保持了工程师从 OSPFv2 过渡到 OSPFv3 时的熟悉感,利于技术普及。

通用包头对比

以下是 OSPFv3 与 OSPFv2 通用包头的主要区别:

字段 OSPFv2 OSPFv3 说明
版本 2 3 协议版本号。
Instance ID OSPFv3 新增,用于多实例。
认证字段 OSPFv3 自身不提供认证,依赖 IPv6 的 AH/ESP 扩展头。

Hello 报文与 Option 字段

OSPFv3 的 Hello 报文包含了与 OSPFv2 类似的字段,如路由器优先级、Hello/Dead 间隔、DR/BDR、邻居列表等。主要新增了两个字段:

  • Interface ID:用于唯一标识启用了 OSPFv3 的接口。其具体作用将在讲解 SPF 算法时深入理解。
  • Option 字段:长度扩展为 3 字节(24 比特),新增了三个关键比特位:
    • R 位:指示始发路由器是否具备转发能力。若 R=0,则其他路由器在计算 SPF 树时会忽略由此路由器生成的拓扑信息(但仍可计算其发布的叶子网络)。可用于设备维护前的流量引流。
    • V6 位:指示是否参与 IPv6 路由计算。若 V6=0,则其他路由器在 SPF 计算中会完全忽略此路由器及其连接的所有网络。
    • AT 位:指示设备是否支持 OSPFv3 认证(通过 IPv6 扩展头实现)。

OSPFv3 LSA 的革新

OSPFv3 的 LSA 头部发生了重大变化,其中最核心的是 LSA Type 字段的重新定义。

在 OSPFv2 中,每增加一项新功能(如 Graceful Restart、MPLS TE),就需要定义一种新的 LSA 类型(如第 9、10 类 LSA)。如果网络中的某台路由器软件版本较旧,无法识别这种新的 LSA,它会直接丢弃该 LSA,导致后续需要该信息的路由器无法收到。

OSPFv3 借鉴了 BGP 中“可选过渡属性”的思想,引入了对未知 LSA 的泛洪支持。这是通过重新设计的 LSA Type 字段实现的。

OSPFv3 的 LSA Type 是一个 16 位的字段,其结构如下:

  • U 比特:指示路由器应如何处理无法识别的 LSA。
    • U=0:将 LSA 视为链路本地范围,并像存储它一样将其泛洪。
    • U=1:像存储已知 LSA 一样存储并泛洪未知 LSA。
  • S1/S2 比特:共同指示 LSA 的泛洪范围
    • 00:链路本地范围
    • 01:区域范围
    • 10:自治系统范围
    • 11:保留
  • LSA 功能代码:剩余比特位用于标识 LSA 的具体功能。

这种机制允许一台不支持新功能的路由器,在收到未知 LSA 时,根据 U 比特和 S 比特的指示,将其正确地泛洪给其他邻居,从而保证了新特性信息能在网络中传递,即使部分节点尚未升级。

总结

本节课中我们一起学习了 OSPFv3 的多个核心新增特性:

  1. 链路多实例:通过 Instance ID 控制邻居建立,实现单条物理链路的逻辑复用。
  2. 链路本地地址为核心:使用链路本地地址进行通信,实现拓扑与全球单播地址的分离,增强了稳定性。
  3. 报文结构优化:通用包头移除内置认证,Hello 报文新增 Interface ID 和扩展的 Option 字段(特别是 R 位V6 位),用于控制路由计算和转发行为。
  4. LSA 泛洪机制增强:通过重新定义 LSA Type 字段(U/S 比特),支持对未知 LSA 的存储和泛洪,极大地提高了协议的扩展性和向后兼容性。

这些特性使得 OSPFv3 不仅是一个支持 IPv6 的 OSPF 版本,更是一个在可扩展性、灵活性和稳定性方面都有显著提升的路由协议。

OSPFv3 深入解析:P111:OSPFv3 LSA 类型与拓扑构建 🧩

在本节课中,我们将深入学习 OSPFv3 中 LSA 的构成、类型以及路由器如何利用它们来构建网络拓扑图。我们将重点关注 U/S 比特的作用、LSA 类型的新编码方式,并与 OSPFv2 进行对比,最后通过实例演示拓扑构建过程。

LSA 头部中的 U/S 比特解析 🔍

上一节我们介绍了 OSPFv3 支持对未知 LSA 的泛洪。本节中我们来看看指导泛洪行为的 U 比特和 S1/S2 比特具体如何工作。

U 比特标识对未知 LSA 的处理方法。

  • 如果 U=0,代表将此 LSA 当作具有链路本地泛洪范围来对待。这意味着 LSA 只能在直连链路上泛洪,不能跨越路由器转发。
  • 如果 U=1,代表把此 LSA 类型当成已知的 LSA 来处理。路由器会存储并参考 S1/S2 比特决定其泛洪范围。

当路由器收到一个无法识别的 LSA(U=1)时,它会“不懂装懂”,参考 S1 和 S2 比特来决定泛洪范围。
以下是 S1 和 S2 比特的组合含义:

  • S2S1 = 00:链路本地范围。
  • S2S1 = 01:区域范围。
  • S2S1 = 10:AS 范围。
  • S2S1 = 11:保留未定义。

OSPFv3 LSA 类型(LS Type)的构成 🧮

功能代码(Function Code)用于唯一标识 LSA 的类型,例如 1 类、5 类、8 类等。
在描述一个 LSA 时,U 比特、S2/S1 比特和功能代码会组合成一个 16 位的 LS Type 字段。

例如,1 类 LSA 的构成如下:

  • U=0
  • S2S1=01 (区域范围)
  • 功能代码=1
    组合成 16 进制为:0x2001

基于此规则,常见的 OSPFv3 LSA 类型如下:

  • 1类 LSA (Router LSA): 0x2001
  • 2类 LSA (Network LSA): 0x2002
  • 3类 LSA (Inter-Area-Prefix LSA): 0x2003
  • 4类 LSA (Inter-Area-Router LSA): 0x2004
  • 5类 LSA (AS-External LSA): 0x4005 (U=1, S2S1=10)
  • 7类 LSA (NSSA LSA): 0x2007
  • 8类 LSA (Link LSA): 0x0008 (U=0, S2S1=00, 链路本地)
  • 9类 LSA (Intra-Area-Prefix LSA): 0x2009

OSPFv3 与 OSPFv2 LSA 的核心区别 ⚖️

了解 LS Type 的构成后,我们来看看 OSPFv3 中 LSA 的作用与 OSPFv2 的主要区别。

  1. 1类 & 2类 LSA 不再携带路由信息:在 OSPFv3 中,Router LSA 和 Network LSA 只描述拓扑信息(如邻居、链路类型),不再包含具体的 IPv6 前缀(路由信息)。这些路由信息改由 9类 LSA (Intra-Area-Prefix LSA) 携带。
  2. LSA 名称更具语义化:部分 LSA 名称变更,使其作用更明确(如 3类 LSA 称为“区域间前缀 LSA”)。
  3. 新增 LSA 类型:OSPFv3 新增了 8类(Link LSA)和 9类(Intra-Area-Prefix LSA)LSA。

简单总结,需要记住以下几点:

  • OSPFv3 的 LS Type 融合了类型标识和泛洪范围。
  • OSPFv3 的 1类、2类 LSA 只有拓扑,路由由 9类 LSA 携带。
  • OSPFv3 的 3、4、5、7 类 LSA 作用与 v2 相同,但部分名称改变。
  • OSPFv3 新增了 8类、9类 LSA。

实战:解析 LSA 与构建拓扑图 🛠️

理论需要结合实际。接下来我们通过一个实验场景,看看路由器如何利用 1类和 2类 LSA 来构建区域内的拓扑图。

假设有一个小型网络:路由器 R1, R2, R3, R4。R1 与 R2 是 P2P 链路,R2、R3、R4 连接在同一个广播网络中(DR 为 R4)。

在 R1 上查看 OSPFv3 链路状态数据库,会发现多种 LSA。我们重点关注 1类 (Router LSA) 和 2类 (Network LSA)。

第一步:查看 R1 自己产生的 1类 LSA
display ospfv3 lsdb router self-originate
输出信息中,关键部分在于“Links”字段。它会显示 R1 的接口 ID(例如 0x3),以及通过该接口连接的邻居(R2)的 Router ID 和接口 ID,还有到达此邻居的 Cost 值。
由此,R1 可以画出:R1 --(接口3, cost=1)--> R2

第二步:查看 R2 产生的 1类 LSA
display ospfv3 lsdb router adv-router 2.2.2.2
R2 的 LSA 显示它连接了两个邻居:

  1. 一个 P2P 邻居(R1),已在拓扑中。
  2. 一个 Transit Network(广播网络),连接到 DR(R4)。这提示网络中存在一个伪节点(DR)。

由此,拓扑更新为:R1 -- R2 --(广播网)--> (伪节点 DR)

第三步:查看伪节点(DR-R4)产生的 2类 LSA
display ospfv3 lsdb network adv-router 4.4.4.4
2类 LSA 会列出连接到此广播网络的所有路由器的 Router ID(即 R2, R3, R4)。
由此,R1 知道了这个广播网络上还有 R3 和 R4。

第四步:查看 R3 和 R4 产生的 1类 LSA
分别查看 R3 和 R4 的 1类 LSA,确认它们连接到伪节点的接口 ID 和 Cost。
最终,R1 构建出完整的区域拓扑图:

        R1
        | (cost=1)
        R2
        | (cost=1)
     (伪节点 DR)
     /         \
(cost=1)       (cost=1)
   /               \
 R3                 R4

有了拓扑图,结合 9类 LSA 携带的前缀信息,R1 就能通过 SPF 算法计算出到达所有网络的最短路径树和路由。

关于接口 ID:OSPFv3 中的接口 ID 是一个内部标识符,通常映射自 SNMP 的接口索引,无需对应物理接口名。路由器自己保证其唯一性即可。

Flags 与 Options 中的 ‘E’ 比特区别

  • LSA Header 中 Flags 的 E-bit:标识本路由器是否是 ASBR。
  • Options 字段中的 E-bit:标识本路由器是否支持处理 5类 AS-External LSA。Stub 区域内的路由器会清除此比特。

本节课中我们一起学习了 OSPFv3 LSA 类型的核心构成,包括 U/S 比特的作用和 LS Type 的编码方式。我们对比了 OSPFv3 与 v2 在 LSA 功能上的主要区别,特别是 1/2 类 LSA 不再携带路由信息这一关键变化。最后,我们通过一个实例,一步步解析了路由器如何利用 1 类和 2 类 LSA 来构建网络拓扑图,为后续的路由计算打下基础。下节课我们将深入探讨 9 类 LSA 如何携带前缀信息,并完成最终的路由计算。

HCIE Datacom:P112:OSPFv3与ISIS支持IPv6详解 🚀

概述

在本节课中,我们将深入学习OSPFv3在区域内如何填充路由信息,并了解其新增的LSA类型。同时,我们也将探讨IS-IS协议如何以更简洁的方式支持IPv6,包括其多拓扑特性。课程内容旨在让初学者能够清晰理解协议机制。


OSPFv3区域内路由填充与9类LSA 🌳

上一节我们介绍了OSPFv3的一类和二类LSA如何在区域内构建SPF树。本节中,我们来看看构建出SPF树后,如何为每个节点“填充叶子”,即计算具体的路由信息。

在当前的实验环境中,AR1已经可以计算出AR3环回口的路由。基于构建的SPF树,填充叶子的过程如下:

在OSPFv3中,一、二类LSA不再包含具体的路由前缀信息。路由信息的传递依赖于新增的LSA类型。

OSPFv3主要依靠9类LSA(Intra-Area-Prefix-LSA)在区域内携带和传递路由信息。

9类LSA详解

9类LSA用于描述OSPFv2中原本由一、二类LSA携带的路由前缀信息。根据其描述对象的不同,可以分为两种类型。

以下是9类LSA的关键字段和作用:

  • 前缀数量 (Prefix Number): 指示该LSA携带了多少个IPv6前缀。
  • 参考的LSA类型 (Referenced LS Type): 这是一个关键字段,用于指明此9类LSA描述的是哪类原始LSA的信息。
    • 取值为 1:表示参考的是一类LSA(Router-LSA),即描述路由器自身的直连前缀。
    • 取值为 2:表示参考的是二类LSA(Network-LSA),即描述广播网段(伪节点)的前缀。
  • 参考的链路状态ID (Referenced Link State ID):
    • 参考的LSA类型=1时,此字段固定为 0
    • 参考的LSA类型=2时,此字段为 DR在该网段的接口ID (Interface ID)。这用于区分同一台DR设备在不同广播网段产生的9类LSA。
  • 参考的通告路由器 (Referenced Advertising Router):
    • 参考的LSA类型=1时,此为产生一类LSA的路由器Router ID
    • 参考的LSA类型=2时,此为产生二类LSA的DR的Router ID
  • 前缀三元组 (Prefix Triplet): 包含具体的前缀、长度和选项信息,是承载路由信息的核心。

拓扑填充过程示例

以AR1的视角,其SPF树和填充过程如下图所示:

AR1会依次查看LSDB中的9类LSA来填充叶子:

  1. 查看自身产生的9类LSA:得知自身连接了网络2001:12::/64,代价(Cost)为1。
  2. 查看AR2产生的9类LSA:得知AR2也连接了网络2001:12::/64,代价为1。
  3. 查看伪节点(DR)产生的9类LSA:通过参考的LSA类型=2参考的链路状态ID=3(对应接口ID),识别出这是描述广播网段2001:234::/64的前缀,代价为0。
  4. 查看AR4产生的9类LSA:得知AR4连接了环回口2001:4::4/128,代价为0。
  5. 查看AR3产生的9类LSA:得知AR3连接了环回口2001:3::3/128,代价为0。

填充完成后,完整的带叶子拓扑如下:

此时,AR1计算到2001:3::3/128的路由总代价为 1 (到AR2) + 1 (到伪节点) + 0 (到AR3) = 2,与路由表查询结果一致。


关键问题与8类LSA 🔗

通过上述学习,我们可能会产生两个疑问:

  1. AR1如何知道到达下一跳(例如AR2)的具体链路本地地址?
  2. 作为DR的AR4,如何知晓共享网段内其他设备(如AR3)的接口IPv6前缀?

为了解决这些问题,OSPFv3引入了 8类LSA(Link-LSA)

8类LSA的作用与格式

8类LSA仅在单个链路上泛洪,主要作用有三个:

  1. 通告本接口的链路本地地址:为链路上其他路由器提供到达本机的下一跳地址。
  2. 通告本接口的IPv6前缀:在广播网络中,DR通过收集链路上所有路由器发出的8类LSA,从而知晓整个网段的所有IPv6前缀,进而统一用9类LSA描述。
  3. 通告本链路的选项(Option):向DR告知本路由器在对应二类LSA中应设置的选项位(如R比特、V6比特等),确保DR能正确代表本链路参与计算。

8类LSA的格式包含以下关键字段:

  • 路由器优先级 (Router Priority): 用于DR/BDR选举。
  • 选项 (Option): 携带本路由器的能力信息。
  • 链路本地地址 (Link-Local Address): 即下一跳地址。
  • 前缀数量与三元组: 描述本接口配置的IPv6前缀。

例如,在AR1上查看LSDB,可以看到AR2产生的8类LSA,其中包含了AR2接口的链路本地地址FE80::210和前缀2001:12::/64

这使得AR1计算路由时,下一跳均指向该链路本地地址。

同理,AR3在广播链路上产生的8类LSA中包含了其新增的2002:234::3/64前缀。DR(AR4)收到后,便会在其产生的9类LSA中加入此前缀,从而使AR1能计算出该路由。


前缀三元组与OSPFv3其他LSA 📦

在OSPFv3的8类、9类LSA中,我们都看到了“前缀三元组”的身影。它由前缀长度 (Prefix Length)前缀选项 (Prefix Options)地址前缀 (Address Prefix) 三部分组成。

前缀选项 (Prefix Options)

前缀选项包含几个重要的比特位:

  • P比特 (Propagate): 用于NSSA区域的7转5过程。
  • MC比特 (Multicast): 保留用于MOSPF(组播OSPF)。
  • LA比特 (Local Address): 置位时表示该前缀是设备自身的接口地址(通常是/128的环回口地址)。
  • NU比特 (No Unicast): 置位时表示该前缀不参与IPv6单播路由计算。

使用前缀三元组的优势在于,无论哪种LSA携带路由信息,设备都遵循统一的规则读取这三个字段,简化了处理流程,提高了计算效率。

OSPFv3其他LSA简述

OSPFv3的三、四、五类LSA在功能上与OSPFv2对应类别一致,主要变化是使用前缀三元组来携带路由信息,格式更为统一和简洁。

  • 三类LSA (Inter-Area-Prefix-LSA): 由ABR产生,在区域间传递路由信息。
  • 四类LSA (Inter-Area-Router-LSA): 由ABR产生,用于描述ASBR的位置。
  • 五类LSA (AS-External-LSA): 由ASBR产生,用于传递外部路由。其格式中包含了外部路由类型、度量值、转发地址(可选)等,并使用前缀三元组描述外部网络。

OSPFv3的配置逻辑与OSPFv2高度相似,大部分功能命令都可以在ospfv3进程或接口下找到对应项。


IS-IS对IPv6的支持 🏗️

相较于OSPF需要推出新版本(v3)来支持IPv6,IS-IS对IPv6的支持则简单得多。这是因为IS-IS本身运行在数据链路层之上,与网络层协议无关,天生支持多协议。

IS-IS IPv6的实现原理

IS-IS通过新增两个TLV来实现对IPv6的支持,相当于为原有IPv4功能打了“补丁”:

  1. TLV 232 (IPv6 Interface Address): 类似于IPv4中的TLV 132,用于携带接口的IPv6地址。在Hello报文中只携带链路本地地址,在LSP中可携带多个全球单播地址。
  2. TLV 236 (IPv6 Reachability): 类似于IPv4中的TLV 128/130,用于携带IPv6路由前缀信息。它通过内部的X比特来区分是内部路由(X=0)还是外部路由(X=1)。

此外,IS-IS Hello报文中的TLV 129 (Protocols Supported) 会声明本设备支持IPv6(值为142),以便邻居双方协商建立IPv6的邻接关系。

配置IS-IS支持IPv6非常简单,主要步骤为:

  1. 在IS-IS进程下使用 ipv6 enable 命令开启IPv6能力。
  2. 在接口下使用 isis ipv6 enable 命令在指定接口上激活IS-IS IPv6。

IS-IS多拓扑 (Multi-Topology)

默认情况下,IS-IS使用集成拓扑,即IPv4和IPv6共享同一张SPF树。这可能导致问题:如果某条最短路径上的某台路由器不支持IPv6,那么IPv6路由可能因为缺少下一跳信息而无法计算,即使存在其他支持IPv6的路径。

为了解决这个问题,IS-IS引入了多拓扑特性。启用后,IPv4和IPv6将维护各自独立的拓扑数据库,进行独立的SPF计算。

配置多拓扑只需在IS-IS进程的IPv6配置中将拓扑模式改为IPv6:

isis 1
 ipv6 enable topology ipv6

启用多拓扑后,IS-IS会通过TLV 229 (Multi-Topology) 在LSP中分别描述不同拓扑的信息,IPv4和IPv6的邻居、度量值等都将独立维护和计算。

IS-IS for IPv6的配置命令和特性(如路由汇总、认证、度量值调整等)与IPv4版本逻辑基本一致。


总结

本节课我们一起深入学习了OSPFv3和IS-IS对IPv6的支持。

在OSPFv3部分,我们重点掌握了:

  • 9类LSA 在区域内传递路由信息的机制,及其通过“参考类型”区分描述对象的方式。
  • 8类LSA 在链路上通告链路本地地址和接口前缀的关键作用。
  • 前缀三元组 作为OSPFv3中统一的路由信息描述方式,简化了设备处理流程。
  • OSPFv3其他LSA(三、四、五类)在格式上趋于统一,核心是使用前缀三元组。

在IS-IS部分,我们了解到:

  • IS-IS通过新增 TLV 232TLV 236 以简洁的方式支持IPv6,无需新协议版本。
  • 多拓扑 特性的目的与配置,它使IPv4和IPv6能够基于网络实际情况进行独立、最优的路由计算。

通过对比可以发现,OSPFv3是为IPv6重新设计的协议,而IS-IS则通过扩展TLV平滑地支持了IPv6,两者设计哲学不同,但都能高效地完成IPv6路由计算。

HCIE Datacom:P113:BGP4+与MPLS基础

概述

在本节课中,我们将学习两个重要的网络协议扩展:BGP4+MPLS。首先,我们会了解BGP如何扩展以支持IPv6路由的传递,即BGP4+。随后,我们将初步探索多协议标签交换(MPLS)技术,理解其基本概念、产生背景和核心工作原理。


BGP4+:支持IPv6的BGP扩展

上一节我们结束了BGP核心内容的学习,本节中我们来看看BGP如何支持IPv6。

BGP4+简介

传统的BGP版本4(BGP-4)最初仅支持IPv4单播路由。为了支持IPv6等更多网络层协议,BGP被扩展为多协议BGP(MP-BGP)。其中,专门用于传递IPv6单播路由的扩展版本,常被称为 BGP4+

核心关系

  • MP-BGP是一个统称,涵盖了支持多种地址族(如IPv6单播/组播、VPNv4/v6等)的BGP扩展。
  • BGP4+特指MP-BGP中用于IPv6单播路由传递的部分。

BGP4+的工作原理

BGP4+的协议机制(如邻居建立、路径属性、选路原则)与传统的IPv4 BGP完全一致。其主要区别在于路由信息的携带方式

在传统BGP中,使用 NLRI(网络层可达性信息) 字段来通告IPv4路由。为了通告IPv6等其他协议的路由,BGP4+引入了两个新的路径属性:

  1. MP_REACH_NLRI(多协议可达NLRI):用于发布可达路由及其下一跳信息。
  2. MP_UNREACH_NLRI(多协议不可达NLRI):用于撤销(删除)路由。

这两个属性使得BGP报文能够封装IPv6等协议的路由信息。

MP_REACH_NLRI属性结构示例(概念性描述)

MP_REACH_NLRI {
    Address Family Identifier (AFI): 2,          // 2 代表 IPv6
    Subsequent Address Family Identifier (SAFI): 1, // 1 代表单播
    Next Hop Network Address: 2001:db8::1,       // IPv6 下一跳地址
    Network Layer Reachability Information (NLRI): // 路由前缀列表
        [2001:db8:1::/64, ...]
}

BGP4+基础配置演示

以下通过一个简单实验展示IPv6 BGP邻居的配置。注意,IPv6地址族默认不激活,需要手动进入并激活。

实验拓扑:AR1 (AS 100) —— AR2 (AS 200)

配置步骤

  1. 配置接口IPv6地址,确保链路连通性。
  2. 配置BGP进程并指定Router-ID(纯IPv6环境中需手动配置)。
  3. 指定对等体(使用IPv6地址)。
  4. 在IPv6地址族视图下激活对等体。

AR1 关键配置

sysname AR1
ipv6
interface GigabitEthernet0/0/0
 ipv6 enable
 ipv6 address 2001:12::1/64
#
bgp 100
 router-id 1.1.1.1
 peer 2001:12::2 as-number 200
 #
 ipv6-family unicast
  peer 2001:12::2 enable

AR2 关键配置

sysname AR2
ipv6
interface GigabitEthernet0/0/0
 ipv6 enable
 ipv6 address 2001:12::2/64
#
bgp 200
 router-id 2.2.2.2
 peer 2001:12::1 as-number 100
 #
 ipv6-family unicast
  peer 2001:12::1 enable

验证命令

  • 查看IPv6 BGP邻居状态:display bgp ipv6 peer
  • 查看IPv6 BGP路由表:display bgp ipv6 routing-table

通过抓包可以观察到,BGP Open报文中会协商多协议扩展能力,Update报文中则通过MP_REACH_NLRI属性携带IPv6路由。

本节小结

本节我们学习了BGP4+。它本质上是BGP的多协议扩展(MP-BGP)在IPv6单播路由场景下的应用。其配置逻辑与IPv4 BGP高度相似,主要区别在于需要在IPv6地址族视图下激活邻居,并且路由通过新增的MP_REACH_NLRIMP_UNREACH_NLRI属性传递。


MPLS基础:多协议标签交换

在理解了BGP如何适应新协议后,我们转向另一个提升网络效率的技术——MPLS。

MPLS的产生背景

在互联网快速发展的90年代中期,传统的IP转发(基于软件查询路由表,进行最长掩码匹配)成为网络性能的瓶颈。与此同时,ATM(异步传输模式) 技术虽然基于标签转发,速度很快,但成本高昂且与IP网络兼容复杂。

MPLS应运而生,它融合了IP的灵活性和ATM标签转发的高效性。最初目标是提升转发速度。随着硬件性能的提升,MPLS在纯转发速度上的优势不再明显,但其支持多层标签和转发与控制分离的特性,使其在VPN(虚拟专用网)和流量工程(TE) 等领域大放异彩。

MPLS核心概念与术语

学习MPLS,首先需要理解其基本术语。

LSR与MPLS域

  • LSR(标签交换路由器):能够理解MPLS标签并基于标签进行数据转发的设备。
  • MPLS域:由一系列连续的LSR构成的网络区域。

LSR的角色分类(基于数据流视角)

  • Ingress LSR(入站LSR):数据流进入MPLS域的边界设备,负责压入(Push) 标签。
  • Transit LSR(中转LSR):在MPLS域内部,负责根据标签进行交换(Swap)
  • Egress LSR(出站LSR):数据流离开MPLS域的边界设备,负责弹出(Pop) 标签。

FEC(转发等价类)
一组具有相同处理方式(如相同的路径、相同的转发优先级)的数据流集合。在MPLS中,通常将一条IP路由视为一个FEC。LSR会为每个FEC分配一个本地唯一的标签。

LSP(标签交换路径)
数据包在MPLS网络中从Ingress LSR到Egress LSR所经过的路径。这条路径由一系列标签操作(Push, Swap, Pop)构成。

MPLS标签

MPLS的转发基于标签。标签是封装在二层帧头与三层IP包之间的一个短小、定长的标识。

MPLS标签格式(32比特)

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Label                  | Exp |S|       TTL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Label(20比特):标签值,范围0 - 1048575。
  • Exp(3比特):实验字段,常用于承载QoS(服务质量)信息。
  • S(1比特):栈底标识。MPLS支持多层标签(标签栈),S=1表示这是最内层的标签。
  • TTL(8比特):生存时间,与IP TTL作用相同,防止环路。

标签空间

  • 0-15:特殊标签。例如,标签3是“隐式空标签”,标签0是“显式空标签”,用于优化Egress LSR的弹出操作。
  • 16-1023:静态LSP使用的标签范围。
  • 1024及以上:动态标签分发协议(如LDP)使用的标签范围。

静态LSP配置实验

为了直观理解LSP,我们通过配置一条静态LSP来演示。

实验拓扑:AR1 (Ingress) —— AR2 (Transit) —— AR3 (Egress)
目标:让从AR1发往AR3环回口(3.3.3.3/32)的流量走静态LSP。

配置思路

  1. 在所有LSR上全局使能MPLS,并配置LSR ID。
  2. 在数据转发接口上使能MPLS。
  3. 逐跳配置静态LSP,指定入标签、出标签、下一跳和出接口。

AR1 (Ingress) 配置

mpls lsr-id 1.1.1.1
mpls
#
interface GigabitEthernet0/0/0
 mpls
#
static-lsp ingress TO_R3 destination 3.3.3.3 32 nexthop 10.0.12.2 out-label 101

AR2 (Transit) 配置

mpls lsr-id 2.2.2.2
mpls
#
interface GigabitEthernet0/0/0
 mpls
interface GigabitEthernet0/0/1
 mpls
#
static-lsp transit RSP1 incoming-interface GigabitEthernet0/0/0 in-label 101 nexthop 10.0.23.3 out-label 202

AR3 (Egress) 配置

mpls lsr-id 3.3.3.3
mpls
#
interface GigabitEthernet0/0/0
 mpls
#
static-lsp egress RSP1 incoming-interface GigabitEthernet0/0/0 in-label 202

验证与抓包

  • 使用 display mpls static-lsp 查看各设备上的LSP状态。
  • 从AR1 ping 3.3.3.3,并在链路上抓包。可以观察到:
    • AR1发给AR2的报文,二层帧头后多了MPLS标签101
    • AR2发给AR3的报文,标签被交换为202
    • AR3收到后,弹出标签,进行IP路由转发。

MPLS标签处理动作
通过实验,我们可以看到LSR对标签的三种基本操作:

  1. Push(压入):在Ingress LSR,为IP包加上MPLS标签。
  2. Swap(交换):在Transit LSR,将入标签替换为出标签。
  3. Pop(弹出):在Egress LSR,移除MPLS标签。

静态LSP的局限性

静态配置LSP就像配置静态路由,工作量大、易出错、且无法自适应网络变化。想象一下,在一个大型网络中为所有路由条目手动建立双向LSP,这几乎不可管理。因此,在实际网络中,主要使用动态协议(如LDP、RSVP-TE、MP-BGP) 来自动建立和维护LSP。


总结

本节课我们一起学习了两个关键内容:

  1. BGP4+:作为MP-BGP的一部分,它通过MP_REACH_NLRIMP_UNREACH_NLRI属性来实现对IPv6路由信息的传递,配置逻辑与IPv4 BGP一脉相承。
  2. MPLS基础:我们探讨了MPLS的产生背景是为了提升转发效率,并深入学习了其核心概念,包括LSR、MPLS域、FEC、LSP以及标签的结构。通过一个静态LSP的实验,我们直观看到了基于标签的转发过程以及PushSwapPop三种标签操作,同时也认识到静态配置的局限性,为后续学习动态标签分发协议打下了基础。

下节课,我们将继续深入MPLS,学习其体系结构以及如何通过LDP协议动态建立LSP。

MPLS课程:P114:MPLS体系结构与LDP协议详解

概述

在本节课中,我们将深入学习MPLS的体系结构,并详细探讨其核心控制协议——标签分发协议(LDP)。我们将从MPLS的控制平面与转发平面入手,理解LSP的建立方式,并重点分析LDP协议的工作机制、邻居建立过程以及标签的发布与管理方式。


MPLS体系结构:控制平面与转发平面

上一节我们介绍了MPLS对标签的压入、交换和弹出操作。本节中,我们来看看支撑这些操作的MPLS整体体系结构。

MPLS体系由控制平面转发平面组成。

  • 控制平面:负责根据路由信息生成标签,并建立标签转发路径。其核心工作是运行IP路由协议(如OSPF)生成路由表,然后由标签分发协议(如LDP)根据路由表(视为FEC)来分配标签并生成标签转发信息表(LFIB)
  • 转发平面:也称为数据平面,负责根据LFIB对收到的数据包(无论是IP包还是带标签的MPLS包)进行实际的转发。

两个平面的协作关系可以概括为:IP路由协议 -> 路由表 -> LDP协议 -> LFIB。即使在启用MPLS的网络中,纯IP报文依然能通过传统的FIB表正常转发,MPLS只是在此基础上增加了对标签报文的转发能力。


LSP的建立方式

理解了MPLS的体系结构后,我们来看看标签交换路径(LSP)是如何建立的。

LSP的建立主要有两种方式:静态LSP和动态LSP。

以下是两种方式的对比:

特性 静态LSP 动态LSP
建立方式 管理员手工为每条FEC分配标签 通过标签分发协议(如LDP)自动建立
协议依赖 不使用标签发布协议 依赖LDP等协议
资源消耗 较少 相对较多
灵活性 差,无法根据拓扑变化动态调整 好,可动态适应网络变化
适用场景 小型、稳定的网络 中大型、需要灵活性的网络
配置原则 上游设备的出标签值必须等于下游设备的入标签值 由协议自动协商和分配

核心概念

  • FEC(转发等价类):在MPLS中,一组以相同方式(如通过同一条路径、使用相同的转发处理)转发的数据流。通常,一条IP路由就被视为一个FEC
  • LSP建立原则:数据必须携带正确的标签,LSR才能正确处理。标签的分配和通告遵循从下游到上游的方向。例如,下游设备R2会告诉上游设备R1:“访问FEC X时,请打上标签1027发给我”。

LDP协议详解

动态LSP的建立依赖于标签分发协议。接下来,我们重点学习最常用的LDP协议。

LDP协议概述

LDP是MPLS的一种控制协议,主要负责FEC的分类、标签的分配以及LSP的建立和维护。其工作过程主要分为两步:

  1. 与邻居建立LDP会话。
  2. 在会话基础上交换标签映射消息,从而构建LSP。

LDP基本概念

在深入学习LDP工作过程前,需要厘清几个关键概念:

  • LDP会话:两个LDP对等体之间交换标签消息的通信过程。
  • LDP对等体:相互交换LDP消息、建立LDP会话的两台LSR。
  • 传输地址:用于建立LDP会话的TCP连接的IP地址。默认情况下,传输地址等于设备的LSR ID。因此,必须确保LSR ID是一个真实存在且路由可达的地址,否则LDP会话无法建立。
  • LDP标识符:格式为<LSR-ID>:<标签空间标识符>。标签空间标识符为0表示基于平台(每设备)的标签空间,这是最常见的方式。

LDP邻居建立过程

LDP邻居建立是动态LSP构建的第一步。以下是其建立流程的简要说明:

  1. 邻居发现:双方通过向组播地址224.0.0.2发送Hello报文(UDP 646端口)来发现直连的LDP邻居。Hello报文中携带自己的传输地址。
  2. TCP连接建立:双方比较Hello报文中的传输地址,地址较大的一方作为主动方,发起TCP连接
  3. 会话初始化:TCP连接建立后,主动方发送Initialization报文,其中包含LDP协议版本、标签分发方式等参数进行协商。
  4. 会话确认:被动方若接受参数,则回复Keepalive报文进行确认,同时也会发送自己的Initialization报文。主动方收到后也回复Keepalive报文。
  5. 会话建立:双方成功交换Keepalive报文后,LDP会话进入Operational状态,此时可以开始交换标签映射消息。

关键点:LDP邻居的稳定建立,根本在于传输地址(默认=LSR ID)的路由可达性

LDP标签发布与管理

LDP会话建立后,设备之间开始通告标签,从而形成LSP。这个过程由三组重要的模式控制:

  1. 标签发布方式

    • 下游自主(DU):LSR无需上游请求,主动向上游通告标签映射。
    • 下游按需(DoD):LSR只有在收到上游的标签请求后,才向上游通告标签映射。
    • 对比:DU方式收敛更快,DoD方式更节省标签资源。
  2. 标签分配控制方式

    • 独立(Independent):LSR可以自主地为FEC分配标签并通告,无需等待下游的标签。
    • 有序(Ordered):LSR必须等待收到下游对于某FEC的标签映射后,才能向上游通告该FEC的标签映射。
    • 对比:独立方式可能导致暂时的LSP断裂,但建立更快;有序方式能保证LSP的端到端完整性,更可靠。
  3. 标签保持方式

    • 自由(Liberal):LSR保留从任何LDP对等体收到的标签映射,即使该对等体不是当前最优下一跳。
    • 保守(Conservative):LSR只保留来自最优下一跳的标签映射。
    • 对比:自由方式提供了快速的路径切换能力(当主路径失效时,可立即使用备用标签),但消耗更多内存;保守方式节省内存,但路径切换时有延迟。

华为设备默认采用 DU + 有序 + 自由 的组合。这种组合在保证可靠性的同时,实现了较快的收敛速度和故障切换能力,是较为理想的默认设置。


总结

本节课中,我们一起学习了MPLS的核心体系结构与LDP协议。

我们首先剖析了MPLS控制平面与转发平面的分工协作。然后,对比了静态与动态两种LSP建立方式,并明确了动态方式更适用于现代网络。之后,我们深入探讨了动态LSP的核心——LDP协议,详细讲解了其基本概念、邻居建立的完整流程(发现->TCP连接->初始化->建立),以及控制标签分发的三种关键模式(发布、分配控制、保持方式)。理解这些模式(尤其是默认的DU+有序+自由组合)对于理解MPLS网络如何自动、可靠地构建转发路径至关重要。

通过本课的学习,你应该对MPLS如何从路由信息自动生成标签转发路径有了清晰的认识,为后续学习更复杂的MPLS应用(如VPN)打下了坚实的基础。

MPLS转发流程与MPLS VPN基础:P115:MPLS转发流程与VPN基础

概述

在本节课中,我们将学习MPLS的详细转发流程,并初步了解MPLS VPN的基本概念、架构和关键组件。我们将通过实验演示,理解MPLS网络中数据包的标签转发逻辑,以及MPLS VPN如何实现不同客户网络之间的逻辑隔离和路由传递。


MPLS转发流程详解

上一节我们介绍了MPLS的基本术语和概念。本节中,我们来看看MPLS网络中数据包是如何被转发的。

MPLS的报文转发依赖于几个关键的表项:FIB表、下一跳标签转发表(NHLFE)和入标签映射表(ILM)。

转发过程拆解

以下是MPLS转发过程的详细步骤:

  1. 入口LSR处理:当一个IP报文进入MPLS网络时,入口LSR会首先查看其FIB表。
    • 公式:查找 FIB表 -> 获取 Tunnel ID
    • 如果Tunnel ID为0,则执行普通的IP转发。
    • 如果Tunnel ID非0,则表示该报文需要走MPLS隧道转发。

  1. 查找下一跳标签转发表:当Tunnel ID非0时,LSR会根据此Tunnel ID去查找下一跳标签转发表(NHLFE)。
    • 代码示例(查看命令):display mpls nhlfe
    • 这个过程称为FTN(FEC到NHLFE的映射)。NHLFE表提供了出接口、下一跳地址、出标签以及要执行的操作(如压入标签 push)。

  1. 执行标签操作并转发:入口LSR根据NHLFE的指示,为报文压入相应的MPLS标签,然后将带标签的报文发送给下一跳。

  1. 中间LSR处理:中间的LSR(Transit LSR)收到带标签的报文后,不再查看IP头,而是查看其入标签映射表(ILM)。
    • 代码示例(查看命令):display mpls ilm
    • ILM表根据入标签,映射到一个Tunnel ID

  1. 再次查找下一跳标签转发表:中间LSR根据ILM得到的Tunnel ID,再次查找NHLFE表,获取新的出标签和下一跳。

    • 通常执行的操作是交换标签(swap),即弹出旧标签,压入新标签,然后转发。
  2. 出口LSR处理:倒数第二跳LSR(Penultimate Hop)通常会将外层(公网)标签弹出,只将带有内层(私网)标签或纯IP的报文发给出口LSR。出口LSR收到报文后,查看ILM表,执行弹出标签(pop)操作,得到原始的IP报文,然后进行IP路由转发。

特殊标签:隐式空标签与显式空标签

在转发流程中,标签30具有特殊含义。

  • 隐式空标签:标签值为3。当下游LSR向上游分配这个标签时,意味着告诉上游:“在发送报文给我之前,请将标签弹出”。这实现了“倒数第二跳弹出”(PHP),减轻了最后一跳设备的查表负担。这是LDP的默认行为。
    • 公式:标签 3 = PHP指令
  • 显式空标签:标签值为0。与隐式空标签类似,但报文会带着标签0发送给最后一跳。最后一跳设备看到标签0后,会直接弹出标签并读取其中的QoS信息(Exp字段),然后再进行IP转发。这便于在MPLS网络中实施端到端的QoS策略。
    • 配置命令示例:mpls 视图下 label advertise explicit-null

MPLS VPN基础概念

理解了基本的MPLS转发后,我们进入更复杂的MPLS VPN领域。MPLS VPN是一种由运营商提供的、基于MPLS技术的三层VPN服务。

核心角色与术语

首先,我们需要了解MPLS VPN网络中的几个关键角色:

  • CE设备:客户边缘设备。位于客户站点一侧,直接与运营商网络相连。
  • PE设备:运营商边缘设备。是运营商网络的边缘设备,直接连接CE设备,负责维护客户VPN信息。
  • P设备:运营商核心设备。位于运营商网络内部,不直接连接CE,只负责快速转发MPLS标签报文。

此外,还有两个重要概念:

  • 站点:指客户的一个局域网或分支机构网络,通常对应一个CE设备。
  • VPN客户:指购买MPLS VPN服务的一个公司或实体,它可能包含多个站点。

关键技术组件:VRF

为了实现不同客户之间的路由隔离,PE设备上引入了VRF

  • 定义:VRF(Virtual Routing and Forwarding,虚拟路由转发)实例,也称为VPN实例。
  • 作用:在PE路由器上创建逻辑上独立的路由表、转发实例和接口。每个VPN客户(或站点)可以关联到一个独立的VRF,从而实现客户间路由的完全隔离。
  • 类比:可以将其理解为路由器上的“VLAN”。每个VRF有自己的接口(类似Access端口)和独立的路由表(类似MAC地址表)。

路由传递与区分:RD与RT

VRF解决了本地路由隔离问题,但路由需要在PE之间传递,并准确分发到不同客户的VRF中。这需要两个关键属性:RD和RT。

  • RD:路由标识符。
    • 作用:使不同VPN客户的重叠IP地址在运营商骨干网中变得唯一。PE将来自CE的普通IPv4路由,加上RD,转换成唯一的VPNv4路由。
    • 格式:例如 65001:100192.168.1.1:100
    • 公式VPNv4路由 = RD + IPv4前缀

  • RT:路由目标,是一种扩展团体属性。
    • 作用:控制VPN路由的导入和导出,决定了哪些站点(VRF)可以接收哪些路由。
    • 类型
      • Export RT:当PE将VRF内的IPv4路由转换为VPNv4路由发布给其他PE时,为路由附加的RT属性。
      • Import RT:PE在收到其他PE发来的VPNv4路由时,只有路由所携带的RT值与该VRF配置的Import RT匹配,该路由才会被导入到该VRF的路由表中。
    • 工作方式:通过精心规划Export RT和Import RT,可以构建全互联、Hub-Spoke等灵活的VPN网络拓扑。

路由传播协议:MP-BGP

PE之间需要传递携带了RD、RT等丰富属性的VPNv4路由。传统的BGP-4无法承载这些信息,因此需要使用其扩展版本——多协议BGP

  • 作用:MP-BGP(Multiprotocol BGP)是BGP的扩展,能够承载多种网络层协议的路由信息,如VPNv4、IPv6等。
  • 在MPLS VPN中:PE之间建立MP-BGP对等体关系,专门用于交换VPNv4路由。P设备无需参与BGP,也无需知晓VPN路由,这降低了网络复杂度并提高了可扩展性。

数据转发:双层标签

MPLS VPN的数据转发依赖于双层标签栈,这是其核心技术之一。

  1. 私网标签:由PE为每个VPN路由分配,用于在报文到达出口PE后,识别该报文属于哪个VRF。该标签由MP-BGP随VPNv4路由一起发布给对端PE。
  2. 公网标签:即普通的LDP标签,用于指导报文在运营商MPLS骨干网(P网络)中从入口PE转发到出口PE。

转发过程简述

  • 入口PE收到CE发来的IP报文,查找VRF路由表,找到对应的私网标签和下一跳(出口PE的环回口地址)。
  • 入口PE为报文压入两层标签:内层是私网标签,外层是去往出口PE的公网LDP标签。
  • 报文在P网络中基于外层标签(公网标签)被交换和转发。倒数第二跳P设备弹出外层标签。
  • 出口PE收到仅带私网标签的报文,根据私网标签查找对应的VRF,弹出私网标签,得到原始IP报文,然后通过查找该VRF的路由表将报文转发给正确的CE。

总结

本节课中我们一起学习了:

  1. MPLS转发流程:深入理解了数据包在MPLS网络中通过FIB、NHLFE、ILM表进行标签转发的过程,以及PHP机制和特殊标签(隐式/显式空标签)的作用。
  2. MPLS VPN基础:认识了MPLS VPN的网络架构(CE、PE、P),理解了其作为运营商提供的三层VPN服务的特点。
  3. 关键技术与组件
    • VRF:在PE上实现客户路由隔离的核心。
    • RD:解决客户地址空间重叠问题,生成唯一的VPNv4路由。
    • RT:控制VPN路由在不同站点间的传播,是构建VPN拓扑的关键。
    • MP-BGP:在PE间传递VPNv4路由的协议。
    • 双层标签:结合私网标签(用于区分VPN)和公网标签(用于骨干网转发),共同完成MPLS VPN的数据封装与转发。

通过理论讲解和实验演示,我们看到了MPLS VPN如何将复杂的路由隔离、传递和转发,通过一系列清晰的技术组件有机地结合起来,最终为不同客户提供逻辑上独立、安全可靠的虚拟专用网络服务。

MPLS VPN 课程:P116:MPLS VPN 转发流程与组网方案详解 🚀

在本节课中,我们将深入学习 MPLS VPN 的控制平面与数据平面转发流程,并探讨其在实际网络中的不同组网方案。我们将通过一个实验拓扑,详细拆解路由传递和数据转发的每一步,并介绍 Hub-Spoke 等高级组网模型。


概述 📋

MPLS VPN 是一种在运营商骨干网上为不同客户提供虚拟私有网络服务的技术。其核心在于通过两层标签(公网标签和私网标签)和 BGP 扩展属性(如 RD、RT)来实现客户路由的隔离与传递。理解其控制平面(路由如何学习)和数据平面(数据如何转发)是掌握 MPLS VPN 的关键。

上一节我们完成了 MPLS VPN 的基础实验配置。本节中,我们将细化分析其实验中的转发流程,并补充 Hub-Spoke 等复杂组网方案的知识。


实验拓扑回顾 🗺️

实验拓扑与上节课一致,中间公网(P/PE设备)运行 OSPF 和 MPLS LDP。左侧站点(如 CE4)与 PE1 之间运行 BGP,右侧站点(如 CE5)与 PE3 之间运行 OSPF。我们的目标是实现两个 VPN 客户(站点4/5和站点6/7)的业务互通。


实验拓扑示意图


控制平面:路由传递流程详解 🔄

实现数据互通的前提是路由可达。我们以站点4(4.4.4.4)的路由传递到站点5(5.5.5.5)为例,详细说明控制平面的过程。

步骤 1: CE 发布路由

  • CE4 将本地环回口路由 4.4.4.4/32 通过普通的 IPv4 BGP 发布给 PE1。

步骤 2: PE 端路由转换(IPv4 -> VPNv4)

  • PE1 收到这条 IPv4 路由后,会执行一个关键操作:自动将其从 BGP VPN 实例路由转换为 VPNv4 路由
  • 转换时,会为路由添加三个关键属性:
    1. 路由区分符 (RD):用于区分不同 VPN 实例中可能相同的 IP 前缀。例如 100:1
    2. 路由目标 (RT):用于控制路由的导入和导出。此处会添加上 Export RT,例如 100:1
    3. 私网标签 (Label):PE1 会为这条路由分配一个本地唯一的 MPLS 标签(如 1026),用于后续数据转发时标识目标 VPN 实例。
  • 命令验证:在 PE1 上使用 display bgp vpnv4 all routing-table 4.4.4.4 可以查看到转换后的 VPNv4 路由及其携带的 RD、RT 和私网标签。

步骤 3: VPNv4 路由在公网传递

  • PE1 将这条携带了 RD、RT 和私网标签的 VPNv4 路由,通过 MP-BGP 传递给公网中的其他 PE 设备(如 PE3)。在传递过程中,下一跳会自动更改为 PE1 的 Loopback 地址(如 1.1.1.1)。

步骤 4: 对端 PE 路由导入(VPNv4 -> VPN 实例)

  • PE3 收到这条 VPNv4 路由后,会进行关键匹配:
    1. 检查路由携带的 Export RT
    2. 将它与本地所有 VPN 实例配置的 Import RT 进行匹配。
  • 如果 RT 匹配(例如,PE3 上 VPN 实例的 Import RT 也是 100:1),PE3 就会将这条 VPNv4 路由导入到对应的 BGP VPN 实例路由表中。
  • 此时,路由再次从 VPNv4 格式转换回 VPN 实例内的 IPv4 路由,并记录下接收到的私网标签和下一跳(PE1)。

步骤 5: 路由发布给对端 CE

  • PE3 通过其与 CE5 之间的路由协议(如 OSPF),将这条 4.4.4.4/32 的路由发布给 CE5。
  • CE5 学习到该路由,至此控制平面完成,CE5 拥有了去往 CE4 的路由。

控制平面核心转换总结:

  • 发送端 PE (PE1)BGP VPN实例路由 -> VPNv4路由 (添加 RD, Export RT, 私网标签)
  • 接收端 PE (PE3)VPNv4路由 -> BGP VPN实例路由 (根据 Import RT 匹配导入)


数据平面:报文转发流程详解 📦

当控制平面建立后,我们以 CE5 访问 CE4(5.5.5.5 -> 4.4.4.4)为例,说明数据平面的转发过程。

步骤 1: CE 到入口 PE

  • CE5 发送目的 IP 为 4.4.4.4 的普通 IP 报文给 PE3。

步骤 2: 入口 PE 压入标签

  • PE3 根据报文的入接口确定其属于哪个 VPN 实例(如 VPN1)。
  • 在对应 VPN 实例的路由表中查找 4.4.4.4,发现该路由带有一个私网标签(1026)和下一跳(1.1.1.1,即 PE1)。
  • PE3 执行标签压入操作:
    1. 压入内层私网标签(1026),用于告知出口 PE(PE1)此报文属于哪个 VPN。
    2. 根据到达下一跳 1.1.1.1 的路径,压入外层公网标签(通过 LDP 分配,如 1024)。这个标签用于在公网 MPLS 域中引导报文到达 PE1。

步骤 3: 公网 P 设备转发

  • 携带两层标签的报文在公网中被 P 设备根据外层标签进行交换转发。
  • 在倒数第二跳 P 设备上,通常会发生标签弹出操作,移除外层公网标签,仅保留内层私网标签发送给出口 PE。

步骤 4: 出口 PE 处理并转发给 CE

  • 出口 PE1 收到仅带有一层私网标签(1026)的报文。
  • PE1 根据私网标签 1026,确定该报文需要发往哪个 VPN 实例(VPN1)。
  • PE1 弹出私网标签,恢复出原始的 IP 报文。
  • PE1 在对应的 VPN 实例路由表中查询 4.4.4.4,发现是直连 CE4 的路由,于是将 IP 报文从连接 CE4 的接口发出。

步骤 5: CE 接收

  • CE4 收到来自 CE5 的 IP 报文,进行正常的 IP 处理。

数据平面核心要点:

  • 报文在公网中依靠外层标签转发。
  • 内层私网标签用于在出口 PE 标识目标 VPN。
  • 整个过程对 CE 设备是透明的,它们感知不到中间的 MPLS 网络。


MPLS VPN 组网方案 🏗️

掌握了基础转发原理后,MPLS VPN 可以应用于更复杂的业务场景。以下是几种典型的组网方案。

1. Intranet(内联网)组网

这是最基本的组网方式。

  • 特点:一个 VPN 内的所有站点形成一个闭合用户群,站点间可以任意互访,但不能与任何本 VPN 外的站点通信。
  • 实现:为同一个 VPN 的所有站点配置相同的 RT 值(Export RT 和 Import RT 一致)。这样,他们的路由只能在彼此之间相互导入导出。

2. Extranet(外联网)组网

适用于需要让一个 VPN 的站点能够访问另一个 VPN 的特定资源(如共享服务器)的场景。

  • 特点:VPN A 的某个站点(如总部)需要与 VPN B 的某个站点互通,但两个 VPN 的其他站点之间仍然隔离。
  • 实现:在需要互通的站点所属的 VPN 实例上,配置多个 RT。例如,VPN A 总部的 Export RT 列表中包含 VPN B 的 Import RT;同时,VPN B 站点的 Export RT 列表中也包含 VPN A 总部的 Import RT。通过精细的 RT 控制,实现有条件的路由互通。

3. Hub-Spoke(中心-分支)组网

这是一种非常常见的企业组网模型。

  • 业务需求
    • 所有分支站点(Spoke)都能与中心站点(Hub)互通。
    • 分支站点之间不能直接互通,如果需要互访,流量必须经过中心站点中转,以便在中心进行集中监控、审计或策略控制。
  • 技术挑战:需要防止路由在 Spoke 站点间直接传播,同时确保流量能通过 Hub 中转。
  • 解决方案:在 Hub 站点的 PE 设备上创建两个 VPN 实例(或使用一个实例的多 RT 策略,但逻辑上分离):
    • 一个实例用于“接收”(In):其 Import RT 与所有 Spoke 站点的 Export RT 匹配,用于接收所有 Spoke 的路由。
    • 一个实例用于“发送”(Out):其 Export RT 与所有 Spoke 站点的 Import RT 匹配。Hub 将自己的路由和从 Spoke 学来的路由,通过这个实例重新发布出去。
  • 路由传递流程
    1. Spoke1 发布路由,携带 RT-Spoke。
    2. Hub 的 “In” 实例接收该路由(RT 匹配)。
    3. Hub 将 “In” 实例中的路由,引入到 “Out” 实例中。
    4. “Out” 实例将路由发布出去,携带 RT-Hub。
    5. Spoke2 的 Import RT 与 RT-Hub 匹配,从而学习到 Spoke1 的路由,但下一跳指向 Hub。
  • 流量路径:Spoke1 访问 Spoke2 的流量,会先发送给 Hub,再由 Hub 转发给 Spoke2,实现了流量经中心中转的目的。


总结 🎯

本节课我们一起深入学习了 MPLS VPN 的核心机制:

  1. 控制平面:理解了路由从 CE 到 PE,经过 VPN实例路由 <-> VPNv4路由 的关键转换,以及 RD、RT、私网标签在路由传递过程中的作用。
  2. 数据平面:掌握了数据报文在穿越 MPLS 骨干网时“两层标签”的转发过程,以及入口 PE、P 设备、出口 PE 各自的处理角色。
  3. 组网方案:认识了 MPLS VPN 如何通过灵活的 RT 策略,实现 Intranet、Extranet 和复杂的 Hub-Spoke 等多种业务组网需求,满足不同客户场景下的访问控制要求。

通过结合理论分析与实验验证,希望大家能够建立起对 MPLS VPN 从原理到实践的完整认知。建议课后复现实验,并尝试配置 Hub-Spoke 组网,以加深理解。

MPLS VPN 部署与应用:P117:MPLS VPN 高级特性与部署方案

在本节课中,我们将学习 MPLS VPN 网络中的几种高级部署方案和特性,包括 MCE(多实例 CE)、跨域 VPN、不同 VPN 实例间的路由互通,以及 Hub-Spoke 组网中的路由策略。这些知识将帮助你更灵活地设计和部署复杂的 MPLS VPN 网络。

概述:MCE 多实例 CE 技术

上一节我们介绍了 MVPN 的几种组网方式。本节中,我们来看看一种特殊的应用场景——MCE。

MCE 技术用于解决同一个 VPN 客户内部不同业务需要隔离的需求。例如,一个公司可能有办公(OA)、语音、视频等多种业务,它们虽然属于同一个客户,但希望在网络层面实现隔离,以获得不同的服务质量保障。

传统的做法是为每种业务单独部署一台 CE 设备,并通过不同的物理链路连接到 PE。但这会增加设备成本和维护复杂度。

MCE 的核心思想是:在一台物理 CE 设备上,通过创建多个 VPN 实例(类似于虚拟路由器 VRF),逻辑上模拟出多台 CE 设备。每个 VPN 实例拥有独立的路由表、路由协议和接口。然后,PE 设备上对应的 VPN 实例分别与 CE 上不同的 VPN 实例对接。

实现逻辑

PE1-VPN1 <---> CE-VRF1 (承载业务A)
PE1-VPN2 <---> CE-VRF2 (承载业务B)
PE1-VPN3 <---> CE-VRF3 (承载业务C)

流量进入 CE 的特定 VRF 后,只会查找该 VRF 的路由表,并转发到 PE 上对应的 VPN 实例,最终到达远端站点的相同 VPN 实例,从而实现业务间的严格隔离。这本质上相当于为不同业务创建了不同的“虚拟公司”VPN。

跨域 MPLS VPN 简介

我们之前学习的 MPLS VPN 都是“单域”的,即整个 MPLS 骨干网处于同一个自治系统(AS)内。但在实际网络中,运营商的骨干网可能由多个 AS 组成。

跨域 MPLS VPN 就是指 VPN 站点需要跨越多个 AS 进行互联。解决跨域问题有多种技术方案(例如 Option A/B/C),但这涉及到更复杂的 BGP 和标签分发机制。目前我们只需了解这个概念,后续课程会深入讲解具体的跨域方案。

不同 VPN 实例间的路由互通

在标准的 MPLS VPN 中,一个 VPN 实例只能与 RT(Route Target)匹配的其他 VPN 实例通信,无法与公网或其他 RT 不匹配的 VPN 实例通信。但在某些场景下,我们需要实现它们之间的路由互通。

路由互通主要分为两种场景:

  1. 公网与私网路由互通:即 public 路由表与某个 VPN 实例路由表之间的路由引入。
  2. 私网与私网路由互通:即两个不同 VPN 实例路由表之间的路由引入。

这需要通过路由策略,在不同路由表之间手动引入(import)路由来实现。下面我们通过实验来理解具体的配置方法。

实验:公网与私网路由互通

假设我们有如下简单拓扑:NE1(运行 OSPF,属于 VPN_A)、NE2(PE 设备)、NE3(运行 ISIS,属于公网)。目标是让 NE1 (1.1.1.1) 与 NE3 (3.3.3.3) 能够互通。

配置思路与关键命令

  1. 将私网(VPN_A)路由引入公网
    在 PE (NE2) 上,将 VPN_A 实例中的 OSPF 路由引入到公网(public)路由表。

    [NE2] ip import-rib vpn-instance VPN_A public
    

    此时,公网路由表中会出现 1.1.1.1 的路由,但其类型仍是 OSPF。

  2. 在公网协议中发布私网路由
    在 PE (NE2) 的公网 ISIS 进程中,引入 OSPF 路由。

    [NE2-isis-1] import-route ospf 1
    

    这样,NE3 就能通过 ISIS 学到 1.1.1.1 的路由。

  3. 将公网路由引入私网
    在 PE (NE2) 的 VPN_A 实例地址族下,将公网路由引入。

    [NE2-vpn-instance-VPN_A-af-ipv4] import-rib public
    

    此时,VPN_A 的路由表中会出现公网路由(如 3.3.3.3),类型为 ISIS。

  4. 在私网协议中发布公网路由
    在 PE (NE2) 的 VPN_A OSPF 进程中,引入 ISIS 路由。

    [NE2-ospf-1-vpn-instance-VPN_A] import-route isis 1
    

    这样,NE1 就能通过 OSPF 学到 3.3.3.3 的路由。

完成以上步骤后,NE1 与 NE3 之间即可实现 IP 连通性。这个过程的本质是在 PE 设备上,通过路由引入,在不同层次的路由表(公网public vs. 私网VPN)和路由协议(OSPF vs. ISIS)之间搭建桥梁

实验:私网与私网路由互通

假设在 PE 上创建了两个 VPN 实例:VPN_A 和 VPN_B,分别连接不同的客户站点。现在需要让它们能够互相访问。

配置思路与关键命令

  1. 将 VPN_B 的路由引入 VPN_A
    在 PE 的 VPN_A 实例地址族下,引入 VPN_B 实例的路由。

    [PE-vpn-instance-VPN_A-af-ipv4] import-rib vpn-instance VPN_B
    
  2. 在 VPN_A 的 IGP 中发布引入的路由
    在 VPN_A 的 OSPF 进程中,引入这些路由(假设 VPN_B 内部运行 ISIS)。

    [PE-ospf-1-vpn-instance-VPN_A] import-route isis 1
    
  3. 将 VPN_A 的路由引入 VPN_B(反向操作):
    在 PE 的 VPN_B 实例地址族下,引入 VPN_A 实例的路由。

    [PE-vpn-instance-VPN_B-af-ipv4] import-rib vpn-instance VPN_A
    
  4. 在 VPN_B 的 IGP 中发布引入的路由
    在 VPN_B 的 ISIS 进程中,引入 OSPF 路由。

    [PE-isis-1-vpn-instance-VPN_B] import-route ospf 1
    

通过这种双向的路由引入,两个原本隔离的 VPN 实例就可以实现路由互通。BGP VPNv4 路由也可以通过类似方式引入,但需要注意,该命令对本地 network 命令发布的路由可能不生效,通常用于引入从其他 PE 学来的远端路由。

Hub-Spoke 组网方案细化

上节课我们实验了 Hub-Spoke 组网。Hub-Spoke 中,Hub 站点与 Spoke 站点之间、以及 Spoke 站点之间的路由传递需要精心设计。主要有以下几种可行的 IGP/BGP 组合方案:

以下是可行的 Hub-Spoke 组网方案:

  • 方案一:Hub-CE 与 Hub-PE、Spoke-CE 与 Spoke-PE 全部使用 EBGP
  • 方案二:Hub-CE 与 Hub-PE、Spoke-CE 与 Spoke-PE 全部使用 IGP(如 OSPF, ISIS)。
  • 方案三:Hub-CE 与 Hub-PE 使用 EBGP,Spoke-CE 与 Spoke-PE 使用 IGP

为什么没有“Hub 端用 IGP,Spoke 端用 EBGP”的方案?
这种方案可能导致路由环路和路由震荡。简单来说,从 Spoke 传来的 EBGP 路由带有 AS_Path 属性,在 Hub 端引入 IGP 后,AS_Path 信息会丢失。当这条路由再从 Hub 发回 Spoke 时,Spoke 会同时收到一条来自原始 Spoke 的 EBGP 路由(带 AS_Path)和一条来自 Hub 的 EBGP 路由(AS_Path 被替换或丢失)。根据 BGP 选路规则,设备可能会优选没有 AS_Path 或 AS_Path 更短的路由,从而导致原有路由被撤销,引发持续的路由振荡。因此,该方案不可行。

特殊场景:AS 号替换与 SoO 属性

在 Hub-Spoke 或某些网络整合场景中,可能会遇到两端 CE 的 AS 号相同的情况(例如公司并购)。BGP 默认会拒绝接收 AS_Path 中包含自身 AS 号的路由,以防止环路。

解决方案一:允许接收重复 AS 号
在路由接收方(PE)的 BGP 对等体配置下,允许接收 AS_Path 中包含本地 AS 号的路由。

[PE-bgp-af-ipv4] peer <ce-ip> allow-as-loop

解决方案二:AS 号替换
在路由发送方(PE)的 BGP 对等体配置下,配置 AS 号替换。当 PE 向 CE 发送路由时,如果发现路由的 AS_Path 中第一个 AS 号与 CE 的 AS 号相同,则会将其替换为 PE 自身的 AS 号,从而“骗过”CE 的 AS_Path 环路检测。

[PE-bgp-af-ipv4] peer <ce-ip> substitute-as

SoO(Site-of-Origin)属性防环
启用 substitute-as 后,可能会破坏原始的 AS_Path 防环机制,引入新的环路风险。此时可以启用 SoO 属性。

  • 原理:PE 在从某个站点(通过特定邻居)学习路由时,为该路由打上唯一的 SoO 标签(如 200:1)。当 PE 需要向该站点的另一个邻居(或同一邻居)发送路由时,会检查路由的 SoO 值。如果 SoO 值与目标邻居配置的 SoO 值匹配,则 PE 不会发送该路由,因为这意味着该路由最初就来源于这个站点,再发回去会导致环路。
  • 配置
    [PE-bgp-af-ipv4] peer <ce-ip> soo <soo-value>
    

SoO 是一种有效的站点级防环机制,尤其在多归属(CE 双上联)和 AS 号替换场景中非常有用。

总结

本节课中我们一起学习了 MPLS VPN 的几种高级部署与特性:

  1. MCE(多实例 CE):通过单台 CE 设备虚拟多个 VPN 实例,经济高效地实现客户内部业务隔离。
  2. 跨域 VPN 概念:了解了 VPN 需要跨越多个 AS 互联的场景。
  3. 路由互通:掌握了通过路由引入实现公网与私网、以及不同私网 VPN 实例间通信的方法和配置。
  4. Hub-Spoke 细化:明确了 Hub-Spoke 组网中可用的 IGP/BGP 方案组合及其原因。
  5. AS 号处理:学习了通过 allow-as-loopsubstitute-as 解决 CE 同 AS 号问题,并了解了使用 SoO 属性防止因此产生环路。

这些高级特性使得 MPLS VPN 能够适应更复杂、更灵活的网络规划需求,是构建大型、多业务企业网络的关键技术。

华为认证HCIE Datacom:P118:Shamlink与OSPF双归防环(全)

在本节课中,我们将学习OSPF协议在MPLS VPN场景下的特殊行为,包括其扩展特性、路由还原机制,以及如何通过Shamlink(伪连接)技术解决备份链路引发的次优路径问题。

OSPF在MPLS VPN中的扩展特性

上一节我们介绍了VPN实体间的路由引入。本节中,我们来看看OSPF协议在MPLS VPN应用下的一些特殊扩展。

在传统的MPLS VPN模型中,CE(客户边缘)设备的路由通过PE(运营商边缘)设备引入到BGP中,再通过MP-BGP传递到远端PE,最后重新引入回OSPF。这个过程会导致OSPF路由的原始信息(如区域、路由类型)丢失,引入的路由通常会变成5类LSA(外部路由)

然而,在实际的MPLS VPN业务部署中,运营商希望向客户呈现一个“无缝”的专线体验,即客户站点间的路由看起来像是在同一个OSPF域内传递的。为了实现这一目标,OSPF for MPLS VPN进行了扩展。

扩展团体属性

当PE设备将OSPF路由引入到BGP VPNv4地址族时,BGP路由会携带三个新的扩展团体属性,用于保存OSPF的原始信息。

以下是这三个属性的作用:

  • Domain ID(域ID):用于标识不同的OSPF路由域。默认值为0。当接收端PE的Domain ID与路由携带的Domain ID不同时,所有类型的路由都会以5类LSA(外部路由)形式引入。
  • OSPF Route Type(路由类型):用于标识发送端PE是从哪个OSPF区域、通过哪类LSA学习到这条路由的。
    • 格式通常为:区域ID : LSA类型 : 选项
    • 例如,0:3:0 表示路由是从区域0通过3类LSA学到的。
    • 对于5/7类LSA,最后一个字段用于标识外部路由的度量类型(Type 1或Type 2)。
  • OSPF Router ID(路由器ID):标识发送端PE上该VPN实例OSPF进程的Router ID。

接收端PE在将BGP VPNv4路由重新引入回OSPF时,会参考这些扩展属性进行“路由还原”。

路由还原规则

接收端PE根据Domain IDOSPF Route Type来决定如何将BGP路由还原为OSPF LSA。

还原规则可以用以下逻辑描述:

如果 (接收端PE的Domain ID == 路由的Domain ID) {
    如果 (路由的LSA类型是 1, 2, 3) {
        将路由以 3类LSA 形式引入到OSPF中。
    } 否则 如果 (路由的LSA类型是 5, 7) {
        将路由以 5/7类LSA 形式引入,并保持原有的外部路由类型。
    }
} 否则 {
    // Domain ID不同,视为不同路由域
    将所有类型的路由都以 5类LSA(外部路由)形式引入到OSPF中。
}

核心概念公式
路由还原结果 = f(Domain ID, OSPF Route Type)

通过这种机制,当两端PE的Domain ID相同时(默认均为0),从远端站点传来的1、2、3类LSA路由,在本地站点会被还原为3类LSA(域间路由),从而在客户看来,整个MPLS VPN网络就像是一个“超级骨干区域”,两个站点的路由如同在同一个OSPF域内传递。这提升了业务体验,更符合“虚拟专用网络”的营销概念。

Shamlink(伪连接)技术

在了解了OSPF的扩展特性后,我们来看一个实际部署中常见的问题及其解决方案。

问题背景:备份链路导致的次优路径

许多企业为了业务高可用,在通过MPLS VPN专线互联的同时,可能会建立一条基于Internet的备份链路(例如通过GRE或IPsec隧道)。这条备份链路通常被称为“后门链路”。

此时会出现路由选路问题:

  • MPLS VPN路径:站点A的路由通过BGP引入,再还原为3类LSA传递到站点B。
  • 备份链路路径:两个CE设备直接建立OSPF邻居,路由以1类LSA(域内路由)形式传递。

根据OSPF选路规则,1类LSA优于3类LSA。因此,流量会优先走备份链路,而昂贵的MPLS VPN主链路反而闲置,形成次优路径。

Shamlink解决方案

Shamlink(伪连接)技术通过在两个PE设备之间建立一个虚拟的OSPF邻居关系,使得主路径也能传递1类LSA,从而通过调整链路开销(Cost)来引导流量优先走MPLS VPN主路径。

配置Shamlink的步骤如下:

  1. 在PE上创建Loopback接口并加入VPN实例:为Shamlink提供一个虚拟的通信端点。
    interface LoopBack1
     ip binding vpn-instance VPN1
     ip address 192.168.1.1 255.255.255.255
    
  2. 在BGP VPNv4中通告该Loopback地址:确保两个PE的Shamlink端点可以跨MPLS网络互通。
    bgp 100
     ipv4-family vpn-instance VPN1
      network 192.168.1.1 255.255.255.255
    
  3. 在OSPF进程下建立Shamlink邻居:使用步骤1中配置的Loopback地址作为源和目的。
    ospf 1 vpn-instance VPN1
     area 0.0.0.0
      sham-link 192.168.1.1 192.168.1.2
    
    注意:两端PE的配置是互逆的,即一端的源地址是另一端的目的地址。

配置效果

  • 配置Shamlink后,两个PE之间会建立一个特殊的P2P类型OSPF邻居。
  • 通过这个邻居,PE可以将客户路由作为1类LSA传递给对端PE,进而传递给CE。
  • 此时,CE从主路径(Shamlink)和备份链路收到的都是1类LSA。网络管理员可以通过调整Shamlink接口或备份链路接口的OSPF Cost值,确保主路径的Cost更优,从而引导流量优先通过MPLS VPN传输。
  • 当MPLS VPN故障时,Shamlink邻居断开,CE只能通过备份链路学习到路由,流量自动切换到备份路径。

总结

本节课中我们一起学习了:

  1. OSPF在MPLS VPN中的扩展:通过Domain ID、OSPF Route Type和Router ID三个扩展团体属性,BGP能够携带OSPF路由的原始信息,并在远端PE进行路由还原,使得跨站点的路由在客户看来更像是域内路由,提升了业务体验。
  2. Shamlink技术:通过在两台PE之间建立虚拟的OSPF邻居,使主路径也能发布1类LSA,解决了因OSPF选路规则(1类优于3类)导致的、流量优先走低优先级备份链路的次优路径问题。通过合理规划Cost值,可以确保流量优先通过高质量的MPLS VPN主链路传输。

下一节,我们将继续探讨在OSPF双归接入MPLS VPN的场景中,如何利用DN(Do Not Age)比特位等机制来防止路由环路。

MPLS VPN 技术详解:P119:OSPF 防环机制与 Shamlink

概述

在本节课中,我们将学习 MPLS VPN 网络中,当 OSPF 作为 PE-CE 间路由协议时,如何通过 DN(Down Bit)比特和 Route Tag 机制来防止路由环路。我们将通过一个具体的实验拓扑,详细解析 Type 3 和 Type 5 LSA 的防环原理。


实验环境搭建

上一节我们介绍了 MPLS VPN 的基本架构,本节中我们来看看一个具体的双归属组网环境。

以下是实验拓扑与初始配置:

  • AR6 作为远端站点,拥有环回口地址 60.1.1.1
  • AR2AR3 作为 PE 设备,通过 MP-BGP 骨干网与 AR4(作为 RR) 相连。
  • AR1 作为 CE 设备,与 PE(AR2 和 AR3)运行 OSPF。
  • 在 AR2 的 OSPF 进程下,配置了引入 BGP 路由。

关键配置如下:

# 在 AR2 上的 OSPF 配置示例
ospf 1 vpn-instance VPN1
 area 0.0.0.0
  network 10.0.12.2 0.0.0.0
  network 10.0.13.2 0.0.0.0
 import-route bgp

在此配置下,AR6 的 60.1.1.1 路由将通过 MP-BGP 传递到 AR2 和 AR3。AR2 会将其引入 OSPF,生成一条 Type 5 LSA 传递给 CE(AR1)。


Type 3 LSA 的防环机制:DN 比特

现在,我们来分析路由从 CE(AR1)传回另一台 PE(AR3)时,如何防止环路。

根据实验,AR3 会从两个来源学习到 60.1.1.1 的路由:

  1. 来自 RR(AR4)的 MP-BGP 路由(优先级 255)。
  2. 来自 CE(AR1)的 OSPF Type 3 LSA 路由(优先级 150)。

理论上,OSPF 内部路由(150)优于 BGP 路由(255),AR3 应该优选 OSPF 路由。但查看 AR3 的路由表,却发现其优选了 BGP 路由。

原因在于防环机制。在 MPLS VPN 的 OSPF 多实例环境中,PE 设备将 VPNv4 路由导入到 VPN 实例的 OSPF 进程时,会在生成的 Type 3 LSA 中设置 DN(Down Bit)标志位

防环规则如下:

  1. 设置规则:PE 将 VPNv4 路由导入到 VPN 实例的 OSPF 时,会在生成的 LSA 中设置 DN 比特。
  2. 检查规则:PE 在 VPN 实例的 OSPF 中收到 DN 比特被置位的 Type 3 LSA 时,不会 将其计算进路由表。

因此,AR3 收到来自 AR1(实为源自 AR2)的 Type 3 LSA 后,因为其 DN 比特为 1,便忽略此 LSA,从而避免了在 PE 之间形成路由环路。此时,AR3 只能通过 BGP 学习到该路由。

注意:此机制仅在 VPN 实例的 OSPF 中生效,公网 OSPF 不涉及 DN 比特。

我们可以通过命令关闭 DN 比特检查来验证:

# 在 AR3 的 OSPF VPN 实例视图下
ospf 1 vpn-instance VPN1
 area 0.0.0.0
  vlink-peer 10.0.13.1
  disable-dn-bit-check summary   # 关闭对 Type 3 LSA 的 DN 比特检查

关闭后,AR3 的路由表将优选 OSPF 路由,但这会引入潜在环路风险,生产环境中通常保持默认开启


Type 5 LSA 的防环机制:Route Tag

除了 Type 3 LSA,PE 也可能将 VPNv4 路由以 Type 5 LSA 的形式引入 OSPF。其防环机制依赖于 Route Tag

我们在 AR6 上创建一条静态路由 192.168.1.0/24 并引入 OSPF。AR2 通过 BGP 学到后,会将其还原为 Type 5 LSA 发布给 AR1,再传至 AR3。

查看 AR2 生成的这条 Type 5 LSA,会发现其 Route Tag 值非常大(例如 3489660929),而非普通的 1。这是防环的关键。

Route Tag 的生成规则如下

  • PE 将 VPNv4 路由导入到 VPN 实例的 OSPF 时,会自动生成一个 Route Tag。
  • Tag 值 = 0xD0000000 + 本端 PE 的 BGP AS 号
    • 前两个字节固定为 0xD000
    • 后两个字节为本设备的 BGP AS 号(例如 AS 1 即为 0x0001)。
  • 计算示例:0xD0000001 转换为十进制即为 3489660929

防环检查规则
PE 在 VPN 实例的 OSPF 中收到 Type 5 LSA 时,会检查其 Route Tag 值。如果该 Tag 值 与根据自身 AS 号计算出的值相同,则 PE 不会 计算此 LSA。

因此,AR3(同属 AS 1)收到 Tag 为 3489660929 的 LSA 时,因与自身计算值相同,便忽略此路由。AR3 最终仍通过 BGP 学习路由。

同样,我们可以通过命令修改 Tag 值来绕过检查:

# 在 AR3 上修改 OSPF 引入外部路由的默认 Tag
route-tag 123

同时,需注意 Type 5 LSA 同样携带 DN 比特,可能也需要关闭其检查:

# 在 AR3 的 OSPF VPN 实例视图下
ospf 1 vpn-instance VPN1
 area 0.0.0.0
  disable-dn-bit-check ase      # 关闭对 Type 5/7 LSA 的 DN 比特检查

提示:Type 7 LSA 的防环机制与 Type 5 LSA 相同。


与其他协议的对比

学完 OSPF 的防环机制,你可能会问:IS-IS 和 BGP 如何防环?

以下是简要对比:

  • BGP:防环最简单。PE 和 CE 通常属于不同 AS,通过 AS_Path 属性即可天然防环。
  • IS-IS:设计定位不同,没有类似的自动防环机制(如 DN 比特或特殊 Tag)。在双点双向引入场景中,必须像传统网络一样,手动配置路由策略(如打 Tag 并过滤)来避免环路。
  • OSPF:因其在企业网中广泛应用,场景复杂,故设计了(DN比特 + Route Tag)双重自动化防环机制,最为周全。

知识总结与考题分析

本节课中我们一起学习了 MPLS VPN 中 OSPF 的防环机制。我们来回顾核心要点并分析两道考题。

核心要点总结

  1. 防环场景:发生在 PE-CE 间运行 OSPF 的双归属组网中,防止路由在 PE 间循环引入。
  2. Type 3 LSA 防环:依靠 DN(Down Bit) 比特。PE 发出的 3 类 LSA 置位 DN,其他 PE 收到后不计算。
  3. Type 5/7 LSA 防环:依靠 Route Tag。PE 根据公式 0xD0000000 + 本端AS号 自动生成 Tag,其他 PE 对比后若相同则不计算。
  4. 命令提示
    • disable-dn-bit-check { summary | ase }:关闭 DN 比特检查(慎用)。
    • route-tag <value>:修改路由 Tag,影响防环计算。
  5. 协议对比:OSPF 防环机制最完善;IS-IS 需手动配置;BGP 依靠 AS_Path 天然防环。

考题分析

  1. 题目:在 MPLS VPN 组网中,PE 向 OSPF 引入其他 PE 学来的 VPN 路由时,可以产生几种 LSA?
    • 答案:Type 3, Type 5, Type 7。PE 根据 VPN 路由的来源和 OSPF 区域类型,可能将其以 3 类(区域间)、5 类(外部路由)或 7 类(NSSA 区域)LSA 的形式发布。
  2. 题目:CE 通过 BGP 传递路由给 PE 时,可能会携带 SoO(Site-of-Origin)属性。
    • 答案:错误。SoO 是 BGP 的扩展团体属性,用于在 PE 之间 传递的 VPNv4 路由 上,防止路由回馈到源站点。在 PE 与 CE 之间 传递的是普通 IPv4 路由,不会携带 SoO 属性。

实验建议与下节预告

建议你根据本节课的讲解,亲手搭建并配置实验环境。通过查看 LSA 详细信息、路由表变化,以及尝试开关防环命令,可以更深刻地理解 OSPF 在 MPLS VPN 中的防环原理。

下节课,我们将进入一个更具挑战性的主题:MPLS VPN 的跨域解决方案。请做好准备,我们下次课见!🚀

华为认证HCIA课程:P11:OSPF(上)📡

概述

在本节课中,我们将要学习静态路由的最后一个重要概念——浮动静态路由,并初步了解动态路由协议OSPF的基本原理。我们将通过一个企业双线接入互联网的场景,理解路由备份的实现方式,并对比静态路由与动态路由的差异,为后续深入学习OSPF打下基础。

浮动静态路由与默认路由

上一节我们介绍了静态路由的基本配置,本节中我们来看看如何实现路由的备份,即浮动静态路由。

场景引入:企业双线接入

在企业网络中,为了保障业务的连续性,通常会向不同的运营商(如电信、联通)申请两条宽带线路,一条作为主线路,另一条作为备份线路。当主线路出现故障时,流量可以自动切换到备份线路,避免网络中断。

默认路由的作用

访问互联网上的服务器(如百度、腾讯)时,目的地地址繁多且未知。我们不可能为每个公网地址配置一条精确的静态路由。此时,需要使用默认路由

默认路由的目的地址和掩码均为 0.0.0.0,代表“去往任何未知目的地”。配置后,所有去往公网的流量都会按照默认路由指定的下一跳进行转发。

配置示例:

# 去往任意地址的流量,下一跳指向电信网关 10.1.1.1
ip route-static 0.0.0.0 0.0.0.0 10.1.1.1
# 去往任意地址的流量,下一跳指向联通网关 20.1.1.1,并设置优先级为64
ip route-static 0.0.0.0 0.0.0.0 20.1.1.1 preference 64

浮动静态路由的实现原理

如果直接配置两条优先级相同的默认路由,设备会对流量进行负载均衡。当两条线路带宽不同时(如主线500M,备线200M),负载均衡可能导致备份线路过载。

解决方案是调整路由的优先级。在华为设备中,静态路由默认优先级为60,数值越小越优先。通过将备份线路路由的优先级调大(如64),使其在日常情况下不加入路由表,处于“浮动”状态。只有当主线路路由失效时,这条备份路由才会“浮出水面”,加入路由表进行数据转发。

以下是实现主备切换的关键步骤:

  1. 配置主路由:指向电信,使用默认优先级60。
  2. 配置浮动备份路由:指向联通,手动设置一个更大的优先级(如64)。
  3. 验证切换:当主链路接口关闭(shutdown)时,查看路由表,备份路由(优先级64)会出现在表中,流量切换至联通线路。主链路恢复后,路由表自动切回主路由。

从静态路由到动态路由

上一节我们通过浮动静态路由实现了简单的链路备份,本节中我们来看看在面对更复杂网络时,为何需要动态路由。

静态路由的局限性

静态路由配置简单,但存在两个主要问题:

  1. 配置繁琐:在大规模网络中,需要手动配置大量路由条目,工作量大且容易出错。
  2. 无法动态感知网络变化:一旦配置,静态路由就会存在于路由表中。如果远端网络出现故障,本地设备无法自动感知并更新路由,可能导致流量黑洞。

动态路由概述

动态路由协议能够自动学习、计算并更新路由信息,实时感知网络拓扑的变化。OSPF(Open Shortest Path First,开放式最短路径优先)就是一种常用的动态路由协议。

OSPF协议基础

OSPF协议简介

OSPF是一种基于链路状态的内部网关路由协议(IGP)。

  • 内部网关协议(IGP):运行在一个自治系统(AS) 内部。AS可以理解为一个由统一机构管理的小型网络(如一个公司网络)或大型网络(如运营商网络)。在AS内部,设备运行相同的IGP协议来同步路由信息。
  • 外部网关协议(EGP):如BGP,运行在不同的AS之间,用于交换路由信息。

链路状态与距离矢量的对比

理解OSPF,需要了解其与老旧协议(如RIP)的本质区别。

以下是两种算法工作方式的对比:

  • 距离矢量协议(如RIP)

    • 工作机制:路由器从邻居那里收到路由信息(如“去往网段3.3.3.0,下一跳是我”)。如果该路由的下一跳可达,则将其加入自己的路由表,然后再原样通告给其他邻居。
    • 特点:路由器只知道“根据传闻”转发,不清楚整个网络的拓扑结构。收敛慢,容易产生路由环路。
  • 链路状态协议(如OSPF)

    • 工作机制:每台路由器都会生成描述自身链路状态的信息(LSA - 链路状态通告),内容包括:我是谁、我的邻居有哪些、到达邻居的开销等。LSA会在网络中泛洪,最终使同一区域内的所有路由器都拥有一份完全相同的链路状态数据库(LSDB)
    • 特点:每台路由器都掌握了全网的拓扑信息。然后,各路由器以自己为根,独立运行SPF算法,计算出一棵到达所有网段的最短路径树,从而生成自己的路由表。

OSPF的工作过程

OSPF的运作可以概括为三个循序渐进的步骤,分别对应三张重要的表:

  1. 建立邻居关系:运行OSPF的接口会通过发送Hello报文发现邻居,并建立邻居关系。这是后续所有通信的基础。此阶段形成邻居表
  2. 同步链路状态数据库:邻居之间互相交换并泛洪LSA,最终确保所有路由器的LSDB完全一致。此阶段形成LSDB
  3. 计算路由表:每台路由器根据LSDB中完整的网络拓扑图,以自己为起点,运行SPF算法,计算出到达每个目的地的最优路径,并将这些路径安装到路由表中。

OSPF的选路依据

OSPF选择最优路径的主要依据是开销。开销值与链路带宽成反比:带宽越高,开销值越小,路径越优先。默认情况下,开销值 = 参考带宽 / 接口实际带宽。工程师可以通过手动调整接口开销值来影响路由选择。

总结

本节课中我们一起学习了两个核心内容:

  1. 浮动静态路由:通过调整路由优先级,实现了主备链路的自动切换,这是静态路由在提供网络可靠性方面的典型应用。
  2. OSPF基本原理:我们了解了动态路由协议的必要性,初步认识了OSPF作为链路状态IGP协议的工作机制,包括其与距离矢量协议的区别、LSA和LSDB的概念,以及建立邻居、同步数据库、计算路由的三步走过程。

下一节课,我们将深入OSPF的配置实践和报文交互细节。

MPLS VPN 跨域技术:P120:MPLS VPN 跨域 Option A 详解 🏗️

在本节课中,我们将学习 MPLS VPN 跨域技术中的第一种解决方案——Option A。我们将从实际应用背景出发,理解其工作原理,并通过实验配置来掌握其实现方法。本节课内容配置量较大,但逻辑清晰,是理解后续更复杂跨域方案的基础。

课程概述

随着企业规模扩大,其站点可能分布在不同的自治系统(AS)中。例如,一个公司的北京和天津办事处可能分别接入中国联通(AS100)和中国移动(AS200)的网络。为了让这些属于同一 VPN 客户但接入不同 AS 的站点能够通过 MPLS VPN 进行通信,就需要跨域 MPLS VPN 技术。

跨域面临两个核心问题:

  1. AS 间不运行 LDP 协议:不同运营商之间由于管理和竞争关系,通常不会交换内部链路状态信息,因此无法直接建立跨 AS 的 MPLS 隧道。
  2. PE 间无 IGP 协议:不同 AS 的 PE 设备之间默认没有运行内部网关协议(如 OSPF、IS-IS),因此无法直接建立 BGP 邻居来传递 VPNv4 路由。

针对这些问题,业界提出了三种主要的跨域解决方案:Option A、Option B 和 Option C。本节课我们重点学习 Option A

Option A 方案原理

Option A 的核心思想非常简单:将不同 AS 的边界路由器(ASBR)互视为对方的 CE 设备

逻辑抽象

假设 AS100 中的站点 CE1 需要与 AS200 中的站点 CE2 通信。

  • 在 AS100 内部,ASBR1 将 ASBR2 视为自己连接的一个 CE 设备。
  • 在 AS200 内部,ASBR2 将 ASBR1 视为自己连接的一个 CE 设备。

这样,每个 AS 内部的 MPLS VPN 配置就变成了我们熟悉的“单域”配置。ASBR 之间通过普通的 IP 接口相连,运行 EBGP、静态路由或 IGP 来交换客户路由,不运行 MPLS

控制平面路由传递流程

我们以 CE1(IP: 7.7.7.7/32)的路由传递到 CE2 为例:

  1. AS100 内部传递
    • CE1 通过 EBGP 将路由 7.7.7.7/32 通告给 PE1。
    • PE1 为该路由分配私网标签(如 1026),并附上 RD(如 1:1)和 RT(如 1:1)属性,将其转换为 VPNv4 路由。
    • PE1 通过 MP-IBGP 将这条 VPNv4 路由传递给 ASBR1。
    • ASBR1 作为 PE,将 VPNv4 路由导入其 VPN 实例,剥离 RD 和标签,还原为普通的 IPv4 路由。

  1. ASBR 间传递
    • ASBR1 通过其连接 ASBR2 的接口(已绑定 VPN 实例),使用 EBGP 将这条普通的 7.7.7.7/32 IPv4 路由传递给 ASBR2。
    • 关键点:此时传递的是纯 IP 路由,没有 MPLS 标签。

  1. AS200 内部传递
    • ASBR2 从“CE”(即 ASBR1)收到 IPv4 路由后,为其分配新的私网标签(如 1027),并附上本 AS 的 RD(如 2:2)和 RT(如 2:2),将其转换为 VPNv4 路由。
    • ASBR2 通过 MP-IBGP 将 VPNv4 路由传递给 PE2。
    • PE2 根据 RT 将路由导入正确的 VPN 实例,并通过 EBGP 通告给 CE2。

最终,CE2 就学习到了去往 7.7.7.7/32 的路由。

数据平面报文转发流程

当 CE2 发送数据包到 7.7.7.7 时:

  1. AS200 内部

    • PE2 收到 IP 包,查找 VPN 实例路由表,压入 ASBR2 分配的私网标签(1027)。
    • PE2 查找公网路由,去往下一跳 ASBR2(4.4.4.4)需要压入 LDP 分配的公网标签(如 1024)。此时报文带有两层标签。
    • 报文在 AS200 内经过 P 设备转发,在到达 ASBR2 的前一跳弹出公网标签,只剩一层私网标签(1027)到达 ASBR2。
  2. ASBR 间传递

    • ASBR2 根据私网标签 1027 查找 VPN 实例,弹出私网标签,将原始的 IP 报文从连接 ASBR1 的接口发出。
    • 关键点:ASBR 之间传递的是纯 IP 报文。
  3. AS100 内部传递

    • ASBR1 作为 PE,收到 IP 报文后,查找 VPN 实例路由表,压入 PE1 分配的私网标签(1026)。
    • ASBR1 查找公网路由,去往下一跳 PE1(1.1.1.1)需要压入 LDP 分配的公网标签(如 1024)。此时报文再次带有两层标签。
    • 报文在 AS100 内转发,在到达 PE1 的前一跳弹出公网标签,只剩私网标签(1026)到达 PE1。
    • PE1 根据私网标签 1026 查找 VPN 实例,弹出标签,将 IP 报文发送给 CE1。

至此,跨域通信完成。

Option A 配置要点与实验思路

上一节我们介绍了 Option A 的工作原理,本节我们来看看其具体的配置思路和注意事项。配置过程本质上是为两个 AS 分别配置单域 MPLS VPN,并在 ASBR 上将对端 ASBR 当作 CE 来配置。

以下是配置的核心步骤清单:

  1. 配置各 AS 内部基础网络
    • 为所有设备配置接口 IP 地址和 Loopback 地址。
    • 在 AS 内部运行 IGP(如 IS-IS 或 OSPF),确保 PE、P、ASBR 的环回口互通。
    • 在 AS 内部使能 MPLS 和 LDP,在 PE、P、ASBR 之间的链路上开启,建立 LSP 隧道。

  1. 配置各 AS 内部的 MPLS VPN
    • 在 PE 和 ASBR 上创建 VPN 实例(ip vpn-instance),配置 RD 和 RT。
    • 将连接 CE 或对端 ASBR 的接口绑定到 VPN 实例。
    • 在 PE 和 ASBR 之间建立 MP-IBGP 对等体关系,用于交换 VPNv4 路由。

  1. 配置 ASBR 间的互联(模拟 PE-CE 连接):
    • 在 ASBR 互连的接口上绑定 VPN 实例,并配置 IP 地址。
    • 在 ASBR 上配置 EBGP,将对端 ASBR 的接口 IP 作为邻居,在 VPN 实例地址族下激活。这里交换的是 IPv4 路由
    • 在 ASBR 的 BGP VPN 实例视图下,使用 import-route direct 命令引入直连路由(或使用 network 发布),以便将对端 ASBR 的路由引入本 AS。

  1. 配置 CE 接入
    • 在 CE 上配置指向 PE 的静态路由或运行动态路由协议(如 EBGP)。
    • 在 PE 的 BGP VPN 实例视图下,引入 CE 的路由或建立 EBGP 邻居。

重要提示:若 ASBR 间使用 OSPF 作为 PE-CE 协议,需注意 DN(Domain Network)比特位问题。从 MPLS VPN 引入 OSPF 的 Type-5 LSA 默认 DN 位置位,会导致对端 OSPF 不计算该路由。需要在 OSPF 进程下配置 dn-bit-check disable(检查端)或相关策略防止置位(生成端)。

Option A 方案总结

本节课中我们一起学习了 MPLS VPN 跨域 Option A 方案。

  • 优点:原理和配置简单,易于理解和部署。ASBR 之间无需运行 MPLS,兼容性好。
  • 缺点:扩展性差。每个跨域的 VPN 客户都需要在 ASBR 上占用单独的物理或子接口,并维护相应的 VPN 实例和路由。当 VPN 客户数量众多时,ASBR 设备压力大,且管理复杂。
  • 适用场景:适用于跨域 VPN 数量较少,且 AS 间协作关系简单的场景。

Option A 作为最基本的跨域方案,为我们理解更复杂的 Option B 和 Option C 打下了坚实的基础。其“化跨域为单域”的思想非常巧妙。在接下来的课程中,我们将学习扩展性更佳的 Option B 方案。

MPLS VPN跨域技术:P121:跨域Option B与Option C1方案详解 🚀

在本节课中,我们将深入学习MPLS VPN的两种跨域解决方案:Option B和Option C1。我们将从Option B的配置和原理入手,理解其与Option A的区别,然后深入探讨Option C1的复杂实现机制,旨在减轻ASBR的负担。课程内容将涵盖核心概念、配置步骤、数据转发流程以及方案对比。


概述

上一节我们介绍了跨域Option A方案,它通过在ASBR之间建立VPN实例和VRF邻居来实现互通。本节中,我们来看看两种更主流的跨域方案:Option B和Option C1。Option B通过在ASBR之间建立MP-EBGP邻居来传递VPNv4路由,而Option C1则旨在让PE设备直接建立VPNv4邻居,从而减轻ASBR的负担。


Option B方案详解

Option B方案的核心思想是,ASBR之间不再使用VPN实例进行连接,而是建立MP-EBGP(Multiprotocol EBGP)邻居关系,直接交换VPNv4路由。这样,当有新的VPN客户需要跨域时,ASBR上无需再为每个客户创建VPN实例,扩展性更好。

拓扑与配置变更

我们基于上节课的Option A拓扑进行修改。主要变化是在ASBR(AR3和AR4)之间,将原来的VRF连接改为建立MP-EBGP邻居。

以下是配置变更的核心步骤:

  1. 删除ASBR上的VPN实例配置:在AR3和AR4上,删除之前为Option A创建的VPN实例。

    # 在AR3上
    undo ip vpn-instance VPN1
    interface GigabitEthernet0/0/1
     undo ip binding vpn-instance VPN1
     ip address 10.0.34.3 255.255.255.0
    
    # 在AR4上
    undo ip vpn-instance VPN1
    interface GigabitEthernet0/0/0
     undo ip binding vpn-instance VPN1
     ip address 10.0.34.4 255.255.255.0
    
  2. 在ASBR上关闭基于RT的路由过滤:默认情况下,BGP会对VPNv4路由进行RT(Route Target)过滤。为了让ASBR能接收并传递所有VPNv4路由,需要关闭此功能。

    # 在AR3和AR4上
    bgp { as-number }
     ipv4-family vpnv4
      undo policy vpn-target
    

  1. 在ASBR之间建立MP-EBGP邻居:在AR3和AR4之间建立VPNv4的EBGP邻居关系。
    # 在AR3上
    bgp 100
     peer 10.0.34.4 as-number 200
     ipv4-family vpnv4
      peer 10.0.34.4 enable
    
    # 在AR4上
    bgp 200
     peer 10.0.34.3 as-number 100
     ipv4-family vpnv4
      peer 10.0.34.3 enable
    

  1. 开启ASBR互联接口的MPLS功能:由于ASBR之间需要转发带标签的报文,因此必须在互联接口上启用MPLS,但不需要开启LDP。
    # 在AR3的G0/0/1接口和AR4的G0/0/0接口上
    interface GigabitEthernet0/0/x
     mpls
    

完成以上配置后,VPN路由(如7.7.7.7/32)的传递路径变为:AR7 -> AR1 (PE) -> AR3 (ASBR) -> AR4 (ASBR) -> AR6 (PE) -> AR10 (CE)。AR3和AR4作为ASBR,负责在VPNv4层面交换路由,并为其分配新的私网标签。

数据转发流程分析

以10.10.10.10访问7.7.7.7为例,数据包转发流程如下:

  1. AR6 (PE): 收到去往7.7.7.7的IP包,查找VPN路由表,压入私网标签(1028)。下一跳是AR1(1.1.1.1),但AR6没有到1.1.1.1的直达隧道,因此需要迭代。它先查找去往下一跳AR4(4.4.4.4)的LDP标签(1024),在私网标签外再压入一层公网标签(1024)。此时报文带有两层标签。
  2. AR5 (P): 收到带两层标签的报文,根据外层标签1024进行交换。由于是倒数第二跳,弹出外层标签,将仅带私网标签1028的报文发给AR4。
  3. AR4 (ASBR): 收到带私网标签1028的报文。此标签是AR3分配的(1027),因此AR4将标签交换为1027,发给AR3。
  4. AR3 (ASBR): 收到带私网标签1027的报文。此标签是AR1分配的(1024),因此AR3将标签交换为1024。同时,AR3发现下一跳是AR1(1.1.1.1),需要走LDP隧道,于是再压入一层去往AR1的LDP标签(1025)。此时报文再次变为两层标签。
  5. AR2 (P): 收到带两层标签的报文,根据外层标签1025进行交换。作为倒数第二跳,弹出外层标签,将仅带私网标签1024的报文发给AR1。
  6. AR1 (PE): 收到带私网标签1024的报文。此标签是自己分配的,因此弹出标签,根据VPN实例查询IP路由表,将纯IP报文转发给AR7。

通过抓包可以清晰验证上述两层/三层标签的交换过程。

Option B方案特点总结

  • 优点
    • 扩展性优于Option A。新增跨域VPN客户时,ASBR无需配置新的VPN实例。
    • 配置相对Option C更简单直观。
  • 缺点
    • ASBR需要保存并处理所有跨域的VPNv4路由,负担较重。当跨域VPN数量庞大时,对ASBR性能要求高。
    • 流量必须经过ASBR转发。

Option B结合RR的场景

在实际大型网络中,为了简化BGP邻居配置和管理,通常会在每个AS内部部署路由反射器(RR)。

配置思路非常简单:让PE设备(AR1, AR6)和ASBR(AR3, AR4)都与本AS内的RR(AR8, AR9)建立VPNv4的IBGP邻居关系,而不是彼此直连。

  • 控制平面:VPN路由通过RR进行反射。例如,AR1将VPNv4路由发给RR(AR8),AR8反射给ASBR(AR3),再传递给对端AS。
  • 数据平面:由于RR在反射路由时默认不改变下一跳属性,因此数据转发路径与不带RR的Option B完全一致,流量仍然经过ASBR。

此场景下,ASBR的负担并未减轻,但网络结构更清晰,易于管理。


Option C1方案详解 🧩

Option B的ASBR负担问题催生了Option C方案。其核心目标是:让PE设备之间直接建立VPNv4邻居(多跳EBGP),VPNv4路由直接在PE间交换,ASBR无需保存任何VPNv4路由,从而极大减轻ASBR压力。

Option C有两种实现方式:C1和C2。本节重点讲解Option C1。

核心挑战与解决思路

在Option C中,PE(如AR1)的VPN路由下一跳是对端PE(如AR6)。当AR6发送数据给AR7时,它需要压入私网标签,并且迭代到去往下一跳AR1的隧道。但AR1在另一个AS,AR6没有直达的LDP隧道。

解决方案:在AS之间为PE的环回口路由(如1.1.1.1/32和6.6.6.6/32)分配BGP标签,建立一条跨AS的BGP LSP(标签交换路径)。这样,PE间就能为彼此的环回口建立“隧道”。

Option C1配置步骤

配置较为复杂,可分为以下几个阶段:

第一阶段:实现PE环回口互通
目标:让AR1(1.1.1.1)和AR6(6.6.6.6)能通过IP路由相互访问。

  1. 在每个AS内部配置IGP(如OSPF)和LDP。
  2. 在AS之间配置普通的IPv4 BGP,让ASBR互相学习到对端PE的环回口路由。通常需要配置next-hop-local命令确保路由可达。
  3. 验证AR1能ping通AR6的环回口。

第二阶段:建立PE间的多跳VPNv4 EBGP邻居

  1. 在AR1和AR6上配置VPN实例(与之前相同)。
  2. 在AR1和AR6之间直接建立VPNv4 EBGP邻居。由于非直连,需指定多跳和更新源。
    # 在AR1上
    bgp 100
     peer 6.6.6.6 as-number 200
     peer 6.6.6.6 connect-interface LoopBack0
     peer 6.6.6.6 ebgp-max-hop 255
     ipv4-family vpnv4
      peer 6.6.6.6 enable
    
    # 在AR6上
    bgp 200
     peer 1.1.1.1 as-number 100
     peer 1.1.1.1 connect-interface LoopBack0
     peer 1.1.1.1 ebgp-max-hop 255
     ipv4-family vpnv4
      peer 1.1.1.1 enable
    
  3. 此时,VPN路由(7.7.7.7/32)可以通过AR1 -> AR6直接传递。但数据转发仍不通,因为缺少标签隧道。

第三阶段:建立跨AS的BGP LSP(关键步骤)
这是Option C1最复杂的部分,目的是让AR6拥有到AR1(1.1.1.1)的带标签路径,反之亦然。

  1. 开启ASBR互联接口的MPLS
  2. 在所有IPv4 BGP邻居间开启标签路由能力。这允许BGP在发布IPv4路由时同时分配标签。
    # 例如,在AR3上,对所有IPv4 BGP邻居(AR2, AR4)
    bgp 100
     peer { ip-address } label-route-capability
    
  3. 配置标签分配策略:在需要“缝合”隧道的关键点(如ASBR),使用路由策略为特定的PE环回口路由分配BGP标签,并在向BGP邻居发布时携带此标签。
    • 方向一(AR1 -> AR6):AR3在向AR4发布1.1.1.1路由时,通过策略为其分配一个标签。
    • 方向二(AR6 -> AR1):AR4在向AR3发布6.6.6.6路由时,通过策略为其分配一个标签。
  4. 配置标签交换策略:当BGP路由的下一跳改变时(如ASBR将路由传给内部邻居),需要重新分配标签。这需要在相应节点配置策略,匹配带有标签的路由并重新分配新标签。
    • 例如,AR4从AR3学到带标签的1.1.1.1路由,下一跳是AR3。当AR4将其传递给AR5时,下一跳变为AR4自己,需要重新分配一个新标签。

完成这些繁琐的标签策略配置后,AR6上查看1.1.1.1的路由将附带一个BGP标签,并且能成功迭代到隧道中。AR1上查看6.6.6.6同理。

Option C1数据转发流程(三层标签)

以10.10.10.10访问7.7.7.7为例,此时数据包转发最多会携带三层标签

  1. AR6 (PE):
    • 压入私网标签(L1, 如1028, 对应7.7.7.7)。
    • 查找去往下一跳AR1(1.1.1.1)的隧道。发现是BGP LSP,压入BGP标签(L2, 如1033, 对应1.1.1.1)。
    • 查找去往BGP下一跳AR4(4.4.4.4)的隧道。发现是LDP LSP,压入LDP公网标签(L3, 如1024, 对应4.4.4.4)。
    • 发送带有[L3 | L2 | L1]三层标签的报文。
  2. AR5 (P): 根据外层LDP标签(L3)转发,作为倒数第二跳弹出L3,发送带[L2 | L1]两层标签的报文给AR4。
  3. AR4 (ASBR):
    • 收到BGP标签L2(1033)。根据BGP标签转发表,将其交换为AR3分配的BGP标签(如1032)。
    • 发送带[L2‘ | L1]标签的报文给AR3。
  4. AR3 (ASBR):
    • 收到BGP标签L2‘(1032)。根据BGP标签转发表,执行Pop操作,弹出BGP标签。因为AR3有到AR1(1.1.1.1)的LDP隧道。
    • 压入去往AR1的LDP标签(如1025)。
    • 发送带[LDP | L1]两层标签的报文给AR2。
  5. AR2 (P): 根据外层LDP标签转发,作为倒数第二跳弹出外层LDP标签,发送带[L1]一层标签的报文给AR1。
  6. AR1 (PE): 弹出私网标签L1,查询VPN实例路由表,将IP报文转发给AR7。

抓包可以清晰看到三层标签到两层、再到一层的完整过程。

Option C1方案特点总结

  • 优点
    • 根本性减轻了ASBR的负担。ASBR不保存VPNv4路由,只处理少量PE环回口的IPv4路由和BGP标签。
    • 扩展性极佳,非常适合大规模跨域VPN部署。
  • 缺点
    • 配置非常复杂,尤其是在建立跨AS BGP LSP时,需要精细的标签策略控制。
    • 故障排查难度大。
    • 将部分压力转移给了PE设备,PE需要维护所有对端PE的BGP标签路由。

方案对比与总结

本节课我们一起学习了两种重要的MPLS VPN跨域方案:

特性 Option A Option B Option C1
ASBR角色 作为CE,需配置所有VPN实例 传递VPNv4路由,需保存所有VPNv4路由 不处理VPNv4路由,只传递带标签的IPv4路由
配置复杂度 简单,但每客户需配置 中等 非常复杂
扩展性 极佳
ASBR负担 重(每客户一实例) 重(保存所有VPNv4路由)
适用场景 跨域VPN客户极少 中小规模跨域VPN 大规模跨域VPN
  • Option B 是平衡了配置复杂度和扩展性的常用选择。
  • Option C1 是面向大型服务提供商网络的解决方案,其核心价值在于通过复杂的控制平面配置,换取数据平面ASBR设备的高性能与可扩展性。

理解这些方案的关键在于把握控制平面(路由传递)数据平面(标签转发) 的分离。建议在实验环境中反复练习,尤其是Option C1的标签分配与交换过程,是掌握MPLS VPN高级技术的里程碑。下节课我们将探讨Option C2以及结合RR的更复杂场景。

MPLS跨域VPN:Option C带RR场景与Option C2详解

概述

在本节课中,我们将深入学习MPLS跨域VPN的两种高级实现方案:Option C带路由反射器(RR)的场景,以及Option C2方案。我们将重点理解其工作原理、配置差异以及各自的优缺点。


Option C带RR场景详解

上一节我们介绍了不带RR的Option C方案,本节中我们来看看引入路由反射器(RR)后,Option C方案有何不同。

RR在Option C中的作用

在Option A和Option B中,RR的作用是在AS内部反射路由,帮助PE将路由传递给ASBR。而在Option C中,RR的目的发生了变化。因为Option C的核心是两个PE之间直接交换VPNv4路由,ASBR不保存这些路由。如果让所有PE都彼此建立全互联的BGP邻居,管理负担会很重。

因此,在Option C中引入RR,是为了让RR汇聚本AS内所有PE的路由,然后由两个AS的RR之间建立VPNv4邻居来交换路由。这样,PE只需要与本地AS的RR建立邻居即可,大大简化了邻居关系。

核心公式/概念

  • 控制平面路由传递路径(带RR)PE1 -> RR1 -> RR2 -> PE2
  • 数据平面转发路径PE1 -> P设备 -> ASBR1 -> ASBR2 -> P设备 -> PE2 (与不带RR时相同,不经过RR)

实验配置与问题分析

我们将基于上节课完成的Option C不带RR的实验拓扑进行改造。

以下是配置改造的核心步骤:

  1. 拆除PE间的直接邻居:在PE1和PE2上,移除彼此之间的BGP VPNv4邻居配置。
    [PE1] bgp 100
    [PE1-bgp] undo peer 6.6.6.6
    
    [PE2] bgp 200
    [PE2-bgp] undo peer 1.1.1.1
    

  1. 配置RR并建立邻居
    • 将AR8和AR9规划为VPNv4 RR。
    • 确保RR之间IP可达(需要在ASBR上将其环回口路由发布到BGP中)。
    • 在RR8上与PE1建立VPNv4邻居,在RR9上与PE2建立VPNv4邻居。
    • 在RR8和RR9之间建立跨AS的VPNv4邻居(EBGP多跳)。
    • 将PE配置为RR的客户端。

  1. 关键问题:下一跳改变
    当RR8将路由反射给RR9时,下一跳会改变为RR8(EBGP传递特性)。同样,RR9反射给PE2时,下一跳会改变为RR9。这导致PE2去往PE1的路由,下一跳指向了RR9,而RR9可能不在数据转发路径上,造成流量转发失败。

    解决方案:在RR上配置next-hop-invariable命令,防止在反射路由时修改下一跳属性。

    [RR8-bgp-af-vpnv4] peer 9.9.9.9 next-hop-invariable
    [RR9-bgp-af-vpnv4] peer 6.6.6.6 next-hop-invariable
    # 反向路由也需要配置
    [RR9-bgp-af-vpnv4] peer 8.8.8.8 next-hop-invariable
    [RR8-bgp-af-vpnv4] peer 1.1.1.1 next-hop-invariable
    

    配置后,PE2学习到的路由下一跳仍然是PE1,数据平面即可利用之前建立的LSP进行转发,RR不参与数据转发。

RR的部署方式

  • 旁挂式部署:RR只作为控制平面的路由反射器,完全不在数据转发路径上。即使与RR的连接中断,只要PE间数据路径正常,业务不受影响。这是推荐的部署方式,职责清晰,易于排错。
  • 在备份路径上部署:RR设备同时也作为网络中的一台P设备。当主用路径故障时,流量可能会经过RR转发。这可以节省设备,但增加了RR的负担,且故障排查更复杂。


Option C2方案详解

上一节我们深入探讨了Option C1及其RR部署,本节中我们来看看另一种变体——Option C2方案。它与C1目标相同,但实现方式更简洁。

Option C2的核心思路

Option C1在AS内部使用IPv4 BGP来分发PE路由并分配标签。Option C2则采用了不同的思路:

  1. ASBR通过EBGP学到对端PE的路由(带标签)。
  2. ASBR将这些BGP路由引入到IGP(如OSPF、IS-IS)中。
  3. ASBR上配置MPLS,触发为这些BGP路由生成LDP标签
  4. AS内部通过IGP传播路由,通过LDP分配标签,最终形成端到端的LDP LSP。

核心公式/概念

  • 控制平面ASBR EBGP学习路由 -> 引入IGP -> IGP+LDP在AS内泛洪
  • 数据平面两层标签(私网标签 + LDP公网标签),比C1少一层BGP标签。

实验配置要点

  1. 简化ASBR配置:ASBR上不需要配置与内部设备(如P设备)的IPv4 BGP邻居。
  2. BGP路由引入IGP:在ASBR上配置将BGP路由引入到IGP中。
    [ASBR1] isis 1
    [ASBR1-isis-1] import-route bgp
    
  3. 关键命令:触发LDP标签分配:在ASBR的MPLS视图下,配置为BGP路由分配LDP标签。
    [ASBR1] mpls
    [ASBR1-mpls] lsp-trigger bgp-label-route
    
    这条命令使得ASBR为从EBGP学到的、带有标签的路由(即对端PE的路由)生成一个LDP标签,并通告给上游的LDP邻居。
  4. 建立PE间VPNv4邻居:完成上述步骤后,PE间可以建立直接的EBGP VPNv4邻居,因为彼此的路由和LDP LSP已经通过IGP和LDP建立完成。

Option C2的优势

  • 标签层数少:只有私网和LDP两层标签,节省报文开销。
  • 配置更简洁:AS内部无需维护IPv4 BGP,利用现成的IGP和LDP。
  • 负载分担友好:基于LDP的负载分担在AS内部和跨AS(多个ASBR时)都能很好地工作。

Option C2的注意事项

当AS内有多个ASBR时,需要谨慎处理BGP和IGP的双向路由引入,避免产生路由环路。


三种跨域方案对比总结

本节课我们一起学习了Option C的两种高级形态。现在我们来回顾并对比三种主要的MPLS跨域VPN方案:

以下是三种方案的简要对比:

特性 Option A Option B Option C
ASBR角色 背靠背VRF,类似CE 传递VPNv4路由 只转发带标签的报文,不保存VPN路由
扩展性 差(每VPN需独立接口/子接口) 中(ASBR需保存所有VPN路由) (ASBR无状态,压力小)
配置复杂度 简单 中等 复杂(C1/C2及带RR时)
适用场景 跨域VPN数量少 中等规模跨域 大规模跨域,或多个AS串联

总结

  • Option A 配置简单,但扩展性差,适用于VPN数量极少的场景。
  • Option B 是折中方案,解决了接口占用问题,但ASBR仍需处理所有VPN路由,可能成为瓶颈。
  • Option C 扩展性最佳,尤其适合跨越多个AS或大规模VPN部署的场景。其中,C2方案因其标签层数少、可利用现有IGP/LDP,在实际网络中常被优先考虑。而通过引入RR,可以进一步优化Option C的控制平面管理。


下节课预告:接下来我们将进入QoS(服务质量)部分的学习,这部分理论性较强,将深入讲解流量分类、标记、整形、拥塞管理等核心概念。

华为认证HCIE Datacom课程:第59节:QoS服务模型与报文标记

概述

在本节课中,我们将要学习QoS(服务质量)技术。QoS是网络管理中一项重要且抽象的技术,用于在网络带宽有限的情况下,为不同类型的网络流量提供差异化的服务,例如保证关键业务的流畅性、限制非关键业务的带宽等。我们将从QoS的基本概念、产生背景讲起,重点介绍其核心思想——区分服务模型,并深入讲解报文分类与标记的原理。


QoS技术简介

网络带宽资源总是有限的。无论带宽如何提升,总会有新的应用(如高清视频、VR、无人驾驶)出现并占用这些资源。因此,在网络带宽有限的前提下,如何保证不同业务流量的优先传输级别,就成为网络管理的关键。QoS技术正是为了解决这个问题而生的,它可以理解为网络流量的“调度员”或“交警”,负责为不同的数据报文分配不同的优先级和资源。

上一节我们介绍了QoS的基本概念,本节中我们来看看影响网络通讯质量的具体因素。

以下是影响网络通讯质量的几个关键因素:

  • 带宽:单位时间内能够传输的数据量。带宽不足会导致网络卡顿。
  • 延迟:数据从发送端到接收端所需的时间。高延迟在实时应用(如语音通话、在线游戏)中影响显著。
  • 抖动:数据包到达目的地的时间间隔不一致。抖动会影响语音、视频的连贯性。
  • 丢包率:传输过程中丢失的数据包比例。丢包会导致信息不完整或需要重传。
  • 可用性:网络服务的可靠性和持续可用时间。频繁断网会严重影响服务质量。

为了提升用户对这些因素的体验,QoS提供了不同的服务模型来实现。


QoS服务模型

QoS通过不同的服务模型来提供质量保证。目前主要使用以下三种模型,但实际网络中广泛应用的是最后一种——区分服务模型。

尽力而为服务模型

这是传统网络的默认模型,即不提供任何QoS保证。

  • 核心思想:网络设备会尽最大努力发送报文,但不保证带宽、延迟、丢包率等。所有报文享有同等的、无差别的转发机会。
  • 类比:就像普通邮政服务,信件寄出后,不保证送达时间和是否丢失。
  • 公式/代码表示Best-Effort Service = No Guarantee

综合服务模型

这种模型试图为每一条独立的网络数据流预留端到端的资源。

  • 核心思想:在数据发送前,通过信令协议(如RSVP)在网络路径的每一跳设备上为该数据流预留固定的带宽资源。
  • 缺点
    1. 实现复杂:需要全网设备支持复杂的信令协议。
    2. 扩展性差:需要为每一条流维护状态,消耗大量设备资源。
    3. 资源利用率低:预留的带宽即使空闲,也不能被其他流使用。
  • 类比:就像为专车预订了一条专属车道,无论车上是否有人,车道都为其保留。

区分服务模型

这是当前主流的QoS实现模型,也是本节课的重点。

  • 核心思想:将网络流量划分为有限的几个大类(类别),并为每个类别提供不同等级的服务。它不针对单条流,而是针对一类流。
  • 类比:就像高铁站的服务,根据车票(商务座、一等座、二等座)提供不同的候车室、检票通道和服务。
  • 核心流程
    1. 分类与标记:在网络边缘(DS边界节点),根据IP地址、端口、协议等复杂条件将流量分类,并为其打上标记(如DSCP值)。
    2. 提供服务:在网络内部(DS域),设备只需查看报文携带的标记,即可为其提供对应的优先级服务(如进入高优先级队列、保证带宽等)。

上一节我们了解了三种服务模型,本节中我们重点探讨区分服务模型的核心基础:报文的分类与标记。


报文分类与标记

分类和标记是实施区分服务的基础。设备必须能够识别出不同的流量,才能提供差异化服务。

分类方式

主要有两种分类方式:

1. 简单流分类

  • 原理:根据数据报文原有的优先级字段进行粗略分类。
  • 标记位置
    • 以太网帧(802.1Q):PRI(3比特,值0-7)
    • MPLS帧:EXP(3比特,值0-7)
    • IP报文:早期使用 IP Precedence(IP优先级,3比特,值0-7)
  • 特点:处理简单快速,但不够精细。因为报文自带的标记可能是随机的,无法准确反映业务重要性。

2. 复杂流分类

  • 原理:根据报文的多重特征进行精细分类,例如:
    • 五元组(源/目IP、源/目端口、协议)
    • 入接口
    • 二层协议类型等
  • 特点:灵活、精确,可以基于业务策略进行分类。但匹配规则复杂,处理开销较大。
  • 代码示例(概念性)
    # 例如,匹配源IP为192.168.1.100的流量,并将其分类为“重要客户”
    if packet.src_ip == “192.168.1.100”:
        traffic_class = “VIP_Customer”
    

简单流分类与复杂流分类的协作
在实际网络中,通常在网络边缘设备(DS边界节点)使用复杂流分类进行精细识别并重新标记;而在网络内部设备(DS域内)则使用简单流分类,直接依据报文标记进行快速转发,从而提高整体处理效率。

标记字段与映射

报文被打上标记后,网络设备需要根据这些标记来决定将其送入哪个内部队列(即提供何种服务)。

1. 服务等级与内部优先级
设备内部有多个队列,对应不同的服务等级。最初有4种,后来扩展为8种,分别用数字7-0表示内部优先级,数字越大优先级越高。

  • CS7、CS6:通常用于网络协议控制流量(如路由协议),最高优先级。
  • EF (Expedited Forwarding):加速转发,用于低延迟、低抖动的业务,如语音。
  • AF4、AF3、AF2、AF1 (Assured Forwarding):确保转发,用于需要保证带宽的业务,如视频、重要数据。
  • BE (Best Effort):尽力而为,用于普通业务,如网页浏览、邮件。

2. DSCP与DS Codepoint Name
IP报文目前主要使用DSCP字段进行标记,它占6个比特,取值范围为0-63。为了便于理解和使用,RFC标准定义了一些有特殊意义的DSCP值,并给它们起了名字,称为 DS Codepoint Name

  • CS类DSCP = 8 * X (X=1~7)。例如 CS6 = 48, CS5 = 40。这类值的高3位与旧的IP Precedence完全兼容。
  • EF:值为46,固定用于加速转发。
  • AF类DSCP = 8 * X + 2 * Y。其中X代表AF等级(4,3,2,1),Y代表丢弃优先级(1,2,3)。例如 AF41=34, AF42=36, AF43=38。
    • X(等级):决定报文进入哪个队列(如AF4队列)。
    • Y(丢弃优先级):当队列发生拥塞时,决定在同一队列内报文的丢弃顺序,Y值越大,越先被丢弃。
  • BE:值为0。

3. 标记到队列的映射
设备收到报文后,会根据其DSCP值,通过预定义的映射表,将其分配到相应的内部优先级队列中。例如:

  • DSCP 46(EF) -> 映射到内部优先级5 (EF队列)
  • DSCP 34(AF41) -> 映射到内部优先级4 (AF4队列)
  • DSCP 0(BE) -> 映射到内部优先级0 (BE队列)


总结

本节课中我们一起学习了QoS的核心知识。

  1. QoS的作用:在网络带宽有限的条件下,通过区分不同流量的优先级来保障关键业务的服务质量。
  2. 服务模型:重点掌握了区分服务模型,它通过“边缘分类标记,内部依标服务”的方式,高效地实现了流量差异化处理。
  3. 分类与标记:理解了简单流分类(基于原有标记)和复杂流分类(基于多重规则)的区别与配合。掌握了IP报文使用DSCP(0-63)进行标记,并认识了DS Codepoint Name(如EF、AF41、CS6等)的含义及其与内部服务队列的映射关系。

这些概念是理解和配置具体QoS技术(如流量监管、整形、队列调度等)的基础。下节课我们将通过实验来加深对这些知识的理解。

华为认证HCIE Datacom课程:P124:QoS分类标记实验与令牌桶技术详解

在本节课中,我们将深入学习QoS(服务质量)中的两个核心实践环节:流量的分类与标记,以及实现限速的基础理论——令牌桶技术。我们将通过实验演示如何对不同类型的流量进行分类和重标记,并详细解释令牌桶如何通过不同的算法来控制网络流量速率。

外部优先级与内部优先级映射

上一节我们介绍了QoS的基本概念,本节中我们来看看优先级的具体映射过程。

要在网络设备上执行不同的QoS动作,需要依据报文的优先级。这个优先级分为外部优先级和内部优先级。

  • 外部优先级:指报文自身携带的优先级标记,例如以太网帧中的 802.1p、IP报文中的 IP PrecedenceDSCP 字段。
  • 内部优先级:指网络设备内部为处理报文而定义的优先级等级,通常称为队列。设备内部一般有多个队列(如队列7、队列6……队列0),数值越大,优先级越高。

设备的工作机制是将报文携带的外部优先级映射到设备内部的队列中。这个过程可以类比乘坐高铁:你的车票(外部优先级)决定了你能进入哪个车厢(内部队列),从而获得相应的服务(如商务座、一等座服务)。

报文在设备内部的转发过程中会经历两次映射:

  1. 入方向映射:报文进入设备接口时,根据其外部优先级被映射到对应的内部队列中。
  2. 出方向映射:报文离开设备接口前,设备会根据其内部队列(或策略)为报文打上新的外部优先级标记。

复杂流分类与简单流分类的应用

理解了优先级映射,我们来看看如何对流量进行分类。QoS分类主要有两种方式:复杂流分类和简单流分类。

它们的典型应用场景如下:

  • 复杂流分类:通常在DiffServ域的边界设备上使用。因为它可以基于报文的多种特征(如源/目的IP、协议、端口等)进行精细化的识别和分类,然后对报文进行重标记(即修改其外部优先级)。
  • 简单流分类:通常在DiffServ域的内部设备上使用。因为此时报文已经被边界设备标记好了统一的优先级,内部设备只需根据这个已有的标记(如DSCP值)将其映射到相应的内部队列即可,处理速度快。

这就像在高铁站:售票处(边界节点)需要核查你的多种信息(复杂流分类)来决定给你什么座位的车票(重标记);上车后,你只需出示车票(简单流分类)即可进入对应车厢获得服务。

接下来,我们通过一个实验来具体演示复杂流分类和标记的过程。

实验:基于目的IP的流量分类与标记

以下是实验拓扑和配置步骤,目标是让AR1作为DS边界节点,对来自PC的流量进行分类并重标记DSCP值。

1. 实验拓扑与基础配置
我们使用三台路由器(AR1, AR2, AR3)和一台PC。在AR3上创建三个环回口模拟不同服务器。

  • 3.3.3.3 模拟语音流量。
  • 3.3.3.4 模拟FTP流量。
  • 3.3.3.5 模拟其他流量。

配置各接口IP地址,并运行OSPF协议保证全网路由可达。

2. 配置ACL匹配流量
首先,在AR1上创建ACL,根据目的IP来区分不同类型的流量。

acl number 3000
 rule 5 permit ip destination 3.3.3.3 0  # 匹配语音流量
acl number 3001
 rule 5 permit ip destination 3.3.3.4 0  # 匹配FTP流量
# 注意:其他流量无需用ACL单独匹配,可使用默认类。

3. 配置流分类
使用MQC模块,创建流分类,并调用上述ACL作为匹配条件。

traffic classifier VOIP  // 创建名为VOIP的流分类
 if-match acl 3000       // 匹配ACL 3000
traffic classifier FTP   // 创建名为FTP的流分类
 if-match acl 3001       // 匹配ACL 3001

4. 配置流行为(重标记)
创建流行为,定义需要执行的动作,此处为重标记DSCP值。

traffic behavior VOIP-MARK
 remark dscp ef          // 将DSCP标记为EF(对应十进制46,常用于语音)
traffic behavior FTP-MARK
 remark dscp af41        // 将DSCP标记为AF41(保证转发,用于FTP等业务)
traffic behavior DEFAULT-MARK
 remark dscp 0           // 将DSCP标记为0(尽力而为服务)

5. 配置并应用流策略
将流分类和对应的流行为绑定到流策略中,并应用在AR1连接PC的入方向接口上。

traffic policy TEST      // 创建名为TEST的流策略
 classifier VOIP behavior VOIP-MARK     // 绑定VOIP分类和行为
 classifier FTP behavior FTP-MARK       // 绑定FTP分类和行为
 classifier default-class behavior DEFAULT-MARK // 绑定默认分类和行为

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/2cbffe3346bcd594cd83ffd64b842ea4_87.png)

interface GigabitEthernet0/0/1
 traffic-policy TEST inbound  // 在接口入方向应用流策略

6. 验证结果
配置完成后,从PC ping不同的目的地址,并在AR1的出方向抓包,可以观察到ICMP请求报文的DSCP字段已被修改为预设值(如EF、AF41、0),证明复杂流分类和标记成功。

MQC结构与规则执行顺序

在上面的实验中,我们使用了MQC(模块化QoS命令行)配置。一个完整的流策略由以下部分组成:

  • 流分类:定义匹配规则。一个流分类下可配置多个if-match子句,它们之间默认是逻辑或的关系,匹配任一即生效。可通过operator修改为逻辑与
  • 流行为:定义执行动作。一个流行为下可配置多个动作(如remarkredirect),这些动作是同时执行的。如果动作间有冲突(如对同一字段多次重标记),后配置的命令会覆盖先前的命令。
  • 流策略:将流分类和流行为关联起来,形成完整的处理规则。

令牌桶技术:限速的理论基础

完成了分类和标记,下一步就是为不同优先级的流量提供具体的服务,例如限速。网络设备中的限速功能(如监管和整形)其核心算法基于令牌桶

令牌桶可以想象为一个存放令牌的容器,报文需要获取令牌才能被转发。控制令牌的生成和消耗就能控制速率。

1. 单桶单速双色标记法
这是最简单的模型,涉及三个关键参数:

  • CIR:承诺信息速率。令牌放入桶中的速率,单位kbps。
  • CBS:承诺突发尺寸。桶的容量,单位字节。
  • TC:桶中当前的令牌数。

工作过程:

  1. 系统以CIR的速率向桶中投放令牌,桶满则溢出(令牌丢弃)。
  2. 报文到达时,假设大小为B字节。
  3. 如果 TC >= B,则报文被标记为绿色并转发,同时从桶中取走B个令牌。
  4. 如果 TC < B,则报文被标记为红色并丢弃。

这种模型简单直接,要么转发,要么丢弃。

2. 双桶单速三色标记法
为了允许短暂的流量突发,引入了第二个桶(E桶)。

  • CIR:承诺信息速率,向C桶投放令牌的速率。
  • CBS:C桶的容量。
  • EBS:E桶的容量(通常 EBS > CBS)。
  • TC/TE:C桶/E桶当前的令牌数。

工作过程:

  1. 令牌优先放入C桶,C桶满后再放入E桶。
  2. 报文到达时,假设大小为B字节。
  3. 如果 TC >= B,报文标记为绿色转发(在承诺速率内)。
  4. 如果 TC < BTE >= B,报文标记为黄色转发(允许突发,但服务质量可能降低)。
  5. 如果 TE < B,报文标记为红色丢弃(突发也超出限度)。

这允许用户在承诺速率之外,有短暂的突发流量通过。

3. 双桶双速三色标记法
为了允许较长时间的突发,引入了第二个速率(PIR)。

  • CIR:承诺信息速率,向C桶投放令牌的速率。
  • PIR:峰值信息速率,向P桶投放令牌的速率(PIR > CIR)。
  • CBS/PBS:C桶/P桶的容量。
  • TC/TP:C桶/P桶当前的令牌数。

工作过程:

  1. 系统同时以CIR向C桶投牌,以PIR向P桶投牌。
  2. 报文到达时,假设大小为B字节。
  3. 如果 TP < B,报文标记为红色丢弃(超过峰值速率)。
  4. 如果 TP >= BTC < B,报文标记为黄色转发(在峰值内但超出承诺速率,即长期突发)。
  5. 如果 TP >= BTC >= B,报文标记为绿色转发(在承诺速率内)。

这种模型为用户提供了承诺速率和更高的峰值速率,适合有周期性突发需求的业务。

总结

本节课中我们一起学习了QoS实践中的关键步骤。

  1. 我们掌握了外部优先级内部优先级的映射关系,这是设备提供差分服务的基础。
  2. 我们通过实验演示了如何使用MQC工具进行复杂流分类,并基于目的IP对流量进行重标记(DSCP),为后续的精细化服务控制做好了准备。
  3. 我们深入探讨了令牌桶技术,理解了单桶单速、双桶单速和双桶双速三种算法的工作原理及其应用场景(简单限速、允许短暂突发、允许长期突发),这为下一节学习具体的限速技术(监管与整形)奠定了坚实的理论基础。

通过本节课的学习,你应该能够理解QoS如何从识别流量开始,一步步为其打上标记,并准备通过令牌桶等机制实施具体的速率控制策略。

QoS技术详解:P125:QoS-整形、监管、拥塞管理

概述

在本节课中,我们将学习QoS(服务质量)中的三个核心技术:流量整形、流量监管和拥塞管理。我们将了解它们的工作原理、区别、应用场景以及配置方法,帮助你掌握如何对网络流量进行有效的控制和优化。


令牌桶回顾与流量评估

上一节我们介绍了令牌桶算法,它是一种对流量速率进行评估的工具。

令牌桶算法本身只负责计算和评估流量的速率,并基于令牌的可用性为报文标记颜色(例如绿色、黄色、红色)。然而,评估之后需要对报文采取具体的动作,比如转发、丢弃或修改优先级。这就像测速仪只检测车速,但超速后的罚款或警告是由后续的执法措施来执行的。

因此,令牌桶是速率评估的工具,而后续的“惩罚性措施”或处理动作,则由我们接下来要讲的监管和整形技术来实现。


流量监管:削峰不填谷

流量监管的本质是限速。它的核心特征是“削峰不填谷”。

工作原理

流量监管通常采用CAR(承诺访问速率)方式。当在接口上配置CAR限速后,系统会根据令牌桶的评估结果,对不符合规定的报文直接采取丢弃动作,对符合规定的报文则进行转发。

以下是监管的处理逻辑:

  • 绿色报文:符合规定,转发。
  • 黄色报文:允许临时突发,但提供尽力而为的转发服务(可配置为转发或降级)。
  • 红色报文:超出规定,丢弃。

“削峰不填谷”的含义是:

  • 削峰:当流量速率试图超过限制值时,会被强制限制在峰值以下。
  • 不填谷:当实际流量速率低于限制值时,就按照实际速率转发,不会利用空闲带宽去发送缓存的数据。速率曲线不会超过限制线。

应用场景

流量监管应用广泛,一般需要进行限速的场景都可以使用。一个典型例子是在网络出口侧,对不同业务流量进行带宽限制。

例如,局域网以100M速率向广域网2M出口发送数据,必然拥塞。假设数据流量(如文件下载、视频流)占用了绝大部分带宽,而语音、视频会议等关键业务带宽不足。此时,可以通过监管技术,匹配所有数据流量并将其限速在1M,从而保障另外1M带宽专供语音和视频业务使用,防止非关键业务抢占关键业务资源。

配置演示

以下是一个基于接口入方向、对特定目的IP流量进行监管的配置示例:

interface GigabitEthernet0/0/0
 qos car inbound acl 3000 cir 5000
  • acl 3000 匹配目的IP为 3.3.3.3 的流量。
  • cir 5000 表示承诺信息速率为5000 Kbps(即5Mbps)。
  • 此配置将对匹配的流量进行监管,超出5Mbps的部分报文将被丢弃。

核心概念:监管是一种严格的限速,限制的是流量使用的上限,超速部分直接丢弃,不进行缓存。


流量整形:削峰填谷

流量整形的本质也是限速,但其特征与监管不同,我们称之为“削峰填谷”。

工作原理

流量整形只能在接口的出方向使用,因为它依赖于出方向的缓冲区(队列)来实现。

其工作流程如下:

  1. 流量经过整形令牌桶评估。
  2. 符合速率(绿色)的报文被立即发送。
  3. 超出速率(红色)的报文不会被直接丢弃,而是进入缓存队列中暂存。
  4. 当链路空闲、令牌桶有足够令牌时,再将缓存队列中的报文取出发送。

“削峰填谷”的含义是:

  • 削峰:流量峰值被限制在设定值以下。
  • 填谷:当链路空闲时,利用空闲带宽发送之前缓存的报文,使得整体输出速率曲线更加平滑。

与监管的区别

以下是整形与监管的核心区别:

对比项 流量整形 (GTS) 流量监管 (CAR)
应用方向 仅能在出方向使用 出、入方向均可使用
丢包率 较低(超速报文缓存) 较高(超速报文丢弃)
延迟 较高(引入缓存排队延迟) 较低(无缓存延迟)
对超限报文的处理 缓存 丢弃
核心比喻 削峰填谷 削峰不填谷

应用场景

整形适用于对丢包敏感,但对延迟有一定容忍度的流量。例如,在按流量计费的广域网链路上,如果使用监管,超速丢包会导致TCP重传,增加额外的流量费用。使用整形可以将超速报文缓存,待链路空闲时再发送,减少了不必要的重传,从而节约成本。

配置方式

流量整形主要有三种配置方式:

  1. 接口整形:对整个接口的所有出向流量生效。
    interface GigabitEthernet0/0/1
     qos gts cir 100000
    
  2. 基于流策略的整形:对符合流分类特征的流量生效。
    traffic behavior b1
     gts cir 1000
    
  3. 基于队列的整形:对特定队列的流量生效。
    qos queue 6 gts cir 1000
    

拥塞管理

当网络入口流量大于出口链路容量时,就会发生拥塞。拥塞会导致延迟增加、抖动变大、丢包,最终表现为网络卡顿。

解决拥塞问题主要有两种思路:

  • 拥塞避免:在拥塞发生前,主动丢弃部分报文来避免队列被填满,防患于未然。
  • 拥塞管理:在拥塞已经发生时,如何调度和丢弃报文,类似于交警疏导交通。

本节我们重点讲解拥塞避免

传统尾丢弃(Tail Drop)及其缺陷

最早的丢包策略是尾丢弃:当队列被填满后,后续到达的所有报文都被丢弃。

尾丢弃存在三个主要缺陷:

  1. TCP全局同步:队列满导致多个TCP连接同时丢包,这些连接同时进入慢启动阶段,降低窗口,导致链路利用率出现波浪式起伏,无法平稳。
  2. TCP饿死:不感知报文类型的尾丢弃,可能使行为“文明”的TCP流量不断减少,而“野蛮”的UDP流量持续占用带宽。
  3. 无差别丢弃:无法区分报文优先级,可能导致重要的报文被丢弃,而不重要的报文却被转发。

早期随机检测(RED)

为了改善尾丢弃的缺陷,提出了RED技术。它为队列设置两个阈值:低门限高门限,以及一个最大丢弃概率

  • 队列长度低于低门限:不丢包。
  • 队列长度在低门限与高门限之间:以一定概率随机丢弃报文,概率随队列长度增加而线性增大。
  • 队列长度高于高门限:执行尾丢弃。

RED通过随机早期丢弃,避免了多个TCP流同时超时,缓解了TCP全局同步问题。但它仍然是随机丢弃,无法区分报文优先级。

加权早期随机检测(WRED)

WRED是RED的增强版,它解决了报文优先级区分的问题。

WRED可以为不同优先级(如DSCP值)的报文设置不同的丢弃门限和概率。配置原则通常是:优先级越低的报文,其低门限设置得越低,丢弃概率设置得越高;优先级越高的报文,其低门限设置得越高,丢弃概率设置得越低。

工作流程示例

  1. 队列长度达到20%时,开始丢弃 DSCP=0(低优先级)的报文。
  2. 队列长度达到30%时,开始丢弃 DSCP=1(中优先级)的报文。
  3. 队列长度达到40%时,开始丢弃 DSCP=2(高优先级)的报文。

这样,就在拥塞加剧的过程中,实现了“先丢不重要的,实在不行再丢重要的”目标。

WRED配置示例

以下是一个创建WRED丢弃模板并应用到队列的示例:

# 创建WRED丢弃模板,命名为wred1
drop-profile wred1
 wred dscp
  dscp 0 low-limit 20 high-limit 60 discard-percentage 50
  dscp 1 low-limit 30 high-limit 70 discard-percentage 40
  dscp 2 low-limit 40 high-limit 80 discard-percentage 30

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/6379c7de40036030a9247f056e96d93a_95.png)

![](https://github.com/OpenDocCN/cs-notes-pt1-zh/raw/master/docs/ccie-ccna-ccnp/img/6379c7de40036030a9247f056e96d93a_96.png)

# 在队列配置模板中调用该丢弃模板
qos queue-profile qp1
 queue 5 drop-profile wred1

此配置意味着在队列5中,当队列占用达到20%时,开始丢弃DSCP为0的报文,最大丢弃概率50%;达到30%时,开始丢弃DSCP为1的报文;达到40%时,开始丢弃DSCP为2的报文。


总结

本节课我们一起深入学习了QoS的三大核心机制:

  1. 流量监管 (CAR):一种“削峰不填谷”的严格限速,超速报文直接丢弃,常用于一般性的带宽限制。
  2. 流量整形 (GTS):一种“削峰填谷”的温和限速,超速报文进行缓存,常用于减少重传、平滑流量的场景。
  3. 拥塞避免 (RED/WRED):一种主动的队列管理机制,通过在队列填满前随机丢弃报文来避免拥塞。其中WRED能够区分报文优先级,实现更智能的丢弃策略,保障高优先级业务。

理解这些技术的原理、区别和适用场景,是设计和部署高质量网络服务的关键。下一节,我们将通过综合实验来串联这些技术,加深理解。

QOS课程:P126:拥塞管理技术详解与综合实验

概述

在本节课中,我们将学习QOS(服务质量)体系中的核心环节——拥塞管理技术。我们将了解当网络接口发生拥塞时,如何通过队列技术对不同优先级的报文进行差异化调度,从而保证关键业务的服务质量。课程将从队列的基本概念讲起,介绍不同的调度算法,并通过一个综合实验演示如何将分类、标记、拥塞避免和拥塞管理技术组合应用,构建一个完整的QOS解决方案。


队列的基本概念

上一节我们介绍了拥塞避免技术,本节我们来看看拥塞管理。拥塞管理是在网络接口发生拥塞时,为了保证不同报文的优先级,将区分出来的报文引导到不同“队列”中进行转发的技术。

队列可以类比为高铁的不同车厢。报文携带的优先级标记(如DSCP值)就像车票,决定了它进入哪个“车厢”(即队列)。在路由器或交换机中,这个“车厢”就是不同的队列。

以下是关于队列的几个核心要点:

  • 队列数量:设备上通常有8个队列,编号为0到7。
  • 队列的本质:队列是一种抽象的逻辑概念,而非物理上独立的内存块。所有报文实际上缓存在同一块硬件内存中,我们通过策略将具有特定特征的报文(如相同DSCP值)逻辑上归为一类,形成一个队列。
  • 队列与服务的绑定:真正决定报文得到何种服务(如是否优先转发、是否容易被丢弃)的是绑定在队列上的策略。报文进入某个队列,就获得了该队列所配置的服务。


队列调度算法

队列本身决定报文去向,而报文何时被转发出去,则由队列的调度算法决定。调度算法定义了队列获得服务的顺序和比例。

设备上主要有三种基础的调度算法:

  1. FIFO (First In First Out,先进先出)
    • 公式/逻辑转发顺序 = 报文进入队列的先后顺序
    • 这是最简单的调度方式,没有优先级区分。先进入队列的报文先被转发,后进入的后被转发。传统网络在没有配置QOS时,默认就采用这种方式。

  1. SP (Strict Priority,严格优先级)
    • 逻辑:严格按照队列的优先级顺序进行调度。只有所有高优先级队列中的报文都被发送完毕后,才会调度低优先级队列。
    • 优点:能为高优先级业务提供低延迟保障。
    • 缺点:如果高优先级队列持续有流量,低优先级队列可能永远得不到服务,产生“饿死”现象。

  1. WFQ (Weighted Fair Queuing,加权公平队列)
    • 逻辑:一种较为复杂的调度方式,旨在平衡不同流的延迟。它不仅考虑报文进入的顺序,还会综合参考报文长度报文的DSCP值(权重)
    • 调度特点
      • 短报文优先得到调度机会。
      • DSCP值越大(优先级越高),获得的调度机会也相对更多。
      • 从统计上看,权重(DSCP值)越大的流,最终分配到的带宽也越多。
    • 优点:能公平地为不同队列提供调度机会,整体上均衡各流的延迟,避免低优先级流“饿死”。


端口队列与分层调度

在实际设备的接口上,8个队列可以被分组,并应用不同的调度算法,形成一种分层调度的结构。

通常可以将队列分为三组:

  1. PQ队列 (Priority Queuing):采用SP调度算法。通常将最高优先级的几个队列(如队列7、6、5)划入此组。
  2. WFQ队列:采用WFQ调度算法。通常将中间优先级的队列(如队列4、3、2、1)划入此组。
  3. LPQ队列 (Low Priority Queuing):采用SP调度算法。通常将最低优先级的队列(如队列0)划入此组。

分层调度过程如下

  1. 系统首先调度PQ队列组。在PQ组内部,按照SP算法,优先调度队列7,然后是6,最后是5。
  2. 当PQ组为空时,开始调度WFQ队列组。在WFQ组内部,按照WFQ算法(综合考虑报文大小和DSCP值)调度队列4、3、2、1。
  3. 当WFQ组也为空时,最后调度LPQ队列组。在LPQ组内部,按照SP算法调度队列0。

注意:不同设备型号、不同单板支持的队列调度技术可能不同(如还有CBWFQ、LLQ等),具体配置需参考设备手册。本节介绍的是经典模型。


拥塞管理生效时机与配置逻辑

拥塞管理技术仅在接口发生拥塞时才会生效。如果接口流量畅通,没有出现缓存排队现象,那么配置的队列调度策略将不起作用。

配置拥塞管理的核心逻辑是:

  1. 分类与标记:通过复杂流分类(如基于五元组)为不同业务流量打上不同的优先级标记(如DSCP EF、AF41等)。
  2. 映射入队:在设备内部,根据优先级标记(DSCP/IP Precedence/802.1p)到本地队列(Local Priority)的映射关系,将报文送入相应的队列(0-7)。这个映射关系可以查看和修改。
    display qos map-table dscp-lp  // 查看DSCP值到队列号的默认映射
    qos map-table dscp-lp input 46 output 6  // 修改DSCP 46(EF)映射到队列6
    
  3. 配置队列属性:为不同的队列配置调度算法(PQ/WFQ)、带宽保证或限制、以及可选的拥塞避免(如WRED丢弃模板)。
  4. 应用策略:将队列配置模板应用到具体的出接口上。


QOS综合实验演示

接下来,我们将通过一个实验,把之前学到的QOS技术串联起来,构建一个从分类标记到拥塞管理的完整流程。

实验拓扑与规划

  • PC1 -> AR1 -> AR2 -> AR3 -> AR4
  • 业务规划
    • 语音流量:目的IP为4.4.4.4,标记为DSCP EF,计划放入队列6(PQ调度)。
    • FTP流量:目的IP为4.4.4.5,标记为DSCP AF41,计划放入队列4(WFQ调度,并应用WRED)。
    • 其他流量:目的IP为4.4.4.6,标记为DSCP 0(Default),放入队列0(WFQ调度)。
  • 域规划:AR1-AR3为一个DS域,AR4为另一个DS域(模拟不同运营商网络)。

配置步骤简述

  1. 在AR1(DS边界节点)进行复杂流分类与标记
    • 使用ACL抓取不同目的IP的流量。
    • 创建流分类、流行为(进行remark dscp),并绑定成流策略。
    • 在PC1侧的入接口调用该流策略。
    // 示例:标记语音流量为EF
    traffic classifier VOICE
     if-match acl 3000  // ACL匹配目的IP 4.4.4.4
    traffic behavior VOICE
     remark dscp ef
    traffic policy MARK
     classifier VOICE behavior VOICE
     // ... 其他分类和行为
    interface GigabitEthernet0/0/0
     traffic-policy MARK inbound
    

  1. 在AR2(DS域内部节点)进行信任与队列调度
    • 在AR2的入接口信任AR1发来的DSCP标记(trust dscp)。
    • 修改DSCP到队列的映射,将EF(46)映射到队列6。
    • 创建队列模板,指定队列6为PQ,队列4、0为WFQ。
    • 为队列4创建并应用WRED丢弃模板,实现拥塞避免。
    • 将队列模板应用到出接口。
    interface GigabitEthernet0/0/0
     trust dscp
    qos map-table dscp-lp input 46 output 6
    qos queue-profile TEST
     queue 6 pq
     queue 4 wfq
     queue 0 wfq
     queue 4 wred af41  // 对队列4应用AF41的WRED模板
    interface GigabitEthernet0/0/1
     qos queue-profile TEST
    

  1. 在AR4(另一个DS域边界)进行流量监管(SLA)
    • 模拟与另一个运营商签署服务等级协定(SLA)。例如,承诺带宽(CIR)为10M,峰值带宽(PIR)为20M。
    • 在AR4的入接口配置流量监管。
    • 对在承诺带宽内的流量(绿色)正常转发。
    • 对超出承诺带宽但在峰值内的流量(黄色)进行降级(如remark dscp af21)后转发。
    • 对超出峰值带宽的流量(红色)丢弃。
    traffic behavior CAR
     car cir 10000 pir 20000
     green pass
     yellow pass remark dscp af21
     red discard
    

实验关键点总结

  • QOS是端到端的:需要在数据流经过的每一跳设备上都进行正确配置,任何一环的缺失都会影响整体效果。
  • 双向部署:业务通信是双向的,因此需要在往返两个方向上都部署QOS策略。
  • 配置方式多样:除了上述基于队列模板的配置,还可以使用MQC方式直接配置(CBWFQ/LLQ),在流行为中直接指定队列类型和带宽。
    • LLQ/EF队列:配置带宽上限,拥有绝对优先调度权,但用量受限。
    • AF队列:配置带宽下限,得到带宽保证,并可占用空闲带宽。
    • BE队列:使用剩余带宽。


总结

本节课我们一起深入学习了QOS中的拥塞管理技术。我们首先理解了队列是抽象的逻辑概念,以及FIFO、SP、WFQ三种基本调度算法的工作原理。接着,我们了解了实际设备中端口队列的分层调度模型(PQ/WFQ/LPQ)。最后,通过一个综合实验,我们将流量分类、标记、优先级映射、队列调度、拥塞避免以及跨域的流量监管等技术串联起来,演示了一个完整的QOS部署框架。

关键要点回顾:

  1. 拥塞管理在接口拥塞时生效,通过队列技术实现差分服务。
  2. SP调度保证低延迟但可能“饿死”低优先级流;WFQ调度更公平。
  3. QOS部署是端到端且双向的工程。
  4. 掌握配置逻辑框架(分类->标记->信任->映射入队->队列调度)比死记命令更重要,因为不同设备命令差异可能很大。

希望本教程能帮助你建立起对QOS拥塞管理技术的清晰认识。

华为认证HCIE Datacom课程:P127:HQOS - 层次化服务质量

概述

在本节课中,我们将要学习传统QoS的局限性以及华为提出的解决方案——层次化服务质量。我们将了解HQOS的基本概念、工作原理、应用场景及其配置逻辑,特别是它在区分不同用户和不同业务流量方面的优势。


传统QoS的局限性

上一节我们通过实验回顾了流量管理、拥塞避免、流量分类、标记等传统QoS技术。本节中我们来看看传统QoS存在的一个主要问题。

传统QoS基于接口进行调度,一个接口只有8个队列。在多租户场景下,这个限制会变得非常明显。例如,一个网络出口连接了多个用户,这些用户购买了不同带宽和业务套餐。传统QoS无法基于具体的用户来执行差异化的QoS策略,因为它只能区分业务的优先级,而无法区分不同用户的相同业务。

HQOS的核心概念

为了解决传统QoS的局限性,我们引入了层次化服务质量。它的核心思想是将队列调度分为多个层级,从而实现更精细化的控制。

HQOS的模型类似于传统QoS的层次化扩展。以下是其基本结构:

  1. 流队列:这是最底层的队列。针对同一个用户的不同业务流量(如语音、视频、FTP),会进入不同的流队列。我们可以在这个层级使用调度算法(如PQ、WFQ)来区分同一用户内部不同业务的优先级。

    • 公式/概念用户A的语音流量 -> 流队列1 (高优先级)用户A的FTP流量 -> 流队列2 (低优先级)
  2. 用户队列:每个用户拥有自己的用户队列。来自该用户所有流队列的流量,在经过流队列层级的调度后,会汇聚到其对应的用户队列中。在这个层级,我们可以使用调度算法来区分不同用户之间的优先级。

    • 公式/概念用户A的所有流量 -> 用户队列A用户B的所有流量 -> 用户队列B;调度器决定优先调度用户队列A还是B。

  1. 接口队列:这是最终的出口队列。所有用户的用户队列流量最终都会进入物理接口的接口队列。在接口队列层级,通常采用轮询调度算法,以保证最基本的公平性。
    • 公式/概念调度方式 = RR (Round Robin,轮询)。例如,对于100M带宽的8个接口队列,RR调度会试图让每个队列平均获得约12.5M的带宽。

核心优势

  • 流队列层面,实现了对同一用户不同业务的区分服务。
  • 用户队列层面,实现了对不同用户的区分服务。
  • 接口队列层面,保证了基本的公平性。

HQOS的调度与整形

理解了HQOS的三级队列模型后,我们来看看调度和整形在这些层级上是如何工作的。

HQOS支持在每一级队列上进行调度和整形。

  • 调度
    • 流队列 -> 用户队列:可使用PQ、WFQ等。
    • 用户队列 -> 接口队列:可使用PQ、WFQ等。
    • 接口队列 -> 出接口:通常使用RR调度。

  • 整形
    设备支持三级整形器,可以对流队列、用户队列和接口队列分别进行整形,以控制其发送速率。

    • 公式/概念GTS (Generic Traffic Shaping) 可应用于每一级队列
  • 丢弃

    • 流队列支持配置WRED,实现基于优先级的早期随机丢弃。
    • 用户队列和接口队列通常只支持尾丢弃。当队列满时,新到的报文将被丢弃。

HQOS的应用举例

为了让概念更清晰,我们来看一个HQOS的典型应用场景。

假设一栋楼内有三个家庭(用户):

  • 家庭A:购买了10M套餐,包含语音(VoIP)、视频(IPTV)和上网(HSI)业务。
  • 家庭B:购买了20M套餐,包含视频(IPTV)和上网(HSI)业务。
  • 家庭C:购买了30M套餐,仅包含上网(HSI)业务。

网络设备(如AR路由器)的配置思路如下:

  1. 流队列配置:为每个家庭的不同业务类型创建流队列。例如,为家庭A的语音、视频、上网流量分别分配流队列,并设置语音为最高优先级(PQ)。
  2. 用户队列配置:为家庭A、B、C分别创建用户队列。可以根据套餐设置其权重或优先级。例如,家庭C的30M用户队列可能获得比家庭A的10M用户队列更高的调度权重(WFQ)。
  3. 接口队列与整形:在物理出口,设置接口队列整形为60M(假设总带宽为60M)。同时,可以为家庭A的语音流队列设置2M的整形器,确保即使其优先级高,也不会占用超过2M的带宽,从而影响其他用户的公平性。

HQOS的配置逻辑

HQOS的配置比传统QoS复杂,它采用了一种嵌套的策略结构。

其核心配置逻辑如下:

  1. 创建子策略:使用传统的MQC方式,针对不同的业务流量进行分类和行为绑定。这个子策略定义了如何对待某一类业务(例如,将语音流量标记为EF并放入PQ队列)。

    • 代码示例(逻辑)
      traffic classifier VOICE // 匹配语音流量
      if-match ...
      traffic behavior VOICE-HANDLING // 定义语音处理行为
      queue ef
      traffic policy SUB_POLICY // 创建子策略
      classifier VOICE behavior VOICE-HANDLING
      
  2. 创建父策略:创建一个父策略,其分类器用于匹配特定的用户(例如,通过VLAN ID匹配家庭A的所有流量)。其行为是调用前面创建的子策略。

    • 代码示例(逻辑)
      traffic classifier USER-A // 匹配用户A(如VLAN 10)
      if-match vlan-id 10
      traffic behavior APPLY-SUB-POLICY // 定义行为:应用子策略
      traffic-policy SUB_POLICY
      traffic policy PARENT_POLICY // 创建父策略
      classifier USER-A behavior APPLY-SUB-POLICY
      
  3. 应用策略:将父策略应用到物理接口或子接口上。

这种“父策略调用子策略”的嵌套方式,正是HQOS实现“用户-业务”两级层次化调度的关键。父策略区分用户,子策略区分该用户内部的业务。

总结

本节课中我们一起学习了层次化服务质量。

  • 我们首先分析了传统QoS在区分不同用户方面的局限性。
  • 接着,我们深入探讨了HQOS的三级队列模型:流队列用户队列接口队列,理解了它如何在多个层级上实现精细化的调度。
  • 我们看到了HQOS如何应用于多租户场景(如家庭宽带),为不同用户和不同业务提供差异化的服务质量保证。
  • 最后,我们了解了HQOS基于MQC的嵌套式配置逻辑,即通过父策略匹配用户,再调用子策略处理用户内部的具体业务。

HQOS是构建可管理、可运营网络的重要工具,尤其在需要基于用户进行资源控制和计费的场景中发挥着关键作用。

华为认证HCIE Datacom课程:P128:SR产生背景

在本节课中,我们将要学习Segment Routing(段路由,简称SR)技术的产生背景。我们将了解传统网络技术面临的挑战,以及SR作为一种新的技术架构是如何应运而生的,它解决了哪些核心问题。

课程内容调整说明

上一节我们完成了其他技术主题的讲解。本节中,我们来看看SR和SRV6相关内容。

由于课程时间安排,后续关于SR的详细讲解将以录播形式提供。学员可以通过指定平台(如“大黄蜂”)观看相关录播课程。本次直播课程将重点介绍SR的产生背景和核心思想。

一、什么是Segment Routing(SR)? 🧩

SR翻译为“段路由”,是一种基于源路由理念设计的、在网络上转发数据包的技术架构。

这里需要解释两个核心概念:

  • 技术架构:指一套完整的技术框架和设计思想,通常涉及面较广。
  • 源路由:与传统“基于目的IP地址”的转发方式不同,源路由是指在发送报文的源端就预先规定好报文需要经过的路径。路径上的设备只需根据报文携带的路径信息进行转发,而不再仅仅依赖目的IP地址。

传统IP转发(基于目的地址)

设备A ->(看目的IP)-> 设备B ->(看目的IP)-> 设备C

源路由转发(如SR)

设备A ->(携带路径:B->C)-> 设备B ->(按路径指示给C)-> 设备C

二、传统承载网技术的挑战 ⚙️

在SR出现之前,承载网(如运营商骨干网)主要运行MPLS技术,其实现方式主要有两种:LDP用于“尽力而为”转发,RSVP-TE用于“流量工程”。但它们都存在一些固有缺陷。

1. MPLS LDP的问题

LDP协议本身没有算路能力,需要依赖IGP(如OSPF、IS-IS)计算路由。这带来了以下问题:

  • 控制平面复杂:设备需要同时运行IGP和LDP两种控制协议,消耗CPU和内存资源。
  • 运维复杂:技术人员需要学习并维护两套协议。
  • 协议不同步可能导致流量黑洞:当网络故障时,IGP收敛速度与LDP会话重建速度可能不一致,导致流量丢失。

2. MPLS RSVP-TE的问题

RSVP-TE用于实现流量工程,即对网络中流量的路径进行规划和编排,而不仅仅是走最短路径。

流量工程:可以简单理解为对网络流量的路径进行手动或自动的规划和控制。例如,让一部分流量走上面链路,另一部分走下面链路,以实现负载分担或避开拥塞。

RSVP-TE虽然强大,但同样存在显著缺点:

  • 协议本身非常复杂:报文结构、状态维护机制复杂,学习和部署难度大。
  • 分布式架构存在局限:每个设备只知道自己和邻居的状态,缺乏全局视角。路径计算依赖于设备间的频繁信令交互。
  • 不支持负载分担:在存在多条等价路径时,通常只能选择其中一条。

无论是LDP还是RSVP-TE,都使得网络控制平面变得复杂,难以适应快速变化的业务需求。

三、新思想的出现:业务驱动网络 🚀

随着5G和云时代的发展,网络应用数量激增,对连接质量(如低时延、高带宽)提出了更高要求。

如果依旧采用“网络适配业务”的旧思路(即业务上线后,再人工调整网络),将无法匹配业务的快速发展,并使网络运维变得极其复杂。

因此,产生了 “业务驱动网络” 的新思想:

  1. 业务应用直接向网络控制器(一个拥有全局视角的“大脑”)提出需求(例如:需要一条低时延的路径)。
  2. 控制器掌握全网实时的拓扑、带宽、时延等信息。
  3. 控制器计算出满足业务需求的最佳路径,并直接下发到网络设备上执行。

这种思想的核心是集中控制自动化,但需要在数据转发层面找到一种合适的实现技术。

四、为什么是Segment Routing? ✅

在众多SDN(软件定义网络)数据面技术中,SR最终成为广域网承载的主流选择,主要基于以下优势:

  • 平滑演进,兼容现有硬件:SR仍然使用MPLS标签进行数据转发,无需更换现有网络设备的硬件。只需通过软件升级将控制平面迁移到SR即可。这对运营商来说成本风险极低。
  • 支持分布式与集中式混合控制:SR既可以像传统协议一样分布式运行,也可以与控制器结合实现集中式控制。客户可以根据自身情况灵活选择,迁移路径平滑。
  • 简化控制平面:SR无需LDP和RSVP-TE这样复杂的独立信令协议。它通过对现有IGP协议进行扩展来分发“段”信息,极大简化了控制平面。
  • 基于源路由,状态无关:路径信息由源端携带,中间转发设备无需维护每条流的状态,只需根据标签进行转发,提高了扩展性和可靠性。

正是这些优势,使得SR能够很好地承载“业务驱动网络”的理念,成为下一代承载网演进的事实标准。

五、SR的核心思想简述 🧠

SR将网络抽象成一个个的“段”。每个“段”可以是指向某个设备的指令(如“去往设备D”),也可以是指向某条链路的指令(如“从接口X出去”)。每个“段”都有一个唯一的标识(Segment ID)。

SR路径的构建:通过将一系列“段”的标识有序排列,就能组合成一条完整的端到端转发路径。这就像规划旅行路线:“从北京(段A)坐高铁(段B)到郑州(段C),再换乘飞机(段D)到上海”。

网络源端设备将这个“段”序列压入报文头,报文就会像按照编好的程序一样,顺序经过指定的“段”到达目的地。

课程总结

本节课中我们一起学习了:

  1. SR的定义:一种基于源路由的转发架构。
  2. 传统技术的挑战:MPLS LDP和RSVP-TE在复杂性和灵活性上的不足。
  3. 新思想的驱动:“业务驱动网络”要求网络能够快速、自动响应业务需求。
  4. SR的胜出原因:凭借其兼容现网、平滑演进、简化控制面、支持集中式与分布式混合控制等核心优势,SR成为实现新一代承载网的理想技术。
  5. SR的核心思想:将网络路径分解为带标识的“段”,并通过组合“段”来构建转发路径。

理解SR的产生背景和核心思想,是后续深入学习其具体技术细节的基础。下节课,我们将开始探讨SR的基本概念和工作原理。

SR技术详解:P129:SR基本原理、ISIS SR扩展

概述

在本节课中,我们将深入学习Segment Routing(SR)的基本原理,特别是SR-MPLS的实现方式。我们将从SR的核心概念入手,理解其如何简化网络路径控制,并详细探讨IS-IS协议为支持SR所做的扩展。通过本课,您将掌握SR的工作机制、关键术语以及如何在网络中部署和验证SR。


SR核心思想回顾

上一节我们介绍了SR作为一种配合SDN思想落地的具体技术。SDN是一种控制与转发分离的思想,而SR则是实现这种思想在广域承载网上的关键技术。

我们可以将SDN思想比作“实现共同富裕”的目标,而SR技术则类似于为实现这个目标而采取的“改革开放”、“招商引资”等具体行动。SR技术最初在广域承载网上进行实践,就像改革开放初期将深圳作为试点一样。

SR基础概念

接下来,我们来看看SR技术涉及的一些关键概念。

Segment(段)与Segment ID(SID)

Segment,通常简称为“段”,是SR中最基本的概念。它本质上是一种指令,指导数据包在网络中的转发行为。

我们可以用一个旅行例子来理解:从北京到上海,指令“先到郑州”就是一个Segment。在网络中,如果路由器R1要访问R8,指令“先到R4”同样是一个Segment。

Segment ID,简称SID,是Segment的具体标识。它用于唯一标识一个指令。例如,指令“先到R4”可能被标识为SID 400。

在SR-MPLS中,SID使用MPLS标签来标识;而在SRv6中,SID则使用IPv6地址来标识。

路径控制示例

假设R1要访问R8,并且我们想控制路径为 R1 -> R4 -> R8。

  1. 网络规划时,为R4分配节点SID 400。
  2. R1在发送数据包时,压入SID 400的标签。
  3. R1看到标签400,知道需要将数据包发给R4。
  4. 数据包到达R4后,R4弹出自己的节点SID标签(400)。
  5. R4根据后续的转发信息(可能是另一个SID,或者目的IP),将数据包从指定接口(例如G0/0/2)发送给R8。

通过压入不同的SID序列,我们可以像编排剧本一样,精确控制数据包穿越网络的每一跳。

Segment列表(Segment List)

在实际转发中,一个数据包头部可能压入多个SID,形成一个有序列表,称为 Segment列表

处理时遵循“后进先出”的栈原则:总是先处理最外层的SID标签,弹出后再处理内层的标签。这个有序的SID列表定义了数据包从源到目的地的完整路径。

Segment的分类

Segment(或SID)主要有以下几种分类:

1. 前缀SID

  • 作用:用于标识一个具体的IP地址前缀(网段)。
  • 配置:必须通过手工方式配置。
  • 特性全局可见,全局有效。全网唯一。
  • 示例:为网段10.2.0.0/24分配前缀SID 16002。

2. 邻接SID

  • 作用:用于标识一条具体的链路邻接关系
  • 分配:由IGP协议(如IS-IS, OSPF)动态分配
  • 特性全局可见,本地有效。不同设备可以分配相同的邻接SID值。
  • 示例:R4为通往R6的链路G0/0/2分配邻接SID 1046。

3. 节点SID

  • 作用:用于标识一台特定的路由器
  • 本质:节点SID是一种特殊的前缀SID,它是设备Loopback接口地址所分配的前缀SID。
  • 示例:为R4的Loopback接口地址4.4.4.4/32分配前缀SID,这个SID同时也是R4的节点SID。

通过组合使用前缀SID(包括节点SID)和邻接SID,我们可以在网络中编排任意复杂的转发路径。

SRGB与标签分配

在SR-MPLS中,SID表现为MPLS标签。为了避免与传统的MPLS LDP分配的标签冲突,SR引入了 SRGB 的概念。

SRGB 是一个由用户指定的、为SR-MPLS预留的全局标签范围。所有设备上需要手动配置SRGB。

  • 常见配置segment-routing mpls global-block 16000 23999
  • 建议:虽然设备间的SRGB可以不同,但为了便于管理和维护,建议配置为相同

前缀SID标签值的计算

前缀SID的配置通常使用 索引值。设备通告的是索引值,而实际的MPLS标签值由各设备根据以下规则计算得出:

  • 入标签计算:设备使用 自身的SRGB起始值 + 收到的前缀SID索引值
    • 公式:入标签 = 本地SRGB起始值 + Prefix SID索引
  • 出标签计算:设备使用 下一跳设备的SRGB起始值 + 收到的前缀SID索引值
    • 公式:出标签 = 下一跳SRGB起始值 + Prefix SID索引

示例
假设全网SRGB均为16000-23999。
R4为其Loopback接口(4.4.4.4/32)配置前缀SID索引为40。

  • R4本地的入标签 = 16000 + 40 = 16040
  • R3收到关于4.4.4.4的路由,下一跳是R4。则R3的出标签 = R4的SRGB起始值(16000) + 40 = 16040
  • R3的入标签 = R3自身的SRGB起始值(16000) + 40 = 16040
  • 依此类推,最终在R1上形成一条LSP,出标签为16040。

这个过程与传统MPLS LDP建立LSP的“下游自主分配、下游按需分配”模式在效果上类似,但控制信令完全由IGP承载,大大简化了协议栈。

IS-IS对SR的扩展

IS-IS协议通过定义新的TLV(Type-Length-Value)和子TLV来携带SR相关的信息,并将其泛洪到整个网络,使得所有节点能同步SR所需的各项数据。

以下是几个关键的扩展TLV:

1. 前缀SID子TLV

  • 作用:通告SR-MPLS的前缀SID。
  • 关键字段
    • Flags:包含多个标志位。
      • R-bit:重分发标志。
      • N-bit:置位表示此SID是节点SID。
      • P-bit:置位表示执行倒数第二跳弹出。
      • E-bit:置位表示使用显式空标签。
      • V-bit/L-bit:与SID是具体值还是索引值相关。
    • Algorithm:算法标识,目前通常为0(SPF算法)。
    • SID/Index/Label:携带SID的索引值或具体值。

2. 邻接SID子TLV / LAN邻接SID子TLV

  • 作用:分别用于通告P2P链路和广播网络中的邻接SID。

3. SR能力子TLV

  • 作用:通告节点的SR能力。
  • 位置:位于“路由器能力TLV”内部。
  • 关键字段
    • Flags
      • I-bit:置位表示能处理SR-MPLS封装的IPv4数据。
      • V-bit:置位表示能处理SR-MPLS封装的IPv6数据。

4. SID/标签范围子TLV

  • 作用:通告本设备的SRGB范围。
  • 关键字段:包含标签范围的起始值和范围大小。

学习方法建议:对于TLV中具体的标志位含义,无需死记硬背。在实际工作或学习中,应掌握通过查阅官方产品文档或权威技术书籍来获取详细信息的方法。

实验演示与注意事项

本节通过一个简单的四节点拓扑演示了SR-MPLS的基础配置。

基础配置步骤

  1. 配置接口IP地址和Loopback地址。
  2. 配置IS-IS,并启用Wide Metric。
  3. 配置MPLS LSR ID。
  4. 全局使能Segment Routing功能:segment-routing mpls
  5. 在IS-IS视图下使能SR-MPLS:segment-routing mpls
  6. 配置SRGB:segment-routing mpls global-block 16000 23999
  7. 在Loopback接口下配置前缀SID索引:isis prefix-sid index 40

使用NE系列模拟器的注意事项

  1. 镜像文件需向课程方获取。
  2. NE设备对硬件资源要求较高,建议电脑内存不少于16GB。
  3. 该模拟器存在一些已知Bug,若实验现象与预期不符,在确认配置无误后,可尝试重启设备或重新搭建拓扑。

关键查看命令

  • display isis lsdb local verbose:查看本地生成的LSP详细信息,包括通告的SID。
  • display segment-routing prefix mpls forwarding:查看SR前缀的MPLS转发表。
  • display segment-routing adjacency mpls forwarding:查看SR邻接的MPLS转发表。

通过实验,可以验证前缀SID标签的计算、转发路径以及IS-IS协议中携带的SR TLV。


总结

本节课我们一起学习了SR的核心原理。我们从SR作为SDN思想的具体实践这一宏观定位入手,逐步剖析了Segment、SID、SRGB等基础概念,并明确了前缀SID、邻接SID和节点SID的作用与区别。我们深入了解了SR-MPLS中标签的计算方式,以及IS-IS协议为支持SR所做的关键扩展。通过理论讲解与实验演示,大家应该对SR如何简化网络、实现源路由路径控制有了初步的认识。下节课我们将继续探讨OSPF协议对SR的扩展。

OSPF协议详解:12:OSPF(下)

在本节课中,我们将深入学习OSPF协议的核心机制,包括其报文类型、邻居状态机以及建立邻接关系的详细过程。我们将通过简单的语言和清晰的逻辑,帮助你理解OSPF如何实现可靠的路由信息同步。


概述

上节课我们介绍了OSPF作为一种链路状态协议,并与距离矢量协议RIP进行了对比。本节我们将深入探讨OSPF的5种报文、7种邻居状态,以及两台设备如何从初始状态逐步建立起完整的邻接关系,最终同步链路状态数据库。


OSPF报文封装与传递

OSPF协议报文封装在网络层(IP)之上。在IPv4网络中,我们使用的是OSPF版本2。

  • 协议号:在IP报头中,标识上层为OSPF协议的字段值是 89
  • 目的地址:OSPF报文通常以组播形式发送。常用的组播地址是 224.0.0.5(所有OSPF路由器)和 224.0.0.6(DR/BDR)。本节课我们主要关注 224.0.0.5
  • TTL值:OSPF报文的生存时间(TTL)默认设置为 1。这意味着OSPF报文只能在一个广播域内传递,不会被路由器转发到其他网段。这种设计确保了OSPF的泛洪(Flooding)机制是可控的、逐跳进行的。

关键理解:OSPF的泛洪不同于三层转发。当路由器从一个接口收到OSPF报文(如LSA)后,会将其复制并从其他属于同一OSPF区域的接口发送出去,而不是进行IP路由转发。


OSPF基础配置与核心参数

在深入协议细节前,我们先了解配置OSPF时涉及的几个核心概念。

1. 进程号 (Process ID)

进程号用于在单台设备上标识不同的OSPF进程。

  • 作用:一台路由器可以同时运行多个OSPF进程,用不同的进程号区分。例如,ospf 10ospf 20 是两个独立的OSPF进程。
  • 特性:进程号仅本地有效。即,建立邻居关系的两台设备,其OSPF进程号不需要一致。
  • 配置示例
    [Huawei] ospf 10
    

2. 路由器ID (Router ID)

路由器ID是OSPF网络中唯一标识一台路由器的32位数字,格式类似于IP地址。

  • 作用:标识LSA的生成者,在路由计算和防环中至关重要。同一区域内的路由器ID必须唯一。
  • 生成方式
    1. 手动配置(推荐):在OSPF进程下使用 router-id x.x.x.x 命令指定。
    2. 自动选取:如果未手动配置,设备会使用其系统视图下的全局Router ID。全局Router ID默认是设备上第一个UP的接口的IP地址;如果多个接口同时UP,则选择IP地址最大的。
  • 特性:OSPF的Router ID一旦确定,除非重置OSPF进程或重启设备,否则不会改变
  • 配置与查看示例
    [Huawei-ospf-10] router-id 1.1.1.1
    [Huawei-ospf-10] quit
    [Huawei] reset ospf 10 process // 重置进程以使新Router ID生效
    [Huawei] display ospf peer brief // 查看OSPF邻居及本端Router ID
    

3. 区域 (Area)

区域是OSPF进行链路状态信息同步的范围,是逻辑上的分组。

  • 作用:将大型网络划分为多个较小的区域,限制LSA的泛洪范围,减少设备负载,提高网络可扩展性和稳定性。
  • 规则
    • 接口是划分区域的基本单位。一个接口只能属于一个区域。
    • 只有在同一区域内的接口才能建立OSPF邻接关系并同步完整的链路状态数据库(LSDB)。
  • 骨干区域:区域0(Area 0)是OSPF网络的骨干区域,所有非骨干区域必须与骨干区域直接相连。
  • 配置示例
    [Huawei-ospf-10] area 0
    

4. 网络宣告 (Network Advertisement)

这是将接口激活并纳入OSPF进程的关键步骤,使接口开始发送/接收OSPF报文。

  • 作用:指定哪些接口参与OSPF协议,以及这些接口属于哪个区域。

  • 配置方式

    1. 区域下宣告(常用):在OSPF区域视图下,使用 network 命令宣告接口的IP网络地址及反掩码。
      [Huawei-ospf-10-area-0.0.0.0] network 192.168.1.0 0.0.0.255
      
    2. 接口下宣告:在接口视图下,使用 ospf enable 命令将接口启用到指定OSPF进程和区域。
      [Huawei-GigabitEthernet0/0/0] ospf enable 10 area 0
      

      注意:使用接口下宣告前,必须在全局视图下先创建对应的OSPF进程和区域。

  • 反掩码 (Wildcard Mask):由正掩码(子网掩码)按位取反得来。例如,正掩码 255.255.255.0 对应的反掩码是 0.0.0.255。在宣告时,也可以直接使用精确的接口IP地址加反掩码 0.0.0.0,设备会自动计算。


OSPF的5种报文类型

OSPF协议定义了5种报文,用于邻居发现、数据库同步和维护。所有报文都有相同的OSPF头部。

以下是5种报文及其作用:

  1. Hello报文:用于发现和维护邻居关系。周期性发送,包含路由器ID、区域ID、网络掩码、Hello间隔、失效时间、邻居列表等关键参数。
  2. DD报文 (Database Description Packet):在建立邻接关系过程中,用于描述发送方的链路状态数据库摘要(LSA头部),实现数据库的同步。
  3. LSR报文 (Link State Request Packet):用于向邻居请求特定的、自己缺少或过时的LSA的完整信息。
  4. LSU报文 (Link State Update Packet):用于向邻居发送其请求的LSA的完整信息,或者主动泛洪更新的LSA。
  5. LSAck报文 (Link State Acknowledgment Packet):用于确认收到的LSU报文,确保LSA泛洪的可靠性。

报文抓包提示:在配置了OSPF的接口抓包,可以看到源IP为接口地址、目的IP为 224.0.0.5、协议为OSPF(89)的报文。Hello报文会周期性出现。


OSPF的7种邻居状态机

OSPF邻居关系的建立是一个状态迁移的过程,共有7种状态。这些状态描述的是本设备视角下,对端设备所处的状态

以下是7种状态的简要说明及其迁移过程:

  • Down:初始状态。表示未收到对端的任何Hello报文。
  • Init:初始化状态。本端已收到对端发来的Hello报文,但该Hello报文的“邻居列表”中未包含本端的Router ID。这表明对端感知到了本端,但尚未建立双向通信。
  • 2-Way:双向通信状态。本端收到的对端Hello报文中,其“邻居列表”包含了本端的Router ID。这标志着邻居关系已成功建立。在此状态下,会进行DR/BDR的选举(下节课详述)。
  • ExStart:信息交换初始状态。邻居关系建立后,准备开始同步链路状态数据库。在此状态下,双方通过交换空的DD报文来进行主从关系(Master/Slave)选举。Router ID大的一方成为Master,负责定义DD报文的序列号,从而保证数据库同步过程的有序和可靠。
  • Exchange:信息交换状态。主从关系确立后,双方开始通过DD报文互相发送自己的链路状态数据库摘要(LSA头部列表)。
  • Loading:信息加载状态。双方比较完数据库摘要后,发现自己缺少某些LSA,则进入此状态,并向对方发送LSR报文请求具体的LSA信息。对方回复LSU报文,本端收到后回复LSAck确认。
  • Full:完全邻接状态。双方完成了LSA的请求和更新,本端的链路状态数据库已与对端完全同步。这标志着邻接关系已成功建立。

状态迁移核心:从 Down2-Way 建立了邻居关系;从 2-WayFull 建立了邻接关系。只有达到 Full 状态的邻居,才会相互传递路由信息。


邻接关系建立过程详解

我们以Router A(RID: 1.1.1.1)和Router B(RID: 2.2.2.2)为例,简述从初始到Full状态的关键交互:

  1. Down -> Init -> 2-Way (建立邻居)

    • A和B启动OSPF后,开始向 224.0.0.5 发送Hello报文(包含自己的RID)。
    • B收到A的Hello,但其中邻居列表为空,故B将A的状态置为 Init
    • B在下一个Hello报文中,将A的RID(1.1.1.1)加入自己的邻居列表并发出。
    • A收到B的Hello,发现邻居列表中有自己,于是将B的状态置为 2-Way。同理,B最终也会将A置为 2-Way邻居关系建立
  2. 2-Way -> ExStart -> Exchange (主从选举与摘要同步)

    • 双方建立邻居后,开始尝试建立邻接。首先进入 ExStart 状态,发送空的DD报文进行主从选举。报文包含一个初始序列号(Seq)。
    • 由于B的RID(2.2.2.2)大于A的RID(1.1.1.1),B成为Master。A在后续的DD报文中,会使用B定义的序列号,并开始携带自己的LSDB摘要。状态进入 Exchange
    • 双方互相交换包含LSDB摘要的DD报文。
  3. Exchange -> Loading -> Full (请求更新与完成同步)

    • 收到对方的摘要后,检查自己的LSDB。如果发现自己缺少某些LSA(例如,A发现B有关于网络5.5.5.0的LSA,而自己没有),则进入 Loading 状态。
    • A向B发送LSR报文,请求网络5.5.5.0的完整LSA。
    • B回复LSU报文,包含该LSA的详细信息。
    • A收到后回复LSAck报文进行确认,并将该LSA加入自己的LSDB。
    • 当A发现自己所需的LSA都已从B处获取完毕,且B也知道A已同步完成(通过隐式确认机制),A将B的状态置为 Full。同理,B最终也将A置为 Full邻接关系建立,路由计算可以开始。

总结

本节课我们一起深入学习了OSPF协议的核心工作机制:

  1. 了解了OSPF报文的封装特点(基于IP,TTL=1,使用组播)及其5种报文类型的作用。
  2. 掌握了配置OSPF的四个关键参数:进程号、路由器ID、区域和网络宣告。
  3. 重点学习了OSPF的7种邻居状态机,理解了从 DownFull 的完整状态迁移流程。
  4. 详细分析了两台路由器如何通过Hello、DD、LSR、LSU、LSAck报文的交互,逐步从陌生人变为完全同步的邻接伙伴。

理解这些状态和报文交互是掌握OSPF协议的基础。下节课我们将介绍OSPF在广播网络中的特殊角色:DR和BDR,以及它们如何优化网络中的LSA泛洪。

posted @ 2026-03-28 12:22  布客飞龙V  阅读(1)  评论(0)    收藏  举报