子网划分可以将给定的网络地址分解为更小的子网。结合其它技术,例如网络地址转换(NAT)和端口地址转换(PAT) ,它使您能够更加有效地使用可用的IP地址空间,从而在很大程度上解决地址耗尽的问题。子网划分具有第一个和最后一个子网的使用指南,第一个和最后一个子网分别称为零子网和全1子网。本文档讨论零子网和全 1 子网以及它们的用途。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
如果网络地址分为子网,在对网络地址划分后获得的第一个分支子网称为全零子网。
考虑B类地址172.16.0.0。默认情况下,B类地址172.16.0.0保留16位来表示主机部分,因此允许65534(216-2)有效主机地址。如果网络172.16.0.0/16被从主机部分借用的三比特划分子网,可以获得八个(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)被称为零子网。
子网划分后,获得的子网类型和子网数量对确定零子网不起任何作用。它是对网络地址进行子网划分时获得的第一个子网。此外,在您写零子网地址的二进制等值时,所有子网位(在当前情况下为17、18和19)为零。零子网也称为全 0 子网。
对网络地址进行子网划分时,获得的最后一个子网被称为全 1 子网。
在参考上面的例子后,当子网划分网络172.16.0.0 (子网172.16.224.0/19)称为全1子网时,可以获得最后的子网。
子网划分后,获得的子网类型和子网数量对确定全1子网不起任何作用。此外,在您写零子网地址的二进制等值时,所有的子网位(在当前情况下为17、18和19)都为一,因次而得名。
通常强烈建议不要在编址时使用零子网和全 1 子网。如 RFC 950 中所述:“在经过子网划分处理的网络中保留并扩充这些特殊(网络和广播)地址的解释非常有用。 这意味着不应当将子网字段中的全 0 和全 1 值分配给实际(物理)子网。” 这就是网络工程师需要通过借用三位数计算出所获子网络数量是23-2 (6)而不是23 (8)的原因。 -2 是考虑到通常不使用零子网和全 1 子网。
由于网络和子网使用不易区分的地址,导致内部混乱,编址失败,可以使用subnet zero。
参照上例,请考虑IP地址172.16.1.10。如果计算出与此IP地址对应的子网地址,您得到的答案是子网172.16.0.0(子网0)。 请注意,此子网地址与网址172.16.0.0(首先划分子网)是相同的。因此,在任何时候,当您进行子网划分时,您都会获得一个网络和一个子网(subnet zero),它们的地址难以区分。这以前是造成极大混乱的原因。
在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-zero 命令。
由于网络和子网使用相同的广播地址,导致内部混乱,编址失败,可以使用全1子网。
参考以上示例,最后一个子网的广播地址(子网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)连接。我们已经决定将网络(195.1.1.0/24)分成4个部分,提供给这些流入用户。为每个接入路由器都分配一个部分。此外,还配置了异步线路ip unnum e0。路由器1有指向正确接入路由器的静态路由,每个接入路由器都有指向路由器1的默认路由。
路由器 1 的路由表如下所示:
C 195.1.2.0/24 E0 S 195.1.1.0/26 195.1.2.2 S 195.1.1.64/26 195.1.2.3 S 195.1.1.128/26 195.1.2.4 S 195.1.1.192/26 195.1.2.5
接入路由器以太网有相同的连接的路由,异步线路有相同的默认路由和几个主机路由。(点对点协议(PPP)规范)
Router 2 routing table: Router 3 routing table: C 195.1.2.0/24 E0 C 195.1.2.0/24 E0 S 0.0.0.0/0 195.1.2.1 S 0.0.0.0/0 195.1.2.1 C 195.1.1.2/32 async1 C 195.1.1.65/32 async1 C 195.1.1.5/32 async2 C 195.1.1.68/32 async2 C 195.1.1.8/32 async3 C 195.1.1.74/32 async3 C 195.1.1.13/32 async4 C 195.1.1.87/32 async4 C 195.1.1.24/32 async6 C 195.1.1.88/32 async6 C 195.1.1.31/32 async8 C 195.1.1.95/32 async8 C 195.1.1.32/32 async12 C 195.1.1.104/32 async12 C 195.1.1.48/32 async15 C 195.1.1.112/32 async15 C 195.1.1.62/32 async18 C 195.1.1.126/32 async18 Router 4 routing table: Router 5 routing table: C 195.1.2.0/24 E0 C 195.1.2.0/24 E0 S 0.0.0.0/0 195.1.2.1 S 0.0.0.0/0 195.1.2.1 C 195.1.1.129/32 async1 C 195.1.1.193/32 async1 C 195.1.1.132/32 async2 C 195.1.1.197/32 async2 C 195.1.1.136/32 async3 C 195.1.1.200/32 async3 C 195.1.1.141/32 async4 C 195.1.1.205/32 async4 C 195.1.1.152/32 async6 C 195.1.1.216/32 async6 C 195.1.1.159/32 async8 C 195.1.1.223/32 async8 C 195.1.1.160/32 async12 C 195.1.1.224/32 async12 C 195.1.1.176/32 async15 C 195.1.1.240/32 async15 C 195.1.1.190/32 async18 C 195.1.1.252/32 async18
如果我们在异步线路上错误地配置了主机,将掩码配置成255.255.255.0而不是255.255.255.192,会出现什么情况?一切都很正常。
看一看,当这些主机(195.1.1.24)进行本地广播(NetBIOS,WINS)时,会发生什么情况。 数据包如下所示:
s: 195.1.1.24 d: 195.1.1.255
路由器 2 接收数据包,然后将其发送给路由器 1,路由器 1 随即将其发送给路由器 5,路由器 5 接着将其发送给路由器 1,路由器 1 再将其发送给路由器 5,如此往复,直到存活时间 (TTL) 到期。
以下是另一个示例(主机 195.1.1.240):
s: 195.1.1.240 d: 195.1.1.255
路由器 5 接收数据包,然后将其发送给路由器 1,路由器 1 随即将其发送给路由器 5,路由器 5 接着将其发送给路由器 1,路由器 1 再将其发送给路由器 5,如此往复,直到 TTL 到期。如果发生这种情况,您可能会认为受到了数据包攻击。根据路由器 5 上的负载来推断,这是一个合理的假设。
在本示例中,创建了一个路由环路。由于路由器 5 处理全 1 子网,因此它被破坏。路由器 2 至路由器 4 只看到过一次“广播”数据包。路由器1也被击中,但如若是Cisco 7513能够处理这种情况呢?在这种情况下,您需要使用正确的子网掩码来配置您的主机。
要防止不正确配置主机,需要使用到回环地址的静态路由195.1.1.255,在每个接入路由器上创建一个回环接口。"您可以使用Null0接口,但这会造成路由器生成互联网控制消息协议(ICMP)""不能到达""消息。"
值得注意的是,即使不鼓励使用,包括零子网和全1子网的整个地址空间也永远有用。自Cisco IOS软件版本12.0起,明确允许使用全1子网,明确允许使用子网0。即使在Cisco IOS软件版本12.0之前,也可以通过输入ip subnet-zero 全局配置命令来使用子网0。
在使用子网0和全1子网的问题上,RFC 1878 指出:“此做法(排除全0和全1子网)已过时。现代软件将能够使用所有可定义的网络。” 如今使用子网零和全1子网已被广泛接收,大多数供应商都支持它们的应用。然而,在某些网络上,特别是在使用传统软件的网络上,使用全0子网和全1子网可能导致问题。