是否可以为数据包指定路由?

网络工程 路由 路由器 ip 互联网
2021-07-26 15:08:21

因此,AFAIK,数据包在路由器之间“跳跃”。数据包通过路由器的默认路径转发,直到到达目标 IP。那么是否可以指定此数据包“跳跃”到的一组特定路由器?

3个回答

这在理论上是可能的,但实际上并非如此。

IP 协议包括两个选项:

  • 松散源和记录路由 (LSRR)
  • 严格源和记录路由 (SSRS)

它们都在RFC 791 中进行了描述

它们之间的区别在于,LSRR 可以指定部分路由,而 SSRS 则指定完整的、精确的路由。使用 LSRR,路径上的每个路由器都使用其本地路由表来确定如何发送到源路由中的下一跳。

它不切实际的原因是因为大多数路由器都配置为忽略此选项。RFC 1122规定必须默认禁用源路由转发,如果任何 ISP 启用它,我会感到惊讶。

路由是在端到端的基础上完成的。这意味着,路径上的每个路由器都需要根据路由器认为最好的路径做出自己的路由决策。幸运的是,如果没有对数据包将通过的网络的直接控制,就无法“指定该数据包跳到的特定路由器集”。例如,如果我将一个发往 Google 的数据包发送到我的 ISP,则由我的 ISP 沿着其最佳路径转发此流量。

数据包通过路由器的默认路径转发

这不一定是正确的。路由适用于最具体的匹配,这意味着路由器只有在没有更具体的前缀路由时才会采用默认值。

是的,您可以,有 MPLS 允许具有严格跳数的显式路由。约束最短路径优先的管理组中还有链接着色的概念。

https://www.juniper.net/documentation/en_US/junose15.1/topics/concept/mpls-explicit-routing-overview.html

https://www.juniper.net/documentation/en_US/junos/topics/usage-guidelines/mpls-configuring-administrative-groups.html

Ditrapanij 也是对的,但他要么忘记了,要么不知道 MPLS。MPLS 是本地的,但仅适用于您自己的网络,您不能指定超出网络出口的约束路径。