跳到主要内容

6. 新地址分配和路由示例

  1. 新地址分配和路由示例 (Example of New Address Assignments and Routing)

6.1. 地址委派 (Address Delegation)

假设有一个包含 524288 (2^19) 个地址的地址块, 起始地址为

10.24.0.0, 结束地址为 10.31.255.255, 分配给单个网络服务提供商

"PA". 这在规模上等同于 2048 个传统 "Class C" 网络号 (或 /24)

组成的地址块. 到该地址块的一条无类路由 (classless route)

可描述为 10.24.0.0, 掩码为 255.248.0.0, 前缀为 10.24.0.0/13.

假设该服务提供商按以下顺序连接六个站点 (这个顺序很重要, 因为它展示了

服务提供商地址空间中可能如何形成临时 "空洞"):

o "C1", 需要少于 2048 个地址 (/21 或 8 x /24)

o "C2", 需要少于 4096 个地址 (/20 或 16 x /24)

o "C3", 需要少于 1024 个地址 (/22 或 4 x /24)

o "C4", 需要少于 1024 个地址 (/22 或 4 x /24)

o "C5", 需要少于 512 个地址 (/23 或 2 x /24)

o "C6", 需要少于 512 个地址 (/23 或 2 x /24)

在所有情况下, 都假定每个站点 "需要" 的 IPv4 地址数量已经为显著增长留有余量.

该服务提供商按如下方式委派其地址空间:

o C1. 分配 10.24.0 到 10.24.7. 这一组网络由路由

  10.24.0.0/21 (掩码 255.255.248.0) 描述.

o C2. 分配 10.24.16 到 10.24.31. 该地址块由路由

  10.24.16.0/20 (掩码 255.255.240.0) 描述.

o C3. 分配 10.24.8 到 10.24.11. 该地址块由路由

  10.24.8.0/22 (掩码 255.255.252.0) 描述.

o C4. 分配 10.24.12 到 10.24.15. 该地址块由路由

  10.24.12.0/22 (掩码 255.255.252.0) 描述.

o C5. 分配 10.24.32 和 10.24.33. 该地址块由路由

  10.24.32.0/23 (掩码 255.255.254.0) 描述.

o C6. 分配 10.24.34 和 10.24.35. 该地址块由路由

  10.24.34.0/23 (掩码 255.255.254.0) 描述.

这六个站点应在提供商的 IGP 中表示为六个大小不同的前缀. 如果出于某种原因,

提供商使用不支持无类路由或变长子网 (variable-length subnets) 的过时 IGP,

则必须携带所有 /24 的显式路由.

为使该示例更接近真实情况, 假设 C4 和 C5 通过另一个服务提供商 "PB" 实现多宿主

(multi-homed). 进一步假设存在一个站点 "C7", 它最初连接到 "RB",

但后来迁移到了 "PA". 因此, 它拥有一组网络号, 这些网络号是从 PB 的

(下一个) 2048 x /24 地址块中分配出来的.

o C7. 分配 10.32.0 到 10.32.15. 该地址块由路由

  10.32.0.0/20 (掩码 255.255.240.0) 描述.

对于多宿主站点, 假设 C4 通过 "RA" 作为主用通告, 通过 "RB" 作为备用通告;

C5 通过 "RB" 作为主用通告, 通过 "RA" 作为备用通告. 此外, 假设 "RA" 和

"RB" 都连接到同一个中转服务提供商 "BB".

图形化表示时, 该拓扑大致如下:

10.24.0.0 -- 10.24.7.0__ __10.32.0.0 - 10.32.15.0

C1: 10.24.0.0/21 \ / C7: 10.32.0.0/20

                        \     /

+----+ +----+

10.24.16.0 - 10.24.31.0_ | | | |

C2: 10.24.16.0/20 \ | | 10.24.12.0 - 10.24.15.0_ | |

                        \|    | / C4: 10.24.12.0/20        \ |    |

| |/ \| |

10.24.8.0 - 10.24.11.0___/| PA |\ | PB |

C3: 10.24.8.0/22 | | _10.24.32.0 - 10.24.33.0__| |

                         |    |    C5: 10.24.32.0/23         |    |

| | | |

10.24.34.0 - 10.24.35.0__/| | | |

C6: 10.24.34.0/23 | | | |

                         +----+                              +----+

|| ||

routing advertisements: || ||

                           ||                                  ||

10.24.12.0/22 (C4) || 10.24.12.0/22 (C4) ||

10.32.0.0/20 (C7) || 10.24.32.0/23 (C5) ||

10.24.0.0/13 (PA) || 10.32.0.0/13 (PB) ||

|| ||

VV VV

+---------- BACKBONE NETWORK BB ----------+

6.2. 路由通告 (Routing Advertisements)

为遵循规则 #1, PA 需要通告分配给它的地址块以及 C7. 由于 C4 是多宿主站点,

且通过 PA 作为主用路径, 因此也必须通告 C4. C5 是多宿主站点,

且通过 PB 作为主用路径. 原则上 (并且在上面的示例中), 它无需被通告,

因为 PB 的最长匹配会自动选择 PB 作为主用路径, 而 PA 的聚合通告将作为备用路径使用.

在实际操作中, C5 通常会通过两个提供商同时通告.

从 "PA" 到 "BB" 的通告将是

  10.24.12.0/22 primary    (通告 C4)

10.32.0.0/20 primary (通告 C7)

10.24.0.0/13 primary (通告 PA 的其余部分)

对于 PB, 通告还必须包括 C4 和 C5, 以及它自己的地址块.

从 "PB" 到 "BB" 的通告将是

  10.24.12.0/22 secondary  (通告 C4)

10.24.32.0/23 primary (通告 C5)

10.32.0.0/13 primary (通告 RB 的其余部分)

为说明第 5.1 节提到的问题诊断议题, 考虑 PA 失去到 C7 (该站点从 PB 的空间中分配)

的连通性时会发生什么. 在有状态协议中, PA 会向 BB 宣告 10.32.0.0/20

已变为不可达. 随后, 当 BB 从其路由表中清除此信息时, 未来经由 BB 发送到该目的地的流量,

会因 PB 较不精确的匹配 10.32.0.0/13 而被转发到 PB (在那里会按照规则 #2 被丢弃).

虽然这不会造成运行问题 (无论如何 C7 都不可达), 但确实会在 "BB" 上产生一些额外流量

(并且可能会让试图用 "traceroute" 调试该故障的人感到困惑). 用于缓存这种不可达状态的机制

或许有用, 但这超出了本文档的范围.