论文部分内容阅读
摘 要:目前以太网中的通信协议,通常都是基于TCP/IP协议的,ARP协议是TCP/IP协议族中非常重要的协议之一,也是争议最大的网络协议之一。
关键词:ARP;计算机通信;ARP欺骗
中图分类号:TP393.18
1 ARP协议及计算机网络通信过程的相关介绍
1.1 ARP协议的概述。ARP协议是“Address Resolution Protocol”(地址解析协议)。在计算机网络的通信中,任意两台计算机要完成通信,都要把数据按照TCP/IP协议从应用层到网络接口层逐一封装。只有完成封装的数据才能被源计算机从网络接口卡中发送出去。数据在封装的过程中,必须要把逻辑地址、物理地址等信息封装到数据中。通过逻辑地址获得物理地址的协议就是ARP协议。
1.2 ARP协议的相关术语。IP地址:TCP/IP协议簇中网际层的地址,通常也称逻辑地址,此层主要完成路由选择功能,IP地址就是用于路由选择时的唯一标识。MAC地址(Media Access Control address):通常也称物理地址,通常是由网卡生产厂家烧入网卡的闪存芯片,它存储的是传输数据时真正赖以标识发送数据的源计算机的地址和接收数据的目的主机的地址,是识别以太网节点的唯一标识。也就是说,在网络底层的传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。
1.3 计算机网络通信过程及ARP协议的作用。在此网络中,客户机(PC1)在IE浏览器中输入网址:“http://www.******.com:8080”。确认后的通信过程如下:客户机(PC1)就会产生一个域名解析请求包发送给“首选DNS(PC2)”,当DNS服务器(PC2)接收到这个请求包后会把域名对应的IP地址回应给客户机(PC1)。客户机(PC1)利用获得的IP地址建立连接,在应用层的数据前封装一个传输层头部,其中传输层头部信息中,最重要的两个字段是目的端口号和源端口号,目的端口号是从网址中提取出来的,而源端口号则是从1024到65535之间随机产生。
把封装了传输层头部信息的数据,再封装IP包头。其中在网际层头部信息中,最重要的两个字段是目的IP地址和源IP地址,目的IP地址在DNS回应包中获得,源IP地址则是自己的IP地址。
从TCP/IP协议的网际层到网络接口层的封装,则要加上目的MAC地址和源MAC地址。如果数据的目的網络号与数据包所在的网络号不同时,数据包应该发送给自己网络内的网关(在本例中,这个数据要发送给路由器的FA1/0端口)。(1)此时计算机会产生一个ARP请求帧(如下图),并且我们可以看出ARP请求包是一个广播帧(“FFFF-FFFF-FFFF”是广播帧),当交换机接收到此帧时,会作出泛洪(除接收数据的端口外,向所有端口发出这个广播帧)处理,此时在同一个广播域内的计算机都会接收到这个ARP请求帧,所有计算机都会查看自己的IP地址是不是192.168.1.1;(2)路由器的FA1/0端口(与客户机在同一个广播域内)也会收到这个广播帧,并会产生一个ARP回应帧,ARP回应帧是以单播的方式通告PC1自己的MAC地址(ARP协议回应帧格式如下),为了减少ARP协议广播的次数,操作系统建立了一个ARP表,当客户机(PC1)获得一个ARP回应帧(MAC地址)后,主机就会把MAC地址与对应的IP地址暂时存入高速缓存(ARP表)。通过ARP协议客户机(PC1)获得了网关FA1/0端口的MAC地址,此时客户机(client)就可以完成封装。
此时,从TCP/IP的应用层-传输层-网际层-网络接口层都已经完成了封装。封装好的数据会传递给网卡驱动程序,由网卡驱动程序产生脉冲传给网络链路。通过网络链路,网关(路由器FA1/0)接收到这个数据帧后,会查看数据帧中的目的MAC地址与自己FA1/0的MAC地址是否相同。确认相同后,路由器继续查看网际层的目的IP地址,并且与路由器的路由条目逐一比较,找到这个数据包的出口(FastEthernet1/1)。
路由器在发送此数据包前,还要把数据包的网络接口层头部信息重新封装。当数据包的目的网络号与数据包所在的网络号相同时,数据包就可以直接发送给目的主机(WEB SERVER),所以路由器直接发送一个ARP请求包,得到WEB SERVER的 MAC地址,完成数据的封装(如图1)。
封装好的数据帧才能正常的被路由器从FA1/1端口发送出去,然后通过网络链路,WEB SERVER接收到这个数据帧,并且一一解封装,最后这个请求被处理,处理好的数据还会发出回应包。回应包的通信过程与请求包的通信过程相同。当客户机接收到回应包后,此时这次的数据通信才结束。
1.4 ARP协议在实际运用中存在的问题。(1)ARP协议是以广播的方式发送请求包,这个广播包会传遍整个广播域内的主机,广播域;(2)免费ARP(gratuitous ARP),如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。如果主机收到某个IP地址的ARP请求,而且它已经在接收者的高速缓存中,那么就要用ARP请求中的发送端硬件地址。对高速缓存中相应的内容进行更新。[1]
2 分析校园网内的ARP欺骗及解决方法
2.1 网络现状。某校现有三幢楼,内网中有网上办公系统,每幢楼中都有很多计算机需要在校园内网上办公,目前学校内网的所有计算机都在同一个广播域中。时常出现无法连接互联网、网速慢、计算机频繁中毒、打开网页时时常会弹出很多广告等现象。
2.2 网络分析。当学校内网中有一台计算机运行了病毒程序(如:网络执法官),那么很有可能整个内网计算机无法上网,或者所有内网用户的个人信息正在被别人分析。如果计算机(PC1)每秒钟发出10个ARP REPLY(如图2)。
这个ARP回应帧是一个广播帧,所以在整个学校的内网都会收到这个数据帧,收到这个回应帧的计算机都会修改自己ARP表中的相关信息。在这个数据帧中,IP:192.168.1.1的MAC地址是bb-bb-bb-bb-bb-bb。但是真正的网关(192.168.1.1)的MAC地址:aa-aa-aa-aa-aa-aa。
如果这时网络中有计算机(PC2)想上互联网打开新浪(IP:122.193.0.175)网页,产生的请求包格式(如图3)。
封装好的数据帧,会从网卡中传送出来,通过网络传输,MAC地址为BBBB-BBBB-BBBB的计算机(PC1)会收到这个数据帧,并会根据自己(PC1)的路由表(可使用route print命令查看),把数据包重新封装起来,再次发送出去,如果这里的路由表、ARP表都正确,那么这个数据包就可以正常的进入真正的网关,然后被真正的网关发送出去,其实这个过程对于内网的用户来说是透明的,还是可以正常的上网,但是内网中所有发往互联网的数据都会被计算机(PC1)获取,包括用户传给服务器的密码等重要个人信息。
2.3 解决方案。(1)划分VLAN;(2)保护端口;(3)在网关上做PPPoE服务器;(4)IPv6。综合这四点分析它们各自的优点与缺点,其中考虑到划分VLAN、保护端口这两个技术都需要网络设备的支持。IPv6协议需要所有操作系统的支持,但是IPv6技术却是最佳的解决方案。PPPoE服务器只需要找一台淘汰的计算机(奔腾Ⅲ以上)运行路由软件(RouterOS)就可实现,让整个校园网工作在点到点的网络模式下,因为在点到点的网络中是不需要ARP协议的,但是在这样的网络里组播技术是很难实现的。
参考文献:
[1]W.Richard Stevens.TCP/IP详解 卷1:协议[M].北京:机械工业出版社,2007.
作者简介:白月英(1976.11-),女,呼和浩特人,2007年毕业于内蒙古师范大学教育学专业,同济大学软件学院2013级软件工程专业硕士研究生,高级教师,研究方向:计算机网络、软件工程。
作者单位:同济大学 软件学院,上海 200092;内蒙古农业大学附属中学,呼和浩特 010010
关键词:ARP;计算机通信;ARP欺骗
中图分类号:TP393.18
1 ARP协议及计算机网络通信过程的相关介绍
1.1 ARP协议的概述。ARP协议是“Address Resolution Protocol”(地址解析协议)。在计算机网络的通信中,任意两台计算机要完成通信,都要把数据按照TCP/IP协议从应用层到网络接口层逐一封装。只有完成封装的数据才能被源计算机从网络接口卡中发送出去。数据在封装的过程中,必须要把逻辑地址、物理地址等信息封装到数据中。通过逻辑地址获得物理地址的协议就是ARP协议。
1.2 ARP协议的相关术语。IP地址:TCP/IP协议簇中网际层的地址,通常也称逻辑地址,此层主要完成路由选择功能,IP地址就是用于路由选择时的唯一标识。MAC地址(Media Access Control address):通常也称物理地址,通常是由网卡生产厂家烧入网卡的闪存芯片,它存储的是传输数据时真正赖以标识发送数据的源计算机的地址和接收数据的目的主机的地址,是识别以太网节点的唯一标识。也就是说,在网络底层的传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。
1.3 计算机网络通信过程及ARP协议的作用。在此网络中,客户机(PC1)在IE浏览器中输入网址:“http://www.******.com:8080”。确认后的通信过程如下:客户机(PC1)就会产生一个域名解析请求包发送给“首选DNS(PC2)”,当DNS服务器(PC2)接收到这个请求包后会把域名对应的IP地址回应给客户机(PC1)。客户机(PC1)利用获得的IP地址建立连接,在应用层的数据前封装一个传输层头部,其中传输层头部信息中,最重要的两个字段是目的端口号和源端口号,目的端口号是从网址中提取出来的,而源端口号则是从1024到65535之间随机产生。
把封装了传输层头部信息的数据,再封装IP包头。其中在网际层头部信息中,最重要的两个字段是目的IP地址和源IP地址,目的IP地址在DNS回应包中获得,源IP地址则是自己的IP地址。
从TCP/IP协议的网际层到网络接口层的封装,则要加上目的MAC地址和源MAC地址。如果数据的目的網络号与数据包所在的网络号不同时,数据包应该发送给自己网络内的网关(在本例中,这个数据要发送给路由器的FA1/0端口)。(1)此时计算机会产生一个ARP请求帧(如下图),并且我们可以看出ARP请求包是一个广播帧(“FFFF-FFFF-FFFF”是广播帧),当交换机接收到此帧时,会作出泛洪(除接收数据的端口外,向所有端口发出这个广播帧)处理,此时在同一个广播域内的计算机都会接收到这个ARP请求帧,所有计算机都会查看自己的IP地址是不是192.168.1.1;(2)路由器的FA1/0端口(与客户机在同一个广播域内)也会收到这个广播帧,并会产生一个ARP回应帧,ARP回应帧是以单播的方式通告PC1自己的MAC地址(ARP协议回应帧格式如下),为了减少ARP协议广播的次数,操作系统建立了一个ARP表,当客户机(PC1)获得一个ARP回应帧(MAC地址)后,主机就会把MAC地址与对应的IP地址暂时存入高速缓存(ARP表)。通过ARP协议客户机(PC1)获得了网关FA1/0端口的MAC地址,此时客户机(client)就可以完成封装。
此时,从TCP/IP的应用层-传输层-网际层-网络接口层都已经完成了封装。封装好的数据会传递给网卡驱动程序,由网卡驱动程序产生脉冲传给网络链路。通过网络链路,网关(路由器FA1/0)接收到这个数据帧后,会查看数据帧中的目的MAC地址与自己FA1/0的MAC地址是否相同。确认相同后,路由器继续查看网际层的目的IP地址,并且与路由器的路由条目逐一比较,找到这个数据包的出口(FastEthernet1/1)。
路由器在发送此数据包前,还要把数据包的网络接口层头部信息重新封装。当数据包的目的网络号与数据包所在的网络号相同时,数据包就可以直接发送给目的主机(WEB SERVER),所以路由器直接发送一个ARP请求包,得到WEB SERVER的 MAC地址,完成数据的封装(如图1)。
封装好的数据帧才能正常的被路由器从FA1/1端口发送出去,然后通过网络链路,WEB SERVER接收到这个数据帧,并且一一解封装,最后这个请求被处理,处理好的数据还会发出回应包。回应包的通信过程与请求包的通信过程相同。当客户机接收到回应包后,此时这次的数据通信才结束。
1.4 ARP协议在实际运用中存在的问题。(1)ARP协议是以广播的方式发送请求包,这个广播包会传遍整个广播域内的主机,广播域;(2)免费ARP(gratuitous ARP),如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。如果主机收到某个IP地址的ARP请求,而且它已经在接收者的高速缓存中,那么就要用ARP请求中的发送端硬件地址。对高速缓存中相应的内容进行更新。[1]
2 分析校园网内的ARP欺骗及解决方法
2.1 网络现状。某校现有三幢楼,内网中有网上办公系统,每幢楼中都有很多计算机需要在校园内网上办公,目前学校内网的所有计算机都在同一个广播域中。时常出现无法连接互联网、网速慢、计算机频繁中毒、打开网页时时常会弹出很多广告等现象。
2.2 网络分析。当学校内网中有一台计算机运行了病毒程序(如:网络执法官),那么很有可能整个内网计算机无法上网,或者所有内网用户的个人信息正在被别人分析。如果计算机(PC1)每秒钟发出10个ARP REPLY(如图2)。
这个ARP回应帧是一个广播帧,所以在整个学校的内网都会收到这个数据帧,收到这个回应帧的计算机都会修改自己ARP表中的相关信息。在这个数据帧中,IP:192.168.1.1的MAC地址是bb-bb-bb-bb-bb-bb。但是真正的网关(192.168.1.1)的MAC地址:aa-aa-aa-aa-aa-aa。
如果这时网络中有计算机(PC2)想上互联网打开新浪(IP:122.193.0.175)网页,产生的请求包格式(如图3)。
封装好的数据帧,会从网卡中传送出来,通过网络传输,MAC地址为BBBB-BBBB-BBBB的计算机(PC1)会收到这个数据帧,并会根据自己(PC1)的路由表(可使用route print命令查看),把数据包重新封装起来,再次发送出去,如果这里的路由表、ARP表都正确,那么这个数据包就可以正常的进入真正的网关,然后被真正的网关发送出去,其实这个过程对于内网的用户来说是透明的,还是可以正常的上网,但是内网中所有发往互联网的数据都会被计算机(PC1)获取,包括用户传给服务器的密码等重要个人信息。
2.3 解决方案。(1)划分VLAN;(2)保护端口;(3)在网关上做PPPoE服务器;(4)IPv6。综合这四点分析它们各自的优点与缺点,其中考虑到划分VLAN、保护端口这两个技术都需要网络设备的支持。IPv6协议需要所有操作系统的支持,但是IPv6技术却是最佳的解决方案。PPPoE服务器只需要找一台淘汰的计算机(奔腾Ⅲ以上)运行路由软件(RouterOS)就可实现,让整个校园网工作在点到点的网络模式下,因为在点到点的网络中是不需要ARP协议的,但是在这样的网络里组播技术是很难实现的。
参考文献:
[1]W.Richard Stevens.TCP/IP详解 卷1:协议[M].北京:机械工业出版社,2007.
作者简介:白月英(1976.11-),女,呼和浩特人,2007年毕业于内蒙古师范大学教育学专业,同济大学软件学院2013级软件工程专业硕士研究生,高级教师,研究方向:计算机网络、软件工程。
作者单位:同济大学 软件学院,上海 200092;内蒙古农业大学附属中学,呼和浩特 010010