ping包过程之arp(地址解析协议) |
您所在的位置:网站首页 › wireshark抓包怎么看ip地址 › ping包过程之arp(地址解析协议) |
0,怎么引出arp地址解析协议的呢? 在硬件层次上进行的数据帧交换必须有正确的接口地址(既是MAC地址)。但是, T C P / I P有自己的地址: 32 bit的I P地址。知道主机的 I P地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址(MAC地址)才能发送数据。 A R P的功能是在32 bit的I P地址和采用不同网络技术的硬件地址之间提供动态映射,既是通过相应的IP地址找到相应的MAC地址。 1,场景描述: 设备R1: ip 10.10.10.1 [Huawei] ip address 10.10.10.1 255.255.255.0 [Huawei]display arp IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE VLAN/CEVLAN PVC ------------------------------------------------------------------------------ 10.10.10.1 5489-98c2-7867 I - Eth0/0/0 10.10.10.2 5489-9811-5cbb 9 D-0 Eth0/0/0 ------------------------------------------------------------------------------ Total:2 Dynamic:1 Static:0 Interface:1 设备R2: ip 10.10.10.2 system-view [Huawei] ip address 10.10.10.2 255.255.255.0 [Huawei] ping 10.10.10.1 PING 10.10.10.1: 56 data bytes, press CTRL_C to break Reply from 10.10.10.1: bytes=56 Sequence=1 ttl=255 time=1 ms Reply from 10.10.10.1: bytes=56 Sequence=2 ttl=255 time=1 ms Reply from 10.10.10.1: bytes=56 Sequence=3 ttl=255 time=1 ms Reply from 10.10.10.1: bytes=56 Sequence=4 ttl=255 time=1 ms Reply from 10.10.10.1: bytes=56 Sequence=5 ttl=255 time=20 ms --- 10.10.10.1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 1/4/20 ms [Huawei]display arp IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE VLAN/CEVLAN PVC ------------------------------------------------------------------------------ 10.10.10.2 5489-9811-5cbb I - Eth0/0/0 10.10.10.1 5489-98c2-7867 7 D-0 Eth0/0/0 ------------------------------------------------------------------------------ Total:2 Dynamic:1 Static:0 Interface:1 2,ARP的分组格式结构 两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的值为0 x 0 8 0 6 操作字段指出四种操作类型,它们是 A R P请求(值为1)、 A R P应答(值为 2)、 R A R P请求(值为3)和R A R P应答(值为4) arp报文数据结构: 定义以太网arp字段 typedef struct arphdr { //arp首部 unsigned short arp_hrd; /* format of hardware address */ unsigned short arp_pro; /* format of protocol address */ unsigned char arp_hln; /* length of hardware address */ unsigned char arp_pln; /* length of protocol address */ unsigned short arp_op; /* ARP/RARP operation */ unsigned char arp_sha[6]; /* sender hardware address */ unsigned long arp_spa; /* sender protocol address */ unsigned char arp_tha[6]; /* target hardware address */ unsigned long arp_tpa; /* target protocol address */ }ARPHDR;3,四种常用的表简介: (1)mac地址表::简单的说,MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系(见下图),代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文的目的MAC地址去根据MAC地址表转发数据。 Port Mac-address Port-vlan type Ethernet0/0/0(10.10.10.1) 00-1a-b6-33-44-01 无 dynamic Ethernet0/0/0(10.10.10.2) 10-26-e6-bc-10-78 无 dynamic (2)ARP表:简单的说,ARP表就是路由器等网络设备记录IP地址和MAC地址对应关系的表项。 广播报文:目的地址全1(FF-FF-FF-FF-FF-FF). 组播报文:目的地址第六字节的最低位为1(X1-XX-XX-XX-XX-XX). 单播报文:除了上面两种之外 的报文. Mac地址学习:把未知mac地址转为arp表里面的已知地址。 Mac地址老化: Port Mac-address ip-adressPort-vlan type Ethernet0/0/0(10.10.10.1) 00-1a-b6-33-44-01 10.10.10.1无 dynamic Ethernet0/0/0(10.10.10.2) 10-26-e6-bc-10-78 10.10.10.2无 dynamic (3), 路由表(暂无,后续介绍)。 4,报文分析: 流程分析: 设备1: ip 10.10.10.1 设备2: ip 10.10.10.2 当设备1 ping 设备2时,设备1发送arp request 报文,而且我们看到设备1发送的是广播报文,目的地址为FF-FF-FF-FF-FF-FF,此时我们给所有的用户发送报文(既是泛洪),当ip不为10.10.10.2的设备收到该报文时,因为发现目标ip不是发给自己的,所以他会丢掉该报文,而ip为10.10.10.2的设备2收到该报文时,发现对端是给自己发送报文的,他会将自己(设备2)和设备1的mac地址和ip保存在arp表项中(该过程称为mac地址学习),并且此时设备2同时会发送arp reply报文他此时已经知道了对端的ip+mac地址(通过arp表)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |