TCP/IP之二:ARP与RARP

ARP协议实现IP地址到物理地址的映射;RARP实现物理地址到IP地址的映射。
ARP/RARP的帧格式如下(图中的数字表示各个域所占的字节数):
以太网目的地址6 以太网源地址6 协议类型2 硬件类型2 协议类型2 硬件地址长度1 协议地址长度1 op2 发送端以太网地址6 发送端IP地址4 目的以太网地址6 目的IP地址4
说明:前面三个字段是以太网帧结构的必备部分,在网络接口层(http://blog.csdn.net/ericming200409/archive/2011/04/13/6321872.aspx)已经详细说明,这里不再赘述。 硬件类型说明硬件地址的类型,协议类型说明协议地址的类型,常见的情况是硬件类型指明硬件地址是以太网地址,协议类型指明协议地址是IP地址;OP字段说明数据包类型,比如arp请求,arp应答,rarp请求,rarp应答;其余各字段相信就不需要再过多解释了。
(1) ARP和RARP帧不同的是第三字段。
(2) 除去前面的三个字段,arp帧剩下的各部分加起来只有28字节,而以太网帧要求数据域最小是46字节,所以所有的arp帧都是需要填充的,rarp也是如此。IP数据包有时也会小于46字节,同样需要填充,正是因为网络接口层可能会对IP数据包进行填充,IP数据包中才需要总长度字段,这点到IP层时我仍会特别指出。
ARP高速缓冲区:
为了实现IP到物理地址的快速转换,ARP会维护一个缓冲区,缓冲区里面存放一些已知IP地址和物理地址的对应关系,这样主机就不用每次发送数据包时都先发送ARP请求。通过arp命令我们可以查看缓冲区内容,也可以往缓冲区中增加条目,删除条目等。另外一种查看ARP高速缓冲区的方式是通过/proc/net/arp文件,该文件是ARP高速缓冲区的镜像。
ARP攻击:
ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅”。作为网吧路由器的厂家,对防范ARP欺骗不得已做了不少份内、份外的工作。一、在宽带路由器中把所有PC的IP-MAC输入到一个静态表中,这叫路由器IP-MAC绑定。二、力劝网管员在内网所有PC上设置网关的静态ARP信息,这叫PC机IP-MAC绑定。一般厂家要求两个工作都要做,称其为IP-MAC双向绑定。
免费ARP:
免费ARP指的是主机询问自己的物理地址,它有两个作用:一是可以发现网络上是否有主机和自己有一样的IP地址;二是可以通知网络中别的主机对自己的物理地址进行更新,这种情况发生在当主机换掉网卡重新启动的时候,物理地址发生了改变,可以通过免费ARP通知别的主机自己的物理地址改变了,免费ARP能够发挥这个作用是基于这样一个事实---任何主机接收到ARP请求,如果发送端在自己的ARP高速缓存中,都需要根据这个ARP请求对高速缓存中的对应项进行更新。
tcpdump命令:
tcpdump命令是功能及其强大的网络抓包命令,通过它可以查看网络中的数据传输情况,其具体使用方法可参考manpage或者blog:http://blog.csdn.net/ericming200409/archive/2011/04/14/6324446.aspx
有趣的实例:
我的主机IP是:10.0.2.15(虚拟机), 默认网关是:10.0.2.2, 通过netstat -r查看路由表输出如下:
1: 内核 IP 路由表
2: Destination Gateway Genmask Flags MSS Window irtt Iface
3: 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
4: link-local * 255.255.0.0 U 0 0 0 eth0
5: default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
Tags: 

延伸阅读

最新评论

发表评论