zoukankan      html  css  js  c++  java
  • 代理ARP

    代理ARP是ARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机作为对另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。

    proxy ARP

    编辑
     

    什么是proxy ARP

    proxy ARP就是通过使用一个主机(通常为router),来作为指定的设备对另一设备的ARP请求作出应答。
     

    proxy ARP是如何工作的

    代理ARP的工作过程如下:
    PC1和PC2虽然属于不同的广播域,但它们处于同一网段中,因此PC1会向PC2发出ARP请求广播包,请求获得PC2的MAC地址。由于路由器不会转发广播包,因此ARP请求只能到达路由器,不能到达PC2。
    当在路由器上启用ARP代理后,路由器会查看ARP请求,发现IP地址172.16.20.100属于它连接的另一个网络,因此路由器用自己的接口MAC地址代替PC2的MAC地址,向PC1发送了一个ARP应答。
    PC1收到ARP应答后,会认为PC2的MAC地址就是00-00-0c-94-36-ab,不会感知到ARP代理的存在。
    在PC1的ARP表中可以能看到如下ARP条目:
    C:>arp -a
    Interface: 172.16.10.100 --- 0x2
    Internet Address Physical Address Type
    172.16.20.100 00-00-0c-94-36-ab dynamic
    在接下来的数据通信中,PC1先将数据发送给路由器,由路由器转发给PC2。
     

    proxy ARP有哪些优点

    最主要的一个优点就是能够在不影响其他router的路由表的情况下在网络上添加一个新的router,这样使得子网的变化对主机是透明的
    proxy ARP应该使用在主机没有配置默认网关或没有任何路由策略的网络上
     

    proxy ARP带来的哪些负面影响

    ⒈增加了某一网段上ARP流量
    ⒉主机需要更大的ARP table来处理IP地址到MAC地址的映射
    ⒊安全问题,比如ARP欺骗(spoofing)
    ⒋不会为不使用ARP来解析地址的网络工作
    ⒌不能够概括和推广网络拓扑
     

    ARP与代理ARP

    编辑
    ARP报文是主机发送出来的,在该主机只知道对方的IP地址且想知道对方的MAC地址时,它以广播的方式将ARP请求发送到自己所在网段的各个节点。当有主机响应时,回发的报文是单播发送。
    代理ARP是当主机知道一个IP地址且它想知道该IP地址对应的MAC地址时,主机广播发送ARP请求,但是如果有同一网段的部分主机在另一个物理网络时(比如两个192.168.1.0的网段,中间夹着一个192.168.2.0的网段),就需要中间设备(路由器)进行代理ARP。因为路由器默认是不转发广播报文的,所以当路由器收到ARP请求时,它将启动代理ARP服务,将发送广播ARP报文。[1] 
     
     
    注意:
    代理ARP只响应那些在自己的路由表里能找到的网段,而不是象我以前想的那样会用自己的mac响应主机所有的arp请求
    本网段内的访问仅仅是简单的广播寻址,不涉及代理ARP,当主机配置默认路由时,该ARP请求直接请求的就是网关的ARP,也不涉及代理ARP,所以所谓的代理ARP相当于网关是有道理的。在配置了网关的设备上是不会出现代理ARP的问题
    端口下来启动arp proxy
     
    实例配置:
    如图,交换机连接两台PC(A和B),最初的时候他们都在一个vlan1内,分别配置IP地址 172.16.1.2/16和172.16.2.2/16 ,均未配置网关,此时可以Ping同对方。
    将A加入vlan1 ,vlanif配IP:172.16.1.1/24
    将B加入vlan2 ,vlanif配IP:172.16.2.1/24
    此时A ping B是ping不通的。
    原因猜想:没有配置网关也没有配置代理ARP,所以ping不通
    当我配置上两个端口的代理ARP,此时发现还是Ping不同。
    此时查看了A的ARP表发现表中记录172.16.2.2的MAC地址是B的地址。
    此时A发出去的包中封装的MAC地址是B的,当vlanif收到该帧时,会丢弃该报文
    将A的ARP表清空(arp –d),此时再pingB,发现可以Ping通了,A中记录的关于172.16.2.2的MAC地址已经是vlanif1 的MAC了
  • 相关阅读:
    jeecg接口开发及权限实现原理
    Jeecg中通过Spring_AOP+注解方式实现日志的管理
    Jeecg踩坑不完全指南
    在jeecg中如何配置多对一和多对多的关系
    一致性哈希算法
    到底什么是哈希Hash?
    如何正确实现 Java 中的 HashCode
    Hash和HashCode深入理解
    关于源码
    MySQL存储过程的创建及调用
  • 原文地址:https://www.cnblogs.com/zhuimengle/p/5936083.html
Copyright © 2011-2022 走看看