核心视图切换
用户视图 → 系统视图
<Huawei> system-view
[Huawei]
[Huawei]
系统视图 → 接口视图
[Huawei] interface gigabitethernet 0/0/0
[Huawei-GigabitEthernet0/0/0]
[Huawei-GigabitEthernet0/0/0]
返回用户视图
[Huawei] quit
<Huawei>
# 快捷键:Ctrl+Z 直接返回用户视图
<Huawei>
# 快捷键:Ctrl+Z 直接返回用户视图
路由器基础命令
查看所有接口IP状态
<Router> display ip interface brief
# 缩写:dis ip int br
# 缩写:dis ip int br
查看指定接口三层详细信息
<Router> display ip interface gigabitethernet 0/0/0
# 缩写:dis ip int g 0/0/0
# 缩写:dis ip int g 0/0/0
查看指定接口物理层状态
<Router> display interface gigabitethernet 0/0/0
# 缩写:dis int g 0/0/0
# 缩写:dis int g 0/0/0
查看路由表
<Router> display ip routing-table
# 缩写:dis ip routing-table
# 缩写:dis ip routing-table
路由表信息头解释
| 字段 | 含义 |
|---|---|
| Destination/Mask | 网络地址与子网掩码 |
| Proto | 协议来源:Direct直连、Static静态路由、OSPF等 |
| Pre | 优先级,值越小优先级越高(直连0,OSPF 10,静态60) |
| Cost | 路由开销 |
| Nexthop | 下一跳地址 |
| Interface | 出接口 |
配置默认路由
[R1] ip route-static 0.0.0.0 0.0.0.0 192.112.12.2
交换机基础命令
查看所有接口描述与状态
<Switch> display interface description
# 缩写:dis int desc
# 缩写:dis int desc
查看当前配置的接口信息
[Switch-GigabitEthernet0/0/1] display this
# 缩写:dis th
# 缩写:dis th
MAC地址表操作
# 查看MAC地址表
[SW] display mac-address
# 清除MAC地址表
[SW] undo mac-address
# 配置静态MAC地址
[SW] mac-address static aaaa-bbbb-cccc interface gigabitethernet 0/0/1 vlan 1
[SW] display mac-address
# 清除MAC地址表
[SW] undo mac-address
# 配置静态MAC地址
[SW] mac-address static aaaa-bbbb-cccc interface gigabitethernet 0/0/1 vlan 1
以太网交换机工作原理
MAC地址表:存放接口和所连接主机MAC地址的映射关系,是交换机转发单播数据帧的依据。
转发数据帧规则:
① 目标MAC为广播(FF-FF-FF-FF-FF-FF)或组播地址 → 向接收口之外的其他端口泛洪
② 目标MAC为单播地址 → 查找MAC地址表,查到则按表转发,未查到则泛洪
MAC地址48bit,用16进制表示。单播x1xx、组播x0xx。
MAC地址表:存放接口和所连接主机MAC地址的映射关系,是交换机转发单播数据帧的依据。
转发数据帧规则:
① 目标MAC为广播(FF-FF-FF-FF-FF-FF)或组播地址 → 向接收口之外的其他端口泛洪
② 目标MAC为单播地址 → 查找MAC地址表,查到则按表转发,未查到则泛洪
MAC地址48bit,用16进制表示。单播x1xx、组播x0xx。
以太网数据帧格式(EthernetII 14B)
DMAC(6B) + SMAC(6B) + TYPE(2B) + DATA
DMAC(6B) + SMAC(6B) + TYPE(2B) + DATA
接口配置命令
进入接口配置模式
[Switch] interface gigabitethernet 0/0/1
# 缩写:int g 0/0/1
# 缩写:int g 0/0/1
配置接口IP地址
[Switch-GigabitEthernet0/0/1] ip address 192.168.1.1 255.255.255.0
速率与双工配置
# 关闭自动协商
[Switch-GigabitEthernet0/0/1] undo negotiation auto
# 设置接口速率(10/100/1000,用speed ?查看支持值)
[Switch-GigabitEthernet0/0/1] speed 100
# 设置双工模式
[Switch-GigabitEthernet0/0/1] duplex full
[Switch-GigabitEthernet0/0/1] duplex half
# 使用 duplex ? 查看支持的模式
[Switch-GigabitEthernet0/0/1] undo negotiation auto
# 设置接口速率(10/100/1000,用speed ?查看支持值)
[Switch-GigabitEthernet0/0/1] speed 100
# 设置双工模式
[Switch-GigabitEthernet0/0/1] duplex full
[Switch-GigabitEthernet0/0/1] duplex half
# 使用 duplex ? 查看支持的模式
接口关闭与开启
[Switch-GigabitEthernet0/0/1] shutdown
[Switch-GigabitEthernet0/0/1] undo shutdown
[Switch-GigabitEthernet0/0/1] undo shutdown
系统配置命令
主机名配置
<Huawei> system-view
[Huawei] sysname SW_Core
[SW_Core]
[Huawei] sysname SW_Core
[SW_Core]
时区与时间配置
# 设置时区(北京时区 UTC+8)
[Switch] clock timezone BJ add 08:00:00
# 设置日期时间
[Switch] clock datetime 11:22:00 2025-10-30
# 查看当前时间
<Switch> display clock
# 缩写:dis clock
# 查看时区设置
<Switch> display clock timezone
[Switch] clock timezone BJ add 08:00:00
# 设置日期时间
[Switch] clock datetime 11:22:00 2025-10-30
# 查看当前时间
<Switch> display clock
# 缩写:dis clock
# 查看时区设置
<Switch> display clock timezone
Console口认证配置
# 进入Console用户界面
[Switch] user-interface console 0
# 设置认证方式为密码验证
[Switch-ui-console0] authentication-mode password
# 设置登录密码(cipher密文存储)
[Switch-ui-console0] set authentication password cipher YourPassword123
[Switch] user-interface console 0
# 设置认证方式为密码验证
[Switch-ui-console0] authentication-mode password
# 设置登录密码(cipher密文存储)
[Switch-ui-console0] set authentication password cipher YourPassword123
Console口认证注意事项
使用
配置完成后建议使用
使用
set authentication password cipher 时,密码会以密文方式存储在配置文件中,防止直接查看密码明文。配置完成后建议使用
save 保存配置,避免重启后认证丢失。
保存配置
<Switch> save
The current configuration will be written to the device.
Are you sure to continue?[Y/N] y
The current configuration will be written to the device.
Are you sure to continue?[Y/N] y
过滤查看当前配置
# 过滤与路由相关的配置
<Router> display current-configuration | include route
<Router> display current-configuration | include route
ARP协议
ARP协议作用
在同一个局域网(LAN)内,将目标设备的IP地址解析为对应的MAC地址(物理地址),从而实现数据链路层的封装,使数据包能够在物理网络上传输。如果没有MAC地址则无法在网络中通信。
在同一个局域网(LAN)内,将目标设备的IP地址解析为对应的MAC地址(物理地址),从而实现数据链路层的封装,使数据包能够在物理网络上传输。如果没有MAC地址则无法在网络中通信。
主机端ARP缓存操作
arp -a # 查看ARP缓存表arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff # 手工添加静态ARP绑定arp -d 192.168.1.1 # 删除ARP表项
路由器端ARP操作
# 查看ARP表
[Router] display arp
# 静态ARP绑定
[Router] arp static 192.168.1.10 aaaa-bbbb-cccc
[Router] display arp
# 静态ARP绑定
[Router] arp static 192.168.1.10 aaaa-bbbb-cccc
路由器转发流程
1. 从接口收到数据帧,如果目的MAC地址是接收接口的MAC地址就处理
2. 解封装,查看目的IP地址
3. 查找路由表,匹配路由项
4. 根据出接口和下一跳重新封装数据帧转发
路由表来源
直连路由:当路由器接口配置IP地址并激活之后,该接口所在网段的路由自动生成
非直连路由:手工添加(静态路由)或通过路由协议学习获得(动态路由)
1. 从接口收到数据帧,如果目的MAC地址是接收接口的MAC地址就处理
2. 解封装,查看目的IP地址
3. 查找路由表,匹配路由项
4. 根据出接口和下一跳重新封装数据帧转发
路由表来源
直连路由:当路由器接口配置IP地址并激活之后,该接口所在网段的路由自动生成
非直连路由:手工添加(静态路由)或通过路由协议学习获得(动态路由)
静态路由配置
配置静态路由
# 到达非直连网段
[R1] ip route-static 192.112.3.0 255.255.255.0 192.112.12.2
# 默认路由
[R1] ip route-static 0.0.0.0 0.0.0.0 192.112.12.2
# 语法:ip route-static 目标网络 子网掩码 下一跳IP/出接口
[R1] ip route-static 192.112.3.0 255.255.255.0 192.112.12.2
# 默认路由
[R1] ip route-static 0.0.0.0 0.0.0.0 192.112.12.2
# 语法:ip route-static 目标网络 子网掩码 下一跳IP/出接口
R1配置静态路由实现全网互通
分析非直连网段(R1上没有的网段),配置到达非直连网络的路由。
示例:R1到达192.112.3.0/24网段,下一跳为192.112.12.2。
分析非直连网段(R1上没有的网段),配置到达非直连网络的路由。
示例:R1到达192.112.3.0/24网段,下一跳为192.112.12.2。
子网划分示例
192.168.1.0/24划分4个子网,使用/26掩码(255.255.255.192),每个子网62个主机:
子网1: 192.168.1.0/26 广播地址192.168.1.63
子网2: 192.168.1.64/26 广播地址192.168.1.127
子网3: 192.168.1.128/26 广播地址192.168.1.191
子网4: 192.168.1.192/26 广播地址192.168.1.255
变长子网划分:如有两个50台主机的网段和一个100台主机的网段:
先将256对半分给100台主机的网段:192.168.1.0/25
剩下的128再划分两个子网:192.168.1.128/26 和 192.168.1.192/26
192.168.1.0/24划分4个子网,使用/26掩码(255.255.255.192),每个子网62个主机:
子网1: 192.168.1.0/26 广播地址192.168.1.63
子网2: 192.168.1.64/26 广播地址192.168.1.127
子网3: 192.168.1.128/26 广播地址192.168.1.191
子网4: 192.168.1.192/26 广播地址192.168.1.255
变长子网划分:如有两个50台主机的网段和一个100台主机的网段:
先将256对半分给100台主机的网段:192.168.1.0/25
剩下的128再划分两个子网:192.168.1.128/26 和 192.168.1.192/26
OSPF协议配置
OSPF重点理解原理
OSPF使用cost(开销)作为路由的度量值,每激活一个OSPF接口都会维护一个cost值。
OSPF有五种不同类型的报文:Hello、DD、LSR、LSU、LSAck。
LSDB:链路状态数据库,LSA:链路状态通告。
OSPF使用cost(开销)作为路由的度量值,每激活一个OSPF接口都会维护一个cost值。
OSPF有五种不同类型的报文:Hello、DD、LSR、LSU、LSAck。
LSDB:链路状态数据库,LSA:链路状态通告。
OSPF基本配置
# 启动OSPF进程,指定Router-ID
[R1] ospf 10 router-id 1.1.1.1
# 进入区域0并宣告直连网段
[R1-ospf-10] area 0.0.0.0
[R1-ospf-10-area-0.0.0.0] network 1.1.1.0 0.0.0.255
[R1-ospf-10-area-0.0.0.0] network 10.124.12.0 0.0.0.255
[R1-ospf-10-area-0.0.0.0] network 10.124.13.0 0.0.0.255
[R1] ospf 10 router-id 1.1.1.1
# 进入区域0并宣告直连网段
[R1-ospf-10] area 0.0.0.0
[R1-ospf-10-area-0.0.0.0] network 1.1.1.0 0.0.0.255
[R1-ospf-10-area-0.0.0.0] network 10.124.12.0 0.0.0.255
[R1-ospf-10-area-0.0.0.0] network 10.124.13.0 0.0.0.255
OSPF高级配置
# 发布默认路由(LSA-5)
[R1-ospf-10] default-route-advertise always
# 配置静默接口(不发送也不接收OSPF报文)
[R1-ospf-10] silent-interface Vlanif30
# 配置接口OSPF认证
[R1-GigabitEthernet0/0/0] ospf authentication-mode simple 123456
[R4-Serial1/0/0] ospf authentication-mode md5 1 123456
# 修改OSPF网络类型
[R1-GigabitEthernet0/0/0] ospf network-type broadcast
[R1-ospf-10] default-route-advertise always
# 配置静默接口(不发送也不接收OSPF报文)
[R1-ospf-10] silent-interface Vlanif30
# 配置接口OSPF认证
[R1-GigabitEthernet0/0/0] ospf authentication-mode simple 123456
[R4-Serial1/0/0] ospf authentication-mode md5 1 123456
# 修改OSPF网络类型
[R1-GigabitEthernet0/0/0] ospf network-type broadcast
OSPF查看命令
# 查看OSPF邻居
<R1> display ospf peer brief
# 查看OSPF LSDB数据库
<R1> display ospf lsdb
# 查看由OSPF生成的路由表
<R1> display ip routing-table protocol ospf
# 重启OSPF进程(用户视图下)
<R1> reset ospf process
<R1> display ospf peer brief
# 查看OSPF LSDB数据库
<R1> display ospf lsdb
# 查看由OSPF生成的路由表
<R1> display ip routing-table protocol ospf
# 重启OSPF进程(用户视图下)
<R1> reset ospf process
OSPF多区域设计优点
简化了单区域OSPF网络中遇到的路由器CPU和内存占用问题,减少SPF计算的范围。
骨干区域:Area 0,非骨干区域之间不能直接通信,只能通过骨干区域通信(避免路由环路)。
简化了单区域OSPF网络中遇到的路由器CPU和内存占用问题,减少SPF计算的范围。
骨干区域:Area 0,非骨干区域之间不能直接通信,只能通过骨干区域通信(避免路由环路)。
LSA类型详解
| LSA类型 | 名称 | 产生者 | 描述 | 泛洪范围 |
|---|---|---|---|---|
| LSA-1 | Router LSA | 每个OSPF路由器 | 描述自身接口及邻居关系 | 区域内 |
| LSA-2 | Network LSA | MA网络中的DR | 描述网段信息和成员 | 区域内 |
| LSA-3 | Summary LSA | ABR | 汇总区域间网段信息 | 整个OSPF(特殊区域除外) |
| LSA-4 | ASBR-Summary | ASBR所在区域的ABR | 描述ASBR的位置 | 整个OSPF |
| LSA-5 | External LSA | ASBR | 引入的外部网段信息 | 整个OSPF |
配置ASBR引入外部路由
[R5] ospf 10
[R5-ospf-10] import-route direct
# 或指定类型
[R5-ospf-10] import-route direct type 1
[R5-ospf-10] import-route direct
# 或指定类型
[R5-ospf-10] import-route direct type 1
查看各类型LSA
display ospf lsdb router # 查看LSA-1
display ospf lsdb network # 查看LSA-2
display ospf lsdb summary # 查看LSA-3
display ospf lsdb asbr # 查看LSA-4
display ospf lsdb ase # 查看LSA-5
display ospf lsdb network # 查看LSA-2
display ospf lsdb summary # 查看LSA-3
display ospf lsdb asbr # 查看LSA-4
display ospf lsdb ase # 查看LSA-5
STP / RSTP / MSTP 生成树协议
STP基础
STP基础配置
# 启用STP
[SW] stp enable
# 设置STP模式
[SW] stp mode stp
# 关闭STP
[SW] undo stp enable
# 查看生成树状态
[SW] display stp brief
[SW] stp enable
# 设置STP模式
[SW] stp mode stp
# 关闭STP
[SW] undo stp enable
# 查看生成树状态
[SW] display stp brief
修改BID优先级定制根桥
# 设置桥优先级(0~61440,步长4096)
[SW] stp priority 4096
# 或直接指定为根桥
[SW] stp root primary
[SW] stp priority 4096
# 或直接指定为根桥
[SW] stp root primary
路径开销与端口优先级
# 修改路径开销标准
[SW] stp pathcost-standard ?
dot1d-1998
dot1t
legacy
# 接口视图下配置端口优先级(0~240,步长16)
[SW-GigabitEthernet0/0/1] stp port priority 16
# 配置端口cost
[SW-GigabitEthernet0/0/1] stp cost 2000
# 查看接口STP信息
[SW] display stp interface gigabitethernet 0/0/1
# 查看指定接口Cost
[SW] display stp interface e0/0/4 | include Cost
[SW] stp pathcost-standard ?
dot1d-1998
dot1t
legacy
# 接口视图下配置端口优先级(0~240,步长16)
[SW-GigabitEthernet0/0/1] stp port priority 16
# 配置端口cost
[SW-GigabitEthernet0/0/1] stp cost 2000
# 查看接口STP信息
[SW] display stp interface gigabitethernet 0/0/1
# 查看指定接口Cost
[SW] display stp interface e0/0/4 | include Cost
根端口选举依据(依次比较)
① 最小的根桥ID
② 最小的RPC(根路径开销)
③ 最小的网桥ID
④ 最小的端口ID(优先级+端口编号)
指定端口选举依据:RPC → 网桥PID
① 最小的根桥ID
② 最小的RPC(根路径开销)
③ 最小的网桥ID
④ 最小的端口ID(优先级+端口编号)
指定端口选举依据:RPC → 网桥PID
MSTP多实例配置
MSTP配置步骤
# 1. 启用MSTP模式
[SW] stp mode mstp
# 2. 进入MST域配置
[SW] stp region-configuration
[SW-mst-region] region-name abc
[SW-mst-region] instance 1 vlan 10
[SW-mst-region] instance 2 vlan 20
[SW-mst-region] active region-configuration
# 3. 设置实例根桥
[SW] stp instance 1 root primary
[SW] stp instance 2 root secondary
# 另一台设备上
[SW] stp instance 2 root primary
[SW] stp instance 1 root secondary
[SW] stp mode mstp
# 2. 进入MST域配置
[SW] stp region-configuration
[SW-mst-region] region-name abc
[SW-mst-region] instance 1 vlan 10
[SW-mst-region] instance 2 vlan 20
[SW-mst-region] active region-configuration
# 3. 设置实例根桥
[SW] stp instance 1 root primary
[SW] stp instance 2 root secondary
# 另一台设备上
[SW] stp instance 2 root primary
[SW] stp instance 1 root secondary
链路聚合 Eth-Trunk & LACP
一、手工模式
手工负载分担模式配置
# 1. 创建Eth-Trunk接口
[SW1] interface Eth-Trunk 1
# 2. 设置模式
[SW1-Eth-Trunk1] mode manual load-balance
# 3. 将成员接口加入Eth-Trunk
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] eth-trunk 1
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] eth-trunk 1
# 4. 设置负载分担模式
[SW1-Eth-Trunk1] load-balance ?
dst-ip According to destination IP hash
dst-mac According to destination MAC hash
src-dst-ip According to source/destination IP hash
src-dst-mac According to source/destination MAC hash
src-ip According to source IP hash
src-mac According to source MAC hash
[SW1-Eth-Trunk1] load-balance dst-mac
[SW1] interface Eth-Trunk 1
# 2. 设置模式
[SW1-Eth-Trunk1] mode manual load-balance
# 3. 将成员接口加入Eth-Trunk
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] eth-trunk 1
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] eth-trunk 1
# 4. 设置负载分担模式
[SW1-Eth-Trunk1] load-balance ?
dst-ip According to destination IP hash
dst-mac According to destination MAC hash
src-dst-ip According to source/destination IP hash
src-dst-mac According to source/destination MAC hash
src-ip According to source IP hash
src-mac According to source MAC hash
[SW1-Eth-Trunk1] load-balance dst-mac
二、LACP模式
LACP动态聚合模式配置
# 1. 创建Eth-Trunk并启用LACP
[SW1] interface Eth-Trunk 1
[SW1-Eth-Trunk1] mode lacp-static
# 2. 添加成员端口
[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/5 to 0/0/6
# SW2参考SW1配置
# 3. 配置SW1为主动端,最大活动链路数为2
[SW1] lacp priority 100
[SW1-Eth-Trunk1] max active-linknumber 2
[SW1-Eth-Trunk1] lacp preempt enable
[SW1-Eth-Trunk1] lacp preempt delay 10
# 4. 使某接口为Unselect状态(降低端口优先级)
[SW1-GigabitEthernet0/0/1] lacp priority 50000
[SW1] interface Eth-Trunk 1
[SW1-Eth-Trunk1] mode lacp-static
# 2. 添加成员端口
[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/5 to 0/0/6
# SW2参考SW1配置
# 3. 配置SW1为主动端,最大活动链路数为2
[SW1] lacp priority 100
[SW1-Eth-Trunk1] max active-linknumber 2
[SW1-Eth-Trunk1] lacp preempt enable
[SW1-Eth-Trunk1] lacp preempt delay 10
# 4. 使某接口为Unselect状态(降低端口优先级)
[SW1-GigabitEthernet0/0/1] lacp priority 50000
查看Eth-Trunk状态
# 查看Eth-Trunk配置与状态
[SW1] display eth-trunk
[SW1] display eth-trunk
VLAN与三层交换
VLAN基础命令
# 创建VLAN
[SW] vlan 10
[SW-vlan10] quit
# 查看VLAN表
[SW] display vlan
# 查看接口VLAN信息
[SW] display port vlan
[SW] vlan 10
[SW-vlan10] quit
# 查看VLAN表
[SW] display vlan
# 查看接口VLAN信息
[SW] display port vlan
Access接口配置
[SW] interface gigabitethernet 0/0/1
[SW-GigabitEthernet0/0/1] port link-type access
[SW-GigabitEthernet0/0/1] port default vlan 10
[SW-GigabitEthernet0/0/1] port link-type access
[SW-GigabitEthernet0/0/1] port default vlan 10
Trunk接口配置
[SW] interface gigabitethernet 0/0/2
[SW-GigabitEthernet0/0/2] port link-type trunk
[SW-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20
# 或允许所有VLAN通过
[SW-GigabitEthernet0/0/2] port trunk allow-pass vlan all
[SW-GigabitEthernet0/0/2] port link-type trunk
[SW-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20
# 或允许所有VLAN通过
[SW-GigabitEthernet0/0/2] port trunk allow-pass vlan all
三层交换机VLANIF
VLANIF接口配置(纯交换机模式)
# 创建VLAN
[SW] vlan 10
[SW] vlan 20
[SW] vlan 30
# 配置VLANIF接口IP
[SW] interface vlanif 10
[SW-Vlanif10] ip address 192.168.10.1 255.255.255.0
[SW] interface vlanif 20
[SW-Vlanif20] ip address 192.168.20.1 255.255.255.0
[SW] vlan 10
[SW] vlan 20
[SW] vlan 30
# 配置VLANIF接口IP
[SW] interface vlanif 10
[SW-Vlanif10] ip address 192.168.10.1 255.255.255.0
[SW] interface vlanif 20
[SW-Vlanif20] ip address 192.168.20.1 255.255.255.0
路由器子接口(单臂路由)
路由器子接口配置
# 路由器区分不同VLAN需要配置VLAN ID
[Router] interface gigabitethernet 0/0/0.1
[Router-GigabitEthernet0/0/0.1] dot1q termination vid 10
[Router-GigabitEthernet0/0/0.1] ip address 192.168.10.254 255.255.255.0
[Router-GigabitEthernet0/0/0.1] arp broadcast enable
[Router] interface gigabitethernet 0/0/0.2
[Router-GigabitEthernet0/0/0.2] dot1q termination vid 20
[Router-GigabitEthernet0/0/0.2] ip address 192.168.20.254 255.255.255.0
[Router-GigabitEthernet0/0/0.2] arp broadcast enable
# 主接口需配置为Trunk并允许VLAN通过
[Router] interface gigabitethernet 0/0/0
[Router-GigabitEthernet0/0/0] port link-type trunk
[Router-GigabitEthernet0/0/0] port trunk allow-pass vlan all
[Router] interface gigabitethernet 0/0/0.1
[Router-GigabitEthernet0/0/0.1] dot1q termination vid 10
[Router-GigabitEthernet0/0/0.1] ip address 192.168.10.254 255.255.255.0
[Router-GigabitEthernet0/0/0.1] arp broadcast enable
[Router] interface gigabitethernet 0/0/0.2
[Router-GigabitEthernet0/0/0.2] dot1q termination vid 20
[Router-GigabitEthernet0/0/0.2] ip address 192.168.20.254 255.255.255.0
[Router-GigabitEthernet0/0/0.2] arp broadcast enable
# 主接口需配置为Trunk并允许VLAN通过
[Router] interface gigabitethernet 0/0/0
[Router-GigabitEthernet0/0/0] port link-type trunk
[Router-GigabitEthernet0/0/0] port trunk allow-pass vlan all
Telnet / SSH 远程管理
Telnet配置
# 开启Telnet服务
[Router] telnet server enable
# AAA配置
[Router] aaa
[Router-aaa] local-user admin password cipher Admin@123
[Router-aaa] local-user admin service-type telnet
[Router-aaa] local-user admin privilege level 3
[Router-aaa] quit
# VTY接口配置
[Router] user-interface vty 0 4
[Router-ui-vty0-4] authentication-mode aaa
# 查看在线用户
<Router> display users
[Router] telnet server enable
# AAA配置
[Router] aaa
[Router-aaa] local-user admin password cipher Admin@123
[Router-aaa] local-user admin service-type telnet
[Router-aaa] local-user admin privilege level 3
[Router-aaa] quit
# VTY接口配置
[Router] user-interface vty 0 4
[Router-ui-vty0-4] authentication-mode aaa
# 查看在线用户
<Router> display users
SSH配置
# 查看SSH服务状态
<Router> display ssh server status
# 开启SSH服务
[Router] stelnet server enable
# 生成RSA密钥
[Router] rsa local-key-pair create
# AAA配置
[Router] aaa
[Router-aaa] local-user sshuser password cipher Ssh@2025
[Router-aaa] local-user sshuser service-type ssh
[Router-aaa] local-user sshuser privilege level 3
[Router-aaa] quit
# VTY接口配置
[Router] user-interface vty 0 4
[Router-ui-vty0-4] authentication-mode aaa
[Router-ui-vty0-4] protocol inbound ssh
<Router> display ssh server status
# 开启SSH服务
[Router] stelnet server enable
# 生成RSA密钥
[Router] rsa local-key-pair create
# AAA配置
[Router] aaa
[Router-aaa] local-user sshuser password cipher Ssh@2025
[Router-aaa] local-user sshuser service-type ssh
[Router-aaa] local-user sshuser privilege level 3
[Router-aaa] quit
# VTY接口配置
[Router] user-interface vty 0 4
[Router-ui-vty0-4] authentication-mode aaa
[Router-ui-vty0-4] protocol inbound ssh
Telnet与SSH共用配置
如果需要同时支持Telnet和SSH登录,可以在同一个local-user上配置多种服务类型:
VTY接口支持多协议入站:
重新生成密钥:
如果需要同时支持Telnet和SSH登录,可以在同一个local-user上配置多种服务类型:
[Router-aaa] local-user admin service-type telnet sshVTY接口支持多协议入站:
[Router-ui-vty0-4] protocol inbound all重新生成密钥:
[Router] rsa local-key-pair create
VRRP网关冗余
VRRP(虚拟路由冗余协议)
配置在三层接口(如路由器的物理端口或交换机的VLANIF接口)上的网关冗余协议。
核心作用:把多台路由设备虚拟成一台"虚拟路由器",实现网关高可用。
只有一台Master,其他为Backup。
配置在三层接口(如路由器的物理端口或交换机的VLANIF接口)上的网关冗余协议。
核心作用:把多台路由设备虚拟成一台"虚拟路由器",实现网关高可用。
只有一台Master,其他为Backup。
VRRP基本配置
# AR1配置(Master)
[AR1] interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0] ip address 192.168.1.1 24
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 0
# AR2配置(Backup)
[AR2] interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0] ip address 192.168.1.2 24
[AR2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[AR2-GigabitEthernet0/0/0] vrrp vrid 1 priority 100
[AR1] interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0] ip address 192.168.1.1 24
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 0
# AR2配置(Backup)
[AR2] interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0] ip address 192.168.1.2 24
[AR2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[AR2-GigabitEthernet0/0/0] vrrp vrid 1 priority 100
VRRP上行链路跟踪
# 监测上行口GE0/0/1,一旦Down掉,优先级降低30
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[AR1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
查看VRRP状态
[R1] display vrrp
# 输出示例:
GigabitEthernet0/0/0 | Virtual Router 1
State : Master ============只能有一个Master
# 输出示例:
GigabitEthernet0/0/0 | Virtual Router 1
State : Master ============只能有一个Master
RIP路由协议
RIP基本配置
# 启动RIP进程
[Router] rip 10
# 切换版本2(支持子网掩码)
[Router-rip-10] version 2
# 宣告直连网段
[Router-rip-10] network 10.0.123.0 0.0.0.255
[Router-rip-10] network 192.168.1.0
# 语法:network 网段IP
[Router] rip 10
# 切换版本2(支持子网掩码)
[Router-rip-10] version 2
# 宣告直连网段
[Router-rip-10] network 10.0.123.0 0.0.0.255
[Router-rip-10] network 192.168.1.0
# 语法:network 网段IP
RIP协议特点
RIP基于距离矢量算法,以跳数作为度量值,最大跳数15(16跳不可达)。
Version 1不支持子网掩码,Version 2支持子网掩码和认证。
RIP基于距离矢量算法,以跳数作为度量值,最大跳数15(16跳不可达)。
Version 1不支持子网掩码,Version 2支持子网掩码和认证。
ACL访问控制列表
ACL重要知识点
功能:1) 包过滤——实现安全功能 2) 流量匹配——NAT/路由策略/QoS
分类:
① 基本ACL(编号2000-2999):只能根据源IP地址制定规则,不能精确匹配流量
匹配字段:IP HEADER(源IP地址)
② 高级ACL(编号3000-3999):可以根据五元组(源IP地址、目的IP地址、源端口、目的端口、协议)制定规则
匹配字段:IP HEADER(源IP、目的IP、协议类型)+ TCP/UDP HEADER(源端口、目的端口)
③ 二层ACL
ACL由一系列的规则组成,每条规则都包含条件和动作(permit/deny)。
注意:入站和出站应用方向。
功能:1) 包过滤——实现安全功能 2) 流量匹配——NAT/路由策略/QoS
分类:
① 基本ACL(编号2000-2999):只能根据源IP地址制定规则,不能精确匹配流量
匹配字段:IP HEADER(源IP地址)
② 高级ACL(编号3000-3999):可以根据五元组(源IP地址、目的IP地址、源端口、目的端口、协议)制定规则
匹配字段:IP HEADER(源IP、目的IP、协议类型)+ TCP/UDP HEADER(源端口、目的端口)
③ 二层ACL
ACL由一系列的规则组成,每条规则都包含条件和动作(permit/deny)。
注意:入站和出站应用方向。
基本ACL配置示例
基本ACL(编号2000)
# 需求:
# 允许10.1.2.0(PC4 10.1.2.14除外)访问外网
# 允许10.1.1.0网络内的主机PC1(10.1.1.11)访问外网,其他主机不允许
# 10.1.1.0/24和10.1.2.0/24可以互相访问
# 定义ACL
[Router] acl number 2000
[Router-acl-basic-2000] rule 3 deny source 10.1.2.14 0
[Router-acl-basic-2000] rule 5 permit source 10.1.2.0 0.0.0.255
[Router-acl-basic-2000] rule 10 permit source 10.1.1.11 0
[Router-acl-basic-2000] rule 15 deny source 10.1.1.0 0.0.0.255
# 应用在接口的outbound方向
[Router] interface gigabitethernet 0/0/2
[Router-GigabitEthernet0/0/2] traffic-filter outbound acl 2000
# 允许10.1.2.0(PC4 10.1.2.14除外)访问外网
# 允许10.1.1.0网络内的主机PC1(10.1.1.11)访问外网,其他主机不允许
# 10.1.1.0/24和10.1.2.0/24可以互相访问
# 定义ACL
[Router] acl number 2000
[Router-acl-basic-2000] rule 3 deny source 10.1.2.14 0
[Router-acl-basic-2000] rule 5 permit source 10.1.2.0 0.0.0.255
[Router-acl-basic-2000] rule 10 permit source 10.1.1.11 0
[Router-acl-basic-2000] rule 15 deny source 10.1.1.0 0.0.0.255
# 应用在接口的outbound方向
[Router] interface gigabitethernet 0/0/2
[Router-GigabitEthernet0/0/2] traffic-filter outbound acl 2000
高级ACL配置示例
高级ACL(编号3000)
# 创建高级ACL
[Router] acl number 3000
# 允许源10.112.1.0/24访问目的主机11.112.1.100的所有IP流量
[Router-acl-adv-3000] rule permit ip source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0
# 拒绝源10.112.1.0/24的其他所有流量
[Router-acl-adv-3000] rule deny ip source 10.112.1.0 0.0.0.255
# 或者使用以下更精细的规则:
# rule 5: 允许源10.112.1.0/24访问目的11.112.1.100的WWW服务(TCP 80端口)
[Router-acl-adv-3000] rule 5 permit tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www
# rule 6: 允许源10.112.1.0/24访问目的10.112.2.0/24的所有IP流量
[Router-acl-adv-3000] rule 6 permit ip source 10.112.1.0 0.0.0.255 destination 10.112.2.0 0.0.0.255
# rule 10: 拒绝源10.112.1.0/24的其他所有流量
[Router-acl-adv-3000] rule 10 deny ip source 10.112.1.0 0.0.0.255
# 应用在接口
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3000
[Router] acl number 3000
# 允许源10.112.1.0/24访问目的主机11.112.1.100的所有IP流量
[Router-acl-adv-3000] rule permit ip source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0
# 拒绝源10.112.1.0/24的其他所有流量
[Router-acl-adv-3000] rule deny ip source 10.112.1.0 0.0.0.255
# 或者使用以下更精细的规则:
# rule 5: 允许源10.112.1.0/24访问目的11.112.1.100的WWW服务(TCP 80端口)
[Router-acl-adv-3000] rule 5 permit tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www
# rule 6: 允许源10.112.1.0/24访问目的10.112.2.0/24的所有IP流量
[Router-acl-adv-3000] rule 6 permit ip source 10.112.1.0 0.0.0.255 destination 10.112.2.0 0.0.0.255
# rule 10: 拒绝源10.112.1.0/24的其他所有流量
[Router-acl-adv-3000] rule 10 deny ip source 10.112.1.0 0.0.0.255
# 应用在接口
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3000
基于时间的ACL配置示例
时间段 + 高级ACL(上班时间HTTP访问控制)
# 需求:周一到周五 9:00-18:00 允许通过HTTP访问外网Server3(11.112.1.100)
# 其他时间禁止HTTP访问,但其他访问不受限制
# 步骤1:配置时间段(系统视图下)
[Router] time-range worktime 09:00 to 18:00 working-day
# working-day = 周一到周五
# 注:修改时间段需在用户视图下重新配置
# 步骤2:定义高级ACL并引用时间段
[Router] acl number 3000
# 规则5:上班时间允许HTTP访问Server3
[Router-acl-adv-3000] rule 5 permit tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www time-range worktime
# 规则10:其他时间禁止HTTP访问Server3
[Router-acl-adv-3000] rule 10 deny tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www
# 规则100:允许其他所有访问
[Router-acl-adv-3000] rule 100 permit ip source 10.112.1.0 0.0.0.255 destination any
# 步骤3:应用在接口
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3000
# 其他时间禁止HTTP访问,但其他访问不受限制
# 步骤1:配置时间段(系统视图下)
[Router] time-range worktime 09:00 to 18:00 working-day
# working-day = 周一到周五
# 注:修改时间段需在用户视图下重新配置
# 步骤2:定义高级ACL并引用时间段
[Router] acl number 3000
# 规则5:上班时间允许HTTP访问Server3
[Router-acl-adv-3000] rule 5 permit tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www time-range worktime
# 规则10:其他时间禁止HTTP访问Server3
[Router-acl-adv-3000] rule 10 deny tcp source 10.112.1.0 0.0.0.255 destination 11.112.1.100 0 destination-port eq www
# 规则100:允许其他所有访问
[Router-acl-adv-3000] rule 100 permit ip source 10.112.1.0 0.0.0.255 destination any
# 步骤3:应用在接口
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3000
时间段配置详解
# 创建时间段(系统视图)
[Router] time-range worktime 09:00 to 18:00 working-day
# 周期选项:
# working-day 周一到周五
# off-day 周六、周日
# daily 每天
# Mon/Tue/Wed... 指定星期几
# 2025/10/1 to 2025/12/31 指定日期范围
# 其他示例:
[Router] time-range weekend 08:00 to 20:00 off-day
[Router] time-range mon_am 08:00 to 12:00 Mon
# 修改时间段(用户视图下重新配置即可覆盖)
<Router> system-view
[Router] time-range worktime 08:00 to 17:00 working-day
# 查看时间段
<Router> display time-range
# 删除时间段
[Router] undo time-range worktime
[Router] time-range worktime 09:00 to 18:00 working-day
# 周期选项:
# working-day 周一到周五
# off-day 周六、周日
# daily 每天
# Mon/Tue/Wed... 指定星期几
# 2025/10/1 to 2025/12/31 指定日期范围
# 其他示例:
[Router] time-range weekend 08:00 to 20:00 off-day
[Router] time-range mon_am 08:00 to 12:00 Mon
# 修改时间段(用户视图下重新配置即可覆盖)
<Router> system-view
[Router] time-range worktime 08:00 to 17:00 working-day
# 查看时间段
<Router> display time-range
# 删除时间段
[Router] undo time-range worktime
基于时间的ACL工作原理
ACL规则中引用
时间段外,该规则自动失效,继续匹配下一条规则。
因此通常将带时间范围的允许规则放在前面,不带时间的禁止规则放在后面作为兜底。
修改时间段配置需在用户视图下进入系统视图重新配置。
ACL规则中引用
time-range 后,该规则只在时间段内生效。时间段外,该规则自动失效,继续匹配下一条规则。
因此通常将带时间范围的允许规则放在前面,不带时间的禁止规则放在后面作为兜底。
修改时间段配置需在用户视图下进入系统视图重新配置。
路由器之间的ACL配置
禁止R1 ping R2
# 场景:R1(202.100.1.1) 与 R2(11.112.1.1) 直连
# 需求:不允许R1 ping R2
# 在R2上配置
[R2] acl number 3000
[R2-acl-adv-3000] rule 5 deny icmp source 202.100.1.1 0 destination 11.112.1.1 0
[R2-acl-adv-3000] rule 10 permit ip source any destination any
# 在R2的入接口应用
[R2] interface gigabitethernet 0/0/0
[R2-GigabitEthernet0/0/0] traffic-filter inbound acl 3000
# 说明:在R2的入接口过滤R1发来的ICMP报文
# 需求:不允许R1 ping R2
# 在R2上配置
[R2] acl number 3000
[R2-acl-adv-3000] rule 5 deny icmp source 202.100.1.1 0 destination 11.112.1.1 0
[R2-acl-adv-3000] rule 10 permit ip source any destination any
# 在R2的入接口应用
[R2] interface gigabitethernet 0/0/0
[R2-GigabitEthernet0/0/0] traffic-filter inbound acl 3000
# 说明:在R2的入接口过滤R1发来的ICMP报文
ACL对路由器自身流量的特殊规则
示例说明:
① R1 ping R2(目标IP是R2的接口IP)→ "抵达路由器的流量" → ACL有效 ✅
② R1 ping R3(经过R2转发)→ "穿越路由器的流量" → ACL有效 ✅
③ R2 ping R1(R2自身发起)→ "路由器自身发起的流量" → ACL无效 ❌
核心结论:ACL对设备自身产生的流量不起作用,无法用ACL限制路由器自己发出的ping/telnet等。
| 流量类型 | 说明 | ACL是否生效 |
|---|---|---|
| 穿越路由器的流量 | 从一接口入、另一接口出 | ✅ 生效 |
| 抵达路由器的流量 | 目的IP是路由器自身接口IP | ✅ 生效 |
| 路由器自身发起的流量 | 路由器主动发起(如ping/telnet) | ❌ 不生效 |
示例说明:
① R1 ping R2(目标IP是R2的接口IP)→ "抵达路由器的流量" → ACL有效 ✅
② R1 ping R3(经过R2转发)→ "穿越路由器的流量" → ACL有效 ✅
③ R2 ping R1(R2自身发起)→ "路由器自身发起的流量" → ACL无效 ❌
核心结论:ACL对设备自身产生的流量不起作用,无法用ACL限制路由器自己发出的ping/telnet等。
ACL规则匹配顺序
规则按编号从小到大依次匹配,匹配到第一条符合条件的规则后立即执行动作(permit或deny),不再继续匹配后续规则。
因此应将精确匹配的规则放在前面,范围大的规则放在后面。
规则按编号从小到大依次匹配,匹配到第一条符合条件的规则后立即执行动作(permit或deny),不再继续匹配后续规则。
因此应将精确匹配的规则放在前面,范围大的规则放在后面。
NAT地址转换
NAT(Network Address Translation):网络地址转换
将IP数据报文头中的IP地址转换为另一个IP地址的过程,用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)。
将IP数据报文头中的IP地址转换为另一个IP地址的过程,用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)。
NAT类型对比
| 类型 | 转换方式 | 映射关系 | 特点 |
|---|---|---|---|
| 静态NAT | 私有IP ↔ 公网IP | 一对一 | 固定绑定,永久映射,双向互访 |
| 静态NAPT | 私有IP+端口 ↔ 公网IP+端口 | 一对一 | 固定绑定,公网IP可复用 |
| 动态NAT | 私有IP → 公网IP | 一对一 | 临时映射,只转IP不转端口 |
| Basic NAT | 私有IP → 公网IP | 一对一 | 临时映射,只转源地址 |
| NAPT | 私有IP+端口 → 公网IP+端口 | 多对一 | 临时映射,转源地址+源端口 |
| Easy IP | 私有IP+端口 → 接口IP+端口 | 多对一 | 不用地址池,直接用接口IP |
| NAT Server | 公网IP+端口 → 私网IP+端口 | 端口映射 | 静态映射,转目标地址+目标端口 |
一、静态NAT(一对一,永久映射,双向互访)
特点:每一个私有IP地址与一个公网IP地址固定一对一绑定,永久映射
适用:双方互访场景(外网主动访问内网 + 内网访问外网)
流程:
① 内网主机访问Internet → 出口设备NAT转换 → 私有IP换成对应的公网IP
② 外网主机访问该公网IP → NAT反向转换 → 公网IP换成对应的私有IP → 到达内网主机
支持范围映射:将指定私网范围的IP转换为指定公网范围的IP。
适用:双方互访场景(外网主动访问内网 + 内网访问外网)
流程:
① 内网主机访问Internet → 出口设备NAT转换 → 私有IP换成对应的公网IP
② 外网主机访问该公网IP → NAT反向转换 → 公网IP换成对应的私有IP → 到达内网主机
支持范围映射:将指定私网范围的IP转换为指定公网范围的IP。
二、静态NAPT(固定端口映射)
特点:"内部主机IP + 协议号 + 端口号" 与 "公网IP + 协议号 + 端口号" 一对一静态绑定
优势:一个公网IP通过不同端口可以为多个私网IP服务
本质:固定端口映射,属于静态映射的一种
优势:一个公网IP通过不同端口可以为多个私网IP服务
本质:固定端口映射,属于静态映射的一种
三、动态NAT(一对一,临时,No-PAT)
特点:动态从地址池中选择地址进行临时映射,用完释放
映射关系:一对一或一对多的临时映射
关键:转换时不转换端口号,即 No-PAT
缺点:公有地址与私有地址仍是 1:1 映射,无法提高公有地址利用率
适用:私网访问公网或公网访问私网,单向访问
映射关系:一对一或一对多的临时映射
关键:转换时不转换端口号,即 No-PAT
缺点:公有地址与私有地址仍是 1:1 映射,无法提高公有地址利用率
适用:私网访问公网或公网访问私网,单向访问
四、Basic NAT
特点:一对一的临时映射,只对源地址进行转换,不转换端口号
适用:私网主机访问公网,单向访问
本质:与动态NAT相同,1:1映射,无法提高公网地址利用率
适用:私网主机访问公网,单向访问
本质:与动态NAT相同,1:1映射,无法提高公网地址利用率
五、NAPT(多对一,最常用)
全称:Network Address and Port Translation
特点:一对多的临时映射,对源地址和源端口同时进行转换
优势:多个私网用户可共用一个公网IP地址访问外网
适用:最常用的上网方式(家庭宽带/企业出口)
特点:一对多的临时映射,对源地址和源端口同时进行转换
优势:多个私网用户可共用一个公网IP地址访问外网
适用:最常用的上网方式(家庭宽带/企业出口)
六、Easy IP
原理:NAPT的特例,原理和NAPT相同
区别:不用配置地址池,私有IP被转换为路由器出接口的公网IP地址
优势:配置更简单
适用:出口接口IP为固定公网IP的场景(家庭宽带/小型企业)
区别:不用配置地址池,私有IP被转换为路由器出接口的公网IP地址
优势:配置更简单
适用:出口接口IP为固定公网IP的场景(家庭宽带/小型企业)
七、NAT Server(服务器映射)
特点:静态映射,可以是一对一,也可以是一对多
原理:对目标地址和目标端口进行转换
事先配置好"公网IP+端口号"与"私网IP+端口号"的映射关系
外网访问公网IP+端口 → NAT替换目标地址和端口 → 转发到内网服务器
原理:对目标地址和目标端口进行转换
事先配置好"公网IP+端口号"与"私网IP+端口号"的映射关系
外网访问公网IP+端口 → NAT替换目标地址和端口 → 转发到内网服务器
八、配置示例
基础网络配置
# 内网接口
int g 0/0/0
ip add 10.1.1.1 24
int g 0/0/1
ip add 10.1.2.1 24
# 外网接口
int s 1/0/0
ip add 202.100.1.1 24
ip route-static 0.0.0.0 0.0.0.0 Serial 1/0/0 # 默认路由指向外网
int g 0/0/0
ip add 10.1.1.1 24
int g 0/0/1
ip add 10.1.2.1 24
# 外网接口
int s 1/0/0
ip add 202.100.1.1 24
ip route-static 0.0.0.0 0.0.0.0 Serial 1/0/0 # 默认路由指向外网
静态NAT(单IP一对一映射)
# 接口视图下配置
int s 1/0/0
nat static global 202.100.1.10 inside 10.1.2.100 netmask 255.255.255.255
nat static global 202.100.1.11 inside 10.1.2.200 netmask 255.255.255.255
# 202.100.1.10 → 10.1.2.100 202.100.1.11 → 10.1.2.200
# netmask 255.255.255.255 = 精确匹配单个主机
# 全局视图下配置
nat static global 202.100.1.10 inside 192.168.1.10 netmask 255.255.255.255
int s 1/0/0
nat static enable
# 测试
内网服务器 ping 11.1.1.1
<R1> dis nat static
int s 1/0/0
nat static global 202.100.1.10 inside 10.1.2.100 netmask 255.255.255.255
nat static global 202.100.1.11 inside 10.1.2.200 netmask 255.255.255.255
# 202.100.1.10 → 10.1.2.100 202.100.1.11 → 10.1.2.200
# netmask 255.255.255.255 = 精确匹配单个主机
# 全局视图下配置
nat static global 202.100.1.10 inside 192.168.1.10 netmask 255.255.255.255
int s 1/0/0
nat static enable
# 测试
内网服务器 ping 11.1.1.1
<R1> dis nat static
动态NAT / Basic NAT(一对一,No-PAT)
# 场景:内网 10.1.1.0/24 → 公网地址池 202.100.1.12 ~ 202.100.1.13
# 动态NAT和Basic NAT本质相同:一对一的临时映射,只转换源地址
# 步骤1:定义公有地址池
nat address-group 1 202.100.1.12 202.100.1.13
# 语法:nat address-group 地址池编号 起始地址 结束地址
# 步骤2:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤3:在外网接口进行地址转换
int s 1/0/0
nat outbound 2000 address-group 1 no-pat
# 注:no-pat = 只转IP地址,不转端口号
# 测试
<R1> dis nat address-group
<R1> dis nat outbound
<R1> dis nat session all
# 动态NAT和Basic NAT本质相同:一对一的临时映射,只转换源地址
# 步骤1:定义公有地址池
nat address-group 1 202.100.1.12 202.100.1.13
# 语法:nat address-group 地址池编号 起始地址 结束地址
# 步骤2:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤3:在外网接口进行地址转换
int s 1/0/0
nat outbound 2000 address-group 1 no-pat
# 注:no-pat = 只转IP地址,不转端口号
# 测试
<R1> dis nat address-group
<R1> dis nat outbound
<R1> dis nat session all
NAPT(多对一,转源地址+源端口)
# 场景:内网 10.1.1.0/24 → 共用一个公网IP 202.100.1.12
# 步骤1:定义公有地址池
nat address-group 1 202.100.1.12 202.100.1.12
# 步骤2:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤3:在外网接口进行地址和端口转换
int s 1/0/0
nat outbound 2000 address-group 1
# 注:不加 no-pat,默认同时转换IP地址和端口号
# 测试
10.1.1.0/24 内任一台主机均可访问公网
<R1> dis nat address-group
<R1> dis nat outbound
<R1> dis nat session all
# 步骤1:定义公有地址池
nat address-group 1 202.100.1.12 202.100.1.12
# 步骤2:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤3:在外网接口进行地址和端口转换
int s 1/0/0
nat outbound 2000 address-group 1
# 注:不加 no-pat,默认同时转换IP地址和端口号
# 测试
10.1.1.0/24 内任一台主机均可访问公网
<R1> dis nat address-group
<R1> dis nat outbound
<R1> dis nat session all
Easy IP(最简单,直接用接口IP)
# 场景:内网 10.1.1.0/24 → 转换为路由器出接口公网IP 202.100.1.1
# 步骤1:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤2:在外网接口直接进行地址和端口转换(不需要地址池)
int s 1/0/0
nat outbound 2000
# 注:不需要 nat address-group,直接使用接口IP作为公网地址
# 测试
<R1> dis nat outbound
<R1> dis nat session all
# 步骤1:定义私网IP地址(ACL匹配)
acl number 2000
rule 5 permit source 10.1.1.0 0.0.0.255
# 步骤2:在外网接口直接进行地址和端口转换(不需要地址池)
int s 1/0/0
nat outbound 2000
# 注:不需要 nat address-group,直接使用接口IP作为公网地址
# 测试
<R1> dis nat outbound
<R1> dis nat session all
NAT Server(端口映射,一对多)
# 场景:
# Server1: 10.1.2.100:80 → 202.100.1.13:80
# Server2: 10.1.2.200:21 → 202.100.1.13:21
# 一个公网IP通过不同端口为多个内网服务器服务
# 接口视图下配置
int s 1/0/0
nat server protocol tcp global 202.100.1.13 80 inside 10.1.2.100 80
nat server protocol tcp global 202.100.1.13 21 inside 10.1.2.200 21
# 测试
Client2 (11.1.1.10) → http://202.100.1.13 # 访问Server1的80端口
Client2 (11.1.1.10) → ftp://202.100.1.13 # 访问Server2的21端口
<R1> dis nat session all
# Server1: 10.1.2.100:80 → 202.100.1.13:80
# Server2: 10.1.2.200:21 → 202.100.1.13:21
# 一个公网IP通过不同端口为多个内网服务器服务
# 接口视图下配置
int s 1/0/0
nat server protocol tcp global 202.100.1.13 80 inside 10.1.2.100 80
nat server protocol tcp global 202.100.1.13 21 inside 10.1.2.200 21
# 测试
Client2 (11.1.1.10) → http://202.100.1.13 # 访问Server1的80端口
Client2 (11.1.1.10) → ftp://202.100.1.13 # 访问Server2的21端口
<R1> dis nat session all
九、NAT配置对比速查
| 类型 | 关键命令 | 是否需地址池 |
|---|---|---|
| 静态NAT | nat static global.. | 否(直接指定公网IP) |
| 动态NAT | nat outbound ... no-pat | 是(nat address-group) |
| Basic NAT | nat outbound ... no-pat | 是(nat address-group) |
| NAPT | nat outbound ... | 是(nat address-group) |
| Easy IP | nat outbound 2000 | 否(直接用接口IP) |
| NAT Server | nat server protocol | 否(直接指定公网IP+端口) |
十、查看与维护命令
NAT查看命令
# 查看静态NAT映射
<R1> display nat static
# 查看公网地址池
<R1> display nat address-group
# 查看动态NAT/NAPT/Easy IP配置
<R1> display nat outbound
# 查看NAT Server映射
<R1> display nat server
# 查看所有NAT转换表(会话表)
<R1> display nat session all
<R1> display nat session source 10.1.1.10
<R1> display nat session destination 202.100.1.13
# 清除所有NAT会话(用户视图)
<R1> reset nat session all
<R1> display nat static
# 查看公网地址池
<R1> display nat address-group
# 查看动态NAT/NAPT/Easy IP配置
<R1> display nat outbound
# 查看NAT Server映射
<R1> display nat server
# 查看所有NAT转换表(会话表)
<R1> display nat session all
<R1> display nat session source 10.1.1.10
<R1> display nat session destination 202.100.1.13
# 清除所有NAT会话(用户视图)
<R1> reset nat session all
十一、NAT类型总结表
| 类型 | 转换内容 | 映射关系 | 映射时长 | 方向 | 典型应用 |
|---|---|---|---|---|---|
| 静态NAT | IP | 一对一 | 永久 | 双向(内外互访) | 对外服务器 |
| 静态NAPT | IP+端口 | 一对一 | 永久 | 双向 | 精确服务映射 |
| 动态NAT | IP(No-PAT) | 一对一 | 临时 | 单向(内→外) | 临时公网访问 |
| Basic NAT | IP | 一对一 | 临时 | 单向(内→外) | 私网主机访问公网 |
| NAPT | IP+端口 | 多对一 | 临时 | 单向(内→外) | 共享上网(最常用) |
| Easy IP | IP+端口 | 多对一 | 临时 | 单向(内→外) | 家庭/小型企业上网 |
| NAT Server | IP+端口 | 端口映射 | 永久 | 双向(外→内触发) | 发布内网服务 |
十二、各类型转换方向速记
静态NAT/NAPT:对源/目标地址都转换(双向)
动态NAT/Basic NAT:只转源地址(内→外),No-PAT
NAPT:转源地址 + 源端口(内→外)
Easy IP:同NAPT,源地址转为接口IP
NAT Server:转目标地址 + 目标端口(外→内),静态映射,可一对多
动态NAT/Basic NAT:只转源地址(内→外),No-PAT
NAPT:转源地址 + 源端口(内→外)
Easy IP:同NAPT,源地址转为接口IP
NAT Server:转目标地址 + 目标端口(外→内),静态映射,可一对多
Python自动化运维
前置准备:路由器已开启Telnet服务(配置略)
使用Python的telnetlib库或paramiko库实现对网络设备的自动化配置和巡检。
针对Telnet用户需配置:
使用Python的telnetlib库或paramiko库实现对网络设备的自动化配置和巡检。
针对Telnet用户需配置:
[R1-ui-vty0-4] screen-length 0 避免分页干扰。
一、Telnet自动化脚本
完整Telnet脚本
import telnetlib
import time
# 1. 连接路由器
tn = telnetlib.Telnet('10.112.100.11')
time.sleep(1)
print(tn)
# 2. 输入用户名
tn.read_until(b'Username:')
tn.write(b'wcq112\n')
time.sleep(1)
# 3. 输入密码
tn.read_until(b'Password:')
tn.write(b'wcq112\n')
time.sleep(1)
# 4. 进入系统视图
tn.write(b'sys\n')
time.sleep(1)
# 5. 查看当前配置
tn.write(b'dis cu\n')
time.sleep(2)
# 6. 返回用户视图
tn.write(b'q\n')
time.sleep(2)
# 7. 查看接口IP状态
tn.write(b'dis ip int br\n')
time.sleep(2)
# 8. 读取并打印所有输出
result = tn.read_very_eager().decode()
print(result)
# 9. 关闭连接
tn.close()
代码逐行解析
import telnetlib # 导入Telnet客户端库
import time # 导入时间库,用于等待设备响应
tn = telnetlib.Telnet('10.112.100.11')
→ 创建Telnet连接对象
tn.read_until(b'Username:')
→ 阻塞读取直到出现 'Username:',b前缀表示字节格式
tn.write(b'wcq112\n')
→ 发送用户名,\n 表示回车确认
tn.write(b'sys\n') → 进入系统视图
tn.write(b'dis cu\n') → 查看当前配置
tn.write(b'q\n') → 退出系统视图
result = tn.read_very_eager().decode()
→ 非阻塞读取缓冲区数据,decode()字节转字符串
tn.close() → 关闭连接
二、SSH自动化脚本(推荐)
Paramiko SSH脚本
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.112.100.11',
username='wcq112',
password='wcq112',
look_for_keys=False)
time.sleep(1)
channel = ssh.invoke_shell()
time.sleep(1)
channel.send('sys\n')
time.sleep(1)
channel.send('dis cu\n')
time.sleep(3)
channel.send('q\n')
time.sleep(1)
channel.send('dis ip int br\n')
time.sleep(2)
output = channel.recv(65535).decode()
print(output)
ssh.close()
三、关键函数速查
| 函数 | 说明 |
|---|---|
| Telnet(ip) | 创建Telnet连接对象 |
| read_until(str) | 阻塞读取,直到遇到指定字符串 |
| write(str) | 发送命令(字节格式,\n回车) |
| read_very_eager() | 非阻塞读取缓冲区所有数据 |
| decode() | 字节(bytes) → 字符串(str) |
| close() | 关闭连接 |
| time.sleep(秒) | 暂停等待,确保设备回显完成 |
四、Telnet vs SSH
| 对比项 | Telnet | SSH |
|---|---|---|
| Python库 | telnetlib | paramiko |
| 端口 | TCP 23 | TCP 22 |
| 安全性 | 明文传输,不安全 | 加密传输,安全 |
| 适用场景 | 实验/封闭网络 | 生产环境(推荐) |
注意事项:
① time.sleep() 时间要足够,复杂命令建议2~3秒
② write()末尾必须加 \n 回车确认
③ read_until 是阻塞的,可设置timeout参数
④ 退出系统视图时注意层级,接口视图需多次q
⑤ 生产环境建议使用SSH(paramiko库)
① time.sleep() 时间要足够,复杂命令建议2~3秒
② write()末尾必须加 \n 回车确认
③ read_until 是阻塞的,可设置timeout参数
④ 退出系统视图时注意层级,接口视图需多次q
⑤ 生产环境建议使用SSH(paramiko库)
Kali攻击与防御
Kali Linux:专为网络安全渗透测试设计的Linux发行版,内置大量安全工具。
本实验用于了解常见网络攻击原理,以便配置对应的防御策略。
本实验用于了解常见网络攻击原理,以便配置对应的防御策略。
一、Nmap网络扫描
| 命令 | 功能 |
|---|---|
| nmap -sn IP/掩码 | 网络发现(Ping扫描),探测存活主机 |
| nmap -A IP/掩码 | 综合扫描(OS探测+版本探测+脚本扫描+路由追踪) |
| nmap -O IP | 操作系统探测 |
| nmap -sS IP | TCP半开扫描(SYN扫描,需root权限) |
| nmap -sT IP | TCP全连接扫描 |
| nmap -p 端口 | 指定端口扫描 |
| nmap -sV IP | 服务版本探测 |
二、Python构造伪造报文(Scapy库)
实验环境:
Kali真实MAC:
Kali真实MAC:
00:0c:29:d3:1f:63 | AR1的MAC:00e0-fc3b-1b8c
Scapy基础代码
import scapy
import os, sys, time
from scapy.all import *
# 1. 构造IP伪造报文
pkt = IP() # 创建默认IP数据包
pkt.show() # 查看报文构造
pak = IP(src='10.112.100.21', dst='10.112.100.11')
pak.show() # 查看伪造后的报文
send(pak) # 第3层发送
# 2. 构造MAC伪造报文
pak = Ether(src='00:e0:fc:3b:1b:8c')
pak.show()
sendp(pak) # 第2层发送
| 函数 | 说明 |
|---|---|
| IP() / IP(src=, dst=) | 创建IP层数据包 / 指定源目IP |
| Ether(src=) | 创建以太网帧,指定源MAC |
| pkt.show() | 查看报文构造 |
| send(pkt) / sendp(pkt) | 第3层发送 / 第2层发送 |
| sr(pkt) / srp(pkt) | 第3/2层发送并等待响应 |
三、MAC泛洪攻击与端口安全防御
Kali攻击 & 交换机防御
# Kali攻击
macof -i eth0
# 交换机端口安全防御
int g 0/0/2
port-security enable
port-security max-mac-num 3
port-security protect-action shutdown
| 模式 | 行为 |
|---|---|
| protect | 丢弃违规报文,不告警 |
| restrict | 丢弃+告警(默认) |
| shutdown | 关闭端口(最严格) |
四、ARP攻击与防御
ARP欺骗 & DAI防御
# Kali攻击
arpspoof -i eth0 -t 目标IP 网关IP
# 防御
[Router] arp static IP MAC
[SW] arp anti-attack check user-bind enable
[SW] arp anti-attack rate-limit 20
五、DHCP攻击与防御
DHCP耗尽/欺骗 & DHCP Snooping防御
# Kali攻击
yersinia dhcp -attack 1 -interface eth0 # 耗尽
yersinia dhcp -attack 2 -interface eth0 # 欺骗
# 防御
dhcp enable
dhcp snooping enable
dhcp snooping enable vlan 1
int g 0/0/1
dhcp snooping trusted
dhcp snooping rate-limit 10
六、攻击与防御总结
| 攻击类型 | 攻击原理 | 核心防御 |
|---|---|---|
| MAC泛洪 | 伪造大量MAC占满地址表 | 端口安全 + 限制MAC数量 |
| MAC欺骗 | 伪造成合法MAC地址 | 端口安全 + sticky MAC |
| ARP欺骗 | 伪造ARP应答劫持流量 | 静态ARP + DAI检测 |
| DHCP耗尽 | 伪造MAC消耗地址池 | DHCP Snooping + 速率限制 |
| DHCP欺骗 | 部署伪造DHCP服务器 | DHCP Snooping + trusted端口 |
七、综合防御模板
交换机综合防御配置
dhcp enable
dhcp snooping enable
dhcp snooping enable vlan 1
int g 0/0/1
dhcp snooping trusted
quit
int g 0/0/2
port-security enable
port-security max-mac-num 3
port-security protect-action shutdown
dhcp snooping rate-limit 10
arp anti-attack check user-bind enable
quit
HCIP - IP路由基础
一、OSI七层模型
| 层次 | 功能 |
|---|---|
| 应用层 | 为计算机用户提供接口和服务 |
| 表示层 | 数据处理(编码解码、加密解密等) |
| 会话层 | 管理通信会话 |
| 传输层 | 管理端到端的通信连接 |
| 网络层 | 数据路由 |
| 数据链路层 | 管理相邻节点之间的数据通信 |
| 物理层 | 数据通信的物理媒体 |
二、RIB与FIB
| 术语 | 全称 | 位置 | 说明 |
|---|---|---|---|
| RIB | Routing Information Base | 控制平面 | 路由信息库(路由表) |
| FIB | Forwarding Information Base | 数据平面 | 转发信息表(实际转发用) |
三、路由来源
| 类型 | 说明 | Pre |
|---|---|---|
| 直连路由 | 接口UP自动生成 | 0 |
| 静态路由 | 手工配置 | 60 |
| OSPF内部 | 协议学习 | 10 |
| IS-IS | 协议学习 | 15 |
| RIP | 协议学习 | 100 |
| OSPF外部 | 协议学习 | 150 |
| BGP | 协议学习 | 255 |
四、动态路由协议分类
| 分类方式 | 类型 | 协议 |
|---|---|---|
| 按范围 | IGP(AS内部) | OSPF、IS-IS、RIP |
| 按范围 | EGP(AS之间) | BGP |
| 按机制 | 链路状态 | OSPF、IS-IS |
| 按机制 | 距离矢量 | RIP |
| 按机制 | 增强型距离矢量 | BGP |
五、OSPF基础
| 特点 | 说明 |
|---|---|
| 版本 | V2(IPv4)、V3(IPv6) |
| 开销 | 路由传递方向上入接口开销之和 |
| 组播 | Hello: 224.0.0.5 / LSA: 224.0.0.6 |
| 区域 | Area 0(骨干)+ 非骨干 |
| 认证 | 区域认证 / 接口认证(接口优先) |
六、Router ID
32bit整数,唯一标识OSPF设备,与IP地址无直接关系。
选举规则:手工指定 > 最大Loopback IP > 最大物理接口IP
Loopback:逻辑接口,物理口故障不影响,用于协议通信和设备标识。
选举规则:手工指定 > 最大Loopback IP > 最大物理接口IP
Loopback:逻辑接口,物理口故障不影响,用于协议通信和设备标识。
七、路由引入
将一种协议的路由引入另一种协议。
注意事项:单向引入(双向需互相引入),注意优先级、环路、过滤。
场景:网络合并、迁移、多厂商、分层网络。
注意事项:单向引入(双向需互相引入),注意优先级、环路、过滤。
场景:网络合并、迁移、多厂商、分层网络。
八、OSPF vs RIP
| 对比 | RIP | OSPF |
|---|---|---|
| 类型 | 距离矢量 | 链路状态 |
| 传输 | UDP | IP协议 |
| 内容 | 路由表 | 拓扑+路由 |
| 环路 | 易出现 | 无环 |
| 收敛 | 慢 | 快 |
| 规模 | 小型 | 中大型 |
九、总结
| 知识点 | 核心 |
|---|---|
| 路由来源 | 直连(0) > OSPF内部(10) > IS-IS(15) > 静态(60) > RIP(100) |
| 数据表 | RIB(控制平面) → FIB(数据平面) |
| 匹配原则 | 最长掩码匹配 |
| 协议分类 | IGP(OSPF/IS-IS/RIP) / EGP(BGP) |
| OSPF | 组播224.0.0.5/6,Area 0骨干,SPF无环 |
| Router ID | 手工 > Loopback > 物理接口 |
实训案例
PPP PAP认证配置
# 被认证端配置
[R2] interface serial 0/0/0
[R2-Serial0/0/0] ppp pap local-user R2user password simple 123456
[R2-Serial0/0/0] ip address 10.1.1.2 255.255.255.0
# 主认证端配置
[R1] aaa
[R1-aaa] local-user R2user password cipher 123456
[R1-aaa] local-user R2user service-type ppp
[R1-aaa] quit
[R1] interface serial 0/0/0
[R1-Serial0/0/0] ppp authentication-mode pap
[R1-Serial0/0/0] ip address 10.1.1.1 255.255.255.0
[R2] interface serial 0/0/0
[R2-Serial0/0/0] ppp pap local-user R2user password simple 123456
[R2-Serial0/0/0] ip address 10.1.1.2 255.255.255.0
# 主认证端配置
[R1] aaa
[R1-aaa] local-user R2user password cipher 123456
[R1-aaa] local-user R2user service-type ppp
[R1-aaa] quit
[R1] interface serial 0/0/0
[R1-Serial0/0/0] ppp authentication-mode pap
[R1-Serial0/0/0] ip address 10.1.1.1 255.255.255.0
PC端命令
# 路由跟踪
tracert 目标IP地址
# 静态绑定MAC地址
arp -s IP地址 MAC地址
tracert 目标IP地址
# 静态绑定MAC地址
arp -s IP地址 MAC地址
实训任务列表
1. 抓包分析EthernetII的数据帧格式
2. 查看MAC地址表,理解MAC地址表项的组成
3. 在PC上发包到交换机,观察MAC地址表学习过程
4. 配置静态MAC地址,将服务器MAC绑定到交换机接口
5. 配置Console口认证
6. 配置PPP PAP认证实现广域网互联
7. 配置静态路由实现全网互通
8. 配置STP/MSTP观察根桥选举
9. 配置Eth-Trunk链路聚合
10. 配置OSPF实现动态路由
11. 配置VRRP实现网关冗余
12. 配置ACL实现访问控制
13. 配置NAT实现内外网互通
14. 配置DHCP服务器自动分配IP
15. Python自动化运维批量配置设备
16. Kali MAC泛洪攻击与端口安全防御
17. Kali ARP欺骗与DAI防御
18. Kali DHCP攻击与DHCP Snooping防御
19. HCIP路由协议分析与OSPF配置
1. 抓包分析EthernetII的数据帧格式
2. 查看MAC地址表,理解MAC地址表项的组成
3. 在PC上发包到交换机,观察MAC地址表学习过程
4. 配置静态MAC地址,将服务器MAC绑定到交换机接口
5. 配置Console口认证
6. 配置PPP PAP认证实现广域网互联
7. 配置静态路由实现全网互通
8. 配置STP/MSTP观察根桥选举
9. 配置Eth-Trunk链路聚合
10. 配置OSPF实现动态路由
11. 配置VRRP实现网关冗余
12. 配置ACL实现访问控制
13. 配置NAT实现内外网互通
14. 配置DHCP服务器自动分配IP
15. Python自动化运维批量配置设备
16. Kali MAC泛洪攻击与端口安全防御
17. Kali ARP欺骗与DAI防御
18. Kali DHCP攻击与DHCP Snooping防御
19. HCIP路由协议分析与OSPF配置