兄弟们,最近 Reddit 上 r/ccna 版又炸了。有人发帖说“One thing about the CCNA that you should consider”,底下几百号人疯狂吐槽——考纲覆盖太广,IPv4 子网划分、QoS DSCP 值、802.3 标准,全得背。最惨的是,你根本不知道考试会出几道子网题。
我当年考 CCNA 200-301 的时候,最烦的就是子网计算。不是不会,是慢。考试时间就那么点,你还在纸上画二进制,别人已经用 CLI 排完错了。
今天这篇,我不跟你扯理论。直接上干货:一张能直接复制粘贴的子网速查表,外加真实路由器上能用的排错命令。看完你就能在 10 秒内算出任何子网,而且再也不会在 show ip route 面前懵逼。
先上速查表:CIDR、子网掩码、通配符、主机数
这张表是我当年打印出来贴在显示器边上的。CCNA 考试不让带,但你背熟了,考试就是送分题。
| CIDR | 子网掩码 | 通配符掩码 | 可用主机数 | 每个子网块大小 |
|---|---|---|---|---|
| /30 | 255.255.255.252 | 0.0.0.3 | 2 | 4 |
| /29 | 255.255.255.248 | 0.0.0.7 | 6 | 8 |
| /28 | 255.255.255.240 | 0.0.0.15 | 14 | 16 |
| /27 | 255.255.255.224 | 0.0.0.31 | 30 | 32 |
| /26 | 255.255.255.192 | 0.0.0.63 | 62 | 64 |
| /25 | 255.255.255.128 | 0.0.0.127 | 126 | 128 |
| /24 | 255.255.255.0 | 0.0.0.255 | 254 | 256 |
| /23 | 255.255.254.0 | 0.0.1.255 | 510 | 512 |
| /22 | 255.255.252.0 | 0.0.3.255 | 1022 | 1024 |
| /21 | 255.255.248.0 | 0.0.7.255 | 2046 | 2048 |
| /20 | 255.255.240.0 | 0.0.15.255 | 4094 | 4096 |
| /19 | 255.255.224.0 | 0.0.31.255 | 8190 | 8192 |
| /18 | 255.255.192.0 | 0.0.63.255 | 16382 | 16384 |
| /17 | 255.255.128.0 | 0.0.127.255 | 32766 | 32768 |
| /16 | 255.255.0.0 | 0.0.255.255 | 65534 | 65536 |
怎么用这张表?
给你一个 IP 192.168.1.55/27,你不需要算。看表:/27 的块大小是 32。55 落在 32-63 这个区间。所以网络地址是 192.168.1.32,广播地址是 192.168.1.63,可用主机是 33-62。10 秒搞定。
排错命令:别再只会 ping 了
上周我们生产环境出过一次事故。新来的同事配了个 /29 的子网,结果网关地址配成了广播地址。整个段全炸了。他用 ping 测了半小时没发现问题,最后我过去一条命令就定位了。
1. show ip interface brief —— 看接口状态
Router# show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.1.33 YES manual up up
GigabitEthernet0/1 192.168.1.65 YES manual up up
这条命令告诉你接口是不是 up/up。如果 Protocol 是 down,别急着看 IP,先查物理层。我见过太多人 Protocol down 了还在算子网,浪费时间。
2. show ip route —— 看路由表
Router# show ip route
Codes: C - connected, S - static, O - OSPF, B - BGP
C 192.168.1.32/27 is directly connected, GigabitEthernet0/0
C 192.168.1.64/27 is directly connected, GigabitEthernet0/1
这里能直接看到你配的子网对不对。如果显示的是 /27 但你想的是 /28,那就是配置错了。这是最容易被忽略的排错步骤——很多人只盯着 IP 地址,忘了检查前缀长度。
3. show ip protocols —— 看路由协议
Router# show ip protocols
Routing Protocol is "ospf 1"
Router ID 1.1.1.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
192.168.1.32/27
192.168.1.64/27
OSPF 邻居起不来?看看这里宣告的网络对不对。我见过最离谱的案例:有人把 192.168.1.0/24 宣告进了 OSPF,但接口配的是 /27,结果邻居死活起不来。
4. ping 和 traceroute —— 基础连通性验证
Router# ping 192.168.1.34
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.34, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5)
Router# traceroute 10.0.0.1
Type escape sequence to abort.
Tracing the route to 10.0.0.1
1 192.168.1.33 1 msec 0 msec 1 msec
2 10.0.0.1 2 msec 2 msec 1 msec
ping 通了不代表路由没问题。traceroute 能告诉你路径对不对。有一次我们核心交换机到分支的路径多跳了一跳,就是 traceroute 抓出来的。
5. show ip arp —— 看 ARP 表
Router# show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.33 - aabb.cc00.0100 ARPA GigabitEthernet0/0
Internet 192.168.1.34 12 aabb.cc00.0200 ARPA GigabitEthernet0/0
ARP 表能告诉你 IP 和 MAC 的映射关系。如果 ping 不通但 ARP 里有记录,说明二层是通的,问题出在三层。如果 ARP 里没有记录,那可能是子网掩码配错了——主机认为目标不在同一网段,所以不发 ARP 请求。
真实案例:一个 /27 引发的血案
上个月我们给一个新办公室做网络规划。需求是 30 个设备,我给了 192.168.1.32/27。结果现场工程师配成了 255.255.255.0(/24)。所有设备都能 ping 通网关,但无法访问公司内网 10.0.0.0/8。
分析过程:
show ip route一看,路由表里只有直连的 /24,没有到 10.0.0.0/8 的静态路由。- 再查,发现 OSPF 邻居没起来。
show ip ospf neighbor显示邻居状态是 INIT。- 最后发现:接口 IP 是 192.168.1.33/24,但对端路由器接口是 192.168.1.34/27——子网掩码不一致,OSPF 认为不在同一网段,不建立邻居。
解决方案: 把子网掩码改回 255.255.255.224(/27),OSPF 邻居秒起。
FAQ
Q: 子网划分时,可用主机数为什么总是减 2?
A: 因为网络地址和广播地址不能用。网络地址是主机位全 0,广播地址是主机位全 1。比如 192.168.1.32/27,32 是网络地址,63 是广播地址,33-62 才是可用主机。
Q: 通配符掩码和子网掩码有什么关系?
A: 通配符掩码 = 255.255.255.255 - 子网掩码。比如 /27 的子网掩码是 255.255.255.224,通配符就是 0.0.0.31。ACL 和 OSPF 里经常用到。
Q: show ip route 里看到两个相同网络但不同前缀长度,怎么选?
A: 最长前缀匹配原则。路由器会选掩码最长的那个。比如 192.168.1.0/24 和 192.168.1.32/27 同时存在,匹配 192.168.1.33 时会走 /27 的路由。
Q: 为什么我配了 /30 子网,但只有 2 个可用 IP?
A: /30 的块大小是 4,减去网络地址和广播地址,只剩 2 个可用。这是点对点链路的标配,不浪费 IP。
Q: CCNA 考试会考 VLSM 吗?
A: 必考。VLSM(可变长子网掩码)是 CCNA 200-301 的核心考点。你得学会在一个主类网络里划分不同大小的子网。比如把 192.168.1.0/24 分成一个 /27(30 个主机)、两个 /28(各 14 个主机)、一个 /30(2 个主机)。
最后说两句
子网划分这东西,说白了就是熟能生巧。你把速查表背下来,再在 Packet Tracer 或 GNS3 上练几遍,考试就是送分题。
排错命令也别死记。理解每条命令能告诉你什么信息,遇到问题自然知道该敲哪条。我见过太多人考试时把 show ip route 和 show ip protocols 的输出搞混——这就是平时没在真机上练过的后果。
Reddit 上那个帖子里有人说:“你永远不知道考试会出多少子网题。” 但如果你准备好了,出多少都不怕。
下次再有人跟你说子网划分难,你就把这篇甩给他。