根据 RFC 2784,GRE 中的“循环”如何发生

网络工程 协议论 隧道 格雷 射频
2022-02-07 23:52:03

RFC 2784提到:

转发此类数据包时应小心,因为如果有效负载数据包的目标地址是数据包的封装者(即隧道的另一端),则可能会发生循环。在这种情况下,数据包必须被丢弃。

看起来原来的隧道端点发送必须有一个混乱的路由才能不将自己识别为目的地并通过隧道转发数据包。

这是否意味着无限循环是可能的,或者只是数据包可能会被发回一次?

思科的文档似乎证明了他们使用这种确切的行为来进行保活工作。既然“必须丢弃数据包”,这不会违反 RFC 吗?

1个回答

如果解封装路由器有一条未封装目标地址的路由返回到封装路由器,则您将得到一个仅在 TTL 到期时才到期的循环。如果不遵守规则,这是一个完全合理的情况。

没有什么可以说这两个路由器在它们之间运行路由协议,因此它们对于发送数据包的方式可能有完全不同的想法。一个或多个可能正在使用静态路由或 PBR。没有什么可说的,这两个路由表是同步的。