目录

简介

先决条件

要求

使用的组件

规则

背景信息

全 0 子网

全1子网

全0子网和全1子网存在的问题

全0子网问题

全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位而划分子网，则获得八(2^3)个子网。下表是一个示例，显示通过对地址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。

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

全1子网

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

对于上一个示例，对网络172.16.0.0(子网172.16.224.0/19)划分子网时获得的最后一个子网称为全1子网。

划分子网后的网络类别和划分子网后获得的子网数量并不能确定全1子网。此外，当您写出全1子网地址的二进制等值数字时，所有子网位（本例中为14、15和16）都是1，因此称为名称。

全0子网和全1子网存在的问题

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

全0子网问题

不建议使用零子网进行IP编址，因为网络与子网之间无法区分的地址是固有的。

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

在Cisco IOS®软件版本12.0之前，Cisco路由器默认不允许在接口上配置属于零子网的IP地址。但是，如果使用Cisco IOS软件12.0版本以前版本的网络工程师发现使用全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的广播地址相同，而网络首先进行了子网划分，因此每次进行子网划分时，您都会得到一个广播地址相同的网络和子网（全1子网）。换句话说，网络工程师可以在路由器上配置地址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。路由器1具有指向正确接入路由器的静态路由，而每台接入路由器在路由器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接口，但这会导致路由器生成互联网控制消息协议(ICMP)“无法到达”消息。

使用零子网和全1子网

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

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

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

相关信息

- IP 路由协议技术支持页

- 思科技术支持和下载