目录

简介

先决条件

要求

使用的组件

其他信息

了解 IP 地址

网络掩码

了解子网划分

Examples

示例练习 1

示例练习 2

VLSM

VLSM 示例

CIDR

特殊子网

31 位子网

32 位子网

Appendix

配置示例

Router A

Router B

主机/子网数量表

相关信息

简介

本文档介绍配置路由器所需的基本信息，例如地址的分解方式和子网划分方式。

先决条件

要求

思科建议您对二进制和十进制数字有基本的了解。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

其他信息

如果定义对您有帮助，下面的词汇术语可帮助您入门：

地址 - 分配给网络中一个主机或接口的唯一数字 ID。

子网 - 网络中共享特定子网地址的部分。

子网掩码 - 32 位的组合，用于说明地址的哪一部分指子网，哪一部分指主机。

接口 - 网络连接。

如果您已经从 Internet 网络信息中心 (InterNIC) 收到合法地址，现在可以准备开始操作。如果您不打算连接到 Internet，Cisco 强烈建议您使用 RFC 1918 提供的保留地址。

了解如何为路由器上的每个接口分配一个具有唯一子网的IP地址。这里提供了一些示例，可帮助将一切联系在一起。

了解 IP 地址

IP 地址是用于识别 IP 网络中的设备的一个唯一地址。这个地址由 32 个二进制位组成，可借助子网掩码区分为网络部分和主机部分。32 个二进制位分成了 4 个八位组（1 个八位组 = 8 个二进制位）。每个八位组转换成了十进制并由句点（点）分隔。因此，可以说 IP 地址是用点分十进制格式表示的（例如，172.16.81.100）。每个八位组值的范围从 0 到 255（十进制）或从 00000000 到 11111111（二进制）。

以下是二进制八位数转换为十进制数的方式：二进制八位数最右侧的位（即最低有效位）的值为^20。值为 2^1 的位左侧的位。依照此规律，直到最左边一位（即最高位），其值为 2^7。因此，如果所有二进制位都为 1，那么十进制等效值应为 255，如下所示：

1  1  1  1 1 1 1 1

128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)

下面是当所有位都不设置为 1 时的八位组转换示例。

0  1 0 0 0 0 0 1

0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)

并且此样本显示同时以二进制和十进制表示的 IP 地址。

10.       1.      23.      19 (decimal)

00001010.00000001.00010111.00010011 (binary)

这些八位组经过分类提供可满足大型和小型网络需求的编址方案。有五种不同类别的网络：A 到 E。本文档重点介绍A至C类，因为D类和E类是保留类，对它们进行讨论不属于本文档的讨论范围。

注：另请注意，本文档中使用了A类、B类等术语，以帮助理解IP编址和子网划分。由于引入了无类域间路由 (CIDR)，行业中很少再使用这些术语。

在给定 IP 地址的情况下，可以从三个高阶位（第一个八位组中的三个最左边位）确定该地址的类。图 1 显示了 3 个高位中的有效位和划分每个类别的地址范围。出于演示目的，也显示了 D 类和 E 类地址。

图 1

在A类地址中，第一个二进制八位数是网络部分，因此图1中A类示例的主网络地址为1.0.0.x - 127.255.255.x（其中x可以从0到255）。第 2、3 和 4 个八位组（后面的 24 位）供网络管理员使用，网络管理员根据需要将其划分为子网和主机。A 类地址用于具有 65,536 台以上主机的网络（实际上，可多达 16,777,214 台主机！）。

在B类地址中，前两个二进制八位数是网络部分，因此图1中B类示例的主网络地址为128.0.0.x - 191.255.255.x。第 3 个和 4 个八位组（16 位）用于本地子网和主机。B 类地址用于主机数在 256 到 65534 台之间的网络。

在 C 类地址中，前 3 个八位组是网络部分。图1中的C类示例的主网络地址为192.0.0.x - 223.255.255.x。第 4 个八位组（8 位）用于本地子网和主机，非常适合少于 254 台主机的网络。

网络掩码

网络掩码帮助您了解地址的哪部分标识网络，哪部分标识节点。A、B 和 C 类网络具有默认掩码（也称为自然掩码），如下所示：

Class A: 255.0.0.0

Class B: 255.255.0.0

Class C: 255.255.255.0

未划分子网的A类网络上的IP地址具有类似以下内容的地址/掩码对：10.20.15.1 255.0.0.0。为了解掩码如何帮助识别地址的网络和节点部分，请将地址和掩码转换为二进制数。

10.20.15.1 = 00001010.00010100.00001111.00000001

255.0.0.0  = 11111111.00000000.00000000.00000000

