IP 地址与 CIDR 详解:网络基础知识必备指南

IP 地址与 CIDR 完整教程,详解 IPv4 地址结构、A/B/C/D/E 类地址划分、子网掩码计算、CIDR 无类别域间路由。附子网速查表,网络工程师和运维必备的网络基础知识。

Bruce

IPCIDR网络基础子网掩码Linux运维

Linux

767 Words

2018-10-06 00:00 +0000


IP 地址是互联网通信的基础,每一台联网设备都需要一个唯一的 IP 地址来标识自己。无论你是网络工程师、运维人员还是开发者,理解 IP 地址和 CIDR 都是必备的基础知识。本文将系统介绍 IPv4 地址的结构、分类以及 CIDR 表示法,帮你彻底搞懂网络寻址的核心概念。

为什么要了解 IP 地址?

场景应用
服务器配置设置静态 IP、配置防火墙规则
网络排障分析网络连通性、定位故障
云服务VPC 网络规划、安全组配置
容器编排Kubernetes 网络、Docker 网络模式

掌握 IP 地址基础知识,是理解更复杂网络技术的前提。

一、IPv4 地址基础

1. 地址结构

IPv4 地址是一个 32 位(4 字节)的二进制数,为了便于阅读,通常表示为用点分隔的 4 个十进制数,称为点分十进制表示法(Dotted Decimal Notation)。

IPv4 地址结构与表示方式,展示二进制与十进制的对应关系

二进制表示:11000000.10101000.00000001.00000001
十进制表示:192.168.1.1

每个十进制数(称为八位组 / Octet)的范围是 0-255,因为 8 位二进制数的最大值是 2^8 - 1 = 255。

2. 网络 ID 与主机 ID

IP 地址由两部分组成:

部分说明作用
网络 ID(Network ID)标识设备所在的网络用于路由选择
主机 ID(Host ID)标识网络中的具体设备用于本地寻址

这种划分带来一个重要优势:路由器只需要存储网络信息而非每台主机的信息,大大简化了路由表,提高了路由效率。

3. 特殊地址

有些 IP 地址有特殊用途,不能分配给普通主机:

地址类型说明示例
网络地址主机 ID 全为 0192.168.1.0
广播地址主机 ID 全为 1192.168.1.255
环回地址本地测试用127.0.0.1
私有地址内网使用,不可路由10.x.x.x, 192.168.x.x

二、IP 地址分类(有类网络)

早期的 IP 地址采用有类寻址(Classful Addressing),将 IP 地址分为 A、B、C、D、E 五类。虽然 1993 年后被 CIDR 取代,但了解这些分类有助于理解网络的演进历史。

1. A 类地址

  • 网络 ID:前 8 位(第 1 字节)
  • 主机 ID:后 24 位(第 2-4 字节)
  • 首位固定0(二进制以 0 开头)
地址格式:0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
         └─网络ID─┘└────────主机ID────────┘
属性
地址范围1.0.0.0 ~ 126.255.255.255
网络数量126 个(0 和 127 保留)
每网络主机数2^24 - 2 = 16,777,214
默认子网掩码255.0.0.0(/8)

注意:127.x.x.x 是环回地址,用于本地测试(如 127.0.0.1)。

2. B 类地址

  • 网络 ID:前 16 位(第 1-2 字节)
  • 主机 ID:后 16 位(第 3-4 字节)
  • 首两位固定10(二进制以 10 开头)
地址格式:10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH
         └────网络ID────┘└────主机ID────┘
属性
地址范围128.0.0.0 ~ 191.255.255.255
网络数量2^14 = 16,384 个
每网络主机数2^16 - 2 = 65,534
默认子网掩码255.255.0.0(/16)

3. C 类地址

  • 网络 ID:前 24 位(第 1-3 字节)
  • 主机 ID:后 8 位(第 4 字节)
  • 首三位固定110(二进制以 110 开头)
地址格式:110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
         └──────────网络ID──────────┘└主机ID┘
属性
地址范围192.0.0.0 ~ 223.255.255.255
网络数量2^21 = 2,097,152 个
每网络主机数2^8 - 2 = 254
默认子网掩码255.255.255.0(/24)

4. D 类地址(组播)

  • 首四位固定1110
  • 地址范围:224.0.0.0 ~ 239.255.255.255
  • 用途:组播(Multicast),一对多通信

D 类地址没有网络 ID 和主机 ID 之分,用于向一组设备同时发送数据。

5. E 类地址(保留)

  • 首四位固定1111
  • 地址范围:240.0.0.0 ~ 255.255.255.255
  • 用途:保留用于实验和研究

注意:255.255.255.255 是受限广播地址,用于向本地网络所有设备广播。

6. 地址分类总结

类别首位模式第一字节范围默认掩码用途
A01-126/8大型网络
B10128-191/16中型网络
C110192-223/24小型网络
D1110224-239-组播
E1111240-255-保留

三、子网掩码

1. 什么是子网掩码?

子网掩码(Subnet Mask)是一个 32 位的数值,用于区分 IP 地址中的网络部分和主机部分。

  • 网络位:子网掩码中为 1 的位
  • 主机位:子网掩码中为 0 的位
IP 地址:     192.168.1.100
            11000000.10101000.00000001.01100100

子网掩码:   255.255.255.0
            11111111.11111111.11111111.00000000
            └──────────网络位──────────┘└主机位┘

网络地址:   192.168.1.0(IP 与掩码做 AND 运算)

2. 子网掩码的作用

通过将 IP 地址与子网掩码进行按位与(AND)运算,可以得到网络地址:

