文章目录
- [第一章 计算机网络基础概念](#第一章 计算机网络基础概念)
-
- [1.1 计算机网络的定义和基本功能](#1.1 计算机网络的定义和基本功能)
- [1.2 网络设备操作基础](#1.2 网络设备操作基础)
-
- [1.2.1 命令视图](#1.2.1 命令视图)
- [1.2.2 用户角色](#1.2.2 用户角色)
- [第二章 远程协议](#第二章 远程协议)
-
- [2.1 IP地址](#2.1 IP地址)
- [2.2 Telnet服务](#2.2 Telnet服务)
- [2.3 SSH服务](#2.3 SSH服务)
- [2.4 FTP和TFTP](#2.4 FTP和TFTP)
- [2.5 网络设备的文件管理](#2.5 网络设备的文件管理)
- [第三章 网络设备的调试](#第三章 网络设备的调试)
-
- [3.1 ping](#3.1 ping)
- [3.2 tracert](#3.2 tracert)
- [3.3 系统调试](#3.3 系统调试)
- [第四章 以太网基础](#第四章 以太网基础)
-
- [4.1 802.3帧](#4.1 802.3帧)
- [4.2 MAC](#4.2 MAC)
- [4.3 标准以太网的物理传输介质和连接器](#4.3 标准以太网的物理传输介质和连接器)
- [4.4 以太网交换机工作原理](#4.4 以太网交换机工作原理)
- [第五章 虚拟局域网Vlan](#第五章 虚拟局域网Vlan)
-
- [5.1 Vlan的定义](#5.1 Vlan的定义)
- [5.2 Vlan的类型](#5.2 Vlan的类型)
- [5.3 Vlan 相关概念](#5.3 Vlan 相关概念)
- [5.4 802.1Q帧](#5.4 802.1Q帧)
- [5.5 三种端口模式](#5.5 三种端口模式)
-
- [5.5.1 Access](#5.5.1 Access)
- [5.5.2 Trunk](#5.5.2 Trunk)
- [5.5.3 Hybrid](#5.5.3 Hybrid)
- [5.6 Vlan配置](#5.6 Vlan配置)
- [第六章 生成树协议](#第六章 生成树协议)
-
- [6.1 生成树背景](#6.1 生成树背景)
- [6.2 STP](#6.2 STP)
-
- [6.2.1 STP相关概念](#6.2.1 STP相关概念)
- [6.2.2 STP的选举机制](#6.2.2 STP的选举机制)
- [6.2.3 端口状态](#6.2.3 端口状态)
- [6.2.4 STP的不足](#6.2.4 STP的不足)
- [6.3 RSTP](#6.3 RSTP)
- [6.4 PVST](#6.4 PVST)
- [6.5 MSTP](#6.5 MSTP)
- [6.6 四种生成树协议特性比较](#6.6 四种生成树协议特性比较)
- [6.7 STP基本配置](#6.7 STP基本配置)
- [6.8 链路聚合](#6.8 链路聚合)
-
- [6.8.1 链路聚合的功能](#6.8.1 链路聚合的功能)
- 6.8.2链路聚合的分类
- 6.8.3链路聚合的基本配置
- [第七章 IP协议](#第七章 IP协议)
-
- [7.1 IP相关概念](#7.1 IP相关概念)
- [7.2 IP子网划分](#7.2 IP子网划分)
- [7.3 VLSM](#7.3 VLSM)
- [7.4 CIDR](#7.4 CIDR)
- [7.5 ARP](#7.5 ARP)
- [7.6 RARP](#7.6 RARP)
- [7.7 ARP配置](#7.7 ARP配置)
- [第八章 DHCP](#第八章 DHCP)
-
- [8.1 DHCP核心流程](#8.1 DHCP核心流程)
- [8.2 DHCP同网段配置](#8.2 DHCP同网段配置)
- [第九章 路由基础知识](#第九章 路由基础知识)
-
- [9.1 路由的定义](#9.1 路由的定义)
- [9.2 路由度量值](#9.2 路由度量值)
- [9.3 路由优先级](#9.3 路由优先级)
- [9.4 路由环路](#9.4 路由环路)
- [9.5 直连路由和静态路由](#9.5 直连路由和静态路由)
- [9.6 子接口和单臂路由](#9.6 子接口和单臂路由)
- [9.7 子接口和单臂路由配置](#9.7 子接口和单臂路由配置)
- [9.8 路由相关配置](#9.8 路由相关配置)
- [第十章 路由协议基础](#第十章 路由协议基础)
-
- [10.1 动态路由协议](#10.1 动态路由协议)
-
- [10.1.1 动态路由与静态路由对比](#10.1.1 动态路由与静态路由对比)
- [10.1.2 动态路由协议的核心概念](#10.1.2 动态路由协议的核心概念)
- [10.2 RIP](#10.2 RIP)
-
- [10.2.1 核心度量值](#10.2.1 核心度量值)
- [10.2.2 路由信息交换规则](#10.2.2 路由信息交换规则)
- [10.2.3 防环机制](#10.2.3 防环机制)
- [10.2.4 RIPv1和RIPv2](#10.2.4 RIPv1和RIPv2)
- [10.2.5 RIP配置](#10.2.5 RIP配置)
- [10.3 OSPF](#10.3 OSPF)
-
- [10.3.1 OSPF配置](#10.3.1 OSPF配置)
- 附:HCL命令汇总
第一章 计算机网络基础概念
1.1 计算机网络的定义和基本功能
OSI参考模型各层功能:
- 物理层:负责处理物理介质上的信号传输,定义机械、电气、功能和规程特性,实现比特流的透明传输
- 数据链路层:将物理层接收到的比特流封装成帧,进行差错检测与纠正,实现相邻节点间的可靠数据传输,同时负责介质访问控制
- **网络层:**对分组进行路由选择,通过逻辑地址(如IP地址)将分组从源主机传输到目的主机,实现不同网络之间的互联
- 传输层:在源主机和目的主机的应用程序之间提供端到端的通信服务,包括流量控制、拥塞控制和差错恢复,分为面向连接(TCP)和无连接(UDP)两种服务
- 会话层:建立、管理和终止表示层实体之间的通信会话,提供会话同步和断点续传功能
- 表示层:处理在两个通信系统中交换信息的表示方式,包括数据加密、解密、压缩、解压缩和格式转换,确保通信双方能够理解对方的数据
- 应用层:为应用程序提供网络服务接口,直接为用户应用提供服务,如文件传输(FTP)、电子邮件(SMTP)、万维网(HTTP)等

SSH(Secure Shell):在无安全保证的网络上提供安全的远程登陆等服务。
- 由传输协议、验证协议和连接协议三部分组成
- 使用TCP端口22
- 提供Password和Publickey两种验证方式
1.2 网络设备操作基础
通过控制台(Console)端口配置刚出厂未经配置的MSR路由器,终端的串口波特率应设置为9600
1.2.1 命令视图
用户视图:设备启动后的缺省视图,可查看启动后基本运行状态和统计信息
**系统视图:**配置系统全局通用参数的视图
**路由协议视图:**配置路由协议参数的视图
接口视图:配置接口参数的视图
**用户线视图:**配置登陆设备的各个用户属性的视图

1.2.2 用户角色

第二章 远程协议
2.1 IP地址
IP地址 ::= {<网络号>,<主机号>}




2.2 Telnet服务
Telnet 是一种常用的远程管理功能,Telnet 就是「不用插线,通过网络远程控制设备」的工具,使用TCP端口23
telnet中有三个核心要求:
- 服务器端:被远程控制的设备(比如路由器 R1),需要配置 Telnet 服务,允许别人远程连进来。
- 客户端:发起远程控制的设备(比如路由器 R2、或者你的电脑),需要输入服务器端的 IP 地址,才能连接。
- 网络前提 :服务器端和客户端必须在同一个网络里(能互相 ping 通),否则连不上!
telnet支持三种认证方式:
- none:无须认证
- password:密码认证
- scheme:用户名+密码认证
相关配置命令:
// Telnet服务器端
// 配置与网络相连端口的IP地址
[H3C-GigabitEthernet0/0] ip address ip-address { mask | mask-length }
// 使能Telnet服务器端功能
[H3C] telnet server enable
// 进入vty用户界面视图,设置验证方式
[H3C] line vty first-num2 [ last-num2 ]
[H3C-line-vty0-63] authentication-mode { none | password | scheme }
// 设置登录密码和用户级别
[H3C-line-vty0-63] set authentication password { hash | simple } password
[H3C-line-vty0-63] user-role { network-admin | network-operator | level-n }
// 创建用户、配置密码、设置服务类型、设置用户级别
[H3C] local-user username
[H3C-luser-manage-xxx] password { hash | simple } password
[H3C-luser-manage-xxx] service-type telnet
[H3C-luser-manage-xxx] authorization-attribute user-role role-name
//---------------------------------------------------------------
// 客户端
// 使用telnet登录
<H3C> telnet <telnet服务器的IP地址>
// 例:
[H3C]telent server enable
vty 0 63
authentication-mode none | password | scheme
set authentication password simple 123
user-role network-admin | network-operator | level-n
local-user wx
service-type telnet
passwork simple 123
authorization-attribute user-role network-admin
2.3 SSH服务
SSH 是远程管理协议**,和 Telnet 功能完全一样 ------远程控制设备,两者都是远程控制工具,都依赖 VTY 入口工作,唯一的区别是 **SSH 传输的数据会加密(比如密码、命令),而 Telnet 是明文传输(容易被截获)。使用TCP端口22
ssh仅支持一种认证方式:scheme(用户名+密码)
相关配置命令:
// SSH服务器端
// 使能SSH服务器功能
[H3C]ssh server enable
// 配置SSH认证方式
[H3C-line-vty0-63]authentication-mode scheme
// 给当前vty登录入口,设置只允许ssh登陆
[H3C-line-vty0-63] protocol inbound ssh
// 配置SSH用户
[H3C]local-user username
[H3C-luser-manage-xxx] password { hash | simple } password
[H3C-luser-manage-xxx] service-type ssh
[H3C-luser-manage-xxx] authorization-attribute user-role role-name
// 生成RSA密钥
[H3C]public-key local create rsa
// 导出RSA密钥
[H3C] public-key local export public rsa ssh2
// 销毁RSA密钥
[H3C] public-key local destroy rsa
//-----------------------------------------------------------------
// SSH 客户端
// 在客户端使用软件PuTTY,连接方式选择SSH,输入服务器地址,端口为22,即可登录

2.4 FTP和TFTP
FTP 和 TFTP 是文件传输协议 ,核心作用都是 「在设备之间传输文件」(比如备份设备配置、升级系统版本、导入实验文件)。
FTP:有用户名 + 密码认证,支持上传(put)和下载(get),传输可靠,配置稍复杂,使用TCP端口21
TFTP:无认证(免密码),仅支持下载(get)(部分设备支持上传),传输简单,配置极容易,使用UDP端口69
FTP服务器相关配置命令:
// 使能FTP服务器功能
[H3C]ftp server enable
7
// 创建用户
[H3C] local-user username
// 设置服务类型、登录密码和用户权限
[H3C-luser-manage-xxx] service-type ftp
[H3C-luser-manage-xxx] password { hash | simple } password
[H3C-luser-manage-xxx] authorization-attribute user-role role-name
// 例:
[H3C]ftp server enable
[H3C]local-user ftptest
New local user added.
[H3C-luser-manage-ftptest]password simple p123456789
[H3C-luser-manage-ftptest]service-type ftp
[H3C-luser-manage-ftptest]authorization-attribute user-role network-admin
[H3C-luser-manage-ftptest]quit
使用TFTP服务:
<H3C> tftp tftp-server { get | put | sget } source-filename [ destination-filename ] [ source { interface interface-type interface-number | ip source-ip-address } ]
// 例:
// 上传
<H3C>tftp 192.168.56.1 put abc.cfg
// 下载
<H3C>tftp 192.168.56.1 get abc.cfg
2.5 网络设备的文件管理
- 设备以文件系统的方式对保存在设备存储介质中的文件(如操作系统文件、配置文件等)进行管理
- 配置文件是用来保存用户对设备所进行的配置,记录用户的配置信息的文本格式文件
- 可以使用FTP/TFTP进行系统文件上传与下载

- 起始配置与当前配置
- 配置文件是以文本格式保存的命令,默认配置并不出现在配置文件中
- 配置文件的选择顺序
- 如果用户指定了启动配置文件,且配置文件存在,则以启动配置文件进行初始化
- 如果用户指定的启动配置文件不存在,则以空配置进行初始化

配置文件的操作:
// 保存配置
<H3C>save
<H3C>save h3c.cfg
// 擦除配置
<H3C>reset saved-configuration
// 设置下次启动的配置文件
<H3C>startup saved-configuration filename
// 备份/恢复下次启动配置文件
<H3C> backup startup-configuration to tftp-server [ dest-filename ]
<H3C> restore startup-configuration from tftp-server src-ilename
// 显示保存的配置文件
<H3C>display saved-configuration
// 查看系统启动配置文件
<H3C> display startup
// 查看当前生效的配置
<H3C> display current-configuration
// 查看当前视图下生效的配置
[H3C-line-vty0-63] display this
// 指定下次启动加载的应用程序文件
<H3C> boot-loader file file-url
// 显示下次启动加载的应用程序文件
<H3C> display boot-loader
第三章 网络设备的调试
按照初始目标组建配置完互联网络后,首要的任务是检查网络的连通性
为定位网络设备协议或控制参数的配置错误或运行故障,需要使用调试信息
3.1 ping
ping 命令是网络中最基础、最常用的测试工具 ,核心作用是 「验证两台设备之间的网络是否连通」
ping 是基于 ICMP 协议(Internet Control Message Protocol,互联网控制报文协议)的应用程序,它的本质是:
向目标设备发送请求报文 ,并等待目标设备返回应答报文。如果能收到应答,说明网络连通;如果收不到,说明网络不通。
ping核心特点:
-
无端口概念 :ping 基于 ICMP 协议,而 ICMP 属于网络层协议,不需要使用传输层的 TCP/UDP 端口(和 Telnet、SSH、FTP 不同)。
-
双向测试:ping 不仅能测试发送方到接收方的连通性,还能测试接收方到发送方的连通性(因为需要返回应答)。
-
TTL 字段的作用:IP 数据包中的 TTL(Time To Live,生存时间)字段,用于防止数据包在网络中无限循环。每经过一个路由器,TTL 减 1,当 TTL 为 0 时,数据包被丢弃,并返回 ICMP 超时报文。
- 在 ping 结果中,
TTL=255表示目标设备是直连的(没有经过路由器转发);如果 TTL 小于 255,说明经过了路由器转发。
- 在 ping 结果中,
ping的相关参数:
// 设置源IP地址
// -a <源IP地址> <目的IP地址>
ping -a 192.168.1.1 192.168.2.1
// 设置报文数量(默认五个)
// -c <报文数量>
ping -c 10 192.168.1.1
// 设置数据载荷大小(单位:字节)
// -s <报文大小>
ping -s 1024 192.168.1.1

3.2 tracert
tracert 是网络中核心的路径追踪工具 ,核心作用是 「找出数据包从本地设备到目标设备所经过的所有路由器」,并显示每一跳的延迟。
要理解 tracert,必须先懂 TTL(Time To Live,生存时间) 字段的作用。TTL 是 IP 数据包头部的一个字段,取值范围是 0~255,核心规则有 2 条:
- 每经过一个路由器,TTL 减 1:数据包从源设备发出后,每经过一台路由器转发,路由器会将数据包的 TTL 值减 1。
- TTL 为 0 时,数据包被丢弃,并返回 ICMP 超时报文 :如果路由器收到一个 TTL=1 的数据包,转发时 TTL 会减为 0,此时路由器会丢弃该数据包 ,并向源设备发送一个 ICMP 时间超时报文(ICMP Time Exceeded),报文中会包含路由器自己的 IP 地址。
tracert核心特点:
- 基于 ICMP 协议:和 ping 一样,tracert 依赖 ICMP 协议工作,不需要传输层的 TCP/UDP 端口(和 Telnet、SSH 不同)。
- 逐跳探测:通过不断增加 TTL 值,逐跳获取路由器的 IP 地址,最终得到完整路径。
- 双向路径可能不一致 :tracert 探测的是数据包从源设备到目标设备的路径,而返回的 ICMP 超时报文可能走不同的路径,因此延迟可能不完全准确,但路径的 IP 地址是准确的。
- 部分路由器可能不响应 :有些路由器会配置成「不发送 ICMP 超时报文」,此时 tracert 输出中会显示
* * *,表示该跳路由器无法探测,但后续跳数仍可继续探测。

3.3 系统调试
系统调试的相关操作:
// 系统调试
// 开启控制台对系统信息的监视功能
<H3C> terminal monitor
// 打开调试信息的屏幕输出开关
<H3C> terminal debugging
// 打开模块调试开关
<H3C> debugging module-name
// 显示调试开关
<H3C> display debugging
第四章 以太网基础
以太网工作在链路层,向上提供链路数据传输服务,向下需要物理层作为传输数据流的基础
在以太网链路层,可以进一步划分成如下子层:
- LLC子层
- MAC子层
在以太网物理层,可以进一步分成如下子层:
- PLS
- PCS
- PMA
4.1 802.3帧
802.3 帧是以太网的官方标准数据帧格式,由 IEEE 802.3 协议定义,是以太网(Ethernet)在数据链路层传输数据的基本单元。

4.2 MAC



4.3 标准以太网的物理传输介质和连接器







4.4 以太网交换机工作原理
在局城网中,交换机是非常重要的网络设备,负责在主机之间快速转发数据帧 。交换权与集线器的不同之处在于,交换机工作在数据链路层,能够根据教据帧中的MAC地址进行转发。


以太网交换机会维护一个MAC地址表,记录了MAC地址与交换机端口的映射关系,该MAC地址表会存放在交换机的RAM中,所以当开机后,MAC地址表是一个空表,下面是他的学习过程:
步骤1:PC1 发送数据帧,交换机接收并提取源 MAC
PC1 向 PC2 发送一个以太网帧,帧的源 MAC=MAC1,目的 MAC=MAC2。
该帧从交换机的 G0/0/1 端口进入(入端口)。
交换机检测到入帧的源 MAC 地址是 MAC1 ,且当前 MAC 地址表中没有 MAC1 的记录
步骤 2:交换机将源 MAC 与入端口绑定,存入 MAC 地址表
交换机执行学习操作:将 MAC1 和 入端口 G0/0/1 绑定,添加到 MAC 地址表中,并设置老化时间(默认 300 秒)
此时 MAC 地址表更新为:
| MAC 地址 | 端口 | 老化时间 |
|---|---|---|
| MAC1 | GigabitEthernet0/0/1 | 300s |
步骤 3:PC2 发送数据帧,交换机重复学习过程
- PC2 收到帧后,向 PC1 回复一个以太网帧,帧的源 MAC=MAC2,目的 MAC=MAC1。
- 该帧从交换机的 G0/0/2 端口进入。
- 交换机检测到入帧的源 MAC 是 MAC2,且地址表中无此记录,于是将 MAC2 与 入端口 G0/0/2 绑定,存入地址表。
MAC 地址表的学习过程是为转发过程服务的,完整的流程是:先学习,后转发。
- 学习:从入帧中提取源 MAC,绑定入端口,更新 MAC 地址表。
- 转发 :根据入帧的目的 MAC,查询 MAC 地址表:
- 若找到目的 MAC 对应的端口:将帧转发到该端口(精准转发,不影响其他设备)。
- 若未找到目的 MAC:将帧泛洪到所有除入端口外的端口(广播寻找目标设备)。
- 若目的 MAC 是广播地址(FF:FF:FF:FF:FF:FF):直接泛洪到所有除入端口外的端口。****
数据帧的过滤:接收到帧时,交换机查找MAC地址表,如果发现帧的目的地址关联到接收端口上,则丢弃此帧
第五章 虚拟局域网Vlan
5.1 Vlan的定义
在没有 VLAN 的传统以太网中,所有连接到交换机的设备都属于同一个广播域。广播域的问题在于:
- 广播风暴:一台设备发送的广播帧(如 ARP 请求),会被交换机泛洪到所有端口,大量广播帧会占用网络带宽,导致网络拥塞。
- 安全性低:所有设备都能接收到彼此的数据包,容易发生数据泄露。
- 管理困难:随着网络设备增多,物理上划分不同的局域网需要大量交换机和网线,成本高且不易维护。
定义:VLAN 是逻辑上的局域网,不是物理上的。它基于交换机的端口进行划分,同一 VLAN 的设备可以是连接在同一台交换机上的不同端口,也可以是连接在不同交换机上的端口,只要这些端口被配置为同一个 VLAN。
5.2 Vlan的类型
Vlan的类型:
- **基于端口的Vlan:**端口固定属于某个VLan

- 基于协议的Vlan:三层协议绑定到vlan,同一协议的报文,无论从哪个端口接收,vlan归属不变,端口类型需要配置为Hybrid

- 基于子网的Vlan:IP网段绑定到Vlan,同一IP子网的设备,无论连接在哪个端口,Vlan归属不变,端口类型需要配置为Hybrid

5.3 Vlan 相关概念
Vlan ID
VLAN ID 是 VLAN 的唯一数字标识 ,全称为 VLAN Identifier,用于交换机区分不同的 VLAN,取值范围是 1~4094
PVID:
PVID是交换机端口的默认 VLAN ID ,核心作用是给进入该端口的无标签以太网帧,分配一个默认的 VLAN 归属。
5.4 802.1Q帧
在标准以太网帧的基础上,将源MAC地址和Type之间添加vlan tag的帧格式就是802.1Q帧,PC和路由器无法识别(它们只认标准以太网帧)

5.5 三种端口模式
5.5.1 Access
该模式的端口在发出数据时,会把vlan标签去掉,也就是把802.1Q帧变为PC和路由器可识别的802.3帧,所以该模式的端口主要用于连接PC或路由器
当交换机从端口收到数据帧时:
- 判断是否有vlan标签,没有则打上PVID标签,并进行下一步转发
- 有的话,若标签与PVID一致,则转发Vlan帧,否则丢弃
当交换机把数据帧转发出端口时:
- 将二层帧的Vlan标签(与PVID相同)剥离,直接发送出去
5.5.2 Trunk
该模式的端口可以允许多个vlan的数据通过,并且发出的帧保留vlan标签(缺省vlan除外),所以该模式的端口主要用于交换机之间的连接
当交换机从端口收到数据帧时:
- 判断是否有vlan标签,没有则打上PVID标签,并进行下一步转发
- 有的话,判断端口是否允许该Vlan帧进入,允许则转发,否则丢弃(permit)
当交换机把数据帧转发出端口时:
- 比较端口的PVID和将要发送帧的vlan标签
- 如果二者相同,则剥离标签后转发,否则,直接发送
trunk在特殊情况下剥离标签所应对的情况:

5.5.3 Hybrid
可以允许多个vlan的数据通过,可以手动配置从Hybrid端口发出的帧,哪个vlan保留tag,哪个vlan剥离tag,比较灵活,既可以连接PC/路由器,也可以连接交换机
当交换机从端口收到数据帧时(同trunk):
- 判断是否有vlan标签,没有则打上PVID标签,并进行下一步转发
- 有的话,判断端口是否允许该Vlan帧进入,允许则转发,否则丢弃(tagged,untagged)
当交换机把数据帧转发出端口时:
- 判断vlan标签在本端口的属性(display interface可见tag vlan、untag vlan)
- 如果是untagged则剥离标签后转发
- 如果是tagged则直接发送
5.6 Vlan配置
-----------------vlan 基本配置------------------
// 创建VLAN并进入VLAN视图
[Switch] vlan vlan-id
// 将指定端口加入到当前VLAN中
Switch-vlan10] port interface-list
-----------------配置Trunk端口------------------
// 配置端口的链路类型为Trunk类型
[Switch-Ethernet1/0/1] port link-type trunk
// 允许指定的VLAN通过当前Trunk端口
[Switch-Ethernet1/0/1] port trunk permit vlan { vlan-id-list | all }
// 设置Trunk端口的缺省VLAN
[Switch-Ethernet1/0/1] port trunk pvid vlan vlan-id
-----------------配置Hybrid端口-----------------
// 配置端口的链路类型为Hybrid类型
[Switch-Ethernet1/0/1] port link-type hybrid
// 允许指定的VLAN通过当前Hybrid端口
[Switch-Ethernet1/0/1] port hybrid vlan vlan-id-list { tagged | untagged }
// 设置Hybrid端口的缺省VLAN
[Switch-Ethernet1/0/1] port hybrid pvid vlan vlan-id
-----------------VLAN显示及维护-----------------
// 显示交换机存在的VLAN
<Switch> display vlan
// 查看某一个VLAN的详细信息
<Switch> display vlan vlan-id
// 查看某一个接口的PVID和链路类型
<Swicth> display interface GigabitEthernet 1/0/1


第六章 生成树协议
6.1 生成树背景
二层网络中冗余链路会形成环路,会引发:
- 广播风暴:广播帧在环路中无限循环,耗尽带宽与设备资源
- MAC地址表震荡:交换机不断更新同一MAC的接口映射,导致转发混乱
- **多帧复制:**统一数据帧经不同路径多次到达目标,造成数据错误
6.2 STP
6.2.1 STP相关概念
STP(Spanning Tree Protocol,生成树协议)是用于在局域网中消除数据链路层物理环路的协议,通过在桥之间交换BPDU(Bridge Protocol Data Unit,桥协议数据单元),来保证设备完成生成树的计算过程
STP的作用:
- 通过阻断冗余链路来消除桥接网络中可能存在的路径回环
- 当前路径发生故障时,激活冗余备份链路,恢复网络连通性
BPDU包含以下信息:
- 根桥ID(RootID)
- 根路径开销(RootPathCost):到达根的路径上所有链路开销(Cost)的代数和
- 指定桥ID(DesignatedBridgeID)
- 指定端口ID(DesignatedPortID)
每台设备的各个端口在初始时生成以自己为根桥(RootBridge)的配置消息,向外发送自己的配置信息
网络收敛后,根桥向外发送配置BPDU,其他的设备对该配置BPDU进行转发
6.2.2 STP的选举机制
-
在所有交换机中选取一台根桥
- 桥ID小的桥被选举为根桥
- 桥ID由桥优先级(BridgePriority,4096的倍数)和桥MAC地址(BridgeMacAddress)组成

-
每台非根桥(交换机)选举出一个根端口(Root Port)
- 在非根桥上选举根路径开销(RootPathCost)最小的端口为根端口(Root Port)
- 在根路径开销相同时,所连网段指定桥ID最小的端口为根端口
- 在根路径开销、指定桥ID都相同的情况下,所连指定端口ID小的端口为根端口


-
每个物理端上选举出一个指定端口(DesignatedPort)
- 每个物理段中选出根路径开销最小的桥作为指定桥(Designated Bridge),连接指定桥的端口为指定端口
- 在根路径开销相同时,桥ID最小的桥被选举为物理段上的指定桥,连接指定桥的端口为指定端口

- 剩下没有角色的端口就是阻塞端口(Blocked Port)

6.2.3 端口状态

交换机端口状态:
- Disable:禁用状态,被关闭的端口
- Blocking:阻塞状态
- Listening:监听状态,前面的选举机制全都是在这一阶段完成的,默认持续15秒
- Learning:学习状态,学习MAC地址,持续15秒
- Forwarding:转发状态

6.2.4 STP的不足
端口从阻塞状态进入转发状态必须经历两倍的Forwarding Delay时间,如果网络中的拓扑结构变化频繁,网络会频繁的失去连通性

6.3 RSTP
**RSTP(Rapid Spanning Tree Protocol,快速生成树协议)**是STP协议的优化版
- RSTP具备STP的所有功能
- RSTP可以实现快速收敛


6.4 PVST
PVST(Per VLAN Spanning Tree )
- 每个VLAN上运行一个STP或RSTP协议,不同VLAN之间的生成树完全独立
- 在多条Trunk链路上实现单VLAN级负载分担

6.5 MSTP
MSTP(Multiple Spanning Tree Protocol,多生成树协议)
- 将多个VLAN捆绑到一个实例,每个实例生成独立的生成树
- 在多条Trunk链路上实现VLAN级负载分担

6.6 四种生成树协议特性比较


6.7 STP基本配置
// STP监控与维护
// 查看STP信息
[Switch] display stp
// 查看STP简要信息
[Switch] display stp brief
// 开启设备STP特性
[Switch] stp global enable
// 关闭端口口的STP特性
[Switch-Ethernet1/0/1] undo stp global enable
// 配置STP的工作模式
[Switch] stp mode { stp | rstp | pvst | mstp }
// 配置当前设备的优先级
[Switch] stp [instance instance-id] priority priority
// 配置端口为边缘端口
[Switch-Ethernet1/0/1] stp edged-port

6.8 链路聚合
定义:把连接到同一台交换机上的多个物理端口绑定为一个逻辑端口
6.8.1 链路聚合的功能
- 提高链路可靠性:聚合组内只要还有物理端口存活,链路就不会中断
- 增加链路传输带宽:
- 避免了STP计算,聚合组内物理端口不会被阻塞
- 交换机之间的流量会自动在聚合组内的所有物理端口上负载分担
负载分担 :聚合后的链路会基于流自动负载分担

6.8.2链路聚合的分类
- 静态聚合:双方系统间不适用聚合协议来协商链路信息
- 动态聚合 :
- 双方系统间使用聚合协议来协商链路信息
- LACP(Link Aggregation Control Protocol,链路聚合控制协议)是一种基于IEEE802.3ad标准的、能够实现链路动态聚合的协议
6.8.3链路聚合的基本配置
// 静态聚合配置
// 创建聚合端口
[Switch]interface bridge-aggregation interface-number
// 将以太网端口加入聚合组
[Switch-Ethernet1/0/1]port link-aggregation group number
// 链路聚合信息显示
<Switch>display link-aggregation summary

第七章 IP协议
7.1 IP相关概念
IP是网络层协议,也是当今应用最广泛的网络协议之一
IP协议规定了数据的封装方式,网络节点的标识方法,用于网络上数据的端到端的传递

IP的主要作用:
- 标识节点和链路
- 用唯一的IP地址标识每一个节点
- 唯一的IP网络号标识每一个链路
- 寻址和转发
- 确定节点所在网络的位置,进而确定节点所在的位置
- IP路由器选择适当的路径将IP包转发到目的节点
- 适应各种数据链路
- 根据链路的MTU对IP包进行分片和重组
- 为了通过实际的数据链路传递信息,须建立IP地址到数据链路层地址的映射




7.2 IP子网划分
根据IP地址的类别(Class)进行IP地址分配的方法表现出越来越多的弊端
为了解决分类IP地址划分带来的地址浪费,就需要使用**子网划分(Subnetting)**的方法
VLSM和CIDR可以进一步提高地址利用效率,缓解地址数量不足的问题
分类IP地址的低效性:
- IP地址资源浪费严重
- IP网络数量不敷使用
- 业务扩展缺乏灵活性
- 无法应对Internet的爆炸式增长










7.3 VLSM
子网划分的局限性:
- 无法实现把网络划分为不同大小的子网
- 常常会浪费许多主机地址
VLSM(Variable Length Subnet Mask, 可变长子网掩码)
- 允许使用多个子网掩码划分子网
- 使组织的IP地址空间得到更有效的利用
VLSM 的核心逻辑
基于 "大子网再划分子网" 的思路:
- 先给主机数最多的网段分配一个合适的大子网;
- 再把这个大子网中剩余的地址空间,继续划分为更小的子网,分配给主机数少的网段。
- 本质是子网的子网划分。
7.4 CIDR
Internet面临的问题:
- 随着Internet的成长,路由表迅速扩大
- IPv4地址将很快耗尽
CIDR(Classless Inter-Domain Routing,无类域间路由)
- 消除了自然分类地址和子网划分的界限
- 将网络前缀相同的连续IP地址组成CIDR地址块
- 支持强化地址汇聚
有类别和无类别
- 有类别路由:路由器会根据 IP 地址的前几位判断 A/B/C 类,自动确定网络位长度,不支持自定义掩码。
- 无类别路由 :路由器不判断地址类别,完全根据
前缀长度划分网络位和主机位,这就是 CIDR 的核心。
无类域间路由斜线表示法:CIDR使用斜线表示法表示一个网络,斜线表示法采用IP地址后跟一个斜线"/",斜线后是一个表示网络前缀长度的数值

7.5 ARP
IP地址是一个逻辑地址,不能被物理网络所识别
ARP给出了将主机的网络地址动态映射为MAC地址的方法
核心功能 :已知目标主机的 IP 地址 ,通过 ARP 协议查询对应的 MAC 地址。
工作流程:
- 源主机发送 ARP 请求(广播)
- 目标主机回复 ARP 响应(单播)
- 源主机缓存 ARP 映射关系

路由器默认不会转发 ARP 报文 ,但如果路由器开启了代理 ARP 功能,会模拟目标主机回复 ARP 响应,让源主机误以为目标主机在同一网段,路由器就可以像二层交换机一样转发ARP报文

7.6 RARP
允许无盘工作站动态获得其协议地址
核心功能:
- 已知主机的 MAC 地址 ,通过 RARP 协议获取对应的 IP 地址。
- 它是 ARP 的反向操作,现在已经基本被 DHCP 协议 取代。
工作流程:
- 无盘工作站发送 RARP 请求(广播)
- RARP 服务器回复响应(单播)
- 工作站获取 IP 地址





7.7 ARP配置
// 手动添加静态ARP表项
[Router]arp static ip-address mac-address
// 删除静态ARP表项
[Router]undo arp ip-address
// 显示ARP的运行信息
<Router>display arp
-------------------代理ARP---------------------
// 开启代理ARP功能
[Router]proxy-arp enable
// 显示代理ARP信息
[Router]display proxy-arp [ionterface interface-type interface-number]
第八章 DHCP
DHCP(动态主机配置协议) 的核心作用是自动给局域网内的终端(PC、服务器等)分配 IP 地址、子网掩码、网关、DNS 等参数,避免手动配置的繁琐和错误。
DHCP有两种常见的配置方式:
- 路由器作为DHCP服务器
- 交换机作为DHCP中继(跨网段时)
8.1 DHCP核心流程
DHCP 分配 IP 是一个 "请求 - 应答" 的过程,终端和服务器之间通过 4 个报文完成交互:
- DHCP Discover(发现) :终端开机后没有 IP,会以广播形式发送 Discover 报文,全网询问 "谁是 DHCP 服务器?"
- DHCP Offer(提供) :DHCP 服务器收到报文后,从地址池里选一个空闲 IP,以单播形式发送 Offer 报文,告诉终端 "我可以给你分配这个 IP"。
- DHCP Request(请求) :终端可能收到多个服务器的 Offer,会选择其中一个,再次以广播形式发送 Request 报文,确认 "我要使用这个 IP"。
- DHCP ACK(确认) :被选中的服务器收到 Request 后,以单播形式发送 ACK 报文,包含 IP 地址、子网掩码、网关、DNS 等完整参数,终端拿到后就可以用这个 IP 通信了。
DHCP 广播报文无法跨网段 ,如果终端和 DHCP 服务器不在同一网段,必须配置 DHCP 中继。
8.2 DHCP同网段配置
// 路由器作为 DHCP 服务器(同网段场景)
// 启动DHCP服务
[Router] dhcp enable
// 禁止某地址分配给主机
[Router]dhcp server forbidden-ip <被禁用的ip地址>
// 创建DHCP地址池
[Router]dhcp server ip-pool <地址池名字>
// 配置地址池的IP网段
[Router-ip-pool-pool1]network <地址池的网段> mask <子网掩码>
// 配置分配给主机的网关
[Router-dhcp-pool-pool1]gateway-list <网关的IP地址>
// 指定DNS服务器
[Router-dhcp-pool-pool1]dns-list <DNS服务器地址>
// 查看地址池配置
[Router]display dhcp server ip-pool
第九章 路由基础知识
9.1 路由的定义
IP路由原理:
- 路由器负责将数据报文在逻辑网段间进行转发
- 路由是指导路由器如何进行数据报文发送的路径信息
- 每台路由器都有路由表,路由存储在路由表中
- 路由环路是由错误的路由导致的,它会造成IP报文在网络中循环转发,浪费网络带宽
**路由的定义:**路由是指导IP报文发送的路径信息
路由表中的要素:
- 目的地址/子网掩码
- 下一条地址
- 出接口
- 路由度量值
- 路由优先级

路由器根据IP报文中的目的IP地址 进行路由表项查找,并选择其中掩码最长的路由项用于指导报文转发
路由的来源:
- **直连路由:**开销小,配置简单,无需人工维护。只能发现本接口所属网段的路由,也就是数据链路层协议发现的路由。
- **手工配置的静态路由:**无开销,配置简单,需人工维护,适合简单拓扑结构的网络。
- **路由协议发现的路由:**开销大,配置复杂,无需人工维护,适合复杂拓扑结构的网络。
9.2 路由度量值
路由度量值:
- 路由度量值表示到达这条路由所指目的地址的代价
- 通常影响路由度量值的因素:线路延迟、带宽、线路使用率、线路可信度、跳数、最大传输单元
- 不同路由协议参考的因素不同

9.3 路由优先级
如果到相同目的地址有多个1路由来源,则:
- 以Preference(优先级)确定不同类型优先级
- Preference越小,优先级越高
- 优先级最高的路由被添加进路由表


9.4 路由环路
若网络拓扑中,路由之间产生了环路,那么报文会在路由环路之间循环转发,直到TTL值到0后被丢弃

9.5 直连路由和静态路由
无需任何路由配置,路由器即可获得其直连网段的路由
静态路由是由管理员手工配置,适用于拓扑简单的网络

9.6 子接口和单臂路由

上图中,路由器和每一个VLAN建立了一条物理连接,浪费了大量的端口,可通过子接口来实现单臂路由:

9.7 子接口和单臂路由配置
// 在物理接口 G0/0 上,创建一个编号为 2 的子接口(G0/0.2)
// 这个是软件虚拟接口,没有实体网口,依托物理口 G0/0 工作
[Router]interface GigabitEthernet0/0.2
// 给这个子接口 G0/0.2,配置802.1Q 的 VLAN 标签封装,只处理VLAN 2的数据包
[RTA-GigabitEthernet0/0.2]vlan-type dot1q vid 2
9.8 路由相关配置
// 查看IP路由表摘要信息
[Router]display ip routing-table
// 查看符合指定目的地址的路由信息
[Router]display ip routing-table ip-address [ mask-length | mask ]
// 查看路由表的统计信息
[Router] display ip routing-table statistics
// 静态路由配置(下一跳必须是直连链路上的可达地址,否则无效)
// 负载均衡:当到同一目标网段有2 条等带宽路径时,可配置两条相同优先级的静态路由,实现流量均分。
// 路由备份:配置两条不同优先级的静态路由,高优先级路由(数值小)为主用,低优先级(数值大)为备用,主用故障时自动切换。
[Router]ip route-static <目的地址> <目的地址子网掩码> <下一跳路由> <优先级>
// 静态默认路由配置(下一跳必须是直连链路上的可达地址,否则无效)
[Router]ip route-static 0.0.0.0 0.0.0.0 <下一跳路由地址>


第十章 路由协议基础
路由可以静态配置,也可以通过路由协议来自动生成
路由协议能够自动发现和计算路由,并在拓扑变化时自动更新,无需人工维护,适用于复杂的网络
- 路由协议
- 路由器用来计算、维护网络路由信息的协议,通常有一定的算法,工作在传输层或应用层。
- 常见的路由协议有RIP、OSPF、BGP等
- 可路由协议
- 可被路由器转发的协议,工作在网络层。
- 常见的可路由协议有IP、IPX等
10.1 动态路由协议
动态路由协议的步骤:
- 邻居发现:路由器通过发送广播报文或发送给指定的路由器邻居以主动把自己介绍给网段内的其它路由器。
- 路由交换:每台路由器将自己已知的路由相关信息发给相邻路由器。
- 路由计算:每台路由器运行某种算法,计算出最终的路由来。
- 路由维护:路由器之间通过周期性地发送协议报文来维护邻居信息。
10.1.1 动态路由与静态路由对比
静态路由的缺陷:
- 当网络规模大(比如有 10 台以上路由器),手动配置每一条静态路由会非常繁琐,容易出错;
- 当某条链路故障时,静态路由无法自动感知,必须管理员手动修改配置,网络恢复慢;
- 大型网络拓扑复杂,人工维护路由表的成本极高。
动态路由协议的优势:
- 自动学习:路由器之间互相发送路由信息,自动生成全网路由表;
- 自动收敛:链路故障时,协议会快速计算新的最优路径,更新路由表;
- 简化管理:管理员只需配置协议参数,无需手动维护大量路由条目。
10.1.2 动态路由协议的核心概念
- 自治系统(AS)
自治系统 是指一组共享相似路由策略并在单一管理域中运行的路由集合,用AS 号(1~65535)标识。
- 内部网关协议(IGP):在同一个 AS 内运行的协议,比如 RIP、OSPF、EIGRP;
- 外部网关协议(EGP):在不同 AS 之间 运行的协议,最常用的是 BGP(边界网关协议)。
- 路由信息交换
运行相同动态路由协议的路由器,会互相发送路由更新报文,报文中包含自己知道的网段、路径开销等信息。
-
邻居关系:路由器之间需要先建立 "邻居关系",才能交换路由信息(类似先加好友,才能聊天);
-
周期性更新 / 触发更新:
- 周期性更新:比如 RIP 每 30 秒发送一次路由更新;
- 触发更新:拓扑变化时立即发送更新(比如 OSPF),收敛更快。
- 度量值(Metric)
和静态路由的度量值作用一样,动态路由协议用度量值判断路径优劣,数值越小路径越优(不同协议的度量值计算规则不同)。
- 核心目的:当路由器有多条路径到达同一目标网段时,选择度量值最小的路径加入路由表。
- 衡量路由协议的主要指标:
- 协议计算的正确性
- 协议使用的算法能够计算出最优的路由,且正确无自环。
- 路由收敛速度
- 当网络的拓扑结构发生变化之后,能够迅速感知并及时更新相应的路由信息。
- 协议占用系统开销
- 协议自身的开销(内存、CPU、网络带宽)最小。
- 协议自身的安全性
- 协议自身不易受攻击,有安全机制。
- 协议适用网络规模协议
- 可以应用在何种拓扑结构和规模的网络中。
10.2 RIP
RIP是Routing Information Protocol(路由信息协议)的简称,是最基础的内部网关协议(IGP)
RIP是一种基于距离矢量(Distance-Vector)算法的路由协议 。
RIP协议适用于中小型网络,分为RIPv1和RIPv2。
RIP支持水平分割、毒性逆转和触发更新等工作机制防止路由环路。
RIP协议基于UDP传输,端口号520。
10.2.1 核心度量值
RIP 用 跳数 衡量路径优劣,跳数越少,路径越优。
-
跳数定义:数据包从源路由器到目标网段,经过的路由器数量。
- 直连网段的跳数 = 0;
- 经过 1 台路由器,跳数 = 1;
- 经过 2 台路由器,跳数 = 2。
-
RIP 有一个
致命限制
:
最大跳数为 15
,跳数 ≥ 16 时,RIP 会认为目标网段 "不可达"。
→ 这就是 RIP 只能用于小型网络的原因(大型网络跳数很容易超过 15)。
10.2.2 路由信息交换规则
RIP 路由器之间的信息交换,就像 "邻居之间互相串门报信",规则很简单:
-
邻居发现 :运行 RIP 的路由器,会在所有启用 RIP 的接口上,每 30 秒发送一次路由更新报文,报文中包含自己知道的所有网段和对应的跳数。
-
路由学习:邻居路由器收到更新报文后,会对比自己的路由表:
- 如果是新网段:直接加入路由表,跳数 = 收到的跳数 + 1(因为要经过自己这一跳);
- 如果是已有网段:如果收到的跳数更小,就更新路由表;否则忽略。
-
路由老化 :RIP 路由器会给每条路由设置一个老化计时器(默认 180 秒)。如果 180 秒内没收到这条路由的更新,就标记为 "不可达";再过 120 秒(刷新计时器),就从路由表中删除。
10.2.3 防环机制
RIP 是距离矢量协议,天生容易产生路由环路(比如 A 路由器认为目标网段在 B 那边,B 又认为在 A 那边,数据包来回转发)。为了防止环路,RIP 内置了 3 个核心机制:
| 防环机制 | 作用 |
|---|---|
| 水平分割 | 路由器不会把从某个接口学到的路由,再从同一个接口发回去(比如从 R2 学到的路由,不回传给 R2) |
| 毒性反转 | 把从某个接口学到的路由,再从这个接口发回去时,标记为 "跳数 16"(不可达),强制邻居路由器放弃这条路由 |
| 触发更新 | 拓扑变化时(比如链路故障),路由器不等待 30 秒周期,立即发送更新报文,加速全网收敛 |
| 防环机制 | 作用 |
|---|---|
| 定义最大值 | 限制最大跳数,终止无限环路,跳数≥16 = 不可达 |
| 路由毒化 | 主动标记故障路由,快速通知全网,坏路由标 16,主动喊 "我坏了" |
| 抑制时间 | 给路由冷静期,防止抖动和误更新,180 秒内,不听不信坏路由的新消息 |
10.2.4 RIPv1和RIPv2
RIP 有两个主要版本,两者的核心区别如下:
| 特性 | RIPv1 | RIPv2 |
|---|---|---|
| 地址支持 | 只支持有类路由(A/B/C 类地址,不支持 VLSM),发送协议报文时不携带掩码,路由交换过程中有时会造成错误 | 支持无类路由(支持 VLSM、CIDR) |
| 报文类型 | 广播报文(目标地址 255.255.255.255) | 组播报文(目标地址 224.0.0.9),减少网络带宽占用 |
| 认证功能 | 无(路由器之间交换路由不验证身份,不安全) | 支持明文 / MD5 认证,防止恶意路由欺骗 |
RIPv2:
- RIPv2是一种无类别路由协议(Classless Routing Protocol)
- RIPv2协议报文中携带掩码信息,支持VLSM(可变长子网掩码)和CIDR
- RIPv2支持以组播方式发送路由更新报文,组播地址为224.0.0.9,减少网络与系统资源消耗
- RIPv2支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
10.2.5 RIP配置
// 创建RIP进程并进入RIP视图
[Router]rip [ process-id ]
// 在指定网段接口上使能RIP
// 两层含义:
// 指定本机上哪些接口路由能够添加到RIP路由表中
// 指定本机上哪些接口能够收发RIP协议报文
[Router-rip-1] network <网段地址>
// 配置接口工作在抑制状态
[Router-rip-1] silent-interface { interface-type interface-number | all }
// 使能RIP水平分割功能
[Router-Ethernet1/0] rip split-horizon
// 使能RIP毒性逆转功能
[Router-Ethernet1/0] rip poison-reverse
--------------------RIPv2配置--------------------
// 指定全局RIP版本
[Router-rip-1] version { 1 | 2 }
// 关闭RIPv2自动路由聚合功能
[Router-rip-1] undo summary
// 配置RIPv2报文的认证
[Router-Ethernet1/0] rip authentication-mode { md5 { rfc2082 { cipher cipher-string | plain plain-string } key-id | rfc2453 { cipher cipher-string | plain plain-string } } | simple { cipher cipher-string | plain plain-string } }
// 显示RIP当前运行状态及配置信息
<Router> display rip
// 查看RIP的debugging信息
<RTA>debugging rip 1 packet



10.3 OSPF
RIP路由协议存在无法避免的缺陷,多用于构建中小型网络
随着网络规模的日益扩大,RIP路由协议已经不能完全满足需求
OSPF 路由协议解决了很多RIP路由协议无法解决的问题,因而得到了广泛应用
RIP的缺陷:
- 以跳数评估的路由并非最优路径,最大跳数 15,只能用于小型网络
- 收敛慢(依赖 30 秒周期更新),链路故障后全网恢复慢
- 路由更新时发送完整路由表,占用带宽多
10.3.1 OSPF配置
// 配置RouterID
[Router]router id <id号>
// 启动OSPF进程
[Router]ospf <进程号>
// 重启OSPF进程
<Router>reset ospf <进程号> process
// 配置OSPF区域
[Router-ospf-100]area <区域号>
// 在指定的接口上启动OSPF
[Router-ospf-1-area-0.0.0.0] network <ip地址>
// 配置OSPF接口优先级
[Router-Ethernet0/0] ospf dr-priority <priority值>
// 配置OSPF接口Cost
[Router-Ethernet0/0] ospf cost <cost值>
// 显示OSPF邻居信息
[Router]display ospf peer
// 显示OSPF的链路状态数据库
<Router>display ospf lsdb
// 显示OSPF路由信息
<Router>display ospf routing
// 显示OSPF摘要信息
[Router] display ospf [ process-id ] [ verbose ]
// 显示启动OSPF的接口信息
[Router] display ospf [ process-id ] interface [ interface-type interface-number | verbose ]
// OSPF事件调试信息
<Router> debugging ospf event
// OSPF链路状态通告调试信息
<Router> debugging ospf lsa
// OSPF包调试信息
<Router> debugging ospf packet
// OSPF路由计算调试信息
<Router> debugging ospf spf
// OSPF进程调试信息
<Router> debugging ospf process-id




附:HCL命令汇总
基础命令
// 进入系统视图
<H3C>system-view
// 进入接口视图(接口 G 0/0)
[H3C]interface GigabitEthernet 0/0
// 进入用户线视图(一次性配置0~63通道)
[H3C]user-interface vty 0 63
// 查看历史命令记录
<H3C>display history-command
// 配置设备名称
[H3C] sysname ?
TEXT Host name (1 to 64 characters)
// 配置系统时间
<H3C>clock datetime ?
TIME Specify the time (hh:mm:ss)
// 显示系统时间
<H3C>display clock
// 查看版本信息
<H3C>displaya version
// 查看当前配置
<H3C>display current-configuration
// 显示接口信息
<H3C>display interface
// 显示接口IP状态与配置信息
<H3C>display ip interface brief
// 显示系统运行统计信息
<H3C>display diagnostic-information
// 重启系统
<H3C> reboot
// 开启设备定时重启功能,并指定重启的具体时间
<H3C> schedule reboot delay { hh:mm | mm }
// 显示设备的重启时间
<H3C> display schedule reboot
文件操作
// 保存配置
<H3C>save
<H3C>save h3c.cfg
// 擦除配置
<H3C>reset saved-configuration
// 设置下次启动的配置文件
<H3C>startup saved-configuration filename
// 备份/恢复下次启动配置文件
<H3C> backup startup-configuration to tftp-server [ dest-filename ]
<H3C> restore startup-configuration from tftp-server src-ilename
// 显示保存的配置文件
<H3C>display saved-configuration
// 查看系统启动配置文件
<H3C> display startup
// 查看当前生效的配置
<H3C> display current-configuration
// 查看当前视图下生效的配置
[H3C-line-vty0-63] display this
// 指定下次启动加载的应用程序文件
<H3C> boot-loader file file-url
// 显示下次启动加载的应用程序文件
<H3C> display boot-loader
// 显示文件目录
<H3C>pwd
// 显示当前路径的所有文件列表
<H3C>dir
// 显示文本文件内容
<H3C>more h3c.cfg
// 改变当前工作路径
// 进入logfile子目录
<H3C>cd logfile
// 文件删除、清空回收站
<H3C>delete filename
<H3C>reset recycle-bin
调试命令
// ping
// 设置源IP地址
// -a <源IP地址> <目的IP地址>
ping -a 192.168.1.1 192.168.2.1
// 设置报文数量(默认五个)
// -c <报文数量>
ping -c 10 192.168.1.1
// 设置数据载荷大小(单位:字节)
// -s <报文大小>
ping -s 1024 192.168.1.1
-------------------系统调试---------------------
// 系统调试
// 开启控制台对系统信息的监视功能
<H3C> terminal monitor
// 打开调试信息的屏幕输出开关
<H3C> terminal debugging
// 打开模块调试开关
<H3C> debugging module-name
// 显示调试开关
<H3C> display debugging
Telnet配置
// Telnet服务器端
// 配置与网络相连端口的IP地址
[H3C-GigabitEthernet0/0] ip address ip-address { mask | mask-length }
// 使能Telnet服务器端功能
[H3C] telnet server enable
// 进入vty用户界面视图,设置验证方式
[H3C] line vty first-num2 [ last-num2 ]
[H3C-line-vty0-63] authentication-mode { none | password | scheme }
// 设置登录密码和用户级别
[H3C-line-vty0-63] set authentication password { hash | simple } password
[H3C-line-vty0-63] user-role { network-admin | network-operator | level-n }
// 创建用户、配置密码、设置服务类型、设置用户级别
[H3C] local-user username
[H3C-luser-manage-xxx] password { hash | simple } password
[H3C-luser-manage-xxx] service-type telnet
[H3C-luser-manage-xxx] authorization-attribute user-role role-name
--------------------客户端----------------------
// 使用telnet登录
<H3C> telnet <telnet服务器的IP地址>
SSH配置
// SSH服务器端
// 使能SSH服务器功能
[H3C]ssh server enable
// 配置SSH认证方式
[H3C-line-vty0-63]authentication-mode scheme
// 给当前vty登录入口,设置只允许ssh登陆
[H3C-line-vty0-63] protocol inbound ssh
// 配置SSH用户
[H3C]local-user username
[H3C-luser-manage-xxx] password { hash | simple } password
[H3C-luser-manage-xxx] service-type ssh
[H3C-luser-manage-xxx] authorization-attribute user-role role-name
// 生成RSA密钥
[H3C]public-key local create rsa
// 导出RSA密钥
[H3C] public-key local export public rsa ssh2
// 销毁RSA密钥
[H3C] public-key local destroy rsa
--------------------客户端----------------------
// SSH 客户端
// 在客户端使用软件PuTTY,连接方式选择SSH,输入服务器地址,端口为22,即可登录
VLAN配置
-----------------vlan 基本配置------------------
// 创建VLAN并进入VLAN视图
[Switch] vlan vlan-id
// 将指定端口加入到当前VLAN中
Switch-vlan10] port interface-list
-----------------配置Trunk端口------------------
// 配置端口的链路类型为Trunk类型
[Switch-Ethernet1/0/1] port link-type trunk
// 允许指定的VLAN通过当前Trunk端口
[Switch-Ethernet1/0/1] port trunk permit vlan { vlan-id-list | all }
// 设置Trunk端口的缺省VLAN
[Switch-Ethernet1/0/1] port trunk pvid vlan vlan-id
-----------------配置Hybrid端口-----------------
// 配置端口的链路类型为Hybrid类型
[Switch-Ethernet1/0/1] port link-type hybrid
// 允许指定的VLAN通过当前Hybrid端口
[Switch-Ethernet1/0/1] port hybrid vlan vlan-id-list { tagged | untagged }
// 设置Hybrid端口的缺省VLAN
[Switch-Ethernet1/0/1] port hybrid pvid vlan vlan-id
-----------------VLAN显示及维护-----------------
// 显示交换机存在的VLAN
<Switch> display vlan
// 查看某一个VLAN的详细信息
<Switch> display vlan vlan-id
// 查看某一个接口的PVID和链路类型
<Swicth> display interface GigabitEthernet 1/0/1
STP配置
// STP监控与维护
// 查看STP信息
[Switch] display stp
// 查看STP简要信息
[Switch] display stp brief
// 开启设备STP特性
[Switch] stp global enable
// 关闭端口口的STP特性
[Switch-Ethernet1/0/1] undo stp global enable
// 配置STP的工作模式
[Switch] stp mode { stp | rstp | pvst | mstp }
// 配置当前设备的优先级
[Switch] stp [instance instance-id] priority priority
// 配置端口为边缘端口
[Switch-Ethernet1/0/1] stp edged-port
链路聚合配置
// 静态聚合配置
// 创建聚合端口
[Switch]interface bridge-aggregation interface-number
// 将以太网端口加入聚合组
[Switch-Ethernet1/0/1]port link-aggregation group number
// 链路聚合信息显示
<Switch>display link-aggregation summary
子接口和单臂路由配置
// 在物理接口 G0/0 上,创建一个编号为 2 的子接口(G0/0.2)
// 这个是软件虚拟接口,没有实体网口,依托物理口 G0/0 工作
[Router]interface GigabitEthernet0/0.2
// 给这个子接口 G0/0.2,配置802.1Q 的 VLAN 标签封装,只处理VLAN 2的数据包
[RTA-GigabitEthernet0/0.2]vlan-type dot1q vid 2
路由相关配置
// 查看IP路由表摘要信息
[Router]display ip routing-table
// 查看符合指定目的地址的路由信息
[Router]display ip routing-table ip-address [ mask-length | mask ]
// 查看路由表的统计信息
[Router] display ip routing-table statistics
// 静态路由配置(下一跳必须是直连链路上的可达地址,否则无效)
// 负载均衡:当到同一目标网段有2 条等带宽路径时,可配置两条相同优先级的静态路由,实现流量均分。
// 路由备份:配置两条不同优先级的静态路由,高优先级路由(数值小)为主用,低优先级(数值大)为备用,主用故障时自动切换。
[Router]ip route-static <目的地址> <目的地址子网掩码> <下一跳路由> <优先级>
// 静态默认路由配置(下一跳必须是直连链路上的可达地址,否则无效)
[Router]ip route-static 0.0.0.0 0.0.0.0 <下一跳路由地址>
// 黑洞路由配置
[Router]ip route-static <目的地址> <目的地址子网掩码> null0
OSPF配置
// 配置RouterID
[Router]router id <id号>
// 启动OSPF进程
[Router]ospf <进程号>
// 重启OSPF进程
<Router>reset ospf <进程号> process
// 配置OSPF区域
[Router-ospf-100]area <区域号>
// 在指定的接口上启动OSPF
[Router-ospf-1-area-0.0.0.0] network <ip地址>
// 配置OSPF接口优先级
[Router-Ethernet0/0] ospf dr-priority <priority值>
// 配置OSPF接口Cost
[Router-Ethernet0/0] ospf cost <cost值>
// 显示OSPF邻居信息
[Router]display ospf peer
// 显示OSPF的链路状态数据库
<Router>display ospf lsdb
// 显示OSPF路由信息
<Router>display ospf routing
// 显示OSPF摘要信息
[Router] display ospf [ process-id ] [ verbose ]
// 显示启动OSPF的接口信息
[Router] display ospf [ process-id ] interface [ interface-type interface-number | verbose ]
// OSPF事件调试信息
<Router> debugging ospf event
// OSPF链路状态通告调试信息
<Router> debugging ospf lsa
// OSPF包调试信息
<Router> debugging ospf packet
// OSPF路由计算调试信息
<Router> debugging ospf spf
// OSPF进程调试信息
<Router> debugging ospf process-id
ACL配置
// 设置包过滤的默认过滤方式
[Router]packet-filter default { permit | deny }
-------------------基本ACL配置--------------------
// 定义基本ACL
[Router]acl number <acl号2000~2999>
// 定义规则:
// 指定要匹配的源IP地址范围
// 指定动作是permit或deny
[H3C-acl-basic-2000] rule [ rule-id ] { deny | permit } [ counting | fragment | logging | source { sour-addr sour-wildcard | any } | time-range time-range-name ]
-------------------高级ACL配置--------------------
// 定义高级ACL
[Router]acl number <acl号3000~3999>
// 定义规则:
// 指定源IP地址、目的IP地址、IP承载的协议类型、协议端口号等信息
// 指定动作是permit或deny
[H3C-acl-adv-3000] rule [ rule-id ] { deny | permit } protocol [ destination { dest-addr dest-wildcard | any } | destination-port operator port1 [ port2 ] established | fragment | source { sour-addr sour-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name ]
-------------------二层ACL配置--------------------
// 定义二层ACL
[Router]acl number <acl号4000~4999>
// 定义规则:
// 指定源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息
// 指定动作是permit或deny
[H3C-acl-ethernetframe-4000] rule [ rule-id ] { deny | permit } [ cos vlan-pri | dest-mac dest-addr dest-mask | lsap lsap-type lsap-type-mask | source-mac sour-addr source-mask | time-range time-range-name]
-------------------------------------------------
// 在接口上应用ACL
[H3C-Serial2/0 ] packet-filter { acl-number | name acl-name } { inbound | outbound }
// 查看包过滤的统计信息
display packet-filter statistics { interface [ interface-type interface-number ] { inbound | outbound } { acl-number | name acl-name } }
// 清除包过滤的统计信息
reset packet-filter statistics { interface [ interface-type interface-number ] { inbound | outbound } { acl-number | name acl-name } }
// 显示配置的IPv4 ACL信息
display acl { acl-number | all }
// 清除IPv4 ACL统计信息
reset acl counter { acl-number | all | name acl-name }
// 配置ACL的匹配顺序
acl number acl-number [ match-order { auto | config } ]
------------------高级ACL配置样例------------------
[RTC]acl number 3000
[RTC-acl-adv-3000]rule deny ip source 172.16.0.1 0 destination 192.168.0.0 0.0.1.255
[RTC-GigabitEthernet0/0]packet-filter 3000 inbound
------------------基本ACL配置样例------------------
[RTA]acl number 2000
[RTA-acl-basic-2000]rule deny source 172.16.0.1 0
[RTA-GigabitEthernet0/1]packet-filter 2000 inbound
NAT配置
------------------BasicNAT配置-------------------
// 创建并进入地址池
[Router]nat address-group <地址池号>
// 配置地址池里的IP
[Router-address-group-1]address <起始IP地址> <结尾IP地址>
// 将配置地址和acl绑定到接口上
[Router-GigabitEthernet0/1]nat outbound <acl-number> address-group <group-number> no-pat
--------------------NAPT配置---------------------
// 创建并进入地址池
[Router]nat address-group <地址池号>
// 配置地址池里的IP
[Router-address-group-1]address <起始IP地址> <结尾IP地址>
// 将配置地址和acl绑定到接口上
[Router-GigabitEthernet0/1]nat outbound <acl-number> address-group <group-number>
-------------------Easy IP配置-------------------
[Router-GigabitEthernet0/1]nat outbound <acl-number>
-----------------NAT Server配置------------------
[Router-GigabitEthernet0/1]nat server protocol pro-type global global-addr [ global-port ] inside host-addr [ host-port ]
-----------------NAT信息显示和调试-----------------
// 显示地址转换信息
<H3C> display nat { address-group group-number | all | outbound port-block-group | server | statistics | session }
// 调试地址转换过程
<H3C> debugging nat { alg | config | event | packet acl number }
// 清除地址转换连接
<H3C> reset nat session
HDLC配置
// 设置接口链路层协议为HCLC
[Router-Serial1/0] link-protocol hdlc
// 设置HDLC的Keepalive轮询时间间隔
[Router-Serial1/0] timer-hold <秒数>
PPP配置
显示PPP验证的本地用户
// 设置接口报文的封装PPP
[Router-Serial1/0] link-protocol ppp
// 设置验证类型
[Router-Serial1/0]ppp authentication-mode { pap | chap }
// 设置用户名、密码、服务类型
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
--------------------PAP验证----------------------
// 主验证方:配置用户列表及验证方式
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
[H3C-Serial1/0] ppp authentication-mode { pap | chap }
// 被验证方:配置PAP用户名
[H3C-Serial1/0] ppp pap local-user username password { cipher | simple } password
--------------------CHAP验证---------------------
// 主验证方
// 配置本地验证对端方式为CHAP
[H3C-Serial1/0] ppp authentication-mode chap
// 配置本地名称
[H3C-Serial1/0] ppp chap user username
// 将对端用户名和密码加入本地用户列
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
// 被验证方
// 配置本地名称和密码
[H3C-Serial1/0] ppp chap user username
[H3C-Serial1/0] ppp chap password { cipher | simple } password
---------------------PPP MP----------------------
// 创建虚拟模板接口
[H3C] interface virtual-template number
// 将物理接口或用户名与虚拟模板接口关联
// 将物理接口与虚拟模板接口关联
[H3C-Serial1/0] ppp mp virtual-template number
// 将用户名与虚拟模板接口关联
[H3C] ppp mp user username bind virtual-template number
[H3C-Virtual-Template1] ppp mp binding-mode authentication
[H3C-Serial1/0] ppp mp
// MP-Group方式配置PPP MP
// 创建MP-Group接口
[H3C] interface Mp-group mp-number
// 加入MP-Group组
[H3C-Serial1/0] ppp mp Mp-group mp-number
------------------PPP显示与调试-------------------
// 显示接口的PPP配置和运行状态
[H3C] display interface interface-name
// 查看已创建的MP-Group接口的状态信息
[H3C] display interface Mp-group [ mp-number ]
// 显示指定MP接口的接口信息和统计信息
[H3C] display ppp mp [ interface interface-type interface-number ]
// 显示PPP验证的本地用户
[H3C] display users
// 查看PPP的调试信息
<H3C> debugging ppp all [ interface interface-type interface-number ] statistics | session }
// 调试地址转换过程
<H3C> debugging nat { alg | config | event | packet acl number }
// 清除地址转换连接
<H3C> reset nat session
HDLC配置
// 设置接口链路层协议为HCLC
[Router-Serial1/0] link-protocol hdlc
// 设置HDLC的Keepalive轮询时间间隔
[Router-Serial1/0] timer-hold <秒数>
PPP配置
显示PPP验证的本地用户
// 设置接口报文的封装PPP
[Router-Serial1/0] link-protocol ppp
// 设置验证类型
[Router-Serial1/0]ppp authentication-mode { pap | chap }
// 设置用户名、密码、服务类型
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
--------------------PAP验证----------------------
// 主验证方:配置用户列表及验证方式
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
[H3C-Serial1/0] ppp authentication-mode { pap | chap }
// 被验证方:配置PAP用户名
[H3C-Serial1/0] ppp pap local-user username password { cipher | simple } password
--------------------CHAP验证---------------------
// 主验证方
// 配置本地验证对端方式为CHAP
[H3C-Serial1/0] ppp authentication-mode chap
// 配置本地名称
[H3C-Serial1/0] ppp chap user username
// 将对端用户名和密码加入本地用户列
[H3C] local-user user-name class network
[H3C-luser-network-name] password simple password
[H3C-luser-network-name] service-type ppp
// 被验证方
// 配置本地名称和密码
[H3C-Serial1/0] ppp chap user username
[H3C-Serial1/0] ppp chap password { cipher | simple } password
---------------------PPP MP----------------------
// 创建虚拟模板接口
[H3C] interface virtual-template number
// 将物理接口或用户名与虚拟模板接口关联
// 将物理接口与虚拟模板接口关联
[H3C-Serial1/0] ppp mp virtual-template number
// 将用户名与虚拟模板接口关联
[H3C] ppp mp user username bind virtual-template number
[H3C-Virtual-Template1] ppp mp binding-mode authentication
[H3C-Serial1/0] ppp mp
// MP-Group方式配置PPP MP
// 创建MP-Group接口
[H3C] interface Mp-group mp-number
// 加入MP-Group组
[H3C-Serial1/0] ppp mp Mp-group mp-number
------------------PPP显示与调试-------------------
// 显示接口的PPP配置和运行状态
[H3C] display interface interface-name
// 查看已创建的MP-Group接口的状态信息
[H3C] display interface Mp-group [ mp-number ]
// 显示指定MP接口的接口信息和统计信息
[H3C] display ppp mp [ interface interface-type interface-number ]
// 显示PPP验证的本地用户
[H3C] display users
// 查看PPP的调试信息
<H3C> debugging ppp all [ interface interface-type interface-number ]