IP 网络基础详解:路由、ICMP、NAT、子网与 VLAN
第一次学习计算机网络时,路由协议、子网掩码、NAT 和 VLAN 很容易被当成几个孤立的概念。真正排查网络问题时,它们却经常同时出现:电脑先判断目标是否在同一网段,不在就交给网关;路由器根据路由表转发,访问公网时还要进行 NAT;如果中途不通,我们又会使用 Ping 和 Traceroute 定位问题。
这篇文章不深入推导复杂的路由算法,而是从一台内网电脑访问外部服务的过程出发,把常见知识点串起来。
一、常见的路由协议有哪些
不同网段之间的数据需要经过路由器转发。路由器收到一个 IP 数据包后,会查询路由表,选择下一跳或出口接口。
路由表可以由管理员手动配置,也可以通过路由协议自动学习。因此,路由首先可以分为两类:
-
静态路由:由管理员手动添加,结构简单、结果可控,适合规模较小或拓扑稳定的网络;
-
动态路由:路由器之间自动交换网络信息,在拓扑变化后重新计算路径,适合规模较大的网络。
常见的动态路由协议如下:
| 协议 | 类型 | 主要特点 | 常见场景 |
|---|---|---|---|
| RIP | 距离矢量协议 | 使用跳数作为主要度量,最多支持 15 跳 | 小型网络、教学环境 |
| OSPF | 链路状态协议 | 根据链路成本计算最短路径,收敛较快 | 企业内部网络 |
| IS-IS | 链路状态协议 | 扩展性和稳定性较好 | 大型运营商网络 |
| BGP | 路径矢量协议 | 根据 AS 路径和路由策略选路 | 互联网自治系统之间 |
RIP、OSPF 和 IS-IS 通常属于内部网关协议,也就是 IGP,主要解决一个自治系统内部如何选路。BGP 属于外部网关协议,用于不同自治系统之间交换路由。互联网中的选路不只看距离,还要考虑运营商策略、费用和安全等因素,因此 BGP 并不是简单选择“最短的一条路”。
二、ICMP、Ping 和 Traceroute
IP 协议只负责尽力转发数据包。如果目标不可达、TTL 已耗尽或者网络出现异常,需要一种方式把情况告诉发送方,这就是 ICMP 的重要作用。
ICMP 是网际控制报文协议,主要用于传递网络控制和错误信息。它不负责传输网页、文件等业务数据,但对网络诊断非常重要。
Ping 命令的原理
Ping 通常发送 ICMP Echo Request,也就是回显请求。目标主机收到后,如果允许响应,会返回 ICMP Echo Reply。
通过请求和响应,Ping 可以观察:
-
目标主机是否能够到达;
-
报文往返时间大约是多少;
-
是否存在丢包。
需要注意,Ping 不通不能直接证明目标服务宕机。有些服务器或防火墙会禁止 ICMP,但 80、443 等业务端口仍然可以正常访问。反过来,Ping 能通也只说明网络层基本可达,不代表应用接口一定正常。
Traceroute 命令的原理
IP 数据包中有一个 TTL 字段。数据包每经过一台路由器,TTL 就会减 1;当 TTL 变成 0 时,路由器丢弃数据包,并通常返回 ICMP Time Exceeded 报文。
Traceroute 正是利用这个机制逐步探测路径:
TTL = 1 → 第一跳路由器返回超时信息
TTL = 2 → 第二跳路由器返回超时信息
TTL = 3 → 第三跳路由器返回超时信息
……
通过不断增加 TTL,就能大致得到数据从本机到目标主机经过的路由节点。
三、NAT 解决了什么问题
IPv4 地址只有 32 位,能够提供的地址数量有限。如果家里的手机、电脑、电视都需要独立公网 IPv4 地址,地址会更加紧张。
NAT,也就是网络地址转换,允许内网设备使用私有 IP,在访问互联网时由出口路由器把源地址转换成公网 IP。
例如,电脑的地址是 192.168.1.10:50000,访问网站时,家庭路由器可能把它转换为:
192.168.1.10:50000 → 203.0.113.8:62001
路由器会记录这条映射。网站的响应返回 203.0.113.8:62001 后,路由器再根据映射把数据交给 192.168.1.10:50000。多台设备通过不同端口共享一个公网地址的方式,通常称为 NAPT 或 PAT,也是家庭网络最常见的方式。
四、IP 地址分类和私有地址范围
传统 IPv4 网络曾按照首部比特把地址分为 A、B、C、D、E 类:
| 类别 | 第一段常见范围 | 默认网络前缀 | 用途 |
|---|---|---|---|
| A 类 | 1~126 | /8 | 早期大型网络 |
| B 类 | 128~191 | /16 | 早期中型网络 |
| C 类 | 192~223 | /24 | 早期小型网络 |
| D 类 | 224~239 | 无 | 组播 |
| E 类 | 240~255 | 无 | 保留或实验用途 |
其中 127.0.0.0/8 用于环回地址,最常见的是 127.0.0.1。0.0.0.0 也有特殊含义,因此不能简单把所有 0~127 都当成普通 A 类主机地址。
IPv4 私有地址有三段,需要直接记住:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
第二段最容易记错。它覆盖的是 172.16.0.0 到 172.31.255.255,并不是所有 172.x.x.x 都属于私有地址。
今天实际网络已经主要使用 CIDR,不再按照 A、B、C 类固定划分网络。分类地址仍然会在基础面试题中出现,但做网络规划时应该重点理解前缀长度。
五、子网掩码和 CIDR
一台主机拿到 IP 地址后,还需要知道哪些位表示网络,哪些位表示当前网络中的主机。子网掩码就是用来划分这两部分的。
例如:
IP 地址: 192.168.1.10
子网掩码:255.255.255.0
子网掩码连续的 1 表示网络部分,后面的 0 表示主机部分。IP 地址与子网掩码进行按位与运算,可以得到网络地址 192.168.1.0。
CIDR 使用 /数字 表示网络前缀长度。255.255.255.0 前面有 24 个连续的 1,因此可以写成:
192.168.1.0/24
这个网段总共有 256 个地址:
-
网络地址:
192.168.1.0; -
常规可用主机地址:
192.168.1.1~192.168.1.254; -
广播地址:
192.168.1.255。
传统普通子网中,网络地址和广播地址不能分配给主机,所以这里通常有 254 个可用地址。
CIDR 的价值在于划分更灵活。例如 /26 可以把一个 /24 网络拆成四个更小的网段。它还支持路由聚合,把多个连续网段合并成一条较短的路由表项,减少路由表规模。
六、IPv4 和 IPv6 的主要区别
| 对比项 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 表示方式 | 点分十进制 | 十六进制,以冒号分隔 |
| 地址空间 | 约 43 亿个 | 数量极其庞大 |
| 广播 | 支持广播 | 不使用传统广播,更多使用组播 |
| 地址配置 | 手动、DHCP 等 | 支持无状态自动配置等方式 |
| 报头 | 字段较多,可变长度 | 基础报头更规整,固定 40 字节 |
| NAT | 因地址不足而广泛使用 | 通常不依赖 NAT 扩展地址数量 |
IPv6 地址看起来比较长,例如:
2001:0db8:0000:0000:0000:0000:0000:0001
连续的前导零可以省略,连续的全零段可以使用一次 :: 压缩,因此可以写成:
2001:db8::1
IPv6 不只是扩大地址空间,还重新设计了基础报头,并把一些可选信息放到扩展报头中。IPv4 向 IPv6 的迁移不会一次完成,实际网络中常见双栈、隧道和协议转换等过渡方案。
七、VLAN 的作用
LAN 是局域网,VLAN 是虚拟局域网。VLAN 可以在同一套物理交换网络上,逻辑划分出多个相互独立的广播域。
假设公司只有一套交换设备,但希望研发部和财务部处于不同网络,就可以进行如下划分:
VLAN 10:研发部门
VLAN 20:财务部门
VLAN 30:访客网络
同一 VLAN 中的设备可以进行二层通信。不同 VLAN 之间默认不能直接进行二层通信,需要由路由器或三层交换机完成 VLAN 间路由,并配合访问控制策略决定哪些流量可以通过。
VLAN 的主要价值包括缩小广播域、隔离不同部门、提高网络管理灵活性。不过 VLAN 只是逻辑隔离手段,不能替代防火墙、身份认证和权限控制。
八、一次跨网段访问的完整过程
假设主机 192.168.10.20/24 要访问一个公网服务器,可以按照下面的过程理解:
-
主机使用
/24前缀判断目标不在192.168.10.0/24中; -
主机把数据帧发送给默认网关;
-
网关和后续路由器根据路由表选择下一跳;
-
出口路由器通过 NAT 把私有源地址转换成公网地址;
-
数据经过互联网到达目标服务器,响应再沿路返回;
-
如果访问失败,可以先 Ping 网关,再 Ping 外部地址,并使用 Traceroute 观察在哪一段中断。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)