根据:https://study-ccnp.com/gre-tunnels-recursive-routing-problems/
当路由器通过隧道本身了解隧道接口的目标IP地址时,就会发生递归路由。它从路由表中删除隧道目标IP地址的前一项,使隧道的目的地不可访问。
为什么会这样呢?为什么不能使用隧道封装到达隧道的端点?为什么这实际上放弃了连接?
请一步一步地解释为什么会发生这种现象。
请不要告诉我一般-“你不能发送隧道的控制流量通过隧道,因为它将倒塌隧道。”
发布于 2022-12-05 23:27:49
就像开玩笑说的..。一切都有开始和结束,除了香肠,它有两个(结束)。
隧道有两个端点:一个源和一个目标,在另一端将被镜像。(从设备A,源是A的地址1.1.1.1之一,目标地址是B的地址2.2.2.2。从B来看,这两个是交换的。)
不用说,您不能通过隧道本身到达隧道的任何一个端点。在隧道通车前,不会有任何路线将车辆驶入隧道。因此,默认路由(0/0)或更具体的路由(1.1.1.1/32,2.2.2.2/32)适用于端点地址。一旦隧道通车,其他路线现在可能适用--即你希望隧道内的交通,这可能是“所有交通”。
如果新路由(S)覆盖目标端点,则隧道将失败,因为该端点将无法到达--例如,为了达到2.2.2.2,数据包进入目的地为2.2.2.2的隧道,进入隧道.流量永远不会离开路由器。这就是为什么前面列出的“更多细节”是最具体(/32)可能的路由。任何VPN (隧道)或动态路由过程都不能在路由表中放置更具体的内容,因此隧道端点始终是可访问的。
--
在查看我目前的路由表时,我看到:
142.254.0.0/32 is subnetted, 1 subnets
S 142.254.207.165 [25/0] via 174.99.112.1, GigabitEthernet0/1该路由是由DHCP设置的,因此路由器总是有一个合适的路径来与分配我地址的DHCP服务器对话。(主持人一般不会这么做。)
发布于 2022-12-05 14:31:15
这个问题并不是GRE隧道的具体问题,而是一般隧道的问题。
最明显的例子是,当您创建一个没有拆分隧道的客户端VPN时,所有流量都应该进入隧道,而不仅仅是内部网目的地。
这意味着您希望默认路径指向隧道--如果真的这样做,隧道端点(Internet中的某个位置)就会立即变得不可访问,隧道就会崩溃。
解决方案是通过先前的默认网关创建到隧道端点的特定路由(优先),然后可以将默认路由更改为隧道。
由于在隧道断开时回滚有时很麻烦,许多VPN客户端创建了虚拟的0.0.0.0/1和128.0.0.0/1路由,这些路由的度量很低,之后可以简单地删除这些路由。
如果您通过隧道运行像OSPF这样的路由协议,它可以将默认或端点路由“拉”到隧道中--毕竟,隧道端点会变得相邻。您需要要么更改广告(而不是广告端点地址或默认路由),要么使用路由筛选,要么使用成本较低或特定于特定的静态路由来解决这个问题。
https://networkengineering.stackexchange.com/questions/80780
复制相似问题