龙空技术网

ARP基本原理+代理arp实验

6IE闫辉讲网络 256

前言:

目前我们对“代理arp是什么”都比较珍视,姐妹们都想要分析一些“代理arp是什么”的相关文章。那么小编在网摘上搜集了一些对于“代理arp是什么””的相关资讯,希望各位老铁们能喜欢,兄弟们快快来了解一下吧!

01

ARP 是什么?

ARP【Address Resolution Protocol 】 ,即地址解析协议,负责把目的主机的IP 地址解析成目的MAC地址。当发送者 知道目的主机的IP地址之后, 就可以使用这个IP地址去解析对方的MAC地址。

为什么需要ARP?

在发送者给其他的网络设备发送数据的时候, 是以数据帧的形式发送的,数据帧被网卡解析成电信号或者光信号传递到对端。

数据帧是由源MAC地址和目的MAC地址组成的,如果发送者只知道目的主机的IP地址, 不知道目的主机的MAC地址, 就不能把这个数据包转化成数据帧发走,而ARP 协议就是负责地址解析的, 使用目的主机IP地址来解析对方的MAC地址。

如果发送者和接收者在同一个网络内,arp解析的就是接收者的MAC地址。

如果发送者和接收者不在同一个网络内, arp解析的就是这个网络内网关的接口MAC地址。

02

arp 工作流程

在网络设备中会存在一个ARP缓存表,这个缓存表记录着这个IP 地址和MAC地址的映射关系,可以在设备终端使用arp -a 来查看本地的arp 缓存表的缓存信息。

arp 协议的作用, 就是形成这个arp缓存表,那么,交换机是如何形成这个缓存表的呢?

设备需要解析一个IP地址时, 会发出一个arp 请求报文的广播帧,2层报文中目的MAC地址为全F ,目的设备在收到ARP请求报文之后,会向源设备发送一个单播帧,该单播帧是一个ARP的应答报文,该应答报文中包含了目的设备的MAC地址。

下面配图分析一下:

同一个网络内的ARP请求和应答过程如下:

如图:PC 1 只知道PC3 的IP地址是10.1.1.3, 但是不知道PC3的MAC, 现在想获取PC3 的MAC地址:

1、发送者PC1:PC 1 会发送一个广播帧, 源IP和源MAC是PC1, 目的IP是PC3,目的MAC为FF-FF-FF-FF-FF-FF, 这个帧是广播发送的, 该网络内所有主机都会接收到,这个报文的载荷内容是一个ARP请求报文,意思是我的MAC地址是MAC1,我想给10.1.1.3发送数据, 谁是10.1.1.3, 请回复一下我。

2、非目的主机PC2:由于这个广播帧网络内主机都可以收到,PC2 收到这个帧, 提取IP地址, 发现, 它要找的IP地址是10.1.1.3, 我的IP地址是10.1.1.2, 这个数据包不是发给我的, 丢弃, 不回复。

3、 目的主机PC3:PC 3 收到这个广播数据帧后,拆开数据帧, 提取IP地址, 发现和我本地IP地址是一样的, 这个数据包就是发给我的, 然后再拆, 提取报文后, 了解到对方要请求我自己的MAC地址,然后就打包一个ARP的应答报文,源IP和源MAC都是自己的,目的IP和目的MAC是对方的,单播的发送给接收者,这样PC1 就有了PC3的MAC地址。

03

代理ARP

如果这两个主机不在同一个网络内, 被3层设备隔离了, 怎么通信呢?

目的IP地址与本机的IP地址位于不同网络, 由于主机A没有配置网关,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。

在路由器上启用代理ARP功能,就可以解决这个问题。

启用代理ARP后, 主机A解析网关MAC 地址过程:

1、主机A发送arp 请求网关MAC: 在电脑主机要先配置网关地址,主机A给主机B发送数据,发现是不同网段的数据通信,而我本地是没有这个关于B的ARP映射关系的,就会发送一个arp请求报文,解析网关MAC地址,源IP和源MAC地址都是主机A,目的IP是网关IP地址,目的MAC地址是全0。

2、网关回复自己的MAC 地址:网关收到这个arp请求报文后, 检查目的主机是否可达,可达,就会把自己的MAC地址以arp reply报文回复给主机A,目的主机不可达就不回复。

3:主机A 给主机B 发送数据:主机A收到这个arp应答报文就会把网关MAC和网关的IP地址添加进arp表,A要给主机B发送数据,需要先解析B的MAC地址,发送一个arp请求报文,源IP 和源MAC是A的信息,目的IP地址是B的IP地址,目的MAC是网关MAC。

4: 网关收到数据包后的处理:网关收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request。主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。

04

课后作业:

实验一:配置静态ARP

命令:[Huawei]arp static 10.1.1.4 AA-BB-CC

查看结果:display arp all

实验二 : 在华为交换机S5700配置 代理arp

实验环境:S5700交换机上创建VLAN10 和VLAN20, 把这两个PC放到不同的VLAN, 然后使用vlanif下配置IP 和代理arp功能

拓扑如下:

[SW1]display current-configuration

#

sysname SW1

#

vlan batch 10 20 创建VLAN

interface Vlanif10 进入这个VLAN的网关接口

ip address 10.1.1.254 255.255.255.0

#

interface Vlanif20

ip address 10.1.2.254 255.255.255.0

arp-proxy enable

#

interface GigabitEthernet0/0/1

port link-type access

port default vlan 10

#

interface GigabitEthernet0/0/2

port link-type access

port default vlan 20

查看效果

1, 先不开启arp代理, PC1 ping PC2 , 发现是不通的

2, 分别进入这两个vlanif 接口, 开启代理arp功能

3, 检查效果, 发现 PC 1 和PC2 可以通信了,

4, 接下来进入vlnif 10, 关闭代理arp功能,

在PC1 和PC2 上使用 arp -d 来清理本地缓存的ARP表,检查连通性。

可以发现,关闭arp代理后, 主机就不可以解析到对方的MAC地址表,也就不能完成通信,

可以多次验证检验效果。

以上就是今天分享的内容。

END

标签: #代理arp是什么