注:使用华为设备

三种类型的ARP:

路由式arp:

使用场景:
路由器或者交换机三层转发的情况下

原理:
也就是普通的arp代理,当PC1没有网关时去ping不是同一网段的设备(直接封装目的IP的请求报文),到达了最近的路由器时,因为为广播帧,路由器会拆包查看,一般情况下请求的IP地址不是自己的,不会处理,但是开启了的路由的arp代理后,如果发现目的IP地址是自己有相应的路由表,并且出接口不是原来的接口,这时就会按照路由表项路由表的出接口请求ARP地址(如果是直连,直接请求,如果不是直连,请求下一跳),然后会将自己的ARP地址发送个请求端,让对方来找自己就行了,相当于自己就是一个中间人,帮助别人转发。

命令:在相应接收的接口下开启:arp-proxy enable //三层交换机是在对应的vlanif接口下使用

Vlan内ARP:

使用场景:
Vlan内的arp代理是在隔离端口处使用的,仅仅对二层隔离有效果(三层的端口隔离没有效果),双方设备处于同一个网段,在同一个vlan,如果设置了隔离的端口,就不能正常的互相通信了,但是我们在S1上的对应vlan上开启了arp代理,仍然PC1和PC2可以通信。

原理:
PC1发送arp报文请求PC2的信息,S1不会将从与S1相连的接口收到的信息通过二层转发从与PC2相连的接口发送出去。
如果开启了arp代理,当S1收到了PC1发送给PC2的信息时同样不会进行二层的发送,而是SW检查打上的tag和请求的IP地址从而将报文从允许此tag的接口上发送出去(不包括原来的接口),这样就是通过S1向PC2请求MAC地址。PC2进行arp报文回复,S1收到回复报文后将自己接口的MAC地址通过查找MAC地址表从与PC1相连的接口发送出去,完成了ARP代理,以后PC1其实都是将发送给PC2的报文发送给了S1进行代处理S1再进行转发,避免了两个接口间无法进行正常通信。

命令:
interface Vlanif1 //进入双方的都在的vlan中
ip address 10.1.1.254 255.255.255.0 //arp代理是三层技术,需要配置ip地址
arp-proxy inner-sub-vlan-proxy enable //开启区域内的arp代代理

Vlan间ARP:

使用场景:
Vlan间arp代理是使用在super vlan中的,也就是同一网段,不同vlan间的arp代理

原理:
因为目的地址在同一网段,PC发送arp请求信息的时候是直接请求对面的MAC地址的,并且会打上自己网段的tag,这时候super vlan会检测sub vlan间的通信(正常情况下只有本vlan的三层接口才会检测),查看arp请求报文的IP地址,正常情况下发现对方的IP地址不是自己就不做任何操作,所以arp请求报文就只能在原来的vlan泛洪,但是目标主机确是在另外一个vlan,所以无法正常请求到。当开启了arp区域间代理的时候,super vlan发现了arp请求报文,并且请求的地址和自己是同一网段的主机IP,它会知道这是他sub vlan的报文,但是到底是哪个sub vlan并不清楚,所以打上其余sub vlan的tag从可以通过对应tag的出接口发送出去,这样当arp请求报文回复以后,带有的tag就是对方所在sub vlan的tag,这样交换机就获取的了对方的MAC地址,现在就只需要将自己的MAC地址封装进入arp回复消息发送给请求端即可,回复的具体物理端口需要查看MAC地址表进行,由于PC请求的时候SW已经在相应的接口上学习到了,现在只需要从这个接口发送出去即可。

命令:
interface Vlanif1 //进入双方的都在的vlan中
ip address 10.1.1.254 255.255.255.0 //arp代理是三层计算,需要配置ip地址
arp-proxy inter-sub-vlan-proxy enable //开启区域间的arp代理

总结:

相同点:
3种arp代理都是都是将自己接口的MAC地址发送回复给对方(对方请求的都不是自己的MAC)做一个善意的欺骗,帮助别人进行通信过程。并且既然要进行arp的代理,就必须解封装到网络层,然后被识别,因为arp请求报文都是广播的报文,肯定是能够被对应的三层接口进行接收的(聚合vlan中因为super vlan和sub vlan进行了相互的关联,所以super vlan的接口也会处理sub vlan发送来的arp报文)。

不同点:
应用的环境不同中,路由arp的环境是一个路由器或者三层交换机连接了两个不同的网段,两台互相通信的设备在这两个不同的网段,并且需要请求的设备没有设置网关,这时候请求的设备会直接对方的MAC地址,当开启了ARP代理后接受的接口会帮助处理。

