我build立了一堆静态路由(这是一个安全要求,所以不要问我为什么不使用路由协议)。
静态路由可以通过指定下一跳创build
199.199.199.0 255.255.255.0 199.199.200.1
或者通过分割出接口
199.199.199.0 255.255.255.0 GigabitEthernet0 / 23
在这种情况下,Gi 0/23的ip为199.199.200.2,并直接连接到199.199.200.1。 有多个其他静态路由出去这个相同的接口。
这种情况下的最佳做法是什么?
编辑:根据不同的答案,我不得不深入这一些。 根据我的经验,思科不会给你两种方法来做同样的事情,这是我发现的。 如果接口有许多目标,则不build议指定接口。 这里是我find的链接,并感谢Vlad H的准确答案。
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800ef7b2.shtml http://www.cisco.com/en/US/docs/ios/12_2/iproute/command/reference/1rfindp1.html #wp1054112
如果您不指定下一跳,则应将下一跳路由器configuration为执行代理ARP。 会发生什么情况是,只要一个数据包发送到一个不在ARP表中的新目的地,下一跳路由器就会用目的地的MAC来响应,你的路由器就会发出ARP请求。 这个configuration不被推荐,因为最初会有ARP延迟,如果你有很多这样的路由(或者更糟的是,我看到了这样的默认路由!),你会看到内存和高CPU问题。
没有双重路由查找或类似的东西,因为在所有体面的现代路由器上,数据包将由CEF转发。 仅指定接口将在整个路由中在CEF(类似于正常的直接连接的广播networking所发生的情况)中创build一个收集邻接(glean adjacency)。 那么当ARP到达时,更具体的/ 32将被填充。
我必须同意Vlads指出这一点 – 我们曾经有一个路由器随机崩溃,花了很长时间来弄清楚为什么。 因为我们将默认路由设置为传出接口,所以将所有这些ARP条目caching,直到最终CEF进程崩溃。 当CEF坠毁其他东西失败,如我们的VPN。
有最佳做法吗? 看起来这完全取决于您的networkingdevise需求和目标。 我的想法是,如果您不关心stream量需要什么物理path,那么您需要指定下一个跃点,如果您要指定stream量所采用的物理path,并使其始终采用特定的预定义path,那么您需要指定界面。
通常指定接口更好,因为它避免了第二个路由表查找。 在以太网情况下,您可能需要指定传出接口和下一跳IP地址。