AkiACG 技术文档:路由与交换
本栏目由 AkiACG论坛 独家赞助支持
好吧说到底还是我自己的项目。
这里是秋月。
你可能不认识我,但是无所谓。
如你所见,这是一份我在研究路由交换设备时整理出的内容。
这份笔记由我在思科模拟器、思科2911、3560X-48PF-S(已升级到E) 以及华为的几台设备测试得出的结论构成。
写在前面
网络这东西,读死书学基础是一回事,实战自己敲命令又是另一回事。
思科和华为的命令风格差那么多,一开始我也搞不懂。后来发现,只要你懂原理,剩下的不过是查手册查AI的事。这篇笔记就是我在各种设备上反复横跳时,顺手记下来的东西。
设备选型(为什么是这几台)
思科 2911
老家伙了,但作为企业级路由器,该有的都有。跑OSPF、EIGRP、静态路由,稳得很。我在上面折腾过策略路由,也拿它做过帧中继(虽然这玩意早没人用了)。
重点: 2900&3900 G2 Series是最后一代不需要网络授权的平台。4331什么的我其实也考虑过但是均衡利弊预算什么的之后还是选择了这位老将。
对这些很好奇?点我展开。
为什么我选 2911,而不是更新的 ISR 4000
这里有一个绕不开的现实问题——思科的许可模式变了。
从 Cisco ISR 4000 系列(例如 4331、4351)开始,思科引入了 DNA(Digital Network Architecture)许可体系。
这意味着路由器不再是“买来就能一直用”的设备,而是:硬件 + 软件订阅 的组合。
哦。好吧。
许可模式对比
| 设备 | 许可模式 | 实际后果 |
|---|---|---|
| 2911(ISR G2) | 传统模式 | 一次买断,功能永久可用 |
| 4331(ISR 4000) | 硬件 + DNA 订阅 | 不续费,功能被限制 |
简单说就是:
- 2911:
你买的是一台路由器 - 4331:
你买的是一台路由器,但是需要持续交钱然后和思科的授权体系斗智斗勇才能正常工作。
DNA 许可到底影响什么?
在 ISR 4000+ 上,很多你以为“理所当然”的功能,实际上受 DNA 许可约束:
- 吞吐性能受限(不授权直接降速)
- 部分三层与高级特性需要许可
- 许可过期后,设备不会直接关机,但会进入功能受限状态
对于实验、学习、长期放着用的设备来说,这很致命。
这对学习和实验意味着什么?
如果你只是想:
- 跑个 OSPF
- 做点静态 / 动态路由实验
- 长期放在机柜里,偶尔拿出来折腾
那你就会遇到几个非常现实的问题:
- 我不想几年后发现路由器只能跑百兆
- 我不想为了一个基础协议,还要研究许可订阅状态
- 我更不想让一台“本来能用”的设备,因为许可证到期变成半砖
所以我选 2911。
理由非常简单,也非常现实:
- 没有订阅
- 没有云绑定
- 没有许可服务器
- 功能控制在你手里,而不是在思科那边
即插即用,便宜耐造。
对于学习路由与交换、做长期实验环境来说,
2911 这种老设备,反而更自由。
一句话总结
不是咱买不起新设备,
是不想让“学习网络”这件事,到头来变成和思科授权服务器斗智斗勇。
所以我选 2911。
WS-C3560X-48PF-S
这交换机我捡漏的。机器的授权从S升级到了E。区别?E支持IP Services特性集,能跑HSRP、GLBP,还能做简单的三层路由。如果不升级,有些show命令都看不到关键信息。
(New!)WS-C2960X-48TS-L
一样捡漏的交换机,带有额外的堆叠模块,更加简单好用。
华为设备
具体型号不列了,几台老款的AR系列和S系列。命令风格和思科完全不同,但熟悉后也挺顺手。最让我意外的是,华为的文档做得比思科好(个人感受)。
模拟器
Packet Tracer解君愁。
欢迎来到路由与交换的世界。
这一部分的内容主要是在不同平台大家可能会踩的坑。
比如华为和思科命令的不同,路由器与交换机之间的差别,以及一些碎碎念。
为什么要有这个栏目?
因为网上教程太多了,但大部分都是:
· 只讲思科,不讲其他几家。泛用型极差,学完了还得自己转译。
· 只讲理论,不讲实操。Packet tracer固然是好东西,但是现实既没有原力排线也没有快进键更没有那么多的机器给你随便造。
· 只讲“应该怎么做”,不讲“做错了会怎样”。你会好奇,然后尝试,然后爆炸。有些不应该做的事情我会在这里警告你。
这个栏目的定位不一样。
那么这里会有什么?
✅ 跨平台对照
同一件事,思科怎么配,华为怎么配。不用两头查手册。
✅ 站长踩坑实录
· 为什么感觉明明什么都对了,就是网不通。
· 为什么 show 命令看不到东西。
· 为什么端口起不来。
秋月站长亲自为您踩坑。
✅ 核心操作
不讲废话,只讲你每天都会用到的:
· 查看状态
· 排查故障
· 保存配置
这里不会有什么
· ❌ 不会讲 OSI 七层模型(你自己看百度)
· ❌ 不会讲路由协议原理(有RFC文档)
· ❌ 不会写“在企业网络中,我们通常...”这种废话
· ❌ 不会教你如何通过《路由与交换技术》考试。那是你和你老师的事情。但是多少有点参考价值吧。
本文章偏向实战向,对考试的帮助可能有限。请根据自己需求选择是否阅读。
适合谁看
· 刚入行,想亲自试试手的人
· 从一个公司体系(我是思科)转其他公司体系的的人
· 配完发现不通,想找个人问问“你遇到过吗”的人
最后
这个栏目叫“核心操作与命令”,但说白了就是呢,我已经踩过的坑,你不用再踩一遍。
顺便给初学者指个路,当个好人。
后面慢慢写,先开个头。
Console
你有没有意识到:你在学校学习的思科模拟器的IOS命令行,只需要点几下图标就有了。真机你哪怕给机器插上鼠标键盘也没反应。
那咋办嘞?
Introducing: Console Port!
如你所见,几家网络设备都会在设备上预留至少一个RJ45的"网口"。上面写着console.
一些新设备会有一个USB Mini-B的端口,那个也能用,或者说其实更好用。
那是网口吗?
显然不是。
Console口本质上是一个RJ45形状的串口。
想知道更多?点我吧。
思科 Console 口定义
RJ45 引脚定义(标准)
思科设备的 Console 口(RJ45)引脚定义如下:
| 引脚 | 信号 | 方向 | 说明 |
|---|---|---|---|
| 1 | RTS | Output | 请求发送(与引脚8短接) |
| 2 | DTR | Output | 数据终端就绪(常开) |
| 3 | TXD | Output | 发送数据 |
| 4 | GND | — | 信号地 |
| 5 | GND | — | 信号地 |
| 6 | RXD | Input | 接收数据 |
| 7 | DSR | Input | 数据设备就绪(未使用) |
| 8 | CTS | Input | 清除发送(与引脚1短接) |
重要说明
1. Rollover 线(反转线)
思科 Console 线是特殊的 rollover 线(也叫反转线):
- 线序:一头引脚1对应另一头引脚8,引脚2对应引脚7,以此类推
- 普通网线(直通线)不能当 Console 线用
- 如果你手头只有普通网线,临时应急可以试试,但大概率不通
2. Console 口 vs AUX 口
| 接口 | 用途 | 引脚7状态 |
|---|---|---|
| Console | 本地管理 | 未使用 |
| AUX | 远程拨号管理 | DSR/DCD |
外观都是 RJ45,插错可能不工作,但不会烧设备。
3. Console 口 vs 普通网口
| 接口 | 信号类型 | 用途 |
|---|---|---|
| Console | RS-232 串行信号 | 设备配置管理 |
| 普通网口 | 以太网信号 | 网络数据传输 |
插错口不会烧设备,但肯定连不上。别问我怎么知道的。
线缆对应关系
如果你非要自己做 Console 线(我还是建议直接买成品):
| RJ45(Console口) | DB9(电脑串口) |
|---|---|
| 引脚1 RTS | 引脚8 CTS |
| 引脚2 DTR | 引脚6 DSR |
| 引脚3 TXD | 引脚2 RXD |
| 引脚4 GND | 引脚5 GND |
| 引脚5 GND | 引脚5 GND |
| 引脚6 RXD | 引脚3 TXD |
| 引脚8 CTS | 引脚7 RTS |
引脚7 DSR 悬空,不用接。
踩坑提醒
-
USB转RJ45的线可能不兼容
市面上有些 USB 转 RJ45 的线不兼容思科定义(比如 CH340 方案的某些线),引脚5可能会输出电压导致乱码或完全没反应。 -
买线时认准关键词
建议买标注 "Cisco兼容" 或 "Rollover" 的 Console 线,别买成普通的 USB 转网口(那是给笔记本电脑没网口时用的)。 -
笔记本没串口怎么办
需要两样东西:- Console 线(RJ45 转 DB9)
- USB 转 DB9 串口线(带 CH340 或 FTDI 芯片的)
或者直接买 USB 转 RJ45 的思科专用 Console 线,一根搞定。
-
插上没反应先查这几项
- 线插对了吗(Console 口不是网口)
- 驱动装了吗(设备管理器里有没有 COM 口)
- 流控关了吗(RTS/CTS 必须关)
- 波特率是 9600 吗
为什么这些破事这么复杂?
因为 RS-232 标准诞生于上个世纪,那时候没人想到今天会有人用 USB 连它。
思科只是选了个 RJ45 的物理接口,里面跑的还是老掉牙的串口协议。
所以你现在才会看到:
- RJ45 形状的接口(看着像网口)
- RS-232 的信号(不是网络信号)
- 反转的线序(rollover 线)
习惯就好。
为什么要用Console?
因为你第一次拿到设备的时候,它应该啥配置都没有。
- 没有IP地址
- 没有管理VLAN
- 不知道密码
- 甚至不知道它有没有启动完
这时候你想进去敲命令?SSH?没配。Telnet?更不可能。Web界面?想都别想。
唯一能进去的路,就是Console。
你可能在找:如果你的设备有配置,有密码或无法登入,请参见后文2.12 重制与重载
怎么连?
你需要三样东西:
-
Console线
一端是RJ45,一端是串口(或者直接USB)。新点的笔记本没串口?买USB转串口的线,或者找带USB头的Console线。 -
终端软件
- Windows:PuTTY、SecureCRT、Xshell(站长在用)
- Mac:screen 命令,或者 SecureCRT
- Linux:minicom、screen
-
正确的设置
别管你是思科还是华为,参数都一样:
波特率:9600
数据位:8
停止位:1
校验:无
流控:无
踩坑记录
1. 线插上了,软件打开了,啥也没有
原因:线坏了,或者驱动没装。
有些USB转串口的线要装驱动。插上后去设备管理器看看有没有出现新的COM口。
如果是USB转RJ45的线(比如思科的蓝线),一般是即插即用,但也有例外。
2. 有输出,但敲键盘没反应
原因:流控没关。
把RTS/CTS、XON/XOFF全部关掉。只要设成None。
3. 一堆乱码
原因:波特率不对。
确认是9600。有些设备启动时会在某个阶段改波特率(比如IOS的ROMmon模式),但正常情况下就是9600。
4. 华为(H3C可能也会)设备,插上console直接输命令,没提示输密码 & 我重置过了怎么还有密码?
原因:华为不同版本不同设备的策略不同。
这是华为自己的问题。或许第一次连上华为设备,你可能直接就进用户视图了,抑或遇到了username和password的地狱。
- admin admin@huawei.com
事已至此,试试看吧。
5. 线是对的,设置是对的,但就是连不上
原因:可能是Console线插错口了。
有些设备有多个RJ45口,只有标着"Console"或"CON"的那个才是。别插到AUX口或者管理网口上。
6. 天杀的!为什么这么卡!还给我卡蓝屏了???
原因:你可能需要去设备管理器关掉FIFO缓冲区。 FIFO(First In First Out)缓冲区,简单说就是串口设备的一个缓存机制。 Windows 默认会开这个东西,目的是让数据传输更顺畅。但问题是:
- 它和某些老设备(或者某些USB转串口线的驱动)八字不合
- 开着的后果:输入延迟、输出乱码、终端软件卡死、甚至直接死给你看
小技巧
保存会话日志
连console的时候,建议在终端软件里开日志记录。
万一你配到一半设备重启了,还能回头看看刚才敲了啥。
波特率不对的时候
有时候设备启动过程中会提示:
Press Ctrl+B to enter boot menu...
这时候如果你敲不进,多半是波特率不是9600。有些设备启动菜单用的波特率是115200,可以试试看。
多备几条线
Console线这东西,说坏就坏。手边最好备两条,一条USB转串口,一条USB转RJ45直连的(思科那种蓝线)。
设备间的小差异
| 设备 | Console默认密码 | 特殊说明 |
|---|---|---|
| 思科交换机/路由器 | 默认无密码,但需要配 | 如果配置了line console 0但没有login,直接进 |
| 华为交换机/路由器 | 部分默认无密码,直接进(注:需要看设备版本。部分设备有默认账号密码) | 进用户视图后需要system-view进配置模式 |
| 华三 | 默认无密码,直接进 | 和华为基本一样,毕竟是同源 |
| 锐捷 | 默认无密码,但需要enable密码进特权 | 用户视图直接进,但enable需要密码 |
最后想说的
Console口是你和设备最原始的连接方式。
不管你是配几千块的傻瓜交换机,还是几十万的核心路由器,第一次见面,都是通过这根线。
哦,几百块的那种没有网管功能的没有。
全局模式 & 端口配置基础
顾名思义,本章将告诉你如何配置端口。
众所周知,思科和华为华三的命令体系是完全不同的。
要开始配置端口,首先需要进入全局配置模式/视图
三家命令有不同,参照下表: 你说得对,思科和华为/华三的命令体系确实差异很大。对于初学者来说,最容易混淆的就是进入端口视图和配置端口的命令。
下面我帮你整理了一个三家命令对照表,以及进入配置模式的完整流程:
进入全局配置模式
无论哪家,第一步都是先进入全局配置模式:
| 厂商 | 进入全局配置模式 | 提示符变化 |
|---|---|---|
| 思科 (Cisco) | configure terminal (一般常用 conf t) | Switch# → Switch(config)# |
| 华为 (Huawei) | system-view (或 sys) | <Switch> → [Switch] |
| 华三 (H3C) | system-view (或 sys) | <Switch> → [Switch] |
💡 小贴士:华为和华三的命令体系基本一致,都源自早期的Comware系统。
进入端口视图
进入全局模式后,接下来要进入具体的端口进行配置:
| 厂商 | 进入以太网端口 | 示例 | 提示符变化 |
|---|---|---|---|
| 思科 | interface [端口号] | interface GigabitEthernet0/1 | Switch(config)# → Switch(config-if)# |
| 华为 | interface [端口号] | interface GigabitEthernet0/0/1 | [Switch] → [Switch-GigabitEthernet0/0/1] |
| 华三 | interface [端口号] | interface GigabitEthernet1/0/1 | [Switch] → [Switch-GigabitEthernet1/0/1] |
⚠️ 注意:命令虽然都是
interface,但端口编号规则完全不同! 具体情况请自行查看端口号,实在无法确认建议show/display int看一下端口 更高级的搜索会在后文展示,有深度学习需要可以查看。
端口编号规则对照
这是最容易搞混的地方:
| 厂商 | 端口编号格式 | 含义 |
|---|---|---|
| 思科 (IOS) | GigabitEthernet0/1 | 模块号0/端口号1(模块0通常是板载端口) |
| 华为 | GigabitEthernet0/0/1 | 槽位号0/卡号0/端口号1 |
| 华三 | GigabitEthernet1/0/1 | 槽位号1/卡号0/端口号1 |
举例说明:
- 思科的
G0/1= 华为的G0/0/1,但 ≠ 华三的G1/0/1(因为华三槽位从1开始)
常用端口配置命令对比
| 配置项 | 思科 (Cisco) | 华为/华三 (Huawei/H3C) |
|---|---|---|
| 描述 | description [文本] | description [文本] |
| 二层口转三层口 | no switchport | undo portswitch |
| 三层口转二层口 | switchport | portswitch |
| 配置IP | ip address [IP] [掩码] | ip address [IP] [掩码] |
| 启用端口 | no shutdown | undo shutdown |
| 关闭端口 | shutdown | shutdown |
| 配置Access VLAN | switchport access vlan [号] | port access vlan [号] |
| 配置Trunk | switchport mode trunk | port link-type trunk |
| 允许VLAN通过 | switchport trunk allowed vlan [号] | port trunk permit vlan [号] |
实战示例
思科 (Cisco) 配置端口G0/1
Core-SW# configure terminal
Core-SW(config)# interface GigabitEthernet0/1
Core-SW(config-if)# description Connection-to-ACcess
Core-SW(config-if)# no switchport # 改为三层口
Core-SW(config-if)# ip address 192.168.1.1 255.255.255.0
Core-SW(config-if)# no shutdown
Core-SW(config-if)# end
华为 (Huawei) 配置端口G0/0/1
<Core-SW> system-view
[Core-SW] interface GigabitEthernet0/0/1
[Core-SW-GigabitEthernet0/0/1] description Connection-to-ACcess
[Core-SW-GigabitEthernet0/0/1] undo portswitch # 改为三层口
[Core-SW-GigabitEthernet0/0/1] ip address 192.168.1.1 24
[Core-SW-GigabitEthernet0/0/1] undo shutdown
[Core-SW-GigabitEthernet0/0/1] quit
华三 (H3C) 配置端口G1/0/1
<Core-SW> system-view
[Core-SW] interface GigabitEthernet1/0/1
[Core-SW-GigabitEthernet1/0/1] description Connection-to-ACcess
[Core-SW-GigabitEthernet1/0/1] undo portswitch # 改为三层口
[Core-SW-GigabitEthernet1/0/1] ip address 192.168.1.1 24
[Core-SW-GigabitEthernet1/0/1] undo shutdown
[Core-SW-GigabitEthernet1/0/1] quit
总结
| 操作 | 思科 | 华为/华三 |
|---|---|---|
| 进全局 | conf t | system-view |
| 进端口 | interface g0/1 | interface g0/0/1 |
| 给IP | ip address x.x.x.x x.x.x.x | ip address x.x.x.x 24 |
| 启用 | no shutdown | undo shutdown |
| 退出一级 | exit | quit |
| 退回用户 | end | return |
VLAN配置基础
网络地址转换(NAT,Network Address Translation)
顾名思义,本章将告诉你如何让私有IP上网。
众所周知,IPv4地址已经不够用了。NAT就是为了解决这个问题而生的——它能让一群设备共享一个公网IP上网。
当你捣鼓你的路由器的时候一般上行都会连一台家用路由器。而家用路由器绝大多数都没法设置静态路由或者接收动态路由表。它们只是为NAT而生的,也只会NAT。怎么办?那我们也NAT。
和之前一样,思科和华为/华三的命令体系完全不同。请参照下表:
⚠️ 第一步:确认接口角色
配置NAT之前,必须搞清楚哪个接口是"内网",哪个接口是"外网":
💡 小贴士:实在分不清的话,记住"私网侧是里面是inside,公网侧是外面是outside"就行。
进入接口配置
确认好角色后,进入接口指定NAT角色:
| 厂商 | 指定内网口 | 指定外网口 |
|---|---|---|
| 思科 | ip nat inside | ip nat outside |
| 华为 | nat inside | nat outside |
| 华三 | nat inside | nat outside |
NAT的三种实现方式
1. 静态NAT(Static NAT)
一个内网IP对应一个固定公网IP,常用于对外发布服务器
| 厂商 | 配置命令 |
|---|---|
| 思科 | ip nat inside source static [内网IP] [公网IP] |
| 华为 | nat static global [公网IP] inside [内网IP] |
| 华三 | nat static global [公网IP] inside [内网IP] |
2. 动态NAT(Dynamic NAT)
内网IP从公网IP池里临时借一个用,用完归还,不常用
| 厂商 | 配置步骤 |
|---|---|
| 思科 | 1. ip nat pool [池名] [起始IP] [结束IP] netmask [掩码]2. access-list [号] permit [内网网段] [反掩码]3. ip nat inside source list [号] pool [池名] |
| 华为/华三 | 1. nat address-group [组号] [起始IP] [结束IP]2. acl [号] permit [内网网段] [通配符]3. nat outbound [号] address-group [组号] |
3. PAT/NAPT(Port Address Translation)
最常用的上网方式:所有内网IP共享一个公网IP,通过端口号区分不同连接
| 厂商 | 配置命令 |
|---|---|
| 思科 | ip nat inside source list [号] interface [外网口] overload |
| 华为 | nat outbound [号] address-group [组号](不加组号就是出接口) |
| 华三 | nat outbound [号] |
🚀 重点掌握:家庭和企业宽带上网用的就是PAT,也叫"端口复用"或"多对一NAT"。
⚠️ 第二步:确认哪个流量需要NAT
需要告诉设备:哪些内网IP允许上网。通常用ACL(访问控制列表)来定义:
| 厂商 | 定义允许上网的流量 |
|---|---|
| 思科 | access-list 1 permit 192.168.1.0 0.0.0.255 |
| 华为 | acl 2000 rule permit source 192.168.1.0 0.0.0.255 |
| 华三 | acl basic 2000 rule permit source 192.168.1.0 0.0.0.255 |
⚠️ 注意:思科用的是反掩码(0.0.0.255),华为/华三用的也是反掩码(通配符),千万别写成255.255.255.0! 其实写错了也没关系,会有提示告诉你的。
完整配置示例
场景:让内网 192.168.1.0/24 通过外网口 G0/1 上网
思科 (Cisco)
R-Center# configure terminal
R-Center(config)# interface GigabitEthernet0/0 # 内网口
R-Center(config-if)# ip nat inside
R-Center(config-if)# exit
R-Center(config)# interface GigabitEthernet0/1 # 外网口
R-Center(config-if)# ip nat outside
R-Center(config-if)# exit
R-Center(config)# access-list 1 permit 192.168.1.0 0.0.0.255
R-Center(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
R-Center(config)# end
华为 (Huawei)
<R-Center> system-view
[R-Center] interface GigabitEthernet0/0/0 # 内网口
[R-Center-GigabitEthernet0/0/0] nat inside
[R-Center-GigabitEthernet0/0/0] quit
[R-Center] interface GigabitEthernet0/0/1 # 外网口
[R-Center-GigabitEthernet0/0/1] nat outside
[R-Center-GigabitEthernet0/0/1] quit
[R-Center] acl 2000
[R-Center-acl-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[R-Center-acl-basic-2000] quit
[R-Center] nat outbound 2000
[R-Center] return
此段代码未经本人测试,但是有以下反馈:华为只需在出接口配置 nat outbound [ACL] 即可,内网口保持默认。
华三 (H3C)
<R-Center> system-view
[R-Center] interface GigabitEthernet1/0/1 # 内网口
[R-Center-GigabitEthernet1/0/1] nat inside
[R-Center-GigabitEthernet1/0/1] quit
[R-Center] interface GigabitEthernet1/0/0 # 外网口
[R-Center-GigabitEthernet1/0/0] nat outside
[R-Center-GigabitEthernet1/0/0] quit
[R-Center] acl basic 2000
[R-Center-acl-ipv4-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[R-Center-acl-ipv4-basic-2000] quit
[R-Center] nat outbound 2000
[R-Center] return
🔍 验证NAT状态
配置完了怎么确认生效了?
| 厂商 | 查看NAT转换表 | 查看NAT统计 |
|---|---|---|
| 思科 | show ip nat translations | show ip nat statistics |
| 华为 | display nat session all | display nat outbound |
| 华三 | display nat session | display nat outbound |
思科输出示例
R-Center# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.5:12345 192.168.1.10:12345 8.8.8.8:80 8.8.8.8:80
看到类似输出说明内网192.168.1.10正在通过公网IP 203.0.113.5访问8.8.8.8的80端口。
常见问题
❓ 配置了NAT但上不了网?点我排查
- 接口角色反了:检查inside/outside是否标对
- ACL写错了:确认反掩码是否正确(是0.0.0.255不是255.255.255.0)
- 路由缺失:设备需要有默认路由指向下一跳
- 思科:
ip route 0.0.0.0 0.0.0.0 [下一跳IP] - 华为/华三:
ip route-static 0.0.0.0 0 [下一跳IP]
- 思科:
- 外网口没IP:或者IP不是公网IP(如果是运营商分配的私网IP,属于运营商级NAT,与本设备无关)
❓ PAT和动态NAT有什么区别?
| 类型 | 公网IP占用 | 最大连接数 | 适用场景 |
|---|---|---|---|
| 动态NAT | 1个内网IP占用1个公网IP | 受公网IP数量限制 | 内网设备少,公网IP多 |
| PAT | 所有内网IP共用1个公网IP | 约65535个/每个公网IP | 家庭、企业宽带上网 |
结论:PAT是现在的主流,动态NAT基本被淘汰了。
总结
| 操作 | 思科 | 华为/华三 |
|---|---|---|
| 标内网口 | ip nat inside | nat inside |
| 标外网口 | ip nat outside | nat outside |
| 定义内网范围 | access-list [号] permit [网段] [反掩码] | acl [号] rule permit source [网段] [反掩码] |
| 开启PAT | ip nat inside source list [号] interface [外网口] overload | nat outbound [号] |
| 查看转换表 | show ip nat translations | display nat session all |
一句话总结
NAT就是让一群私网IP共用少数公网IP上网的技术,PAT是它最常用的形式。
当你用思科配置NAT的时候,如果你要配置PAT一定要加Overload。想知道为什么?点我。
思科配置 PAT 不加 overload 的后果
顾名思义,本隐藏章节将告诉你忘记敲 overload 会发生什么。
很多新手配置 PAT 时,照着教程敲了 ip nat inside source list 1 interface g0/1,结果内网电脑死活上不了网——问题就出在忘了加 overload。
在思科设备上,overload 这个关键字决定了 NAT 的行为到底是"多对一"还是"多对多"。不加它,设备就不会启用端口复用,后果很严重。
⚠️ 不加 overload = 动态 NAT
先看两条命令的对比:
| 命令 | 类型 | 含义 |
|---|---|---|
ip nat inside source list 1 interface g0/1 overload | PAT(端口地址转换) | 多对一,所有内网IP共享一个公网IP |
ip nat inside source list 1 interface g0/1 | 动态 NAT | 多对多,每个内网IP独占一个公网IP |
不加 overload,你配置的就是动态 NAT,而不是 PAT。
💥 不加 overload 的四大后果
1. 公网IP不够用,直接瘫痪
- PAT模式:1个公网IP可以带整个内网(理论支持约65535个并发连接)
- 动态NAT模式:每个内网IP独占一个公网IP,有多少公网IP,就只能让多少台设备同时上网
后果:如果你只有一个公网IP(家庭宽带、小企业专线常见情况),那么只有第1台设备能上网,第2台开始全部失败。
2. 配置报错(如果你用的是接口)
如果你用的是 interface 这种写法(如 interface g0/1),不加 overload 甚至可能报错:
%Pool ... not defined. Use 'ip nat pool' command
因为动态NAT需要一个地址池,而你只给了一个接口,设备不知道该怎么分配。
3. 端口不复用,连接数受限
- PAT:通过端口号区分不同连接,1个公网IP + 65535个端口 = 海量并发
- 动态NAT:只换IP不换端口,1个公网IP = 1个连接(实际上是被端口限制了)
后果:即使用多个公网IP,每个IP同时只能被一台设备的一个会话占用,效率极低。
4. 外网无法主动访问内网(这不是好事)
虽然不加 overload 也能隐藏内网(和PAT一样),但这不是优点——你想要的只是让内网上网,而不是限制并发数。
🧪 实验对比
正确配置(PAT,加 overload)
R-Center(config)# access-list 1 permit 192.168.1.0 0.0.0.255
R-Center(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
R-Center(config)# interface GigabitEthernet0/0
R-Center(config-if)# ip nat inside
R-Center(config-if)# interface GigabitEthernet0/1
R-Center(config-if)# ip nat outside
效果:内网50台电脑都能上网,show ip nat translations 看到同一个公网IP后面跟着不同端口:
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.5:12345 192.168.1.10:12345 8.8.8.8:80 8.8.8.8:80
tcp 203.0.113.5:23456 192.168.1.11:23456 8.8.8.8:80 8.8.8.8:80
错误配置(动态NAT,忘加 overload)
R-Center(config)# access-list 1 permit 192.168.1.0 0.0.0.255
R-Center(config)# ip nat inside source list 1 interface GigabitEthernet0/1
%Pool ... not defined. Use 'ip nat pool' command # 报错
即使强行用地址池配置:
R-Center(config)# ip nat pool PUBLIC 203.0.113.5 203.0.113.5 netmask 255.255.255.248
R-Center(config)# ip nat inside source list 1 pool PUBLIC
效果:只有第1台访问外网的设备能成功,第2台开始全部超时。
🔍 怎么判断当前配置是PAT还是动态NAT?
| 命令 | PAT 输出特征 | 动态 NAT 输出特征 |
|---|---|---|
show ip nat translations | 同一个公网IP,端口号不同 | 不同内网IP对应不同公网IP |
show ip nat statistics | 显示 Total translations: 很多 | 显示 Total addresses: 很少 |
✅ 正确用法总结
| 场景 | 命令 | 说明 |
|---|---|---|
| 只有一个公网IP | ip nat inside source list 1 interface g0/1 overload | 必须加 overload |
| 有多个公网IP,想让内网共享 | ip nat pool POOL 203.0.113.5 203.0.113.10 netmask 255.255.255.248ip nat inside source list 1 pool POOL overload | 也要加 overload,否则变成动态NAT |
| 真的想要动态NAT(极少见) | 不加 overload,但要有足够多的公网IP | 每个内网IP独占一个公网IP |
在思科设备上,不加 overload 的 NAT 就不是 PAT,而是动态 NAT——如果你只有一个公网IP,那只有第1台设备能上网。
静态ip
这一部分可以说是基础中的基础。
可能现在的孩子们已经习惯插根网线,或者连个WiFi就能直接获取IP地址的日子了。
当然,机房里的设备可不能乱设IP。
那咋办捏?
在三层交换机与路由器中,我们可以给每个端口分配静态的IP。 命令如下:
思科(Cisco)
给物理接口配 IP(常用于路由器):enable
configure terminal
interface gigabitethernet 0/0
ip address 192.168.1.1 255.255.255.0
no shutdown
exit
给三层交换机的 VLAN 接口(SVI)配 IP:
interface vlan (你的VLAN号)
ip address 192.168.10.1 255.255.255.0
no shutdown
exit
配完别忘了保存:
end
wr
华为&华三
物理接口:system-view
interface gigabitethernet 0/0/0
ip address 192.168.1.1 24
quit
VLANIF 接口:
interface vlanif (你的VLAN号)
ip address 192.168.10.1 24
quit
保存:
save
当你设置好这些,你就可以按照你的IP范围、子网掩码与网关地址在对应的客户机上设置静态IP。本文不再赘述。
链路聚合
负载均衡算法
带宽叠加原理
链路容灾机制
交换口的模式
三层交换器开启路由转发
设置DHCP
生成树协议
重置与重载
本栏目将教会你如何重置并重载你的设备配置文件。
当你第一次拿到一台新机器的时候,你可能会发现里面有一些配置文件没有被清理干净,不处理好的话会对后续操作造成意想不到的阻碍。
更有甚者可能直接进不了管理视图
那咋办嘞?
猜你关注:如果你在寻找如何不停机软重启,那你没找错,但是我需要先讲一下其他的重点。如果你已经知道了,不妨翻到本文最下面去寻找。
思科交换机&路由器 删除用户数据
本段内容是为无法进入设备管理视图的朋友们准备的。
适用场景:
- 不知道 enable 密码
- Console 能进,但进不了特权模式
- 一开机就要用户名 / 密码,完全没辙
简单说:你已经被前任管理员锁在门外了。
这时候,唯一的办法就是——
绕过启动配置,把设备“骗”进来。
思路先讲清楚(很重要)
在 Cisco 设备上:
- 所有用户、密码、接口配置
- 都存放在 startup-config 里
- 设备开机时会自动加载它
我们要做的事本质上是让设备启动时“看不到”原来的配置文件。
🤔 华为设备被锁怎么办?(点我展开)
华为的思路类似,但命令不一样:
- 重启按
Ctrl+B或Ctrl+E进入BootROM菜单 - 选择 "Clear password" 或忽略配置启动
- 重启后删除
vrpcfg.zip(或vrpcfg.cfg,视版本而定),或者在用户视图下执行reset factory-configuration
注意事项:
- BootROM菜单可能会有密码,可先尝试缺省密码:
9300或huawei(V100),Admin@huawei.com(V200及以后) - 如果BootROM密码被改了,在能登录Console的情况下可以在
用户视图下使用reset boot password(旧版本)或者直接使用reset factory-configuration恢复出厂设置 - 如果无法登录Console,也无法进入BootROM,请检查机身上是否有
PNP按键,如果有,长按该按键6秒以上可直接恢复出厂设置 - 如果连PNP按键都没有,
那没招了,除了返厂维修没别的方法了详见S200, S1700, S5700,S6700交换机忘记密码怎么办(V200)/(V600)
具体步骤因版本而异,但核心逻辑一样: 绕过配置 → 清空配置 → 恢复正常
操作步骤
1️⃣ 通过 Console 重启设备
直接断电重启,或者在你还能敲命令的情况下:
reload
2️⃣ 开机过程中打断启动,进入 ROMmon
设备刚上电时,注意看终端模拟器中的提示,通常是类似:
Press Break or Ctrl+Break to enter ROMMON
他让你按什么键你疯狂按就完了。
成功后你会看到类似:
rommon 1 >
3️⃣ 忽略原有启动配置
在 ROMmon 模式下输入:
confreg 0x2142
然后重启:
reset
这一步的效果是:
告诉设备:下次启动时不要加载 startup-config
4️⃣ 设备会OOBE启动
这时候你会看到熟悉的提示:
Would you like to enter the initial configuration dialog? [yes/no]:
直接输入:
no
然后你就会:
✅ 直接进入特权模式
✅ 不需要密码
✅ 原配置还在,但暂时没生效
至于打YES会怎么样?不会有什么大乱子,只是你要绕个大弯子。你可以去packet tracer试试看。
5️⃣ 删除原有配置文件(重点)
现在可以动手了:
enable write erase
或:
erase startup-config
如果是交换机,一定要再来一句:
delete flash:vlan.dat
(不然 VLAN 会阴魂不散)
6️⃣ 恢复正常启动方式
非常重要的一步,别忘了:
configure terminal config-register 0x2102 end write memory reload
至此,设备已经是**真正的“裸机状态”**了。
小提醒(踩坑预警)
- ❌ 忘了改回
config-register 0x2102
→ 下次重启还会忽略配置 - ❌ 忘了删
vlan.dat
→ VLAN 配置“重生” - ❌ 以为这是“软重启”栏目的内容 → 这是彻底清空配置文件
思科交换机&路由器 删除启动配置
本段内容是为可以进入设备管理视图但是不知道怎么快速重置的朋友们准备的。
最快、最干净的方式
1️⃣ 进入特权模式
enable
2️⃣ 删除启动配置
write erase
或:
erase startup-config
看到提示确认即可。
3️⃣ 交换机额外一步(非常重要)
如果你用的是交换机:
delete flash:vlan.dat
不然你会遇到:
- VLAN 还在
- 端口莫名其妙在奇怪的 VLAN 里
- “我不是已经清空了吗?”的经典疑问
4️⃣ 重启设备
reload
不保存,直接重启。
重启后的状态
重启完成后,你会得到一台:
- 没有 IP
- 没有用户
- 没有 VLAN
- 没有接口配置
真正意义上的“白板设备”。
一句话总结
- 进不去设备?
👉 ROMmon + 忽略配置 + 删除 - 进得去设备?
👉write erase+reload
能简单解决的事,就别把事情搞复杂。
如果你只是来看软重启的,那打个reload再回车就好了。抱歉让你看了这么多废话。
动态路由
OSPF
第一跳冗余协议
BGP
美化与变量相关
Banner
设备名
一个好的设备名可以让整体网络系统的管理更加高效。
那什么算好的设备名?
你有没有遇到过这种情况:登录交换机,show 一下邻居,发现一堆叫 Switch、Huawei、TP-LINK_1234 的设备,根本分不清哪个是哪个。排个故障,要对着 MAC 地址表猜半天。
记得给设备起个好名字。
如何设置设备名?
| 设备 | 命令 |
|---|---|
| Cisco | Hostname [name] |
| 华为&华三 | Sysname [name] |
为什么要管设备名?
- 一眼定位:看到
3f-access-sw05就知道它在三楼、是接入交换机、编号 05。 - 减少误操作:你不会在
core-sw-01上乱改 VLAN,因为它名字里写着“核心”。 - 故障排查加速:日志里出现
db-mysql-02连接超时,哦不对是不是有人删库跑路了。 - 自动化基础:DHCP 分配、监控系统、CMDB 都依赖规范的命名。
你可能在想:我就整这么小个网络,随便叫叫也行啊。
是,但当你哪天开始接手别人的屎山,或者网络从 5 台设备膨胀到 50 台,你就会感谢当初定规范的那个自己。
现在改掉你的Switch或者Huawei这样的名字吧。
系统变量
安全与通过网络配置相关
ACL访问控制
启用全局模式口令
启用Telnet/SSH管理
管理维护
联网同步时间
简单监控配置
文件操作
(好像只有Cisco用)Lic管理与升级
自行Debug
杂项
功能模块
SFP与光口
CEF(Cisco Express Forwarding,思科特快转发)
啥是CEF?
CEF(Cisco Express Forwarding)是思科设备中一种高级的、基于硬件加速的三层交换技术。它是现代思科路由器/交换机处理数据包转发的核心引擎,旨在替代传统的进程交换和快速交换方式,提供更高效、更稳定的数据转发性能。
为什么需要CEF?
在没有CEF的传统转发模式中:
| 转发方式 | 工作原理 | 缺点 |
|---|---|---|
| 进程交换 | 每个数据包都要发送到CPU,查路由表决定转发路径 | CPU负担极重,转发效率极低 |
| 快速交换 | 第一个数据包由CPU处理并建立缓存,后续数据包直接使用缓存 | 缓存会过期,流量突发时仍需CPU干预 |
CEF解决了这些问题:它将转发信息提前构建成优化格式,并尽可能将转发任务交给硬件完成。
Tl;DR: 这是一个默认开启的好功能。详情点我。
CEF的核心组件
CEF由两个关键数据结构组成:
1. FIB(转发信息库,Forwarding Information Base)
- 路由表的"镜像版本",但为高速查找优化
- 包含所有已知目的网络的信息和下一跳地址
- 格式适合硬件(ASIC)快速扫描,无需CPU介入
2. 邻接表(Adjacency Table)
- 记录所有相邻设备的二层封装信息
- 类似于ARP表的优化版本,包含MAC地址、出接口等
- 与FIB配合,实现完整的二层+三层转发决策
CEF的核心优势
🚀 转发性能大幅提升
- 非CEF模式:CPU需要为每个数据包(或每个流)查路由表,流量越大CPU越高,最终导致网络卡顿
- CEF模式:硬件直接扫描FIB和邻接表,CPU基本不参与数据转发
- 效果:即使设备CPU很高,转发依然顺畅
🔒 网络稳定性更高
- 路由协议收敛和转发分离:当网络拓扑变化时,路由协议在后台计算,CEF依然可以继续转发
- 快速收敛:FIB能快速同步路由表变化
- 负载分担:CEF支持基于数据包的负载均衡,充分利用多链路带宽
⚡ 高级功能的基础
CEF是众多企业级特性的底层支撑:
- NetFlow:流量监控和分析
- ACL(访问控制列表):硬件级包过滤
- QoS(服务质量):流量标记和优先级队列
- MPLS:多协议标签交换
- VRF:虚拟路由转发
实际效果对比
| 场景 | 非CEF设备 | CEF设备 |
|---|---|---|
| 大流量转发 | CPU飙升,丢包严重 | 硬件转发,CPU几乎无感 |
| 路由震荡 | 频繁中断,用户体验差 | 快速收敛,转发不中断 |
| ACL策略 | 消耗大量CPU资源 | 硬件执行,几乎无性能损耗 |
验证CEF状态
在思科设备上查看CEF相关信息:
# 查看CEF是否启用
show ip cef
# 查看FIB表(特定网络)
show ip cef [ip]
# 查看邻接表
show adjacency
# 查看CEF统计信息
show cef interface [接口名]
总结
CEF让路由器/交换机将数据转发这一最繁重的工作从CPU卸载到硬件,让CPU专注于路由计算、设备管理等控制平面任务。这就是为什么现代思科设备即使CPU使用率不高,也能处理数十Gbps流量的核心原因。
CEF是思科设备高性能、高稳定性的基石,是现代企业网络的必备技术。
后记
当你看到这里...你一定还没有看完所有的内容就来瞄一眼了对吧!我猜对了吗!
没关系。我不是什么严厉的老师,我和你们一样都是一直在学习的学生。
网络这东西,大抵是学不完的,就像奶奶家的抽油烟机永远洗不干净一样。今天学会PAT,明天还有OSPF;刚搞懂VLAN,又来了SD-WAN。学完思科还有华为……但正是这样,才有趣,不是吗?
如果你是从头读到这里的——敬你是条汉子。
如果你是直接翻到最后看看有没有彩蛋的——恭喜你,这就是彩蛋。
那么...
🎉 恭喜你读完(或者跳过)这份教程!
下一章预告:可能没有下一章,也可能有,看心情。
感谢名单
| ID | 贡献 |
|---|---|
| 秋月站长@AkiACG | 站长。伟大无需多言。 |
欢迎前往Github给本文提PR。
站长QQ群:930948584
站长邮箱:Haisairova@AkiACG.com