一旦将地址和掩码以二进制形式表示，就更易于识别网络和主机 ID。对应掩码位设置为 1 的任何地址位表示网络 ID。对应掩码位设置为 0 的任何地址位表示节点 ID。

10.20.15.1 = 00001010.00010100.00001111.00000001

255.0.0.0  = 11111111.00000000.00000000.00000000

-----------------------------------

net id |      host id

netid =  00001010 = 10

hostid = 00010100.00001111.00000001 = 20.15.1

了解子网划分

子网划分允许您创建在单一 A、B 或 C 类网络中存在的多个逻辑网络。如果没有子网，则您只能使用 A、B 或 C 类网络中的一个网络，而这是不切实际的。

网络中的每个数据链路都必须具有唯一的网络ID，并且该链路上的每个节点都是同一网络的成员。如果您将主网络（A、B 或 C 类）划分成较小的子网，则允许您创建互联子网网络。于是，此网络中的每个数据链路将具有唯一网络/子网 ID。连接 n 个网络/子网的任何设备或网关都有 n 个不同的 IP 地址，每个 IP 地址对应一个所互连的网络/子网。

要为网络创建子网，请使用地址的主机 ID 部分中的一些位来扩展自然掩码以创建子网 ID。例如，对于自然掩码为 255.255.255.0 的特定 C 类网络 192.168.5.0，您可以通过以下方式创建子网：

192.168.5.0     - 11000000.10101000.00000101.00000000

255.255.255.224 - 11111111.11111111.11111111.11100000

--------------------------|sub|----

通过将掩码扩展为255.255.255.224，您从地址的原始主机部分获取了3位（以子代表示）并用它们创建子网。使用这 3 位，可以创建 8 个子网。使用其他五个主机ID位，每个子网最多可以有32个主机地址，其中30个地址实际上可以分配给设备，因为不允许使用全0或全1的主机ID（记住这一点非常重要）。鉴于此，就创建了这些子网。

192.168.5.0 255.255.255.224     host address range 1 to 30

192.168.5.32 255.255.255.224    host address range 33 to 62

192.168.5.64 255.255.255.224    host address range 65 to 94

192.168.5.96 255.255.255.224    host address range 97 to 126

192.168.5.128 255.255.255.224   host address range 129 to 158

192.168.5.160 255.255.255.224   host address range 161 to 190

192.168.5.192 255.255.255.224   host address range 193 to 222

192.168.5.224 255.255.255.224   host address range 225 to 254

注：有两种表示这些掩码的方法。首先，由于您使用的位比自然的C类掩码多三位，因此您可以将这些地址表示为3位子网掩码。其次，掩码 255.255.255.224 还可以表示为 /27，因为在掩码中设置了 27 位。此第二种方法用于 CIDR。使用这种方法，可以用注释前缀/长度来描述其中一个网络。例如，192.168.5.32/27表示网络192.168.5.32 255.255.255.224。在适当情况下，前缀/长度符号用于表示本文档其余各处的掩码。

本部分中的网络子网划分方案允许八个子网，并且网络可以显示为：

图 2

请注意，图 2 中的每个路由器连接到 4 个子网，两个路由器共用一个子网。并且，每个路由器为连接到的每个子网提供一个 IP 地址。每个子网络可能支持多达 30 个主机地址。

这产生一个有趣现象。用于子网掩码的主机位越多，可用子网就越多。不过，可用子网越多，每个子网的可用主机地址就越少。例如，C类网络192.168.5.0和掩码255.255.255.224(/27)允许您有8个子网，每个子网有32个主机地址（其中30个可以分配给设备）。如果使用掩码 255.255.255.240 (/28)，则细分如下：

192.168.5.0     - 11000000.10101000.00000101.00000000

255.255.255.240 - 11111111.11111111.11111111.11110000

--------------------------|sub |---

由于现在您将 4 位用于子网，因此只剩下 4 位用于主机地址。所以，在这种情况下，您最多可以拥有 16 个子网，其中每个子网最多有 16 个主机地址（其中 14 个地址可以分配给设备）。

看看B类网络如何划分子网。如果您有网络172.16.0.0，则知道其自然掩码为255.255.0.0或172.16.0.0/16。将掩码扩展到 255.255.0.0 之外意味着正在划分子网。您会很快发现，您能够创建比 C 类网络多得多的子网。如果使用掩码 255.255.248.0 (/21)，则允许每个子网上有多少个子网和主机？

172.16.0.0  -   10101100.00010000.00000000.00000000

255.255.248.0 - 11111111.11111111.11111000.00000000

-----------------| sub |-----------

使用来自子网的原始主机位的五个位。这可让您拥有 32 个子网 (2^5)。当使用五位进行子网划分时，主机地址剩下11位。这可让每个子网有 2048 个主机地址 (2^11)，其中 2046 个可分配给设备。

