V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raiz
V2EX  ›  程序员

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

  •  
  •   raiz · 2016-10-03 11:48:27 +08:00 · 3469 次点击
    这是一个创建于 2972 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2016-10-04 09:27:54 +08:00
    谢谢各位指教。
    我原来的理解确实有错误,跟网关需要先知道网关的 mac 地址;是单纯从现在家用无线路由器下局域网的场景考虑的问题,网络拓扑是一个星型网络,每个设备都是通过路由器网关接入网络的, mac 地址在入网的时候路由器已经可以确定。
    15 条回复    2016-10-04 01:25:35 +08:00
    tabris17
        1
    tabris17  
       2016-10-03 11:54:55 +08:00
    了解一下以太网的发展历史对理解 ARP 协议有帮助

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