首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下一跳路由器对代理ARP的需求

问下一跳路由器对代理ARP的需求
EN

Network Engineering用户
提问于 2018-06-01 15:45:28
回答 2查看 543关注 0票数 2

我正在看思科( Cisco )提供的一个视频课程,我看到了一个关于代理ARP需求的有趣部分:

如果路由器使用静态路由,该路由使用传出接口而不是下一跳路由器IP地址,则必须在下一跳路由器上启用代理ARP。否则,下一跳路由器将不会响应由第一跳路由器执行的ARP请求.

所以,如果我用

代码语言:javascript
复制
ip route 10.1.1.0 255.255.255.0 Gi0/0 

下一跳路由器必须启用代理ARP。

但如果我用

代码语言:javascript
复制
ip route 10.1.1.0 255.255.255.0 192.168.1.1

然后下一跳路由器不必启用代理ARP。

它怎麽工作?即使我用

代码语言:javascript
复制
ip route 10.1.1.0 255.255.255.0 Gi0/0

本地路由器将执行递归查找,并最终将下一跳的IP地址解析为192.168.1.1,那么这里有什么区别,下一跳路由器为什么要关心我如何在本地路由器上配置静态路由?

这只是思科的事吗?

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2018-06-01 17:45:44

本地路由器将执行递归查找,并最终将下一跳的IP地址解析为192.168.1.1

如果你想一想,你可能会改变主意。没有什么可回忆的,因为下一跳根本就不知道。

在没有下一跳的情况下,本地路由器必须假定目的地是直接连接的。因此,它为目标地址提供了ARPs。除非下一跳路由器启用了代理ARP,否则它不会响应ARP。

代理- ARP告诉下一跳路由器对它有路由的任何ARP作出响应.在这种情况下,它将响应目标地址的ARP。

票数 5
EN

Network Engineering用户

发布于 2018-06-01 18:14:50

这似乎是断章取义.

当非本地目的地出现在源的本地时,需要代理ARP。在这种情况下,源是一个路由器,没有下一跳路由,目标应该是本地路由器。但是,实际情况并非如此,因此本地目的地的常规ARP将失败(因为它位于广播域之外)。

在这种情况下,(隐藏的)下一跳路由器必须代表目的地(代理ARP)回复ARP请求,以使其看起来是本地的。代理-ARP路由器发送自己的MAC,而不是目的地的,IP包被发送到路由器并转发到目的地。

替代代理ARP的方法是源路由器上的静态ARP表条目。

您的示例不起作用,因为目标不是源路由器的本地。

如果源路由器有一个本地接口10.0.1.1/16,并试图将一个数据包转发到10.0.2.20,那么它将假设目的地是本地的。但是,目标子网实际上被划分为10.0.1.0/24和10.0.2.0/24,中间有一个隐藏的网关。这个网关必须使用自己的MAC来响应目的地IP的ARP请求,然后简单地转发数据包。

通常,ARP欺骗是需要的,只有当你的网络已经发展不成比例或没有合理设计。几乎在所有情况下,都会建议进行良好的清理或重命名。

票数 2
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/50871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档