为什么 arp 查询请求使用广播,而不是把 table 集中放在网关?

2016-10-03 11:48:27 +08:00
 raiz

ARP 攻击很常见,也很容易实施,使用网关实现了 DHCP 服务,很容易得到可信的 ARP 表,在网关提供一个查询服务不是可以更安全和高效解决 2/3 层地址转换吗?虽然 https://zh.wikipedia.org/wiki/ARP%E6%AC%BA%E9%A8%99 这里有提到部分网关有实现,为什么一开始设计的时候是设计成分布式的,而不是集中式的,出于什么考虑?

3383 次点击
所在节点    程序员
15 条回复
tabris17
2016-10-03 11:54:55 +08:00
了解一下以太网的发展历史对理解 ARP 协议有帮助

以太网是个共享总线的对等网络,没有中心服务器是其优势所在
hxsf
2016-10-03 12:12:31 +08:00
分布式是优势
另外,不先 arp ,哪来的网关
jasontse
2016-10-03 12:23:47 +08:00
蛋生鸡的问题, table 靠什么来维护?
julyclyde
2016-10-03 12:27:02 +08:00
除了“不先 arp 哪来的网关”以外,还有就是本地通信并不需要网关,所以不能依赖一个不必须存在的组件
salmon5
2016-10-03 13:33:48 +08:00
这样,第一次怎么和网关通信,没有 mac 地址?
onice
2016-10-03 14:10:07 +08:00
ARP 地指表你想人工去维护吗?
wsy2220
2016-10-03 14:12:52 +08:00
网关不是必须的
raysonx
2016-10-03 14:13:42 +08:00
网关只在跨网通信时才需要,同一网段內的通信不需要网关。
flyfishcn
2016-10-03 14:48:51 +08:00
楼上的回答都不全、没有抓住重点,
1 :不是所有网络都需要网关
2 :不用 arp 怎么获得网关的 mac 地址?
3 ,最重要的一点, arp 不用广播了,网关的 arp 表怎么来的?网关可不一定必须是 dhcp 服务器啊,并且同一子网里如果有多个 dhcp 服务器呢?如果是静态地址的网络呢?
tabris17
2016-10-03 14:54:59 +08:00
@flyfishcn 网关是网络层, ARP 协议是链路层。楼主将两者放在一起只是个类比,其实想问的是,为什么以太网没有中心节点,而不是纠结这些细节
luoqeng
2016-10-03 15:02:34 +08:00
flyfishcn
2016-10-03 15:06:39 +08:00
@tabris17 参见第一条,二层内通讯不需要中心节点,三层通讯必须要中心节点。还有什么疑问么?并且本身这个话题的标题也是一个提问,为什么在你那就成不需要纠结的事情了?贴主自己都没有指定是单一网络还是互联网络,请问我的回答有问题么?
dream7758521
2016-10-03 16:08:52 +08:00
当时认为局域网内的机器是可信的
flyfishcn
2016-10-03 16:15:58 +08:00
@dream7758521 不管是不是可信,也需要 ARP 广播。就算是给网关管理,也是 ARP 广播,就算真的是靠 DHCP 提供数据, DHCP 也是基于广播的。既然离不开广播,为何要设计的复杂而不直接由主机自己 ARP 广播。
WalkingEraser
2016-10-04 01:25:35 +08:00
静态的可以不广播,人工维护。动态的可以约定一个中心节点的类似东西,这样 Mac 查询是简单了,通信量也最少,但这很明显要设计一套规则动态维护 table ,而这个规则的复杂度和优缺点就需要衡量了。这样也就可以和洪泛广播做对比了,然后就看谁更符合应用场景呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310370

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX