IP : 路由信息协议 (RIP)

新用户须知:IP 寻址和子网划分

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2014 年 4 月 8 日) | 反馈


目录


简介

本文提供配置路由器来进行 IP 路由所需的基本信息,例如地址如何划分,以及子网划分的工作原理。您将了解如何为路由器的每个接口分配一个具有唯一子网的 IP 地址。将很多示例有助于将每个对象联系在一起。

先决条件

要求

Cisco 建议您了解以下主题:

  • 对二进制和十六进制数字的基本了解。

使用的组件

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

其他信息

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

  • 地址 — 分配给网络中的一个主机或接口的唯一号码 ID。

  • 子网 — 共享特定子网地址的网络的一部分。

  • 子网掩码 — 一个 32 位组合,用来描述地址中的哪部分指子网,哪部分指主机。

  • 接口 — 一个网络连接。

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

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

了解 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 地址,可以从 3 个高位来确定它所属的类。图 1 显示了 3 个高位中的有效位和划分每个类别的地址范围。出于演示目的,也显示了 D 类和 E 类地址。

图 1

http://www.cisco.com/c/dam/en/us/support/docs/ip/routing-information-protocol-rip/13788-3an.gif

在 A 类地址中,第 1 个八位组是网络部分,因此图 1 中的 A 类示例的主网络地址为 1.0.0.0 - 127.255.255.255。第 2、3 和 4 个八位组(后面的 24 位)供网络管理员使用,网络管理员根据需要将其划分为子网和主机。A 类地址用于具有 65,536 台以上主机的网络(实际上,可多达 16,777,214 台主机!)。

在 B 类地址中,前两个八位组是网络部分,因此图 1 中 B 类示例的主网络地址为 128.0.0.0 - 191.255.255.255。第 3 个和 4 个八位组(16 位)用于本地子网和主机。B 类地址用于主机数在 256 到 65534 台之间的网络。

在 C 类地址中,前 3 个八位组是网络部分。图 1 中 C 类示例的主网络地址为 192.0.0.0 - 223.255.255.255。第 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 地址有一个类似如下的地址/掩码对:8.20.15.1 255.0.0.0。要了解掩码如何帮助您标识地址的网络和节点部分,请将地址和掩码转换为二进制数。

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000

在您拥有以二进制表示的地址和掩码之后,标识网络和主机 ID 就会比较容易。对应掩码位设置为 1 的任何地址位表示网络 ID。对应掩码位设置为 0 的任何地址位表示节点 ID。

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
            -----------------------------------
             net id |      host id             

netid =  00001000 = 8
hostid = 00010100.00001111.00000001 = 20.15.1

了解子网划分

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

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

要对网络进行子网划分,请使用地址的主机 ID 部分中的某些位来扩展自然掩码,以创建子网 ID。例如,假设给定 C 类网络 204.17.5.0(自然掩码为 255.255.255.0),您可以通过以下方式创建子网:

204.17.5.0 -      11001100.00010001.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
                  --------------------------|sub|----

通过将掩码扩展为 255.255.255.224,您已经从地址的原始主机部分取得 3 位(用“sub”表示),并使用它们构成子网。使用这 3 位,可以创建 8 个子网。利用剩余的 5 个主机 ID 位,每个子网最多可以提供 32 个主机地址,由于主机 ID 不能全部为 0 或全部为 1,因此,实际上其中 30 个地址可以分配给设备(记住这一点非常重要)。鉴于此,就创建了这些子网。

204.17.5.0 255.255.255.224     host address range 1 to 30
204.17.5.32 255.255.255.224    host address range 33 to 62
204.17.5.64 255.255.255.224    host address range 65 to 94
204.17.5.96 255.255.255.224    host address range 97 to 126
204.17.5.128 255.255.255.224   host address range 129 to 158
204.17.5.160 255.255.255.224   host address range 161 to 190
204.17.5.192 255.255.255.224   host address range 193 to 222
204.17.5.224 255.255.255.224   host address range 225 to 254

注意: 这些掩码有两种表示方法。首先,由于您使用的位数比 C 类“自然”掩码多 3 位,因此可以将这些地址表示为具有 3 位子网掩码。其次,掩码 255.255.255.224 还可以表示为 /27,因为在掩码中设置了 27 位。此第二种方法用于 CIDR。使用这种方法,可以用注释前缀/长度来描述其中一个网络。例如,204.17.5.32/27 表示网络 204.17.5.32 255.255.255.224。在适当的时候,在本文档其余部分中,使用前缀/长度表示法来表示掩码。