注：过去，使用子网0（所有子网位均设置为零）和所有1个子网（所有子网位均设置为一）存在限制。一些设备不允许使用这些子网。Cisco Systems设备允许在以下情况下使用这些子网： ip subnet-zero 命令。

Examples

示例练习 1

既然您了解子网划分，请运用这些知识。在本示例中，为您提供两个以前缀/长度表示法书写的地址/掩码组合，已将它们分配给两台设备。您的任务是确定这些设备是在同一子网上还是在不同子网上。您可以使用每个设备的地址和掩码，以便确定每个地址所属的子网。

DeviceA: 172.16.17.30/20

DeviceB: 172.16.28.15/20

确定 DeviceA 的子网：

172.16.17.30  -   10101100.00010000.00010001.00011110

255.255.240.0 -   11111111.11111111.11110000.00000000

-----------------| sub|------------

subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

查看相应掩码位设置为1的地址位，并将所有其他地址位设置为0（这相当于在掩码和地址之间执行逻辑AND运算）。它将显示此地址属于哪个子网。在这种情况下，设备A属于子网172.16.16.0。

确定 DeviceB 的子网：

172.16.28.15  -   10101100.00010000.00011100.00001111

255.255.240.0 -   11111111.11111111.11110000.00000000

-----------------| sub|------------

subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

根据以上判断，设备A和设备B的地址属于同一子网。

示例练习 2

根据C类网络192.168.5.0/24，按照图中所示的主机要求，对网络划分子网，以创建图3中的网络。

图 3

当您查看图3中所示的网络时，可以看到您需要创建五个子网。最大的子网必须支持 28 个主机地址。C 类网络能达到此要求吗？如果能，则如何设置？

首先，请查看子网要求。要创建所需的五个子网，您需要使用C类主机位中的三个位。两位只允许划分四个子网 (2^2)。

由于您需要 3 个子网位，还剩下 5 位用于地址的主机部分。这支持多少台主机？2 5 = 32（30 个可用）。这符合要求。

因此，您已经确定可以通过C类网络创建此网络。如何分配子网的一个示例是：

netA: 192.168.5.0/27      host address range 1 to 30

netB: 192.168.5.32/27     host address range 33 to 62

netC: 192.168.5.64/27     host address range 65 to 94

netD: 192.168.5.96/27     host address range 97 to 126

netE: 192.168.5.128/27    host address range 129 to 158

VLSM

在前面的所有子网划分示例中，您会注意到所有子网使用的是相同的子网掩码。这意味着每个子网有相同数量的可用主机地址。在某些情况下需要这样做，但在大多数情况下，当所有子网使用相同的子网掩码时，它会浪费地址空间。例如，在示例练习2部分中，一个C类网络被拆分为八个大小相等的子网；但是，每个子网并未利用所有可用的主机地址，这导致了地址空间的浪费。图 4 说明了此浪费的地址空间。

图 4

图4显示了使用的是哪些子网。NetA、NetC和NetD有大量未使用的主机地址空间。这有可能是考虑未来增长而刻意设计的，但在许多情况下，由于所有子网使用相同的子网掩码，这只是浪费了地址空间。

可变长子网掩码(VLSM)允许对每个子网使用不同的掩码，因此可以有效地使用地址空间。

VLSM 示例

假设给定与示例练习 2 中一样的网络和要求，使用 VLSM 开发子网划分方案，并假设：

netA: must support 14 hosts

netB: must support 28 hosts

netC: must support 2 hosts

netD: must support 7 hosts

netE: must support 28 host

确定什么掩码允许所需数量的主机。

netA: requires a /28 (255.255.255.240) mask to support 14 hosts

netB: requires a /27 (255.255.255.224) mask to support 28 hosts

netC: requires a /30 (255.255.255.252) mask to support 2 hosts

netD*: requires a /28 (255.255.255.240) mask to support 7 hosts

netE: requires a /27 (255.255.255.224) mask to support 28 hosts

* a /29 (255.255.255.248) would only allow 6 usable host addresses

therefore netD requires a /28 mask.

分配子网的最简单方法是先分配最大的子网。例如，您可以如此分配：

netB: 192.168.5.0/27  host address range 1 to 30

netE: 192.168.5.32/27 host address range 33 to 62

netA: 192.168.5.64/28 host address range 65 to 78

netD: 192.168.5.80/28 host address range 81 to 94

netC: 192.168.5.96/30 host address range 97 to 98

这可以用图形表示，如图 5 所示：

图 5

图5显示了VLSM如何帮助节省一半以上的地址空间。

CIDR

