我正在查看Enterasys 3层交换机的configuration。 我正在试图诊断为什么交通要走特定的路。 其中一个路由命令中有关键字“recursion”。 该命令完全是:
关键字“recursion”意味着什么?
ip route 192.168.0.0/24 192.168.0.2 recursive 1
我对Enterasys的设备并不熟悉,但是我对它的含义有了一个很好的猜测。 以Cisco路由器为例。
ip route 1.1.1.0 255.255.255.0 2.2.2.2 ip route 2.2.2.0 255.255.255.0 3.3.3.3 ip route 3.3.3.0 255.255.255.0 4.4.4.4 ! 接口以太网0 ip地址4.4.4.1 255.255.255.0 !
一个数据包到达这个路由器,目的地是1.1.1.5。 路由器查找路由,发现它需要发送这个数据包到2.2.2.2。 现在它进行路由查找,看看如何到达2.2.2.2,并看到它需要到3.3.3.3。 它做了另一个路由表查找,看到3.3.3.3需要去4.4.4.4。 它最后一次查看它的路由表,发现它的eth0接口可以直接访问4.4.4.4,所以它build立一个以太网帧,并发送到4.4.4.4 ….希望不需要recursion其路由表经常发现它需要发送数据包的地方。
看看上面的内容,你可能会说为什么不把所有这些静态路由指向4.4.4.4呢?我会问同样的事情。
为什么你可能想要这样做的一个原因,虽然没有像上面那么夸张,是一些交通工程。 假设你只需要一个路由是有效的,如果一个dynamic学习的路由在你的路由表中。 所以你可以做的是编写一个静态路由,并指向下一跳,只有当你的dynamic路由协议知道它,并有一个路由到达下一跳…记住,如果下一跳不可达静态路由将不会被放置到路由表中。
所以很明显,在上面的例子中,很多CPU周期被浪费了,如果有很多数据包,并且没有路由caching,那么你的路由器就会爆炸。 在Enterasys的家伙必须认识到有一个路线recursion到另一条路线是有用的,但也设置了一个限制,这是用户可configuration,以便您没有炸毁他们的设备…
对于你的Enterasys设备来说,希望是正确的答案是很多的打字。 您可以通过添加一些recursion设置为低的静态路由来testing它,然后在将它们带出路由表之前查看它将执行多less个静态路由。