Vlan内路由适用于端口二层隔离的环境,这个在双方设备在同一个vlan中,只不过开启了二层隔离,当在对应vlan的接口上创建了IP地址后,配置了arp代理,arp请求报文虽然不能直接发送到对方,但是相应的vlanif接口会代为处理,发送arp请求报文发往其他允许其vlan tag通过的物理接口,得到回复后,将自己的MAC地址返回给原请求设备。以后进行的二层通信,都只需要将报文发送给S1,因为是S1vlanif接口的MAC地址,关于解封装到网络层查看,发现目的IP地址不是自己,然后查路由表,转发到相应的接口即可。

Vlan间arp代理使用在聚合vlan中,也就是在super vlan的接口上进行配置,super vlan关联sub vlan以后会处理sub vlan的信息,例如arp广播报文,虽然是sub vlan接收到的,但是也会转发到super vlan的接口下查看,这个时候如果开启了arp代理,super vlan会向其sub vlan关联的接口发送对应的arp请求消息代理请求。

参考资料:华为培训教材

华为ARP代理的三种方式相关推荐

  1. nginx反向代理的三种方式

    文章目录 根据域名代理 根据端口代理 根据路径path代理 总结 根据域名代理 server {listen 1111;server_name tomcat.local;proxy_set_heade ...

  2. ubuntu设置代理 的三种方式

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程 转载自:http://www.cnblogs.com/lexus/archive/2012/02/20 ...

  3. php简单记账本_代理记账的三种方式

    代理记账是指将本企业的会计核算.记账.报税等一系列的会计工作全部委托给专业记账公司完成,本企业只设立出纳人员,负责日常货币收支业务和财产保管等工作.一般来说 代理记账 业务主要分为三个方面分别是专项代 ...

  4. nginx反向代理以及nginx反向代理三种方式

    nginx反向代理的三种模式分别是: 一.正向代理(Forward Proxy) 二.反向代理(reverse proxy) 三.透明代理 Nginx性能很高的,尤其是作为一个代理服务器,因为它用的是 ...

  5. linux+Qt 下利用D-Bus进行进程间高效通信的三种方式

    linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...

  6. WiFi攻击的三种方式

    2019独角兽企业重金招聘Python工程师标准>>> 导读 WiFi的安全问题已经引起了不少的使用者重视,甚至已经出现草木皆兵的现象.那么黑客到底是如何做到绕过身份验证来获取WiF ...

  7. JavaScript--------------------jQuery中.bind() .live() .delegate() .on()的区别 和 三种方式写光棒事件 动画...

    bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数. $("a").bind("click",function(){alert( ...

  8. Django中Model继承的三种方式

    Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...

  9. Spring注解依赖注入的三种方式的优缺点以及优先选择

    当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 代码示例: Con ...

  10. $.ajax 加了headers报错_Springboot解决Ajax跨域的三种方式

    这篇文章不华丽,但比较实用,能解决不少大家实际业务中的问题.大家可以收藏起来,以备用时之需! 1.同源策略 1.1 含义 ajax出现请求跨域错误问题,主要原因就是因为浏览器的"同源策略&q ...

最新文章

  1. 一个基于长数据转化为宽数据的小软件---data_tran.exe
  2. SIGIR 2020开幕在即,智源学者论文收录占10%
  3. SpringBoot数据缓存
  4. 计算机网络的OSI七层模型
  5. 浅析epoll – epoll函数深入讲解
  6. Java微服务(三)【本地maven配置与环境变量】(手把手编写,超级详细)
  7. iOS中SQLite持久化存储第三方库FMDB
  8. Shell学习之结合正则表达式与通配符的使用(五)
  9. windows mysql5.7 忘记密码_Windows下Mysql5.7忘记root密码的解决方法
  10. 如何在柱状图中点连线_如何快速掌握MSA
  11. 如何用一行代码画个迷宫?
  12. Mac 使用Charles进行手机https抓包(超详细教程)
  13. 设置Chrome为兼容模式
  14. 如何控制局域网网速_Windows系统如何远程访问控制MAC系统(局域网)
  15. 慧之声科技- 程序员的爱情故事
  16. LaTeX 排版(二)——排版数学公式
  17. OkHttp自定义拦截器实现内外服务器多地址配置且请求失败自动切换地址
  18. 80后程序员感慨中年危机,Java程序员最新职业规划,面试篇
  19. MCU--低功耗处理流程
  20. hmmlearn源代码

热门文章

  1. python科学计算之Pandas使用(三)
  2. 深度之眼_Week2 编程作业1_梯度下降
  3. 百面机器学习—6.PCA与LDA要点总结
  4. python—如何删除(保留)字符串中除字母、数字外的其他元素
  5. 一个小白对卷积神经网络的理解
  6. 一步步教你开发鸿蒙系统应用,So Easy
  7. 直击前沿技术:云原生应用低代码开发平台实践
  8. MindManager中读图工具的使用
  9. 读“游戏之旅——我的编程感悟”:难得的休闲读物
  10. 深度学习:batch_size和学习率 及如何调整