系统引入了无类域间路由 (CIDR)，以便在互联网中同时提高地址空间利用率和路由可扩展性。由于 Internet 的快速发展和 Internet 路由器中保留的 IP 路由表的增长，引入 CIDR 是必需的。

CIDR 并未采用传统的 IP 类（A 类、B 类、C 类等）。在 CIDR 中，IP 网络用前缀表示，这是一个 IP 地址，在某种程度上还指示了掩码长度。长度是指设置为 1 的最左边连续掩码位的数量。因此，网络172.16.0.0 255.255.0.0可以表示为172.16.0.0/16。CIDR 还描述一个更加层次化的 Internet 体系结构，每个域都从更高的级别获得其 IP 地址。这使得可以在较高级别完成域的汇总。例如，如果 ISP 拥有网络 172.16.0.0/16，那么 ISP 可以为客户提供 172.16.1.0/24、172.16.2.0/24 等。但是，向其他提供商通告时，该 ISP 仅需要通告 172.16.0.0/16。

有关 CIDR 的详细信息，请参阅  RFC 1518 和  RFC 1519。

特殊子网

31 位子网

30位子网掩码支持四个IPv4地址：两个主机地址、一个全零网络和一个全一广播地址。点对点链路只能有两个主机地址。点对点链路并不需要广播地址和全零地址。31位子网掩码仅支持两个主机地址，并且消除了广播地址和全零地址，因此将IP地址的使用降至最低点对点链路。

请参阅 RFC 3021 - 在 IPv4 点对点链路上使用 31 位前缀

掩码为 255.255.255.254 或 /31。

/31 子网可用于真正的点对点链路，例如串行接口或 POS 接口。但是，它们也可用于以太网接口等广播接口类型。如果是这种情况，请确保该以太网网段上只需要两个 IPv4 地址。

示例

192.168.1.0 和 192.168.1.1 位于子网 192.168.1.0/31 上。

R1(config)#interface gigabitEthernet 0/1

R1(config-if)#ip address 192.168.1.0 255.255.255.254

% Warning: use /31 mask on non point-to-point interface cautiously

由于千兆以太网是广播网段，因此会显示警告。

32 位子网

子网掩码 255.255.255.255（/32 子网）描述只有一个 IPv4 主机地址的子网。这些子网不能用于向网络链路分配地址，因为它们每条链路始终需要多个地址。/32 严格保留用于只有一个地址的链路。思科路由器的示例是环回接口。这些接口均为内部接口，而未连接至其他设备。因此，它们可以使用一个 /32 子网。

示例

interface Loopback0

ip address 192.168.2.1 255.255.255.255

Appendix

配置示例

路由器 A 和 B 通过串行接口连接。

Router A

hostname routera

!

ip routing

!

int e 0

ip address 172.16.50.1 255.255.255.0

!(subnet 50)

int e 1 ip address 172.16.55.1 255.255.255.0

!(subnet 55)

int s 0 ip address 172.16.60.1 255.255.255.0

!(subnet 60) int s 0

ip address 172.16.65.1 255.255.255.0 (subnet 65)

!S 0 connects to router B

router rip

network 172.16.0.0

Router B

hostname routerb

!

ip routing

!

int e 0

ip address 192.168.10.200 255.255.255.240

!(subnet 192)

int e 1

ip address 192.168.10.66 255.255.255.240

!(subnet 64)

int s 0

ip address 172.16.65.2 (same subnet as router A's s 0)

!Int s 0 connects to router A

router rip

network 192.168.10.0

network 172.16.0.0

主机/子网数量表

Class B                   Effective  Effective

# bits        Mask         Subnets     Hosts

-------  ---------------  ---------  ---------

1      255.255.128.0           2     32766

2      255.255.192.0           4     16382

3      255.255.224.0           8      8190

4      255.255.240.0          16      4094

5      255.255.248.0          32      2046

6      255.255.252.0          64      1022

7      255.255.254.0         128       510

8      255.255.255.0         256       254

9      255.255.255.128       512       126

10     255.255.255.192      1024        62

11     255.255.255.224      2048        30

12     255.255.255.240      4096        14

13     255.255.255.248      8192         6

14     255.255.255.252     16384         2

Class C                   Effective  Effective

# bits        Mask         Subnets     Hosts

-------  ---------------  ---------  ---------

1      255.255.255.128      2        126

2      255.255.255.192      4         62

3      255.255.255.224      8         30

4      255.255.255.240     16         14

5      255.255.255.248     32          6

6      255.255.255.252     64          2

*Subnet all zeroes and all ones included. These

may not be supported on some legacy systems.

*Host all zeroes and all ones excluded.

相关信息

- IP 路由协议技术支持

- 全0 子网和全 1 子网

- 主机和子网数量

- 技术支持和文档 - Cisco Systems