前情

我为什么选定 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

ARP 询问之 校级路由器的猫腻的更多相关文章

  1. Scapy之ARP询问

    引言 校园网中,有同学遭受永恒之蓝攻击,但是被杀毒软件查下,并知道了攻击者的ip也是校园网.所以我想看一下,这个ip是PC,还是路由器. 在ip视角,路由器和pc没什么差别. 实现 首先是构造arp报 ...

  2. ARP协议、路由器详细工作原理

    ARP原理分析 第一次通信时,有对方IP地址但是没有目标MAC地址,该PC就会在网络层启动ARP协议生成一个ARP报文"我叫1.1,我的MAC是AA;谁是1.3,你的MAC是多少?" ...

  3. IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  4. (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  5. ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者

    [故障原理]  要了解故障原理,我们先来了解一下ARP协议.  在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和M ...

  6. arp:地址解析协议(Address Resolution Protocol)(来自维基百科)

    地址解析协议(Address Resolution Protocol),其基本功能为通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在I ...

  7. 网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  8. TCP/IP协议——ARP详解

    本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第 ...

  9. <TCP/IP>地址解析协议ARP

    从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址.物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的 在传统的IPv4网络中,一台A主机要 ...

随机推荐

  1. [修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG

    问题:Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG 适用版本:Delphi 10.1.2 & 10 ...

  2. 调试大叔V2.1.0(2018.12.17)|http/s接口调试、数据分析程序员辅助开发神器

    2018.12.17 - 调试大叔 V2.1.0*升级http通讯协议版本,完美解决Set-Cookie引起的系列问题:*新增Content-Type编码格式参数,支持保存(解决模拟不同网站或手机请求 ...

  3. 嵌入式C语言自我修养 02:Linux 内核驱动中的指定初始化

    2.1 什么是指定初始化 在标准 C 中,当我们定义并初始化一个数组时,常用方法如下: ] = {,,,,,,,,}; 按照这种固定的顺序,我们可以依次给 a[0] 和 a[8] 赋值.因为没有对 a ...

  4. QuestaSim 中文注释乱码

    在QuestaSim按如下顺序打开对应窗口, Tools -> Edit Preferences -> By Name -> Find 输入 encoding搜索对应项,将其valu ...

  5. hbase、zookeeper及hadoop部署

    一 机器192.168.0.203 hd203: hadoop namenode & hbase HMaster192.168.0.204 hd204: hadoop datanode &am ...

  6. mypwd的实现——20155328

    mypwd的实现 分析 pwd不带参数时,实现的是查看并打印当前所在位置的绝对路径功能. 如图: 所以实现mypwd时重点在于循环打印路径名,循环的终止条件是是到了根目录.判定是否到达根目录的标准为: ...

  7. 【SQLSERVER】处理一对多标签的语法糖

    数据库表设计的时候,经常会出现一对多的情况,比如标签.明细之类的. 有时,需要在一个查询中,将每个主体的所有标签在一个字段中展示出来,这个时候就可以用 FOR XML PATH 这个语法轻易的实现. ...

  8. 17-[JavaScript]- 内置对象 Array,String,Date,Math

    1.Array数组 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  9. NOIp2018 pj 滚粗记

    NOIp2018 pj 滚粗记 考前 一个午觉睡完就到了考场 考中 \(T1\)水题切了 \(T2\)水题切了 \(T3\)好像是\(dp\),不会,先跳 \(T4\)像树上莫队一样,然后再欧拉序上面 ...

  10. Codeforces 914 C 数位DP+暴力打表+思维

    题意 给出一个二进制数\(n\),每次操作可以将一个整数\(x\)简化为\(x\)的二进制表示中\(1\)的个数,如果一个数简化为\(1\)所需的最小次数为\(k\),将这个数叫做特殊的数, 问从\( ...