信息安全课程4:ARP安全
均为个人笔记,欢迎纠错
参考链接
同一网段,不同网段的通信流程
主机 A 想与主机 B 通信,但只知道主机 B 的 IP 地址,不知道其 MAC 地址。
主机 A 在填写目的 IP 地址时,用子网掩码判断主机 B 和自己是否在同一网段;
若在同一网段,
主机 A 广播主机 B 的 IP 地址的 ARP 请求,本局域网内所有的主机都能收到这个广播包;
只有主机 B 回复此包,携带上自己的 MAC 地址;
主机 A 将 B 的 IP 地址和 MAC 地址的对应关系添加到自己的 ARP 缓存中;
主机 A 继续构造与主机 B 通信的数据包。
若不再同一网段,
主机 A 应当将与主机 B 通信的数据包发送给自己的网关,因此广播对网关的 ARP 请求;
网关回复此包,携带上自己的 MAC 地址;
主机 A 继续构造与主机 B 通信的数据包,目标 MAC 地址写网关的 MAC 地址;
主机 A 的网关收到数据包,发现是发给自己的,就开始解包,解开之后,发现是给另一个网段的主机发送的,
此时如果网关本身就是路由器则直接把数据包发送给下一跳路由器,
如果网关是普通的 PC,则将其发送给路由器,由路由器发送给下一跳路由器,
目标 MAC 地址写下一跳路由器的 MAC 地址;
主机 B 的路由器收到数据包后,将其发送给主机 B 所在网段的网关;
主机 B 的网关解包之后发现不是给自己的,而是给本网段内的主机 B,再发送给主机 B。
ARP 缓存
便于下次访问相同的ip,无需再次进行ARP转换
缓存条目有有效期,因为 mac 和 ip 的对应不是一成不变的
更新规则
若收到应答包,
目的 mac 地址是硬件广播地址或是者本机网卡地址,
无论目的 IP 是不是本机网卡 IP,
只要缓存表中已经存在对应的 ARP 条目,且与收到的应答条目不一致,
那么就要更新该条目
若缓存表中没有存在该条目,那么则忽略该应答
netwox
netwox是一个发包工具,可以构造各种类型和内容的数据包
可以发出多大数百种不同的包