# 判断两台主机是否在同一网络
192.168.1.100 AND 255.255.255.0 = 192.168.1.0
192.168.1.200 AND 255.255.255.0 = 192.168.1.0
# 结果相同,说明在同一网络,可以直接通信

192.168.1.100 AND 255.255.255.0 = 192.168.1.0
192.168.2.100 AND 255.255.255.0 = 192.168.2.0
# 结果不同,说明在不同网络,需要通过路由器通信

3. 计算可用主机数

可用主机数的计算公式:

可用主机数 = 2^(主机位数) - 2

为什么要减 2? 因为每个网络中有两个特殊地址不能分配给主机:

  • 网络地址:主机位全为 0(如 192.168.1.0)
  • 广播地址:主机位全为 1(如 192.168.1.255)

四、CIDR(无类别域间路由)

1. 为什么需要 CIDR?

有类寻址存在严重的地址浪费问题:

场景需求有类分配浪费
公司有 300 台主机300 个 IPC 类(254 个)不够,B 类(65534 个)65,234 个
公司有 2000 台主机2000 个 IPB 类(65534 个)63,534 个

1993 年,IETF 发布了 RFC 1518 和 RFC 1519,引入了 CIDR(Classless Inter-Domain Routing,无类别域间路由),彻底解决了这个问题。

2. CIDR 表示法

CIDR 使用斜线记法(Slash Notation)表示网络前缀长度:

格式:IP地址/前缀长度
示例:192.168.1.0/24

/24 表示前 24 位是网络 ID,后 8 位是主机 ID,等同于子网掩码 255.255.255.0。

3. CIDR 计算示例

假设需要容纳 2000 台主机:

计算所需主机位:2^11 = 2048 > 2000,需要 11 位主机位
网络位:32 - 11 = 21 位
CIDR 表示:xxx.xxx.xxx.xxx/21
子网掩码:11111111.11111111.11100000.00000000 = 255.255.224.0
可用主机:2^11 - 2 = 2046 台

4. CIDR 的优势

优势说明
灵活分配按需分配 IP,减少浪费
路由聚合多个网络可聚合为一条路由(Supernetting)
延缓枯竭更高效利用 IPv4 地址空间

五、子网划分实战

1. 划分子网的步骤

  1. 确定需要的子网数量或每个子网的主机数量
  2. 计算需要借用的主机位数
  3. 计算新的子网掩码
  4. 列出所有子网的地址范围

2. 示例:将 192.168.1.0/24 划分为 4 个子网

原始网络:192.168.1.0/24
需要子网:4 个
借用位数:2 位(2^2 = 4)
新掩码:/26(255.255.255.192)

划分结果:

子网网络地址可用范围广播地址可用主机
1192.168.1.0/26.1 ~ .62.6362
2192.168.1.64/26.65 ~ .126.12762
3192.168.1.128/26.129 ~ .190.19162
4192.168.1.192/26.193 ~ .254.25562

六、子网速查表

以下是常用的 CIDR 与子网掩码对照表:

CIDR子网掩码可用主机数常用场景
/30255.255.255.2522点对点链路
/29255.255.255.2486小型子网
/28255.255.255.24014小型办公室
/27255.255.255.22430小型部门
/26255.255.255.19262中型部门
/25255.255.255.128126大型部门
/24255.255.255.0254标准 C 类网络
/23255.255.254.0510中型网络
/22255.255.252.01022大型网络
/21255.255.248.02046大型网络
/20255.255.240.04094数据中心
/16255.255.0.065,534标准 B 类网络
/8255.0.0.016,777,214标准 A 类网络

七、私有 IP 地址

RFC 1918 定义了三个私有地址段,用于内部网络,不会在公网路由:

地址段CIDR可用 IP 数量传统分类
10.0.0.0 ~ 10.255.255.25510.0.0.0/816,777,216A 类
172.16.0.0 ~ 172.31.255.255172.16.0.0/121,048,576B 类
192.168.0.0 ~ 192.168.255.255192.168.0.0/1665,536C 类

家庭路由器和企业内网通常使用这些私有地址,通过 NAT 访问公网。

八、实用命令

1. Linux 查看 IP 配置

# 查看所有网络接口
ip addr show

# 查看路由表
ip route show

# 查看特定接口
ip addr show eth0

2. 计算网络地址

# 使用 ipcalc 工具
ipcalc 192.168.1.100/24

# 输出示例:
# Network:   192.168.1.0/24
# Netmask:   255.255.255.0
# Broadcast: 192.168.1.255
# HostMin:   192.168.1.1
# HostMax:   192.168.1.254
# Hosts/Net: 254

3. 测试网络连通性

# ping 测试
ping 192.168.1.1

# 路由跟踪
traceroute 8.8.8.8

更多 Linux 网络命令,可以参考 Linux/macOS 常用命令速查手册

总结

本文介绍了 IP 地址和 CIDR 的核心概念:

  1. IPv4 地址是 32 位的二进制数,由网络 ID 和主机 ID 组成
  2. 有类寻址将地址分为 A/B/C/D/E 五类,但存在地址浪费问题
  3. 子网掩码用于区分网络部分和主机部分
  4. CIDR 提供了灵活的地址分配方式,使用斜线记法表示前缀长度
  5. 子网划分可以将大网络分割成多个小网络,提高管理效率

掌握这些基础知识,对于理解云服务网络配置、容器网络、防火墙规则等都非常有帮助。

相关阅读

参考资源

Comments

Join the discussion — requires a GitHub account