目录

简介

先决条件

要求

使用的组件

规则

背景信息

全 0 子网

全1子网

零子网和全1子网的问题

子网零问题

全1子网问题

使用零子网和全1子网

相关信息

简介

本文档介绍零子网和全1子网的使用。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

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

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

规则

有关文档规则的详细信息，请参阅技术提示和其他内容的使用格式规则。

背景信息

子网划分可以将给定的网络地址分解为更小的子网。与网络地址转换(NAT)和端口地址转换(PAT)等技术相结合，它可以更有效地利用可用的IP地址空间，并大大缓解地址耗尽问题。子网划分的指导原则包括使用第一个和最后一个子网，分别称为零子网和全1子网。

全 0 子网

如果网络地址分为子网，在对网络地址划分后获得的第一个分支子网称为全零子网。

请考虑一个 B 类地址，172.16.0.0。默认情况下，B类地址172.16.0.0保留了16位来代表主机部分，因此它允许65534(2^16-2)有效主机地址。如果网络172.16.0.0/16由于从主机部分借用3位而划分子网，则会获得八(23)个子网。下表是一个示例，显示通过对地址172.16.0.0划分子网而获得的子网、产生的子网掩码、关联的广播地址和有效主机地址的范围。

子网地址

子网掩码

广播地址

有效主机范围

172.16.0.0

255.255.224.0

172.16.31.255

172.16.0.1 到 172.16.31.254

172.16.32.0

255.255.224.0

172.16.63.255

172.16.32.1 到 172.16.63.254

172.16.64.0

255.255.224.0

172.16.95.255

172.16.64.1 到 172.16.95.254

172.16.96.0

255.255.224.0

172.16.127.255

172.16.96.1 到 172.16.127.254

172.16.128.0

255.255.224.0

172.16.159.255

172.16.128.1 到 172.16.159.254

172.16.160.0

255.255.224.0

172.16.191.255

172.16.160.1 到 172.16.191.254

172.16.192.0

255.255.224.0

172.16.223.255

172.16.192.1 到 172.16.223.254

172.16.224.0

255.255.224.0

172.16.255.255

172.16.224.1 到 172.16.255.254

在上一个示例中，第一个子网(子网172.16.0.0/19)称为子网0。

划分子网的网络类别和划分子网后获取的子网数量不能确定子网零。它是对网络地址进行子网划分时获得的第一个子网。此外，在您写零子网地址的二进制等值时，所有子网位(在当前情况下为17、18和19)为零。零子网也称为全 0 子网。

全1子网

对网络地址进行子网划分时，获得的最后一个子网被称为全 1 子网。

参考前面的示例，对网络172.16.0.0(子网172.16.224.0/19)划分子网时获得的最后一个子网称为全一子网。

划分子网的网络类别和划分子网后获得的子网数量并不决定全1子网。此外，在您写零子网地址的二进制等值时，所有的子网位(在当前情况下为17、18和19)都为一，因次而得名。

零子网和全1子网的问题

传统上，强烈建议不要将零子网和全1子网用于IP地址。 基于RFC 950，“在划分子网的网络中保留和扩展这些特殊（网络和广播）地址的解释非常有用。这意味着不能将子网字段中的所有零和全部为一的值分配给实际（物理）子网。" 这就是网络工程师需要计算借用3个位时获得的子网数量需要计算23-2(6)而不是23(8)的原因。-2知道子网0和全1子网不是传统使用的子网。

子网零问题

不建议对IP编址使用零子网，因为网络与子网之间无法区分的地址存在固有混乱。

参考上一个示例，考虑IP地址172.16.1.10。如果您计算与此IP地址关联的子网地址，您会发现子网172.16.0.0（零子网）。请注意，此子网地址与最初划分子网的网络地址172.16.0.0相同，因此无论何时执行子网划分，您都会得到一个网络和一个地址无法区分的子网（零子网）。这以前是造成极大混乱的原因。

在Cisco IOS®软件版本12.0之前，默认情况下，Cisco路由器不允许在接口上配置属于子网0的IP地址。但是，如果使用Cisco IOS软件版本早于12.0的网络工程师发现使用零子网是安全的，则可以在全局配置模式下使用ip subnet-zero命令来克服此限制。时至 Cisco IOS 软件版本 12.0 的推出，Cisco 路由器现在可以默认启用 ip subnet-zero，但是如果网络工程师认为使用零子网不安全，no ip subnet-zero 命令则可以用来限制子网零地址的使用。

在Cisco IOS软件版本8.3之前的版本中，使用service subnet-zerocommand。

全1子网问题

过去，由于网络和具有相同广播地址的子网存在固有混淆，因此不建议使用全1子网进行IP编址。

参考前面的示例，最后一个子网(子网172.16.224.0/19)的广播地址是172.16.255.255，与网络172.16.0.0的广播地址相同，而网络首先划分子网，因此每当您执行子网划分时，您都会获得一个网络和一个具有相同广播地址的子网（全一子网）。换句话说，网络工程师可以在路由器上配置地址172.16.230.1/19，但如果这样做，他就无法再区分本地子网广播(172.16.255.255(/19))和完整的B类广播(172.16.255.255(/16))。