本部分中的网络子网划分方案允许 8 个子网,网络可以显示为:

图 2

http://www.cisco.com/c/dam/en/us/support/docs/ip/routing-information-protocol-rip/13788-3b.gif

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

这产生一个有趣现象。用于子网掩码的主机位越多,可用子网就越多。不过,可用子网越多,每个子网的可用主机地址就越少。例如,C 类网络 204.17.5.0 和掩码 255.255.255.224 (/27) 使您拥有 8 个子网,每个子网都提供 32 个主机地址(其中 30 个可以分配给设备)。如果使用掩码 255.255.255.240 (/28),则划分方法是:

204.17.5.0 -      11001100.00010001.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 |-----------

您将原始主机位中的 5 位用于子网。这允许您有32子网(25)。将 5 位用于子网划分后,还剩下 11 位可用于主机地址。这允许每子网,因此有2048个主机地址(211), 2046可能分配到设备。

注意: 在过去,对 0 子网(所有子网位都设置为 0)和全 1 子网(所有子网位都设置为 1)的使用受到限制。一些设备不允许使用这些子网。Cisco Systems 设备允许在配置 ip subnet zero 命令后使用这些子网。

示例

示例练习 1

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

DeviceA: 172.16.17.30/20
DeviceB: 172.16.28.15/20

确定设备 A 的子网:

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。

确定设备 B 的子网:

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 类网络 204.15.5.0/24,对该网络进行子网划分,以便根据所示的主机要求创建图 3 中的网络。

图 3

http://www.cisco.com/c/dam/en/us/support/docs/ip/routing-information-protocol-rip/13788-3c.gif

查看图 3 中所示的网络,您会看到需要创建 5 个子网。最大的子网必须支持 28 个主机地址。C 类网络能达到此要求吗?如果能,则如何设置?

首先,您可以看一下子网要求。为了创建 5 个所需的子网,您需要使用 C 类主机位中的 3 位。两个位只将给您四子网(22)。

由于您需要 3 个子网位,还剩下 5 位用于地址的主机部分。这支持多少台主机?2 5 = 3230 个可用)。这符合要求。

因此,您已经确定用 C 类网络创建此网络是可行的。下面是如何分配子网络的示例:

netA: 204.15.5.0/27      host address range 1 to 30
netB: 204.15.5.32/27     host address range 33 to 62
netC: 204.15.5.64/27     host address range 65 to 94
netD: 204.15.5.96/27     host address range 97 to 126
netE: 204.15.5.128/27    host address range 129 to 158

VLSM 示例

在前面的所有子网划分示例中,您会注意到所有子网使用的是相同的子网掩码。这意味着每个子网有相同数量的可用主机地址。在某些情况下可能需要这样,但在大多数情况下,所有子网拥有相同的子网掩码结果是浪费地址空间。例如,在示例练习 2 部分中,C 类网络被分成 8 个大小相等的子网;然而,每个子网并不使用所有可用的主机地址,从而导致浪费地址空间。图 4 说明了此浪费的地址空间。

图 4

http://www.cisco.com/c/dam/en/us/support/docs/ip/routing-information-protocol-rip/13788-3d.gif

图 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: 204.15.5.0/27  host address range 1 to 30
netE: 204.15.5.32/27 host address range 33 to 62
netA: 204.15.5.64/28 host address range 65 to 78
netD: 204.15.5.80/28 host address range 81 to 94
netC: 204.15.5.96/30 host address range 97 to 98

这可以用图形表示,如图 5 所示:

图 5

http://www.cisco.com/c/dam/en/us/support/docs/ip/routing-information-protocol-rip/13788-3e.gif

图 5 说明如何使用 VLSM 帮助节省一半以上的地址空间。

CIDR

引入无类域间路由 (CIDR) 可改进 Internet 中的地址空间利用和路由可扩展性。由于 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 1518RFC 1519leavingcisco.com

附录

示例配置

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

路由器 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 t 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

路由器 B

  hostname routerb
  !
  ip routing
  !
  int e 0
  ip address 192.1.10.200 255.255.255.240
  !(subnet 192)
  int e 1
  ip address 192.1.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.1.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 
 might not be supported on some legacy systems.
*Host all zeroes and all ones excluded.

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 13788