跳至内容

路由协议和架构/IPv6 路由

来自维基教科书,开放的书籍,开放的世界
Previous page
边界网关协议
路由协议和架构 Next page
组播路由
IPv6 路由

如今,路由器大多已准备好使用 IPv6,即使 IPv6 的性能仍然比 IPv4 糟糕,因为缺乏经验和流量需求较低。即使设备支持 IPv6,IPv6 路由通常默认情况下处于关闭状态(在 Cisco 路由器上,可以通过以下命令启用)ipv6 unicast-routing).

需要考虑两个方面

路由表

[编辑 | 编辑源代码]

IPv6 中的路由与 IPv4 中的路由方式相同,但它需要两个不同的路由表,一个用于 IPv4 路由,另一个用于 IPv6 路由。IPv6 路由表可以存储几种类型的条目,包括

  • 间接条目(O/S 代码):它们指定下一跳路由器的接口的地址,通常是链接本地地址,用于发送到远程链接的包;
  • 直接条目:它们指定路由器本身的接口,通过该接口发送到本地链接的包
    • 连接的网络(C 代码):它们指定本地链接的前缀;
    • 接口地址(L 代码):它们指定本地链接中的接口标识符。

下一跳

[编辑 | 编辑源代码]

作为计算的动态路由中的下一跳,路由协议始终使用链接本地地址,即使在邻居接口上配置了全局地址,也是为了简单起见:链接本地地址始终存在,而全局地址可能无法在网络的某些部分使用。

但是,使用链接本地地址使得确定该地址的位置变得很困难:全局地址的网络地址至少允许识别主机应该存在的网络,从而确定输出接口,但以 FE80:: 开头的链接本地地址可以位于任何地方→在下一跳地址旁边,路由器还会打印输出本地接口来解决歧义,例如

2001:1::/64 via FE80::1, FastEthernet0/0

对于静态路由,选择权留给网络管理员,他们可以选择他喜欢的地址作为下一跳

ipv6 route address/netmask [local interface] [next hop] [distance]
  • 广播接口(例如以太网):需要指定下一跳的地址
    • 全局地址:不需要指定本地接口,因为它可以从网络前缀确定
      ipv6 route 2001:1::/64 2001::1
    • 链接本地地址:也需要指定本地接口来识别链接本地地址的范围
      ipv6 route 2001:1::/64 FastEthernet0/0 fe80::1
  • 点对点接口(例如串行):不需要指定下一跳的地址,因为它由本地接口唯一标识
    ipv6 route 2001:1::/64 serial 0

由于静态路由无法适应网络变化,因此强烈建议使用全局地址作为静态路由的下一跳。这避免了当下一跳发生变化时路由变得无效的情况:例如,如果下一跳路由器上的网卡由于硬件故障而被替换

  • 链接本地地址:它取决于卡的 MAC 地址→需要更改路由;
  • 全局地址:新接口应该只被分配相同的全局地址。

路由协议

[编辑 | 编辑源代码]

支持 IPv6 的路由协议可以采用两种方法

  • 集成路由(IS-IS、MP-BGP4):该协议允许同时交换 IPv4 和 IPv6 路由信息
    • 效率:属于相同目的地的 IPv4 和 IPv6 地址可以通过单个消息传输;
    • 灵活性:单个协议传输多个地址族;
    • 反应性:如果发生故障或网络更改,该协议会为两个地址族发现它;
    • 错误:协议中的问题会以相同的方式影响 IPv4 和 IPv6 网络;
    • 迁移:如果该协议使用 IPv4 来传输 Hello 数据包,则无法在网络中废除 IPv4;
  • 夜间航行(RIPng、EIGRP、OSPFv3):该协议只允许交换 IPv6 路由信息
    • 效率:对于给定的目的地,需要为其 IPv4 地址交换一条消息,并为其 IPv6 地址交换另一条消息,并且这些消息彼此完全独立;
    • 灵活性:可以使用两个不同的协议,一个用于 IPv4 路由信息,另一个用于 IPv6 路由信息;
    • 反应性:如果发生故障或网络更改,两个协议都必须发现它,每个协议都有其定时和重复消息;
    • 错误:协议中的问题不会影响另一个协议中的路由;
    • 迁移:每个路由协议都会生成其所属地址族的消息。

RIPng 采用“夜间航行”方法,并且主要在 Cisco 命令行界面方面对 RIP 进行了改进

  • 支持多个实例:该tag字段允许指定协议实例;[1]
  • 每个接口的配置:引入了新的命令
    • ipv6 rip <tag> enable:它替换了network命令,并在该接口上自动配置 RIP,而无需指定地址;
    • ipv6 rip <tag> default-information originate:它会生成默认路由(::/0),也就是说,世界其他地方都可以通过此接口访问。

OSPFv3 采用“夜间航行”方法,并且主要在三个方面与 OSPF 不同

  • 每个接口的配置:该ipv6 ospf <process ID> area <area ID>已引入,它指定此接口上配置的所有网络和地址都将被通告为属于指定的区域;
  • 路由器 ID:不幸的是,OSPFv3 仍然使用 32 位长的路由器 ID,即使在没有可用的 IPv4 地址时也无法自动设置→该ipv6 router-id <number>命令在路由器仅为 IPv6 或位于仅为 IPv6 的网络中时变得强制性;
  • 隧道:可以配置 IPv6-on-IPv4 隧道,以便通过 IPv4 网络将 IPv6 岛屿连接在一起。

IS-IS 用于 IPv6 采用“集成路由”方法:实际上,它使用自己的第 3 层协议来传输协议特定的数据包,与底层 IP 协议版本无关。

MP-BGP4 可以根据配置采用两种方法:TCP 数据包可以根据需要封装在 IPv4 或 IPv6 中。

最常见的部署遵循“集成路由”方法,因为需要使用 AS 号(对于 IPv4 和 IPv6 都是相同的)进行 BGP 处理。集成也反映在策略中:IPv4 地址和 IPv6 地址可以随意混合。

参考文献

[编辑 | 编辑源代码]
  1. RIPv2 中已经存在对多个实例的支持,但无法在 Cisco 路由器上进行配置。
Previous page
边界网关协议
路由协议和架构 Next page
组播路由
IPv6 路由
华夏公益教科书