尽管现在可以使用全 1 子网，配置错误还是会引起问题。

注意：有关详细信息，请参阅主机和子网数量。

为了让您了解会发生什么情况，请考虑以下事项：

配置错误的一体化子网

路由器2至5是接入路由器，每一台路由器具有几条流入异步(或ISDN)连接。这些传入用户将网络(192.168.1.0/24)划分为四个部分。为每个接入路由器都分配一个部分。此外，异步线路配置为configuredip unnum e0。Router 1有指向正确接入路由器的静态路由，而每台接入路由器在Router 1都有默认路由点。

路由器 1 的路由表如下所示：

C  192.168.2.0/24   E0

S  192.168.1.0/26   192.168.2.2

S  192.168.1.64/26  192.168.2.3

S  192.168.1.128/26 192.168.2.4

S  192.168.1.192/26 192.168.2.5

接入路由器以太网有相同的连接的路由，异步线路有相同的默认路由和几个主机路由。（点对点协议(PPP)规范）

Router 2 routing table:                  Router 3 routing table:

C  192.168.2.0/24   E0                       C  192.168.2.0/24   E0

S  10.0.0.0/0      192.168.2.1               S  10.0.0.0/0      192.168.2.1

C  192.168.1.2/32   async1                   C  192.168.1.65/32   async1

C  192.168.1.5/32   async2                   C  192.168.1.68/32   async2

C  192.168.1.8/32   async3                   C  192.168.1.74/32   async3

C  192.168.1.13/32   async4                  C  192.168.1.87/32   async4

C  192.168.1.24/32   async6                  C  192.168.1.88/32   async6

C  192.168.1.31/32   async8                  C  192.168.1.95/32   async8

C  192.168.1.32/32   async12                 C  192.168.1.104/32   async12

C  192.168.1.48/32   async15                 C  192.168.1.112/32   async15

C  192.168.1.62/32   async18                 C  192.168.1.126/32   async18

Router 4 routing table:                  Router 5 routing table:

C  192.168.2.0/24   E0                       C  192.168.2.0/24   E0

S  10.0.0.0/0      192.168.2.1               S  10.0.0.0/0      192.168.2.1

C  192.168.1.129/32   async1                 C  192.168.1.193/32   async1

C  192.168.1.132/32   async2                 C  192.168.1.197/32   async2

C  192.168.1.136/32   async3                 C  192.168.1.200/32   async3

C  192.168.1.141/32   async4                 C  192.168.1.205/32   async4

C  192.168.1.152/32   async6                 C  192.168.1.216/32   async6

C  192.168.1.159/32   async8                 C  192.168.1.223/32   async8

C  192.168.1.160/32   async12                C  192.168.1.224/32   async12

C  192.168.1.176/32   async15                C  192.168.1.240/32   async15

C  192.168.1.190/32   async18                C  192.168.1.252/32   async18

如果异步线路上的主机配置不正确，因而掩码为255.255.255.0而不是255.255.255.192，结果会如何？一切正常吗？

看一看，当这些主机(192.168.1.24)进行本地广播(NetBIOS，WINS)时，会发生什么情况。数据包如下所示：

s: 192.168.1.24 d: 192.168.1.255

路由器2收到数据包。路由器2将它发送到路由器1，路由器1再将它发送到路由器5，路由器5将它发送到路由器1，路由器1再将它发送到路由器5，如此循环，直到存活时间(TTL)到期。

这是另一个示例（主机192.168.1.240）：

s: 192.168.1.240  d: 192.168.1.255

此数据包由Router 5接收。路由器5将它发送到路由器1，路由器1再将它发送到路由器5，路由器5将它发送到路由器1，路由器1再将它发送到路由器5， 如此循环，直到存活时间(TTL)到期。如果发生这种情况，您可能会认为自己受到数据包攻击。根据路由器 5 上的负载来推断，这是一个合理的假设。

在本示例中，创建了一个路由环路。由于路由器5处理全1子网，因此它会被破坏。路由器 2 至路由器 4 只看到过一次“广播”数据包。路由器1也被击中，但如若是Cisco 7513能够处理这种情况呢？在这种情况下，您需要使用正确的子网掩码来配置您的主机。

要防止未正确配置的主机，请在每台接入路由器上创建环回接口，将静态路由192.168.1.255路由到环回地址。您可以使用Null0接口，但这会导致路由器生成Internet控制消息协议(ICMP)“不可达”消息。

使用零子网和全1子网

必须注意的是，即使不鼓励这样做，包括零子网和全1子网的整个地址空间始终都是可用的。由于使用的是Cisco IOS软件版本12.0，所以使用全部为1的子网和为0的子网都可以。即使在Cisco IOS软件版本12.0之前，如果输入ip subnet-zero全局配置命令，也可以使用零子网

有关零子网和全1子网使用的问题，请参阅RFC 1878。目前，零子网和全1子网的使用是普遍接受的，大多数供应商都支持使用。但是，在某些网络（尤其是使用传统软件的网络）中，使用零子网和全1子网可能会出现问题。

注意：只有注册的思科用户才能访问内部思科工具和信息。

相关信息

- IP 路由协议技术支持页

- 思科技术支持和下载