网络知识
DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段
1.保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2.DHCP应当可以给用户分配永久固定的IP地址。
3.DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)
4.DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP工作原理
1. DHCP请求IP地址的过程
l 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。
l 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的DHCPOFFER包。
l 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发送DHCPOFFER包,客户端从中随机挑选,然后以广播形式向各DHCP服务器回应DHCPREQUEST包,宣告使用它挑中的DHCP服务器提供的地址,并正式请求该DHCP服务器分配地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的DHCPOFFER包中包含无效的配置参数,客户端会向服务器发送DHCPCLINE包拒绝接受已经分配的配置信息。
l 确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。
2. DHCP客户端续租IP地址的过程
l DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。实际使用中,在IP地址租约期限达到一半时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,通知DHCP客户端已经获得新IP租约。
如果DHCP客户端续租地址时发送的DHCPREQUEST包中的IP地址与DHCP服务器当前分配给它的IP地址(仍在租期内)不一致,DHCP服务器将发送DHCPNAK消息给DHCP客户端。
3. DHCP客户端释放IP地址的过程
l DHCP客户端已从DHCP服务器获得地址,并在租期内正常使用,如果该DHCP客户端不想再使用该地址,则需主动向DHCP服务器发送DHCPRELEASE包,以释放该地址,同时将其IP地址设为0.0.0.0。
如何快速搭建DHCP:
① 、少于250台:可以采用用户接入层和核心接入层这二层网络结构,通过普通二层交换机与核心交换机的堆叠连接组成单位局域网,以满足单位各种上网访问需求。普通电脑通过双绞线连接到普通百兆二层交换机。
②、超过250台:我们就需要通过交换机的VLAN功能,将它们划分到不同的子网中。为了让两网段中的所有电脑都能实现共享上网目的,我们还需要在核心路由交换机或者双WAN端口路由器设备中对两个网关参数进行合适配置,确保各个子网中的电脑能通过局域网路由功能访问Internet网络。
DHCP优点:
(1). 减小管理员工作量
(2). 减小IP地址输入错误的可能性
(3). 避免IP地址冲突
(4). 当网络更改IP地址段时,无需再次进行配置每一台主机
(5). 计算机移动无需重新配置IP
(6). 提高IP地址利用率
怎么搭建DHCP服务器
1、配置要求
(1). 静态IP地址
(2). 安装DHCP服务
(3). 使用活动目录授权DHCP服务
(4). 建立作用域并激活
服务器选项:对所有作用域生效
作用域选项:对特定作用那个域生效
保留选项:只作用于保留区域(优先级最高)
2、配置DHCP中继代理
(1). 工作原理:将不同网段的客户端获取IP地址的请求发送到指定网段的DHCP服务器。并接收来自DHCP服务的响应。
(2). 配置工具:路由和远程访问
掌握重要的几个options,options42、options2、options43、options46
DNS
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53
在Windows平台下,使用命令行工具,输入nslookup,返回的结果包括域名对应的IP地址(A记录)、别名(CNAME记录)等。除了以上方法外,还可以通过一些DNS查询站点
dns
如国外的国内的 查询域名的DNS信息。
常用的资源记录类型
A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。
CNAME 标准名称 此记录指定标准主机名的别名。
MX邮件交换器此记录列出了负责接收发到域中的电子邮件的主机。
NS名称服务器此记录指定负责给定区域的名称服务器。
FQDN名的解析过程查询
若想跟踪一个FQDN名的解析过程,在LinuxShell下输入dig www +trace,返回的结果包括从跟域开始的递归或迭代过程,一直到权威域名服务器。
GeniePro DNS 应对DNS劫持和DNS缓存中毒攻击的关键性机制:一致性检查
每个Geniepro节点将自身的DNS记录发送给工作组内其他节点请求一致性检查;
每个Geniepro节点将自身的记录与收到的记录进行比较;
每个Geniepro工作组的通信协调节点将获得的DNS记录更新发送给其他组的通信协调节点请求一致性检查;
每个Genipro工作组的通信协调节点向上一级DNS服务器请求更新记录并与收到的其他通信协调节点的记录进行比较。
一致性仲裁
如果一致性检查发现记录不一致情况,则根据策略(少数服从多数、一票否决等)决定是否接受记录的变化 根据结果,各Geniepro节点将自身记录进行统一 通信协调节点选举 选举出的通信协调节点在任期内具有更新组内节点的权限 选举过程满足不可预测性和不可重复性DNS资源记录 如前所述,每个 DNS 数据库都由资源记录构成。一般来说,资源记录包含与特定主机有关的信息,如 IP 地址、主机的所有者或者提供服务的类型。
注意:不同的网络设备配置的语法不一样,这里提供的配置方法是以锐捷网络设备为例的,一般也适用思科设备。
打开DNS域名解析服务
本节描述如何打开DNS域名解析功能开关。
|
命令 |
作用 |
|
R(config)# ip domain-lookup |
打开DNS域名解析功能开关 |
使用no ip domain-lookup命令关闭DNS域名解析的功能:R(config)#no ip domain-lookup
配置DNS Server
本节描述如何配置DNS服务器。只有配置了DNS服务器,才能进行动态域名解析。
如果要删除DNS服务器,可以使用no ip name-server [ip-address | ipv6-address] 命令。其中参数ip-address和ipv6-address表示删除指定的域名服务器,否则删除所有的域名服务器。
|
命令 |
作用 |
|
R(config)# ip name-server {ip-address | ipv6-address} |
添加DNS Server的IP/IPV6地址。每次执行这条命令,设备都会添加一个DNS Server。当无法从第一个Server获取到域名时,设备会尝试向后续几个Server发送DNS请求,直到正确收到回应为止。系统最多支持6个域名服务器。 |
静态配置主机名和IP/IPV6地址的映射
如何配置主机名和IP/IPV6地址的映射。本地维护了一张主机名和IP/IPV6地址的对应表,也叫主机名到IP/IPv6地址的映射表。主机名到IP/IPV6地址的映射表内容有两个来源:手工配置和动态学习。在不能动态学习的情况下,手工配置就有必要了。
|
命令 |
作用 |
|
R(config)# ip host host-name ip-address |
手工配置主机名和IP地址映射 |
|
R(config)# ipv6 host host-name ipv6-address |
手工配置主机名和IPV6地址映射 |
使用该命令的no形式就可以删除主机名和IP/IPV6地址的映射。
清除动态主机名缓存表
本节描述如何清除动态主机名缓存表。如果输入clear host或clear host * 命令将清除动态缓存表。否则只删除指定域名的表项。
|
命令 |
作用 |
|
R#clear host [host-name] |
清除动态主机名缓存表。 该命令不能删除静态配置的主机名。 |
域名解析信息显示
本节描述如何显示DNS的相关配置信息:
|
命令 |
作用 |
|
R# show hosts [host-name] |
查看DNS的相关参数 |
R# show hosts
Name servers are:
192.168.5.134 static
Host type Address TTL(sec)
www.163.com static 192.168.5.243 ---
怎么搭建DNS服务器
见文档
掌握DNS重要的类型有:A记录, SRV 记录,NAPTR记录。
DNS的作用
1.以DNS标准命名(域的命名);
2.支持DC(创建DC时,要有相应的DNS的支持);
3.定位DC(加入域时,帮助地球人找到DC)。
在一个TCP/IP架构的网络(例如Internet)环境中,DNS是一个非常重要而且常用的系统。主要的功能就是将人易于记忆的Domain Name与人不容易记忆的IP Address作转换。而上面执行DNS服务的这台网络主机,就可以称之为DNS Server。基本上,通常我们都认为DNS只是将Domain Name转换成IP Address,然后再使用所查到的IP Address去连接(俗称“正向解析”)。事实上,将IP Address转换成Domain Name的功能也是相当常使用到的,当login到一台Unix工作站时,工作站就会去做反查,找出你是从哪个地方连线进来的(俗称“逆向解析”)
了解什么是路由器与交换机,以及两者之间的区别
首先说交换机(又名交换式集线器)作用可以简单的理解为将一些机器连接起来组成一个局域网。而路由器与交换机有明显区别,它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径 ,可以说一般情况下个人用户需求不大。路由器是产生于交换机之后,就像交换机产生于集线器之后,所以路由器与交换机也有一定联系,并不是完全独立的两种设备。路由器主要克服了交换机不能路由转发数据包的不足。
交换机(Switch)是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。交换机分为:二层交换机,三层交换机或是更高层的交换机。三层交换机同样可以有路由的功能,而且比低端路由器的转发速率更快。它的主要特点是:一次路由,多次转发。
路由器(Router)亦称选径器,是在网络层实现互连的设备。它比网桥更加复杂,也具有更大的灵活性。路由器有更强的异种网互连能力,连接对象包括局域网和广域网。过去路由器多用于广域网,由于路由器性能有了很大提高,价格下降到与网桥接近,因此在局域网互连中也越来越多地使用路由器。路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
就路由器与交换机来说,主要区别体现在以下几个方面:
(1)工作层次不同
最初的的交换机是工作在OSI/RM开放体系结构的数据链路层,也就是第二层,而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
(2)数据转发所依据的对象不同
交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络,有时这些第三层的地址也称为协议地址或者网络地址。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。
(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。
(4)路由器提供了防火墙的服务
路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
交换机一般用于LAN-LAN的连接,交换机归于网桥,是数据链路层的设备,有些交换机也可实现第三层的交换。路由器用于WAN-WAN之间的连接,可以解决异性网络之间转发分组,作用于网络层。他们只是从一条线路上接受输入分组,然后向另一条线路转发。这两条线路可能分属于不同的网络,并采用不同协议。相比较而言,路由器的功能较交换机要强大,但速度相对也慢,价格昂贵,第三层交换机既有交换机线速转发报文能力,又有路由器良好的控制功能,因此得以广泛应用。
(5)总之,可以这么认为,交换机在具体的城域网中往往扮演着VLAN透传的角色,就是桥。而路由器默认的是不支持二层的,路由器的每一个端口都是一个独立的广播域和冲突域,而交换机是只有一个广播域和端口数量的冲突域,在二层交换机上存在MAC表,三层交换机上存在路由表.MAC.ARP表,在路由器上存在路由表和arp表。比如当一个路由器上有一个2层的vlan100和另外一个路由器上的3层vlan100对接的时候,是不通的,这时候我们需要借助L2VPN技术来进行互通,比较流行的就是VPLS技术。
怎样架设局域网
不需要其它设备了,只要再买三个网线就行了。步骤如下:
(1)把网线插到路由器接口。
(2)打开三台电脑对行进行设置。在其中的一台电脑中打开IE,输入进入路由设置的网址:一般为192.168.1.1(也有的是192.168.0.1)具体的你看路由器说明书。然后进入路由器设置。设置的地方有两个,第一,你可以点快速向导设置你上网的方式(ADSL拨号上网需输入账号和密码;固定IP的,你输入你的IP)。第二步是,设置路由器IP分配方案,比如你的路由器网关是(192.168.1.1,你的方案可设置为(192.168.1.2--192.168.1.4)刚好三台电脑。
(3)在你进行路由器设置的电脑上设置IP地址为192.168.1.2,其网关地址为192.168.1.1。在另处两台电脑上你分别设置IP地址为192.168.1.3和192.168.1.4,其网关地址一样。
这样就基本完成了,当然你如果上不了网的话,那是可能你有设置DNS服务器地址,你可以通过打开运行输入CMD,进入MS——DOS,然后输入命令:IPCONFIG/ALL
VLAN
什么是VLAN及目的
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。这一新兴技术主要应用于交换机和路由器中,但主流应用还是在交换机之中。但又不是所有交换机都具有此功能,只有VLAN协议的第二层以上交换机才具有此功能,这一点可以查看相应交换机的说明书即可得知
,当一个交换机上的所有端口中有至少一个端口属于不同网段的时候,当路由器的一个物理端口要连接2个或者以上的网段的时候,就是VLAN发挥作用的时候,这就是VLAN的目的
VLAN
802.1X
什么是802.1x及用途
802.1x协议是基于Client/Server的访问控制和认证协议。它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN。在获得交换机或LAN提供的各种业务之前,802.1x对连接到交换机端口上的用户/设备进行认证。在认证通过之前,802.1x只允许EAPoL(基于局域网的扩展认证协议)数据通过设备连接的交换机端口;认证通过以后,正常的数据可以顺利地通过以太网端口
802.1x的工作过程
1.当用户有上网需求时打开802.1X客户端程序,输入已经申请、登记过的用户名和口令,发起连接请求。此时,客户端程序将发出请求认证的报文给交换机,开始启动一次认证过程。
(2.交换机收到请求认证的数据帧后,将发出一个请求帧要求用户的客户端程序将输入的用户名送上来。
(3.客户端程序响应交换机发出的请求,将用户名信息通过数据帧送给交换机。交换机将客户端送上来的数据帧经过封包处理后送给认证服务器进行处理。
(4.认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的口令信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字传送给交换机,由交换机传给客户端程序。
(5.客户端程序收到由交换机传来的加密字后,用该加密字对口令部分进行加密处理(此种加密算法通常是不可逆的),并通过交换机传给认证服务器。
(6.认证服务器将送上来的加密后的口令信息和其自己经过加密运算后的口令信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息,并向交换机发出打开端口的指令,允许用户的业务流通过端口访问网络。否则,反馈认证失败的消息,并保持交换机端口的关闭状态,只允许认证信息数据通过而不允许业务数据通过。
认证模式与认证方式
(1端口认证模式
该模式下只要连接到端口的某个设备通过认证,其他设备则不需要认证,就可以访问网络资源。
(2 MAC认证模式
该模式下连接到同一端口的每个设备都需要单独进行认证。
认证方式
|
类型代码 |
身份验证协议 |
说明 |
|
4 |
MD5 challenge |
EAP中类似于CHAP的认证方式 |
|
6 |
GTC |
原本打算与RSA SecurID之类的令牌卡一起使用 |
|
13 |
EAP-TLS |
以数字证书相互认证 |
|
18 |
EAP-SIM |
以移动电话的SIM卡(用户识别模块卡)进行身份验证 |
|
21 |
TTLS |
隧道式TLS;以TLS加密保护较弱的身份验证方式 |
|
25 |
PEAP |
防护型EAP;以TLS加密保护较弱的EAP认证方式 |
|
29 |
MS-CHAP-V2 |
微软的经加密的密码身份验证,与windows域兼容 |
OSV ,Cisco 2960 Windows NPS的联合认证
802.1X提供安全的接入认证,但数据(包括操作系统)存储于本地,数据可能有失窃的危险,比如富士康和比亚迪的官司,在比如陈冠希事件。一些对数据安全要求比较高的企业,政府,一直寻求,即要管好接入端的安全,又要管好数据端安全,做到本地无存储,对数据随需所取的PC应用环境。
OSV配合自己实现的802.1X认证客户端,即实现了对网络接入的数据安全性要求,也实现了对PC的IO虚拟化,通过对数据实现虚拟化派发,用户桌面环境的认证派发,和数据的集中存储,集中管理。通过windows AD 服务器,对用户帐户进行统一管理。
实施准备
1, 支持802.1X认证交换机一台 实验环境:Cisco 2960 (ip:192.168.88.249 netmask 255.255.255.0)
2, Windows 2008 r2
AD 域服务器一台(ip: 192.168.88.188 Netmask:255.255.255.0 )
3, Windows 2008 r2
NPS服务器一台 (ip: 192.168.88.189 Netmask:255.255.255.0
DNS:192.168.88.188)
4, 客户机一台
5, 已安装,配置好的OSV 服务器一台 (IP:192.168.88.10)
Cisco 交换机配置
cisco>en 进入特权模式
Password:
cisco#configure terminal 进入全局配置模式
cisco(config)#interface vlan1 进入接口配置模式,配置Vlan1
cisco(config-if)#ip address 192.168.88.249
255.255.255.0 配置Vlan1的IP
cisco(config-if)#exit 退出
cisco(config)#aaa new-model
cisco(config)#aaa authentication dot1x default
group radius
cisco(config)#aaa authorization network default
group radius
cisco(config)#dot1x system-auth-control
cisco(config)#radius-server host 192.168.88.251 auth-port
1812 acct-port 1813 key OSV 配置802.1X的认证服务器IP,密钥为OSV 记住此密钥,配置RADIUS时用到。
cisco(config)#interface fastEthernet 0/X 配置需要进行认证的端口
cisco(config-if)#switchport mode access
cisco(config-if)# authentication port-control auto
cisco(config-if)#dot1x port-control auto
cisco(config-if)#dot1x reauthentication
cisco(config-if)#dot1x timeout reauth-period 300
cisco(config-if)#authentication host-mode
multi-auth/multi-host/signal-host/mulit-domain 交换机端口下连接多台PC时(通过Hub或交换机)需要配置这个命令,默认只支持对一台PC认证。
cisco(config-if)#authentication violation
shutdown/pretect/re[1]place/restrict 802.1X
shutdown规则
cisco(config-if)#dot1x pae both
cisco(config-if)#spanning-tree portfast 打开端口的快速转发cisco(config-if)#exit
cisco(config)#exit
注:配置完成后,要测试交换机与RADIUS是否可通信,可在交换机上ping RADIUS服务器进行判断。
STUN
什么情况下需要用到STUN
STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT 路由器之后的主机之间建立UDP通信。该协议由RFC 3489定义
NAT的类型
1. Full
Cone NAT:所有来自同一 个内部Tuple X的请求均被NAT转换至同一个外部Tuple Y,而不管这些请求是不是属于同一个应用或者是多个应用的。除此之外,当X-Y的转换关系建立之后,任意外部主机均可随时将Y中的地址和端口作为目标地址 和目标端口,向内部主机发送UDP报文,由于对外部请求的来源无任何限制,因此这种方式虽然足够简单,但却不那么安全
2. Restricted Cone NAT: 它是Full Cone的受限版本:所有来自同一个内部Tuple X的请求均被NAT转换至同一个外部Tuple Y,这与Full Cone相同,但不同的是,只有当内部主机曾经发送过报文给外部主机(假设其IP地址为Z)后,外部主机才能以Y中的信息作为目标地址和目标端口,向内部 主机发送UDP请求报文,这意味着,NAT设备只向内转发(目标地址/端口转换)那些来自于当前已知的外部主机的UDP报文,从而保障了外部请求来源的安 全性
3. Port Restricted Cone NAT:它是Restricted Cone
NAT的进一步受限版。只有当内部主机曾经发送过报文给外部主机(假设其IP地址为Z且端口为P)之后,外部主机才能以Y中的信息作为目标地址和目标端 口,向内部主机发送UDP报文,同时,其请求报文的源端口必须为P,这一要求进一步强化了对外部报文请求来源的限制,从而较Restrictd Cone更具安全性
4. Symmetric NAT:这是一种比所有Cone NAT都要更为灵活的转换方式:在Cone NAT中,内部主机的内部Tuple与外部Tuple的转换映射关系是独立于内部主机所发出的UDP报文中的目标地址及端口的,即与目标Tuple无关; 在Symmetric NAT中,目标Tuple则成为了NAT设备建立转换关系的一个重要考量:只有来自于同一个内部Tuple 、且针对同一目标Tuple的请求才被NAT转换至同一个外部Tuple,否则的话,NAT将为之分配一个新的外部Tuple;打个比方,当内部主机以相 同的内部Tuple对2个不同的目标Tuple发送UDP报文时,此时NAT将会为内部主机分配两个不同的外部Tuple,并且建立起两个不同的内、外部 Tuple转换关系。与此同时,只有接收到了内部主机所发送的数据包的外部主机才能向内部主机返回UDP报文,这里对外部返回报文来源的限制是与Port Restricted Cone一致的。不难看出,如果说Full Cone是要求最宽松NAT UDP转换方式,那么,Symmetric NAT则是要求最严格的NAT方式,其不仅体现在转换关系的建立上,而且还体现在对外部报文来源的限制方面。
Arp
了解arp的主用,以及arp欺骗是怎么回事
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记录在本地的ARP缓存中,这样攻击者就可以向目标主机发送伪ARP应答报文,使目标主机发送的信息无法到达相应的主机或到达错误的主机,构成一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议
ARP欺骗
地址解析协议是建立在网络中各个主机互相信任的基础上的,它的诞生使得网络能够更加高效的运行,但其本身也存在缺陷:
ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。[5]ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。
防御措施
- 不要把网络安全信任关系建立在IP基础上或MAC基础上(RARP同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
- 设置静态的MAC-->IP对应表,不要让主机刷新设定好的转换表。
- 除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
- 使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
- 使用“proxy”代理IP的传输。
- 使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
- 管理员定期用响应的IP包中获得一个RARP请求,然后检查ARP响应的真实性。
- 管理员定期轮询,检查主机上的ARP缓存。
- 使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。[6]
- 若感染ARP病毒,可以通过清空ARP缓存、指定ARP对应关系、添加路由信息、使用防病毒软件等方式解决。[7]
TCP
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议,由IETF的RFC 793说明(specified)。TCP在IP报文的协议号是6
当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证报文传输的可靠[1],就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
在数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用md5认证对数据进行加密。
在保证可靠性上,采用超时重传和捎带确认机制。
在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。
在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法)。该算法主要包括三个主要部分:1)加性增、乘性减;2)慢启动;3)对超时事件做出反应。[2]
TCP协议面向连接,UDP协议面向非连接;
TCP协议传输速度慢,UDP协议传输速度快
TCP有丢包重传机制,UDP没有;
TCP协议保证数据正确性,UDP协议可能丢包[2];
TCP三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
HTTP
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)[5]和Internet工作小组IETF(Internet Engineering Task Force)[6]合作的结果,(他们)最终发布了一系列的RFC,RFC 1945[7]定义了HTTP/1.0版本。其中最著名的就是RFC 2616[8]。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。为纪念Tim Berners-Lee提出HTTP后对互联网发展的贡献,万维网协会保留有他最原始提交的版本[9]。
HTTP协议(HyperText Transfer Protocol,超文本转移协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等[10]。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
1、支持客户/服务器模式。支持基本认证[11]和安全认证(见后文《安全协议》)。
2、 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4、HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。
5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大[12]。
另一方面,在服务器不需要先前信息时它的应答就较快。
发出的请求信息包括以下几个:
●请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
●(请求)头,例如Accept-Language: en
●空行
●可选的消息体 请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:
OPTIONS - 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
HEAD- 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET - 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。
POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT - 向指定资源位置上传其最新内容。
DELETE - 请求服务器删除Request-URI所标识的资源。
TRACE- 回显服务器收到的请求,主要用于测试或诊断。
CONNECT - HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
PATCH - 用来将局部修改应用于某一资源,添加于规范RFC5789。
方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。
HTTP下载流程
说明:http协议客户端工作要点
1.创建socketbind本地socket,发起连接connetct ,完成tcp三次握手
2.向服务器发起http请求,即post或get动作,http协议请求格式见
http协议规范
3.读http响应,可以判定http 服务器和客户端是否通讯正常,如果失败,
可以根据错误代码判定不成功原因。
http 响应和http 错误代码见http协议部分
4.http响应会返回内容的长度和内容类型,这个信息在在在线业务中是个
非常有用的信息,比如流媒体是边看边下载,如果要计算流媒体长度
只能从http响应读取。

浙公网安备 33010602011771号