简介
本文档介绍配置路由器所需的基本信息,例如地址如何细分以及如何创建子网。
先决条件
要求
思科建议您对二进制和十进制数字有基本的了解。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
其他信息
如果定义对您有帮助,下面的词汇术语可帮助您入门:
地址 - 分配给网络中一个主机或接口的唯一数字 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。值为 21 的位左侧的位。依照此规律,直到最左边一位(即最高位),其值为 27。因此,如果所有二进制位都为 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个八位组是网络部分,因此图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 位,可以创建 8 个子网。使用其他五个主机ID位,每个子网最多可以有32个主机地址,其中30个地址实际上可以分配给设备,因为不允许主机ID全为0或全为1(记住这一点非常重要)。鉴于此,就创建了这些子网。
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 个子网 (25)。如果使用子网划分的五位,则剩下11位用于主机地址。这可让每个子网有 2048 个主机地址 (211),其中 2046 个可分配给设备。
注意:过去,子网0的使用有限制(所有子网位都设置为0),所有1个子网的使用也有限制(所有子网位都设置为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中所示的网络,您会看到需要创建5个子网。最大的子网必须支持 28 个主机地址。C 类网络能达到此要求吗?如果能,则如何设置?
首先,请查看子网要求。要创建所需的五个子网,您需要使用C类主机位中的三个位。两位只允许划分四个子网 (22)。
由于您需要 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类网络被分成8个大小相等的子网,但每个子网没有利用所有可用的主机地址,从而浪费了地址空间。图 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.
相关信息