第四章 ARP: 地址解析协议


1. 引言

   数据链路都有自己的寻址机制:这使得数据链路的任何网络层都必须遵从的。当主机把以太网数据帧发送到位于同一局域网的另一台主机时,是依据48bit的以太网地址来确定接口,而不是检查IP地址。

   地址解析为两种不同形式的地址(IP.MAC)形式提供映射。ARP为地址到硬件之间提供动态映射自动完成,而RARP是被那些没有磁盘驱动的系统使用的,需要手工设置

 

2. 一个例子

   任何时候输入ftp name,将安装一下步骤

1.应用程序FTP调用gethostbyname 把主机名 name 转化为32bit 的IP 地址。

2.FTP客户端请求TCP用得到的IP地址建立连接

3. TCP发送一个连接请求到目的ip。

4.本机路由选择: 本地网络,直传;到默认路由转发。

5.一个以太网,发送端主机必须把32bit的ip地址转化为48位的以太网地址,从逻辑地址到对应mac地址进行反应,这就是ARP的功能。

6.ARP发送一份ARP请求(广播)的以太网数据,给以太网上的每个主机。请求包含目的主机的IP地址,“如果你拥有这个ip地址,就回复”。

7.目的主机接收到这份报文后,于是发送一个ARP应答,这个应答包含ip地址和对应的硬件地址

8.收到ARP应答后,使ARP进行请求-应答交换的ip数据报现在就可以传送了。

9.发送IP数据报到目的主机。

 

3. ARP高速缓存

   ARP高速运行的关键是每个主机都有一个ARP高速缓存,存放最近的internet地址到硬件之间的映射纪录,每一项的生产时间为20分钟。 可以通过arp(8)命令来检查ARP高速缓存,-a是显示高速缓存中的所有内容。

 

4. ARP分组格式

   ARP请求和应答分组格式如下

目的mac    源mac  || 帧类型   硬件类型    协议类型   硬件

 6            6   ||  2            2        2         1

地址长度  协议地址长度   源mac  源ip   目的mac  目的ip

              1              6       4     6        4          

1.目的mac为全1的广播。

2.帧类型:表示后面数据的类型 ,对ARP请求/应答为0x0806

3. 硬件类型地址字段表示硬件地址类型,值为1,表示是以太网地址,

4.协议类型: 表示要映射的协议地址类型,值为0x0800表示为ip地址,它的值和包含在IP数据报中的。

硬件类型和协议类型来描述ARP分组中的各个字段:请求分组是询问协议地址(ip)对应的硬件地址(mac).

5.硬件地址长度和协议地址值长度(占一个字节):对应ARP请求和应答分别为6和4.

6.操作字段之处之中类型 ARP请求 1, ARP应答2, RARP请求3, RAPR应答4.

 

对于ARP请求来说,除了目的端硬件地址外,其他字段都要填充,当系统受到一个ARP请求后,将硬件地址填进去,将两个目的端地址分别替换为两个发送端发送端地址,并将操作字段置为2,发送回去。

 

5. ARP举例

   1.一般例子

      为了清楚arp运行过程,执行telnet命令与无效服务器连接。

1.arp – a //查看ARP缓存是否为空

2.telnet   …….//连接无效服务器

在另一个系统运行带e的tcpdump命令。显示硬件地址。

分析:第一行的:0:0:c2:6f:40表示源端主机的MAC,后面的fffffffffff表示目的主机的mac,表示有一个广播,后面跟着一个arp 表示帧类型的值是0x0806是arp请求或应答。

Arp后的60 值得是以太网的帧长度(14 + 28 +18),这个长度不包含4个以太网的帧尾。60 也是最小的值。

第一行输出字段arp whohas 表示作为ARP请求的这个数据帧中目的ip为ser4,发送地址为bsdi地址。

在第二行,尽管ARP请求是广播,但是ARP应答的目的地址确是bsdi,arp应答直接发送到请求主机,而不是广播。

第三行中请求建立TCP段,它的目的硬件地址是目的主机(srv4)。这个后面在详细讲解。

每一行后面的数字表示tcpdum收到分钟的时间,每一行后面的(),表示与上一行的时间差异。

   2对不存在主机的ARP请求

      当主机关机或者不存在,这里假设主机不存在,但是网络号和子网号确是存在的,不存在的是主机号。

      系统进行多次ARP请求,但是间隔的时间不断变长。并且只有收到ARP请求后,TCP报文才会发送。

   3ARP缓存超时设置

      对完整的表项设置为20分钟,不完整的表项(不存在的主机)为3分钟。每次访问都要重设超时值。

 

6.ARP代理

   ARP请求是从一个网络的主机发送到另一个网络的主机,那么连接这两个网络的的路由器就可以回答该请求,这个过程称为ARP代理。欺骗请求发送端,使他误认为路由器是目的主机,而事实是目的主机设计路由器的另一边,路由器的功能是目的主机的代理,把分组从其他主机转发给他。

 

7.免费ARP

主机发送ARP查找自己的IP地址,经常发生在引导期间进行接口配置的时候。 在自己的主机上运行tcpdump –n  命令可以看到自己的IP。

作用:

1.主机可以检查另一个主机是否设置了相同的IP地址,如果主机收到一个回答,会在终端日志上产生错误的消息。

2.如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机的缓存中的就的硬件地址进行更新。

 

8.p 命令

可以用-a来显示缓存中的内容

用-d删除arp缓存中的某一项

用-s增加缓存中的内容,参数需要有主机名和以太网地址,新增加的是永久的,除非后面加上关键字temp

 在命令上末尾加上关键字pub和-s可以使系统起到ARP代理的作用。系统将回答与主机名对应IP地址的ARP请求,并以指定的以太网最为回答。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值