ARP 询问之 校级路由器的猫腻

前情

我为什么选定 172.17.174.73 这个 ip 来进行测试。戳前情 Scapy之ARP询问

前言

在一般家用路由器局域网下,进行 arp 广播,说:我是192.168.1.100,你们谁的 ip 是 192.168.1.200,把你的 mac 发给我。
这时候,如果 192.168.1.200 这个地址存在,相应的设备会给 192.168.1.100 发送自己的 mac 地址。如果 192.168.1.200 不存在,192.168.1.100 则收不到任何响应。
这时候,我说:我是192.168.1.100,你们谁的 ip 是 163.177.151.110,把你的 mac 发给我。则收不到任何回应,因为 163.177.151.110 这个 ip 不在该局域网下,确切来说这是个公网ip 。

以上情况在一般路由器下实践有效。问题出在下面的校级路由器上。

校级路由器的猫腻

  1. 校级路由器下,我是 172.17.171.111 , 我发送 arp 广播说:我是 172.17.171.111 ,你们谁的 ip 是 172.17.171.120 ,把你的 mac 发给我。
    这时候,我收到回应 mac ,00:00:00:00:00:01
    好,现在正常

  2. 校级路由器下,我是 172.17.171.111 , 我发送 arp 广播说:我是 172.17.171.111 ,你们谁的 ip 是 172.17.168.1 ,把你的 mac 发给我。
    这时候,我收到回应 mac ,00:00:00:00:00:02
    好,现在正常
    注:172.17.168.1 是校园网的网关

  3. 校级路由器下,我是 172.17.171.111 , 我发送 arp 广播说:我是 172.17.171.111 ,你们谁的 ip 是 172.17.174.73 ,把你的 mac 发给我。
    这时候,我收到回应 mac , 00:00:00:00:00:02
    这就很奇怪了,你发给我的 mac 怎么和网关发给我的一样
    ping 172.17.174.73 可以ping通

  4. 校级路由器下,我是 172.17.171.111 , 我发送 arp 广播说:我是 172.17.171.111 ,你们谁的 ip 是 172.17.174.74 ,把你的 mac 发给我。
    这时候,我没收到回应 mac
    ping 172.17.174.74 不能ping通

  5. 校级路由器下,我是 172.17.171.111 , 我发送 arp 广播说:我是 172.17.171.111 ,你们谁的 ip 是 163.177.151.110 ,把你的 mac 发给我。
    这时候,我收到回应 mac , 00:00:00:00:00:02
    这就很奇怪了,你发给我的 mac 怎么和网关发给我的一样
    注:163.177.151.110 是 www.baidu.com 的一个ip

  6. 根据后面的ARP代理原理。问题5可以被解决,新的问题 是,用相同的代码测试家用路由器,arp 询问外网 ip 的mac ,没有任何回应。

  7. 查询同一个 ip 的mac,有时候能查到,有时候则是网关的 mac

    原因是 对应设备给我返回了自己的 mac ,网关也返回了自己的mac

    网关给我它的mac地址几个意思

网关每次都给我他的mac。什么时候设备会返回给我mac呢,当我和设备处于同一路由器端口下的时候。
一个端口下分配的ip有很奇怪。比如,我用172.17.171.可以寻到一台172.17.173.的mac,但是寻不到一台172.17.172.*的mac

后来我再测,实际上不管我查哪个ip的mac,网关每次都返回给我了他自己的mac。这样第4个问题就出问题了 +_+

问题

  1. 172.17.174.73 这个 ip 对应的终端是否切实存在
  2. 校级路由器相比家用路由器这是玩的什么高端套路

后记

ARP代理 上场

ARP代理基本原理

当ARP请求目标跨网段时,网关设备收到此ARP请求,会用自己的MAC地址返回给请求者,这便是代理ARP

如果我的 pc 设置了网关(上文实验就是这种条件下) - 采用正常ARP 。arp 询问的 ip 如果是跨网段的,如 ip 为 163.177.151.110,我就会问:谁是 172.17.168.1 ,把你的 mac 发给我 。 这时候172.17.168.1 会把它的 mac 发给我。

如果我的 pc 没有设置网关 - 采用代理ARP 。arp 询问 ip 如果是跨网段的,如 ip 为 163.177.151.110,我就会问:谁是 163.177.151.110 ,把你的 mac 发给我 。这时候172.17.168.1 会把它的 mac 发给我。

总结

①当电脑没有网关(采用代理ARP)时:"跨网段访问谁,就问谁的MAC"

②当电脑有网关(采用正常ARP)时:"跨网段访问谁,都问网关的MAC"

③无论哪种ARP,跨网段通信时,发送方请求得到的目标MAC地址都是网关MAC

参考:http://blog.51cto.com/chenxinjie/1961255

posted @ 2018-11-26 13:10  春雨冰河  阅读(309)  评论(2编辑  收藏  举报