拓扑描述:
设备 | 接口 | 接口ip地址 | 接口mac地址 |
AR1 | GE 0/0/0 | 192.168.1.1 | 00e0-fc17-29eb |
AR2 | GE 0/0/0 | 192.168.1.2 | 00e0-fc64-63fd |
1、查路由表
2、封装
当R1要访问R2时,需要根据TCP/IP模型进行依次的封装过程,应用层产生的原始数据交PDU,经过下层协议的封装,最终通过传输介质,到达R2,每一层封装的信息都不相同。
应用层 | 原始数据---PDU |
传输层 | 封装TCP头部---数据段 |
网络层 | 封装IP头部---数据包 |
数据链路层 | 封装以太帧头部---数据帧 |
物理层 | 转换成二进制进行传输---比特流 |
工作中用来测试网络连通性最常用的就是ICMP协议中的ping命令,当R1 ping R2时,R1需要先进行数据的封装。
数据 | ICMP封装:ICMP头部 | IP封装: SIP:192.168.1.1 DIP:192.168.1.2 | 以太网封装: SMAC:R1MAC DMAC: ? |
当进行二层封装时,R1并不知道R2的MAC地址,无法完成ICMP的完整封装过程,导致无法进行通信。
ARP——地址解析协议,可以根据已知的IP地址,去获取目的MAC地址。工作原理如下:
- R1访问R2,进行数据的封装,封装到二层,发现没有R2的MAC地址。
- R1查看本地ARP缓存表,发现没有R2的IP和MAC地址映射。
- 查看ARP表命令:dis arp all 或者 dis arp | include 192.168.1.2
- R1开始封装ARP,发送ARP request 广播请求
ARP request
Sender IP:192.168.1.1
Sender MAC:00e0-fc17-29eb
Target IP:192.168.1.2
Target MAC :00-00-00-00-00-00
ethernet ||
SMAC:00e0-fc17-29eb
DMAC:FF-FF-FF-FF-FF-FF
- 以太帧的目的MAC地址用全F的广播地址代替,ARP报文中由于不知道R2的MAC地址,所以用全0补充,以比特流的形式发送出去。
- R2收到R1的ARP request报文,进行解封装,去掉物理层头部,查看以太帧的目的MAC地址是广播地址,所以接收,由于type字段是0x0806,所以拆掉二层头部交由ARP协议处理。
- 查看ARP头部信息,发现目的地址是自己的接口地址,并且获取到R1的IP和MAC,给R1回复单播ARP reply,同时将R1的IP和MAC缓存到本地ARP表中。
ARP reply Sender IP:192.168.1.2 Sender MAC:00e0-fc64-63fd Target IP:192.168.1.1 Target MAC :00e0-fc17-29eb | ethernet || SMAC:00e0-fc64-63fd DMAC:00e0-fc17-29eb |
3、查arp
- R1收到R2的ARP reply报文,经过解封装,获取到R2的MAC地址,将R2的MAC缓存到本地ARP表中,然后可以完成ICMP包的封装,进行数据转发。