﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-旅途-文章分类-网络技术</title><link>http://www.cppblog.com/mydriverc/category/4499.html</link><description>如果想飞得高，就该把地平线忘掉</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 13:39:17 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 13:39:17 GMT</pubDate><ttl>60</ttl><item><title>什么是VPN</title><link>http://www.cppblog.com/mydriverc/articles/30036.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Tue, 14 Aug 2007 16:29:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/30036.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/30036.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/30036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/30036.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/30036.html</trackback:ping><description><![CDATA[
		<p class="font2" align="center">第一章 什么是VPN</p>
		<p class="font2" align="left">　　<br />
                　　<span class="font">现
在有很多连接都被称作VPN，用户经常分不清楚，那么一般所说的VPN到底是什么呢？顾名思义，虚拟专用网不是真的专用网络，但却能够实现专用网络的功
能。虚拟专用网指的是依靠ISP（Internet服务提供商）和其它NSP（网络服务提供商），在公用网络中建立专用的数据通信网络的技术。在虚拟专用
网中，任意两个节点之间的连接并没有传统专网所需的端到端的物理链路，而是利用某种公众网的资源动态组成的。IETF草案理解基于IP的VPN为："使用
IP机制仿真出一个私有的广域网"是通过私有的隧道技术在公共数据网络上仿真一条点到点的专线技术。所谓虚拟，是指用户不再需要拥有实际的长途数据线路，
而是使用Internet公众数据网络的长途数据线路。所谓专用网络，是指用户可以为自己制定一个最符合自己需求的网络。</span></p>
		<p class="font" align="left">　
　用户现在在电信部门租用的帧中继（Frame Relay）与ATM等数据网络提供固定虚拟线路（PVC-Permanent Virtual
Circuit）来连接需要通讯的单位，所有的权限掌握在别人的手中。如果用户需要一些别的服务，需要填写许多的单据，再等上相当一段时间，才能享受到新
的服务。更为重要的是两端的终端设备不但价格昂贵，而且管理也需要一定的专业技术人员，无疑增加了成本，而且帧中继、ATM数据网络也不会像
Internet那样，可立即与世界上任何一个使用Internet网络的单位连接。而在Internet上，VPN使用者可以控制自己与其他使用者的联
系，同时支持拨号的用户。 </p>
		<p class="font" align="left">　　所以我们说的<b>虚拟专用网一般指的是建筑在Internet上能够自我管理的专用网络，而不是Frame 
                Relay或ATM等提供虚拟固定线路（PVC）服务的网络。以IP为主要通讯协议的VPN，也可称之为IP-VPN。</b></p>
		<p class="font" align="left">　　<b>由于VPN是在Internet上临时建立的安全专用虚拟网络，用户就节省了租用专线的费用，在运行的资金支出上，除了购买VPN设备，企业所付出的仅仅是向企业所在地的ISP支付一定的上网费用，也节省了长途电话费。这就是VPN价格低廉的原因。</b></p>
		<p class="font" align="left">　
　越来越多的用户认识到，随着Internet和电子商务的蓬勃发展，经济全球化的最佳途径是发展基于Internet的商务应用。随着商务活动的日益频
繁，各企业开始允许其生意伙伴、供应商也能够访问本企业的局域网，从而大大简化信息交流的途径，增加信息交换速度。这些合作和联系是动态的，并依靠网络来
维持和加强，于是各企业发现，这样的信息交流不但带来了网络的复杂性，还带来了管理和安全性的问题，因为Internet是一个全球性和开放性的、基于
TCP/IP 技术的、不可管理的国际互联网络，因此，基于Internet的商务活动就面临非善意的信息威胁和安全隐患。 </p>
		<p class="font" align="left">　　还有一类用户，随着自身的的发展壮大与跨国化，企业的分支机构不仅越来越多，而且相互间的网络基础设施互不兼容也更为普遍。因此，用户的信息技术部门在连接分支机构方面也感到日益棘手。 
              </p>
		<p class="font" align="left">　　用户的需求正是虚拟专用网技术诞生的直接原因。</p>
		<p class="font2" align="left"> <span class="titlefont">1．安全保障 </span></p>
		<p class="font" align="left">虽
然实现VPN的技术和方式很多，但所有的VPN均应保证通过公用网络平台传输数据的专用性和安全性。<b>在非面向连接的公用IP网络上建立一个逻辑的、点对点
的连接，称之为建立一个隧道，可以利用加密技术对经过隧道传输的数据进行加密，以保证数据仅被指定的发送者和接收者了解，从而保证了数据的私有性和安全
性。</b>在安全性方面，由于VPN直接构建在公用网上，实现简单、方便、灵活，但同时其安全问题也更为突出。企业必须确保其VPN上传送的数据不被攻击者窥视
和篡改，并且要防止非法用户对网络资源或私有信息的访问。ExtranetVPN将企业网扩展到合作伙伴和客户，对安全性提出了更高的要求。 </p>
		<p class="titlefont" align="left">2．服务质量保证（QoS） </p>
		<p class="font" align="left">　
　VPN网应当为企业数据提供不同等级的服务质量保证。不同的用户和业务对服务质量保证的要求差别较大。如移动办公用户，提供广泛的连接和覆盖性是保证
VPN服务的一个主要因素；而对于拥有众多分支机构的专线VPN网络，交互式的内部企业网应用则要求网络能提供良好的稳定性；对于其它应用（如视频等）则
对网络提出了更明确的要求，如网络时延及误码率等。所有以上网络应用均要求网络根据需要提供不同等级的服务质量。在网络优化方面，构建VPN的另一重要需
求是充分有效地利用有限的广域网资源，为重要数据提供可靠的带宽。广域网流量的不确定性使其带宽的利用率很低，在流量高峰时引起网络阻塞，产生网络瓶颈，
使实时性要求高的数据得不到及时发送；而在流量低谷时又造成大量的网络带宽空闲。<b>QoS通过流量预测与流量控制策略，可以按照优先级分配带宽资源，实现带
宽管理，使得各类数据能够被合理地先后发送，并预防阻塞的发生。</b></p>
		<p class="titlefont" align="left">3．可扩充性和灵活性 </p>
		<p class="font" align="left">　　VPN必须能够支持通过Intranet和Extranet的任何类型的数据流，方便增加新的节点，支持多种类型的传输媒介，可以满足同时传输语音、图像和数据等新应用对高质量传输以及带宽增加的需求。 
              </p>
		<p class="titlefont" align="left">4．可管理性 </p>
		<p class="font" align="left">　
　从用户角度和运营商角度应可方便地进行管理、维护。在VPN管理方面，VPN要求企业将其网络管理功能从局域网无缝地延伸到公用网，甚至是客户和合作伙
伴。虽然可以将一些次要的网络管理任务交给服务提供商去完成，企业自己仍需要完成许多网络管理任务。所以，一个完善的VPN管理系统是必不可少的。VPN
管理的目标为：减小网络风险、具有高扩展性、经济性、高可靠性等优点。事实上，VPN管理主要包括安全管理、设备管理、配置管理、访问控制列表管理、
QoS管理等内容。</p>
		<br />
		<p class="font" align="left">
				<br />
		</p>
		<p class="font2" align="center">第三章 VPN安全技术</p>
		<p align="left">
				<br />
				<span class="font"> 　　由于传输的是私有信息，VPN用户对数据的安全性都比较关心。 </span>
		</p>
		<p class="font" align="left">　　目前VPN主要采用四项技术来保证安全，这四项技术分别是隧道技术（Tunneling）、加解密技术（Encryption 
                &amp; Decryption）、密钥管理技术（Key Management）、使用者与设备身份认证技术（Authentication）。 
              </p>
		<p class="font" align="left">
				<span class="titlefont">1.隧道技术：</span>
				<br />
　　隧道技术是VPN的基本技术类似于点对点连接技术，它在公用网建立一条数据通道（隧道），让数据包通过这条隧道传输。隧道是由隧道协议形成的，分为第
二、三层隧道协议。第二层隧道协议是先把各种网络协议封装到PPP中，再把整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层协议进行传
输。第二层隧道协议有L2F、PPTP、L2TP等。L2TP协议是目前IETF的标准，由IETF融合PPTP与L2F而形成。 </p>
		<p class="font" align="left">　　第三层隧道协议是把各种网络协议直接装入隧道协议中，形成的数据包依靠第三层协议进行传输。第三层隧道协议有VTP、IPSec等。IPSec（IP 
                Security）是由一组RFC文档组成，定义了一个系统来提供安全协议选择、安全算法，确定服务所使用密钥等服务，从而在IP层提供安全保障。 
              </p>
		<p class="font" align="left">
				<span class="titlefont">2.加解密技术：</span>
				<br />
                　　加解密技术是数据通信中一项较成熟的技术，VPN可直接利用现有技术。 </p>
		<p class="font" align="left">
				<span class="titlefont">3.密钥管理技术：</span>
				<br />
　　密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术又分为SKIP与ISAKMP/OAKLEY两种。SKIP
主要是利用Diffie-Hellman的演算法则，在网络上传输密钥；在ISAKMP中，双方都有两把密钥，分别用于公用、私用。 </p>
		<p class="font" align="left">
				<span class="titlefont">4.使用者与设备身份认证技术：</span>
				<br />
                　　使用者与设备身份认证技术最常用的是使用者名称与密码或卡片式认证等方式。</p>
		<p class="font2" align="center">第四章 堵住安全漏洞</p>
		<p align="left">
				<span class="font">
						<br />
                　　安全问题是VPN的核心问题。目前，VPN的安全保证主要是通过防火墙技术、路由器配以隧道技术、加密协议和安全密钥来实现的，可以保证企业员工安全地访问公司网络</span>。 
              </p>
		<p class="font" align="left">　
　但是，如果一个企业的VPN需要扩展到远程访问时，就要注意，这些对公司网直接或始终在线的连接将会是黑客攻击的主要目标。因为，远程工作员工通过防火
墙之外的个人计算机可以接触到公司预算、战略计划以及工程项目等核心内容，这就构成了公司安全防御系统中的弱点。虽然，员工可以双倍地提高工作效率，并减
少在交通上所花费的时间，但同时也为黑客、竞争对手以及商业间谍提供了无数进入公司网络核心的机会。 </p>
		<p class="font" align="left">　　但是，企业
并没有对远距离工作的安全性予以足够的重视。大多数公司认为，公司网络处于一道网络防火墙之后是安全的，员工可以拨号进入系统，而防火墙会将一切非法请求
拒之其外；还有一些网络管理员认为，为网络建立防火墙并为员工提供VPN，使他们可以通过一个加密的隧道拨号进入公司网络就是安全的。这些看法都是不对
的。 </p>
		<p class="font" align="left">　　在家办公是
不错，但从安全的观点来看，它是一种极大的威胁，因为，公司使用的大多数安全软件并没有为家用计算机提供保护。一些员工所做的仅仅是进入一台家用计算机，
跟随它通过一条授权的连接进入公司网络系统。虽然，公司的防火墙可以将侵入者隔离在外，并保证主要办公室和家庭办公室之间VPN的信息安全。但问题在于，
侵入者可以通过一个被信任的用户进入网络。因此，加密的隧道是安全的，连接也是正确的，但这并不意味着家庭计算机是安全的。 </p>
		<p class="font" align="left">　　黑客为了侵
入员工的家用计算机，需要探测IP地址。有统计表明，使用拨号连接的IP地址几乎每天都受到黑客的扫描。因此，如果在家办公人员具有一条诸如DSL的不间
断连接链路（通常这种连接具有一个固定的IP地址），会使黑客的入侵更为容易。因为，拨号连接在每次接入时都被分配不同的IP地址，虽然它也能被侵入，但
相对要困难一些。一旦黑客侵入了家庭计算机，他便能够远程运行员工的VPN客户端软件。因此，必须有相应的解决方案堵住远程访问VPN的安全漏洞，使员工
与网络的连接既能充分体现VPN的优点，又不会成为安全的威胁。在个人计算机上安装个人防火墙是极为有效的解决方法，它可以使非法侵入者不能进入公司网
络。当然，还有一些提供给远程工作人员的实际解决方法： </p>
		<p class="font" align="left">* 所有远程工作人员必须被批准使用VPN； </p>
		<p class="font" align="left">* 所有远程工作人员需要有个人防火墙，它不仅防止计算机被侵入，还能记录连接被扫描了多少次； 
              </p>
		<p class="font" align="left">* 所有的远程工作人员应具有入侵检测系统，提供对黑客攻击信息的记录； 
              </p>
		<p class="font" align="left">* 监控安装在远端系统中的软件，并将其限制只能在工作中使用； </p>
		<p class="font" align="left">* IT人员需要对这些系统进行与办公室系统同样的定期性预定检查； </p>
		<p class="font" align="left">* 外出工作人员应对敏感文件进行加密； </p>
		<p class="font" align="left">* 安装要求输入密码的访问控制程序，如果输入密码错误，则通过Modem向系统管理员发出警报； 
              </p>
		<p align="left">
				<span class="font">* 当选择DSL供应商时，应选择能够提供安全防护功能的供应商。</span>
		</p>
		<p align="left">第五章 VPN解决方案
              </p>
		<p align="left">
				<span class="font">　
　VPN有三种解决方案，用户可以根据自己的情况进行选择。这三种解决方案分别是：远程访问虚拟网（AccessVPN）、企业内部虚拟网
（IntranetVPN）和企业扩展虚拟网（ExtranetVPN），这三种类型的VPN分别与传统的远程访问网络、企业内部的Intranet以及
企业网和相关合作伙伴的企业网所构成的Extranet相对应。<br /><br /></span>
				<span class="titlefont">（1）AccessVPN</span>
				<span class="font">
						<br />
                　　如果企业的内部人员移动或有远程办公需要，或者商家要提供B2C的安全访问服务，就可以考虑使用AccessVPN。 </span>
		</p>
		<p class="font" align="left">　
　AccessVPN通过一个拥有与专用网络相同策略的共享基础设施，提供对企业内部网或外部网的远程访问。AccessVPN能使用户随时、随地以其所
需的方式访问企业资源。AccessVPN包括模拟、拨号、ISDN、数字用户线路(xDSL)、移动IP和电缆技术，能够安全地连接移动用户、远程工作
者或分支机构。如图1所示。</p>
		<p align="left"> </p>
		<div align="left">
				<table align="center" border="0" width="46%">
						<tbody>
								<tr>
										<td>
												<div class="font" align="center">
														<img src="http://www.stcsm.gov.cn/learning/lesson/xinxi/20010723/image/vpn1.jpg" height="151" width="300" />
												</div>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p class="font" align="left">图1 AceessVPN结构图</p>
		<p class="font" align="left">　　AccessVPN最适用于公司内部经常有流动人员远程办公的情况。出差员工利用当地ISP提供的VPN服务，就可以和公司的VPN网关建立私有的隧道连接。RADIUS服务器可对员工进行验证和授权，保证连接的安全，同时负担的电话费用大大降低。 
              </p>
		<p class="font" align="left">　　AccessVPN对用户的吸引力在于： </p>
		<p class="font" align="left">* 减少用于相关的调制解调器和终端服务设备的资金及费用，简化网络； </p>
		<p class="font" align="left">* 实现本地拨号接入的功能来取代远距离接入或800电话接入，这样能显著降低远距离通信的费用； 
              </p>
		<p class="font" align="left">* 极大的可扩展性，简便地对加入网络的新用户进行调度； </p>
		<p class="font" align="left">* 远端验证拨入用户服务（RADIUS）基于标准，基于策略功能的安全服务； 
              </p>
		<p class="font" align="left">* 将工作重心从管理和保留运作拨号网络的工作人员转到公司的核心业务上来。 
              </p>
		<p class="font" align="left">
				<span class="titlefont">(2)IntranetVPN</span>
		</p>
		<p class="font" align="left">　　如果要进行企业内部各分支机构的互联，使用IntranetVPN是很好的方式。</p>
		<p class="font" align="left">　
　越来越多的企业需要在全国乃至世界范围内建立各种办事机构、分公司、研究所等，各个分公司之间传统的网络连接方式一般是租用专线。显然，在分公司增多、
业务开展越来越广泛时，网络结构趋于复杂，费用昂贵。利用VPN特性可以在Internet上组建世界范围内的IntranetVPN。利用
Internet的线路保证网络的互联性，而利用隧道、加密等VPN特性可以保证信息在整个IntranetVPN上安全传输。IntranetVPN通
过一个使用专用连接的共享基础设施，连接企业总部、远程办事处和分支机构。企业拥有与专用网络的相同政策，包括安全、服务质量(QoS)、可管理性和可靠
性。如图2所示。 <br /></p>
		<div align="left">
				<table align="center" border="0" width="52%">
						<tbody>
								<tr>
										<td>
												<div class="font" align="center">
														<img src="http://www.stcsm.gov.cn/learning/lesson/xinxi/20010723/image/vpn2.jpg" height="176" width="300" />
												</div>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p class="font" align="left">图2 IntranetVPN结构图　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　<a href="http://www.stcsm.gov.cn/learning/lesson/xinxi/20010723/20010723-5.asp#1"><img src="http://www.stcsm.gov.cn/learning/lesson/xinxi/20010723/image/gotop.gif" border="0" height="20" width="60" /></a></p>
		<p class="font" align="left">　　IntranetVPN对用户的吸引力在于： </p>
		<p class="font" align="left">* 减少WAN带宽的费用； </p>
		<p class="font" align="left">* 能使用灵活的拓扑结构，包括全网络连接； </p>
		<p class="font" align="left">* 新的站点能更快、更容易地被连接； </p>
		<p class="font" align="left">* 通过设备供应商WAN的连接冗余，可以延长网络的可用时间。 </p>
		<p class="titlefont" align="left">(3)ExtranetVPN</p>
		<p class="font" align="left">　　如果是提供B2B之间的安全访问服务，则可以考虑ExtranetVPN。 
              </p>
		<p class="font" align="left">　
　随着信息时代的到来，各个企业越来越重视各种信息的处理。希望可以提供给客户最快捷方便的信息服务，通过各种方式了解客户的需要，同时各个企业之间的合
作关系也越来越多，信息交换日益频繁。Internet为这样的一种发展趋势提供了良好的基础，而如何利用Internet进行有效的信息管理，是企业发
展中不可避免的一个关键问题。利用VPN技术可以组建安全的Extranet，既可以向客户、合作伙伴提供有效的信息服务，又可以保证自身的内部网络的安
全。 </p>
		<p class="font" align="left">　　ExtranetVPN通过一个使用专用连接的共享基础设施，将客户、供应商、合作伙伴或兴趣群体连接到企业内部网。企业拥有与专用网络的相同政策，包括安全、服务质量(QoS)、可管理性和可靠性。如图3所示。 
                <br /></p>
		<div align="left">
				<table align="center" border="0" width="41%">
						<tbody>
								<tr>
										<td>
												<div class="font" align="center">
														<img src="http://www.stcsm.gov.cn/learning/lesson/xinxi/20010723/image/vpn3.jpg" height="184" width="300" />
												</div>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p class="font" align="left">图3 ExtranetVPN结构图</p>
		<p align="left">
				<span class="font">　　ExtranetVPN对用户的吸引力在于：能容易地对外部网进行部署和管理，外部网的连接可以使用与部署内部网和远端访问VPN相同的架构和协议进行部署。主要的不同是接入许可，外部网的用户被许可只有一次机会连接到其合作人的网络。 <br /></span>
		</p>
		<p class="font2" align="center">第六章 VPN益处</p>
		<p class="font2" align="left">
				<span class="font">　</span>
				<br />
		</p>
		<p class="font" align="left"> 　　Internet服务提供商（ISP）和企业将是VPN的直接受益者。ISP将VPN作为一项增值业务推向企业，并从企业得到回报。因此，VPN的最终目的是服务于企业，为企业带来可观的经济效益，为现代化企业的信息共享提供安全可靠的途径。<br /><br /><span class="titlefont">1．ISP受益 </span></p>
		<p class="font" align="left">　
　对于ISP来说，VPN提供了巨大商机。世纪互联的薛滔先生介绍说：世纪互联使用的是基于网通的全国网络，有很好的硬件条件。面对IDC在2001年更
加激烈的竞争状况，世纪互联希望在IDC基础之上找到新的增长点。因为网站缩水，所以世纪互联将目光转向大中型传统企业，分析他们对电信资源有哪些需求，
结果觉得VPN是一个机会。世纪互联现在正在探索，VPN的方案和技术已经准备就绪。世纪互联的目标用户是全国有分支机构，信息化建设已经达到一定水平的
单位，世纪互联将整合现有资源，包括网络、托管和技术力量来为用户提供服务。通过向企业提供VPN增值服务，ISP可以与企业建立更加紧密的长期合作关
系，同时充分利用现有网络资源，提高业务量。事实上，VPN用户的数据流量较普通用户要大得多，而且时间上也是相互错开的。VPN用户通常是上班时间形成
流量的高峰，而普通用户的流量高峰期则在工作时间之外。ISP对外提供两种服务，资源利用率和业务量都会大大增加。同时，VPN使ISP能够经济地维持开
发客户群、增加利润、提供增强服务，如视频会议、电子商务、IP电话、远程教学、多媒体商务应用等等。 </p>
		<p class="titlefont" align="left">2．用户受益 </p>
		<p class="font" align="left">　　哪些用户适于使用VPN呢？在满足基本应用要求后，有三类用户比较适合采用VPN： 
              </p>
		<p class="font" align="left">1)位置众多，特别是单个用户和远程办公室站点多，例如企业用户、远程教育用户； 
              </p>
		<p class="font" align="left">2)用户/站点分布范围广，彼此之间的距离远，遍布全球各地，需通过长途电信，甚至国际长途手段联系的用户； 
              </p>
		<p class="font" align="left">3)带宽和时延要求相对适中； </p>
		<p class="font" align="left">4)对线路保密性和可用性有一定要求的用户。 </p>
		<p class="font" align="left">　　相对而言，有四种情况可能并不适于采用VPN： </p>
		<p class="font" align="left">1)非常重视传输数据的安全性； </p>
		<p class="font" align="left">2)不管价格多少，性能都被放在第一位的情况； </p>
		<p class="font" align="left">3)采用不常见的协议，不能在IP隧道中传送应用的情况； </p>
		<p class="font" align="left">4)大多数通信是实时通信的应用，如语音和视频。但这种情况可以使用公共交换电话网（PSTN）解决方案与VPN配合使用。 
              </p>
		<p class="font" align="left">　
　对于企业来说，VPN提供了安全、可靠的
Internet访问通道，为企业进一步发展提供了可靠的技术保障。而且VPN能提供专用线路类型服务，是方便快捷的企业私有网络。企业甚至可以不必建立
自己的广域网维护系统，而将这一繁重的任务交由专业的ISP来完成。由于VPN的出现，用户可以从以下几方面获益： </p>
		<p class="font" align="left">1)实现网络安
全
具有高度的安全性，对于现在的网络是极其重要的。新的服务如在线银行、在线交易都需要绝对的安全，而VPN以多种方式增强了网络的智能和安全性。首先，它
在隧道的起点，在现有的企业认证服务器上，提供对分布用户的认证。另外，VPN支持安全和加密协议，如SecureIP（IPsec）和
Microsoft点对点加密（MPPE）。 </p>
		<p class="font" align="left">2)简化网络设
计
网络管理者可以使用VPN替代租用线路来实现分支机构的连接。这样就可以将对远程链路进行安装、配置和管理的任务减少到最小，仅此一点就可以极大地简化企
业广域网的设计。另外，VPN通过拨号访问来自于ISP或NSP的外部服务，减少了调制解调器池，简化了所需的接口，同时简化了与远程用户认证、授权和记
账相关的设备和处理。 </p>
		<p class="font" align="left">3)降低成本
VPN可以立即且显著地降低成本。当使用Internet时，实际上只需付短途电话费，却收到了长途通信的效果。因此，借助ISP来建立VPN，就可以节
省大量的通信费用。此外，VPN还使企业不必投入大量的人力和物力去安装和维护WAN设备和远程访问设备，这些工作都可以交给ISP。VPN使用户可以降
低如下的成本： </p>
		<p class="font" align="left">◆移动用户通信成本。VPN可以通过减少长途费或800费用来节省移动用户的花费。 
              </p>
		<p class="font" align="left">◆租用线路成本。VPN可以以每条连接的40%到60%的成本对租用线路进行控制和管理。对于国际用户来说，这种节约是极为显著的。对于话音数据，节约金额会进一步增加。 
              </p>
		<p class="font" align="left">◆
主要设备成本。VPN通过支持拨号访问外部资源,使企业可以减少不断增长的调制解调器费用。另外，它还允许一个单一的WAN接口服务多种目的，从分支网络
互连、商业伙伴的外连网终端、本地提供高带宽的线路连接到拨号访问服务提供者，因此，只需要极少的WAN接口和设备。由于VPN可以完全管理，并且能够从
中央网站进行基于策略的控制，因此可以大幅度地减少在安装配置远端网络接口所需设备上的开销。另外，由于VPN独立于初始协议，这就使得远端的接入用户可
以继续使用传统设备，保护了用户在现有硬件和软件系统上的投资。 </p>
		<p class="font" align="left">4)容易扩展
如果企业想扩大VPN的容量和覆盖范围。企业需做的事情很少，而且能及时实现：企业只需与新的IPS签约，建立账户；或者与原有的ISP重签合约，扩大服
务范围。在远程办公室增加VPN能力也很简单：几条命令就可以使Extranet路由器拥有Internet和VPN能力，路由器还能对工作站自动进行配
置。 </p>
		<p class="font" align="left">5)可随意与合作伙伴联网 在过去，企业如果想与合作伙伴连网，双方的信息技术部门就必须协商如何在双方之间建立租用线路或帧中继线路。有了VPN之后，这种协商也毫无必要，真正达到了要连就连，要断就断。 
              </p>
		<p class="font" align="left">6)完全控制主动权 借助VPN，企业可以利用ISP的设施和服务，同时又完全掌握着自己网络的控制权。比方说，企业可以把拨号访问交给ISP去做，由自己负责用户的查验、访问权、网络地址、安全性和网络变化管理等重要工作。 
              </p>
		<p class="font" align="left">7)支持新兴应用 许多专用网对许多新兴应用准备不足，如那些要求高带宽的多媒体和协作交互式应用。VPN则可以支持各种高级的应用，如IP语音，IP传真，还有各种协议，如RSIP、IPv6、MPLS、SNMPv3等。 
              </p>
		<p class="font" align="left">　　正由于VPN能给用户带来诸多的好处，VPN在全球发展得异常红火，在北美和欧洲，VPN已经是一项相当普遍的业务；在亚太地区，该项服务也迅速开展起来。 <br /></p>
		<p class="font2" align="center">第七章 VPN发展趋势</p>
		<p class="font2" align="left">
				<span class="font">　</span>
		</p>
		<p class="font" align="left"> 　　在国外，Internet已成为全社会的信息基础设施，企业端应用也大都基于IP，在Internet上构筑应用系统已成为必然趋势，因此基于IP的VPN业务获得了极大的增长空间。Infornetics 
                Research公司预言，在2001年，全球VPN市场将达到120亿美元。据预测，到2004年，北美的VPN业务收入将增至88亿美元。 
              </p>
		<p class="font" align="left">　　在中国，制约VPN的发展、普及的因素大致可分为客观因素和主观因素两方面。 
              </p>
		<p class="titlefont" align="left">1.客观因素包括因特网带宽和服务质量QoS问题。 </p>
		<p class="font" align="left">　
　在过去无论因特网的远程接入还是专线接入，以及骨干传输的带宽都很小，QoS更是无法保障，造成企业用户宁愿花费大量的金钱去投资自己的专线网络或是宁
愿花费巨额的长途话费来提供远程接入。现在随着ADSL、DWDM、MPLS等新技术的大规模应用和推广，上述问题将得到根本改善和解决。譬如，过去专线
接入速率最高才2Mbps，而从今年开始，中国的企业用户可以享受到10Mbps，乃至100Mbps的Internet专线接入，而骨干网现在最高已达
到40Gbps，并且今后几年内将发展到上百乃至上千个Gbps，这已不是技术问题而是时间问题。随着互联网技术的发展，可以说VPN在未来几年内将会得
到迅猛发展。 </p>
		<p class="titlefont" align="left">2.主观因素之一是用户总害怕自己内部的数据在Internet上传输不安全。 
              </p>
		<p class="font" align="left">　　其实前面介绍的VPN技术已经能够提供足够安全的保障，可以使用户数据不被查看、修改。主观因素之二，也是VPN应用最大的障碍，是客户自身的应用跟不上，只有企业将自己的业务完全和网络联系上，VPN才会有了真正的用武之地。 
              </p>
		<p align="left">
				<span class="font">　
　可以想象，当我们消除了所有这些障碍因素后，VPN将会成为我们网络生活的主要组成部分。在不远的将来，VPN技术将成为广域网建设的最佳解决方案，它
不仅会大大节省广域网的建设和运行维护费用，而且增强了网络的可靠性和安全性。同时，VPN会加快企业网的建设步伐，使得集团公司不仅仅只是建设内部局域
网，而且能够很快地把全国各地分公司的局域网连起来，从而真正发挥整个网络的作用。VPN对推动整个电子商务、电子贸易将起到不可低估的作用。</span>
		</p>
		<table border="0" cellpadding="0" cellspacing="0" height="242" width="750">
				<tbody>
						<tr>
								<td height="164" width="11">
										<br />
								</td>
								<td colspan="3" rowspan="2" valign="top">
										<table border="0" cellpadding="0" cellspacing="0" height="383" width="100%">
												<tbody>
														<tr valign="center">
																<td height="414" width="553">
																		<div align="center">
																				<p class="font2" align="center">第八章 VPN Q&amp;A</p>
																				<p class="font2" align="left">
																						<span class="font">　</span>
																				</p>
																				<p class="titlefont" align="left"> Ｑ:如何定义VPN？ </p>
																				<p class="font" align="left">
																						<span class="titlefont">A:</span>利用公共网络来构建的私人专用网络称为虚拟私有网络（VPN，Virtual 
                Private Network），用于构建VPN的公共网络包括Internet、帧中继、ATM等。在公共网络上组建的VPN象企业现有的私有网络一样提供安全性、可靠性和可管理性等。 
              </p>
																				<p class="font" align="left">　
　“虚拟”的概念是相对传统私有网络的构建方式而言的。对于广域网连接，传统的组网方式是通过远程拨号连接来实现的，而VPN是利用服务提供商所提供的公
共网络来实现远程的广域连接。通过VPN，企业可以以明显更低的成本连接它们的远地办事机构、出差工作人员以及业务合作伙伴、企业内部资源享用者只需连入
本地ISP的POP（Point Of
Presence，接入服务提供点）即可相互通信；而利用传统的WAN组建技术，彼此之间要有专线相连才可以达到同样的目的。虚拟网组成后，出差员工和外
地客户只需拥有本地ISP的上网权限就可以访问企业内部资源；
如果接入服务器的用户身份认证服务器支持漫游，甚至不必拥有本地ISP的上网权限。这对于流动性很大的出差员工和分布广泛的客户与合作伙伴来说是很有意义
的。并且企业开设VPN服务所需的设备很少，只需在资源共享处放置一台VPN服务器就可以了。 <br /></p>
																				<div class="titlefont" align="left">Q:VPN可分为哪几类？ </div>
																				<p class="font" align="left">
																						<span class="titlefont">A:</span>VPN
分为三种类型：远程访问虚拟网（Access VPN）、企业内部虚拟网（Intranet VPN）和企业扩展虚拟网（Extranet
VPN），这三种类型的VPN分别与传统的远程访问网络、企业内部的Intranet以及企业网和相关合作伙伴的企业网所构成的Extranet相对应。
<br /></p>
																				<div align="left">
																						<span class="titlefont">Q:VPN应该遵循哪些设计原则？</span>
																						<span class="font">
																						</span>
																				</div>
																				<p class="font" align="left">
																						<span class="titlefont">A:</span>VPN的设计包含以下原则：安全性、网络优化、VPN管理等。 
              </p>
																				<p class="font" align="left">　　在安全性方面，由于VPN直接构建在公用网上，实现简单、方便、灵活，但同时其安全问题也更为突出。企业必须确保其VPN上传送的数据不被攻击者窥视和篡改，并且要防止非法用户对网络资源或私有信息的访问。Extranet 
                VPN将企业网扩展到合作伙伴和客户，对安全性提出了更高的要求。 </p>
																				<p class="font" align="left">　
　在网络优化方面，构建VPN的另一重要需求是充分有效地利用有限的广域网资源，为重要数据提供可靠的带宽。广域网流量的不确定性使其带宽的利用率很低，
在流量高峰时引起网络阻塞，产生网络瓶颈，使实时性要求高的数据得不到及时发送；而在流量低谷时又造成大量的网络带宽空闲。QoS通过流量预测与流量控制
策略，可以按照优先级分配带宽资源，实现带宽管理，使得各类数据能够被合理地先后发送，并预防阻塞的发生。 </p>
																				<p align="left">
																						<span class="font">　
　在VPN管理方面，VPN要求企业将其网络管理功能从局域网无缝地延伸到公用网，甚至是客户和合作伙伴。虽然可以将一些次要的网络管理任务交给服务提供
商去完成，企业自己仍需要完成许多网络管理任务。所以，一个完善的VPN管理系统是必不可少的。VPN管理的目标为：减小网络风险、具有高扩展性、经济
性、高可靠性等优点。事实上，VPN管理主要包括安全管理、设备管理、配置管理、访问控制列表管理、QoS管理等内容。 </span>
																				</p>
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<p align="left">
		</p>
		<p align="left">
		</p>
<img src ="http://www.cppblog.com/mydriverc/aggbug/30036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-08-15 00:29 <a href="http://www.cppblog.com/mydriverc/articles/30036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VPN中的网络隧道技术</title><link>http://www.cppblog.com/mydriverc/articles/30035.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Tue, 14 Aug 2007 16:12:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/30035.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/30035.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/30035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/30035.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/30035.html</trackback:ping><description><![CDATA[　　对于构建 VPN
来说，网络隧道(Tunnelling)技术是个关键技术。网络隧道技术指的是利用一种网络协议来传输另一种网络协议，它主要利用网络隧道协议来实现这种
功能。网络隧道技术涉及了三种网络协议，即网络隧道协议、隧道协议下面的承载协议和隧道协议所承载的被承载协议。 <br />　　<br />　　现有两种类
型的网络隧道协议，一种是二层隧道协议，用于传输二层网络协议，它主要应用于构建远程访问虚拟专网（Access
VPN）；另一种是三层隧道协议，用于传输三层网络协议，它主要应用于构建企业内部虚拟专网（Intranet
VPN）和扩展的企业内部虚拟专网（Extranet VPN）。 <br />　　<br />　　二层隧道协议 <br />　　<br />　　二层隧道协议主要
有三种。一种是微软、Ascend、3COM 等公司支持的 PPTP（Point to Point Tunneling
Protocol，点对点隧道协议），在 Windows NT 4.0以上版本中即有支持。另一种是 Cisco、北方电信等公司支持的
L2F（Layer 2 Forwarding，二层转发协议），在 Cisco 路由器中有支持。而由 IETF 起草，微软 Ascend
、Cisco、 3COM 等公司参与的 L2TP（Layer 2 Tunneling
Protocol，二层隧道协议）结合了上述两个协议的优点，将很快地成为 IETF 有关二层隧道协议的工业标准。 L2TP
作为更优更新的标准，已经得到了如：Cisco Systems，Microsoft，Ascend，3Com
等的支持，以后还必将为更多的网络厂商所支持，将是使用最广泛的 VPN 协议。 <br />　　<br />　　下面将简单介绍一下 L2TP
网络协议。应用 L2TP 所构建的典型 VPN 服务的结构 其中，LAC 表示 L2TP 访问集中器（L2TP Access
Concentrator ），是附属在交换网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备，LAC 一般就是一个网络接入服务器
NAS（Network Access Server）它用于为用户通过 PSTN/ISDN 提供网络接入服务；LNS 表示 L2TP
网络服务器（L2TP Network Server），是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。 <br />　　<br />　
　在一个 LNS 和 LAC 对之间存在着两种类型的连接，一种是隧道（tunnel）连接，它定义了一个 LNS 和 LAC
对；另一种是会话（session）连接，它复用在隧道连接之上，用于表示承载在隧道连接中的每个 PPP 会话过程。 L2TP 连接的维护以及
PPP 数据的传送都是通过 L2TP 消息的交换来完成的，这些消息再通过 UDP 的 1701 端口承载于 TCP/IP 之上。L2TP
消息可以分为两种类型，一种是控制消息，另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护。数据消息用于承载用户的 PPP
会话数据包。 <br />　　<br />　　L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP
消息的交换来完成的，这些消息再通过UDP的1701端口承载于 TCP/IP 之上。 控制消息中的参数用 AVP 值对（Attribute
Value Pair）来表示，使得协议具有很好的扩展性；在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了 L2TP
层传输的可靠性。数据消息用于承载用户的 PPP 会话数据包。L2TP
数据消息的传输不采用重传机制，所以它无法保证传输的可靠性，但这一点可以通过上层协议如 TCP
等得到保证；数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制，甚至可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量
控制功能；在采用流量控制的过程中，对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。 <br />　　<br />　　L2TP 还具有适用于VPN 服务的以下几个特性： <br />　　<br />　
　灵活的身份验证机制以及高度的安全性 L2TP 可以选择多种身份验证机制（CHAP、PAP 等），继承了 PPP 的所有安全特性，L2TP
还可以对隧道端点进行验证，这使得通过 L2TP 所传输的数据更加难以被攻击。而且根据特定的网络安全要求还可以方便地在 L2TP
之上采用隧道加密、端对端数据加密或应用层数据加密等方案来提高数据的安全性。 <br />　　<br />　　内部地址分配支持
LNS可以放置于企业网的防火墙之后，它可以对于远端用户的地址进行动态的分配和管理，可以支持 DHCP
和私有地址应用（RFC1918）等方案。远端用户所分配的地址不是Internet地址而是企业内部的私有地址，这样方便了地址的管理并可以增加安全
性。 <br />　　<br />　　网络计费的灵活性 <br />　　<br />　　可以在LAC和LNS两处同时计费，即ISP处（用于产生帐单）及企业处（用于付费及审记）。L2TP 能够提供数据传输的出入包数，字节数及连接的起始、结束时间等计费数据，可以根据这些数据方便地进行网络计费。 <br />　　<br />　　可靠性 <br />　　<br />　
　L2TP 协议可以支持备份 LNS，当一个主 LNS 不可达之后，LAC（接入服务器）可以重新与备份 LNS 建立连接，这样增加了 VPN
服务的可靠性和容错性。 统一的网络管理 L2TP 协议将很快地成为标准的 RFC 协议，有关 L2TP 的标准 MIB
也将很快地得到制定，这样可以统一地采用 SNMP 网络管理方案进行方便的网络维护与管理。 <p>　　三层隧道协议 <br />　　<br />　　用于传输三层网络协议的隧道协议叫三层隧道协议。三层隧道协议并非是一种很新的技术，早已出现的 RFC
1701 Generic Routing Encapsulation（GRE）协议就是个三层隧道协议。新出来的 IETF 的 IP
层加密标准协议 IPSec 协议也是个三层隧道协议。 <br />　　<br />　　IPSec
协议不是一个单独的协议，它给出了应用于IP层上网络数据安全的一整套体系结构，它包括网络安全协议 Authentication
Header（AH）协议和 Encapsulating Security Payload（ESP）协议、密钥管理协议Internet Key
Exchange （IKE）协议和用于网络验证及加密的一些算法等。IPSec
规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换，向上提供了访问控制、数据源验证、数据加密等网络安全服务。 <br />　　<br />　　GRE <br />　　<br />　　GRE 与 IP in IP、IPX over IP 等封装形式很相似，但比他们更通用。很多协议的细微差异都被忽略，这就导致了它不是建议用在某个特定的“X over Y”进行封装，所以是一种最基本的封装形式。 <br />　　<br />　
　在最简单的情况下，系统接受到一个需要封装和路由的数据报，我们称之为有效报文（Payload）。这个有效报文首先被 GRE 封装然后被称之为
GRE 报文，这个报文接着被封装在 IP 协议中，然后完全由 IP
层负责此报文的向前传输（Forwarded）。我们也称这个负责向前传输的IP
协议为传递（Delivery）协议或传输（Transport）协议。整个被封装的报文具有图2 所示形式： Delivery
Header(transpor Protocol) GRE Header(Encapsulation Protocol) Payload
Packet(Passenger Protocol) 图2 通过 GRE 传输报文形式 GRE 的作用如下：
多协议的本地网通过单一协议的骨干网传输的服务 将一些不能连续的子网连接起来；这一点用于组建 VPN
扩大了网络的工作范围,包括那些路由网关有限的协议；如 IPX 包最多可以转发16次（既经过16个路由器），而在一个 Tunnel
连接中看上去只经过一个路由器 IPSec IPSec，IP
安全协议，是一组开放协议的总称，在特定的通信方之间提供数据的私有性、完整性保护，并能对数据源进行验证。IPSec 使用 IKE
进行协议及算法的协商，并采用由 IKE 生成的密码来加密和验证。IPSec 用来保证数据包在 Internet
网上传输时的私有性、完整性和真实性。IPSec 在 IP 层提供这些安全服务，对 IP 及所承载的数据提供保护。这些服务是通过两个安全协议
AH 和 ESP，通过加密等过程实现的。这些机制的实现不会对用户、主机或其它 Internet
组件造成影响；用户可以选择不同的加密算法，而不会对实现的其它部分造成影响。 <br />　　<br />　　IPSec 提供以下几种网络安全服务： <br />　　<br />　　私有性 － IPsec 在传输数据包之前将其加密，以保证数据的私有性 <br />　　<br />　　完整性 － IPsec 在目的地要验证数据包，以保证该数据包在传输过程中没有被替换 <br />　　<br />　　真实性 － IPsec 端要验证所有受 IPsec 保护的数据包 <br />　　<br />　
　反重复 － IPsec 防止了数据包被扑捉并重新投放到网上，即目的地会拒绝老的或重复的数据包；它通过与 AH 或 ESP
一起工作的序列号实现 IPSec 协议本身定义了如何在 IP 数据包中增加字段来保证 IP
包的完整性、私有性和真实性，这些协议还规定了如何加密数据包。使用
IPsec，数据就可以在公网上传输，而不必担心数据被监视、修改或伪造了。IPsec
提供了两个主机之间、两个安全网关之间或主机和安全网关主机的保护。 <br />　　<br />　　IPSec 定义了两个新的数据包头增加到 IP
包，这些数据包头用于保证 IP 数据包的安全性。这两个数据包头由AH（Authentication Header）和
ESP（Encapsulating Security Payload）规定。在网关上实现 IPSec，AH
将插到标准IP包头后面，它保证数据包的完整性和真实性，防止黑客截断数据包或向网络中插入伪造的数据包。AH
采用了安全哈希算法来对数据包进行保护。AH 没有对用户数据进行加密。ESP 将需要保护的用户数据进行加密后再封装到IP包中，ESP
可以保证数据的完整性、真实性和私有性。 <br />　　<br />　　IPSec 有隧道和传送两种工作方式。在隧道方式中，用户的整个
IP数据包被用来计算 ESP 头，且被加密，ESP 头和加密用户数据被封装在一个新的 IP
数据包中；在传送方式中，只是传输层（如TCP、UDP、ICMP）数据被用来计算 ESP 头，ESP
头和被加密的传输层数据被放置在原IP包头后面。当 IPSec 通信的一端为安全网关时，必须采用隧道方式。 <br />　　<br />　　
Internet 密钥交换协议（IKE）用于在两个通信实体协商和建立安全相关，交换密钥。安全相关（Security Association）是
IPSec
中的一个重要概念。一个安全相关表示两个或多个通信实体之间经过了身份认证，且这些通信实体都能支持相同的加密算法，成功地交换了会话密钥，可以开始利用
IPSec 进行安全通信。IPSec 协议本身没有提供在通信实体间建立安全相关的方法，利用 IKE 建立安全相关。IKE
定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法</p><img src ="http://www.cppblog.com/mydriverc/aggbug/30035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-08-15 00:12 <a href="http://www.cppblog.com/mydriverc/articles/30035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络基础知识讲座：初步了解隧道技术</title><link>http://www.cppblog.com/mydriverc/articles/30033.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Tue, 14 Aug 2007 15:58:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/30033.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/30033.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/30033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/30033.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/30033.html</trackback:ping><description><![CDATA[　现在的计算机领域越来越依赖于各种类型的隧道技术。所有的远程接入VPN(虚拟专用网)都要用隧道，你还经常听到计算机狂人们在谈论SSH(安全
Shell)隧道。利用隧道技术你可以完成许多令人惊讶的工作，所以请舒舒服服地坐好吧，愉快地享受这一期关于隧道技术及其用途的知识讲座。如果你想了解
IP安全协议(IPSec)的具体情况，我们会在以后的基础知识讲座中阐述。
<p>　　隧道技术的主要作用是让一种网络不支持的外来协议通过该网络。隧道协议可以让你利用诸如IP等协议通过IP数据包的“数据”部分发送另一种协
议。大多数隧道协议作用在第4层，这就意味着这些协议可以用来代替TCP(传输控制协议)或UDP(用户数据报协议)等协议的功能。</p><p>　　VPN隧道技术允许远程客户通过隧道进入我们的网络，这一点证明了早前关于隧道被用于那些“不受支持协议”的观点，尽管该作用并不显而易见。如
果我们要通过VPN才能实现打印机和文件共享，那可能是因为端口139和445(Windows的配对端口)已被关闭，实际上对于我们的边界路由器来说，
这两个端口是不受支持的TCP端口。然而，如果在已知的VPN服务器上采用IPSec或PPTP(点对点隧道协议)，那么一切就“都没问题”了。</p><p>　　被发往活动目录(Active
Directory)服务器端口445的数据包将被隐藏为VPN数据包。当这些数据包到达VPN服务器时，服务器会对数据包进行解包(demux，即de
-multiplex，也被称为disassemble)，然后将其发送到内部网络上。当数据包到达内部网络时，其源地址现在就是VPN服务器的内部
IP，这样内部网络做出的响应就能返回VPN服务器。除了这一点，数据包都会完全按照你的意图行事。VPN服务器一收到响应，就会给该数据包添加VPN头
并封装起来，然后通过其外部接口把它发回给你。</p><p>　　关于VPN隧道要注意几个有意思的地方:一旦你的数据到达内部网络，它就已经被解密;而当这些数据通过Internet时，会有一些特别的“东西”被加入到数据包中。</p><p>　　有一点我们没有提及，但是也许很明显，那就是VPN协议在传送你的数据包之前会为其加密。对于理解隧道概念这无关紧要，不过却值得一提。注意这
种加密并不是端对端，也就是说你和服务器之间的通信不是真正安全的。当然你自己和你的网络之间很安全，别人无法窥探，然而一旦数据包从VPN服务器出来，
就会再一次被解密。</p><p>　　说到第二个有意思的地方，我们先来了解一下最基本的IP封装原理。从概念上来说，我们是把数据包嵌套，更确切地说， 外部的IP数据包的数据部分要包含一个完整的IP数据包。很妙，是不是?这样我们就解释了IPIP隧道的概念:IP被包含在IP数据包中。</p><p align="center">　　<img alt="" src="http://edu.yesky.com/imagelist/2007/032/5jr3906i9k2n.jpg" height="129" width="467" /></p><p align="center">　　图1</p><br /><p align="center"><br /></p><p>　　如图1所示，IP数据包的数据部分包含了一个崭新的IP数据包。除了加密，它与VPN隧道技术的作用是一样的。当你的数据包顶端带了个“附加的
包头”时，你无法发送大量的数据，因为第一个IP头就占用了20个节字。认识这一点非常重要，因为在采用隧道技术时会突然出现Path
MTU(最大传输单元)问题。</p><p>　　"建立SSH隧道"是一件很奇妙也很让人费解的事，也就是采用SSH协议通过隧道传送数据。X11程序(例如一个图形用户界面程序)如果需要连
接一个显示终端。它可以非常轻松地通过SSH隧道传送数据。X的客户(例如弹出窗口程序)会试图连接显示器所在的工作站上的X服务器，如果你与一台服务器
之间采用了SSH，并且各选项设置无误，那么程序试图连接X的信息将被通过隧道返回给你本地的计算机，解密后再传送给你本机机上的X服务器。现在来试着建
立SSH隧道吧:执行“ssh-Y
user@hostname.com”命令，然后一旦进入就运行firefox，它应该显示在你的本地计算机上，而且是通过加密SSH隧道实现的。</p><p>　　因为OpenSSH的能力很有趣，并且有助于我们理解隧道概念，所以我们来看看SSH另外两个小技巧。</p><p>　　你可以把到自己计算机上的一个端口的连接转发给一台远程计算机，它将你的数据通过SSH隧道传送，使之安全可靠。这看起来似乎没什么用处，毕
竟，为什么我要把自己计算机上的端口发给另一台计算机呢?要回答这个问题我们先要澄清一些概念。SSH转发端口之前首先要侦听本地端口是否有连接，当建立
连接后，SSH就把整个连接发送给远程主机和端口，这是一个单端口VPN!</p><p>　　例如:ssh -L80:workserver.com:80 user@workdesktop.com</p><p>　　这条命令在本机与workdesktop.com计算机之间建立一个SSH连接，而与此同时也打开了你本地计算机上的端口80。如果你让web
浏览器指向http://localhost，此连接就会通过SSH连接被发送至workdesktop.com，进而又发送至
workserver.com服务器的端口80上。这非常有益于从家里访问那些仅存在于Intranet上的站点，而无需先连接至VPN服务器。</p><p>　　最新的OpenSSH版本同样支持SSH上的IP隧道技术。实际上，它也支持以太网(Ethernet)，目的是将两个以太网广播域桥接在一
起;也就是通过SSH加密!在OpenSSH的隧道选项中，人们可以设置全功能的SSH-VPN隧道，使之在任何SSH网络上都能实现。它在两端都创建隧
道接口，而唯一需要手动配置的只是路由表。如果你想让所有发往目的网络的数据都通过加密隧道来发送，那么你只需为目的网络增加一条路由，并把它指向SSH
自动创建的隧道接口。这确实是目前最无可争议的VPN设置了。</p><p>　　隧道也传送其它协议。希望上述内容能够让你深入了解隧道技术，激发一点兴趣，或者至少让某些人不再觉得这种技术多么神秘。</p><p>　　<strong>小结</strong></p><p>　　隧道技术用于在各种不同的网络中发送不受支持的协议。</p><p>　　通过隧道的数据、VPN或其它内容使数据包增大，所以每个数据包所发送的数据量减少。</p><p>　　一般来说，通过SSH隧道发送数据是一种根据具体应用建立的VPN，然而最新版本的OpenSSH可实现一个完全成熟、无可争议的VPN。</p><img src ="http://www.cppblog.com/mydriverc/aggbug/30033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-08-14 23:58 <a href="http://www.cppblog.com/mydriverc/articles/30033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>隧道技术</title><link>http://www.cppblog.com/mydriverc/articles/30030.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Tue, 14 Aug 2007 15:42:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/30030.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/30030.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/30030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/30030.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/30030.html</trackback:ping><description><![CDATA[隧道技术（Tunneling）是一种通过使用互联网络的基础设施在网络之间传递数据的方式。<b>使用隧道传递的数据（或负载）可以是不同协议的数据帧或包</b>。
隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息，以便通过互联网传递被封装的负载数据。 <br />
　　这里所说的隧道类似于点到点的连接。这种方式能够使来自许多信息源的网络业务在同一个基础设施中通过不同的隧道进行传输。隧道技术使用点对点通信协议
代替了交换连接，通过路由网络来连接数据地址。隧道技术允许授权移动用户或已授权的用户在任何时间、任何地点访问企业网络。 <br />
　　通过隧道的建立，可实现：<br />
* 将数据流强制送到特定的地址<br />
* 隐藏私有的网络地址<br />
* 在IP网上传递非IP数据包<br />
* 提供数据安全支持<br />
　　近来出现了一些新的隧道技术，并在不同的系统中得到运用和拓展。<br />
　　隧道技术<br />
　　为创建隧道，隧道的客户机和服务器双方必须使用相同的隧道协议。隧道技术可分别以第2层或第3层隧道协议为基础。第2层隧道协议对应于OSI模型的数
据链路层，使用帧作为数据交换单位。PPTP（点对点隧道协议）、L2TP（第二层隧道协议）和L2F（第2层转发协议）都属于第2层隧道协议，是将用户
数据封装在点对点协议（PPP）帧中通过互联网发送。第3层隧道协议对应于OSI 模型的网络层，使用包作为数据交换单位。IPIP（IP over
IP）以及IPSec隧道模式属于第3层隧道协议，是将IP包封装在附加的IP包头中，通过IP网络传送。无论哪种隧道协议都是由传输的载体、不同的封装
格式以及用户数据包组成的。它们的本质区别在于，用户的数据包是被封装在哪种数据包中在隧道中传输。<br />
这个技术是近期才出现的新事物，并且已经被用到各种黑客软件之中，比较成熟的有远程控制软件“网络神偷”和“灰鸽子”。 <br />
这是国内两个很有代表性的运用“http隧道穿越原理”而制作的软件，用该类型软件可以穿透防火墙，不受端口的限制。 <br /><br />
一般防火墙为了安全起见，都只开80和其他一些常用的端口，这样的话，那些一般的基于tcp/ip客户端和服务端的木马就不能通过防火墙和外界发生联系，
特别是在内网之中，<b>但是经过特殊处理的ip封包可以伪装成http封包，这样防火墙就认为其是合法的http数据包，就会放行</b>，这样在木马的接收端，软件
再将伪装过的ip封包还原出来，取出其中有用的数据，从而达到穿越防火墙端口设置的限制。 <br /><br />
该类型软件具有很大的欺骗性，所以不要认为设置了端口限制的防火墙就一定很安全了。 <br /><br />
利用HTTP协议的缺陷来实现对防火墙的渗透，或者说现有的一些HTTP隧道技术的实现，是基于防火墙在对HTTP协议的报文进行识别与过滤时，往往只对其诸如POST、GET等命令的头进行识别，而放行其后的所有报文。<img src ="http://www.cppblog.com/mydriverc/aggbug/30030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-08-14 23:42 <a href="http://www.cppblog.com/mydriverc/articles/30030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下网络数据报的监听和拦截技术</title><link>http://www.cppblog.com/mydriverc/articles/28952.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Sun, 29 Jul 2007 07:02:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/28952.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/28952.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/28952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/28952.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/28952.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows下网络数据报的监听和拦截技术1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows下网络数据报的监听和拦截技术是一个比较古老的话题，应用也很广泛，例如防火墙等等。这篇小文只是对该技术的一个总结，没有新技术，高手免看：）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要监听和拦截Windo...&nbsp;&nbsp;<a href='http://www.cppblog.com/mydriverc/articles/28952.html'>阅读全文</a><img src ="http://www.cppblog.com/mydriverc/aggbug/28952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-07-29 15:02 <a href="http://www.cppblog.com/mydriverc/articles/28952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用WinSock2 SPI进行网络内容访问控制</title><link>http://www.cppblog.com/mydriverc/articles/28950.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Sun, 29 Jul 2007 06:34:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/28950.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/28950.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/28950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/28950.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/28950.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;">编者按：与传统的包过滤防火墙技术不同，本文从应用层网关技术入手，深入探讨了利用WinSock2 SPI进行网络内容访问控制的问题。这是网络安全的一项新内容，或者说，它为网络安全技术的爱好者和研发人员提供了一个新的思路。 </p>
<p>
防火墙可以实施和执行网络访问策略，但是，传统的防火墙技术集中于如何防范外部网络对内部网络的入侵和攻击上，而对于如何控制内部用户对外部网络的访问
问题研究不够深入，相关的控制技术也不多。据权威资料显示，全球现有大约25万色情网站，单纯依靠传统的包过滤等防火墙技术，势必会严重影响网络性能。针
对这一问题，我们从应用层网关技术入手，利用WinSock2 SPI技术，进行了研究和探讨。 <br><br></p>
<p align="center"><img style="border: 1px solid black;" src="http://industry.ccidnet.com/col/attachment/2006/3/636775.jpg"></p>
<p align="center">　　Winsock2 SPI原理图</p>
<p align="left">Winsock2
SPI（Service Provider Interface）服务提供者接口建立在Windows开放系统架构WOSA（Windows Open
System
Architecture）之上，是Winsock系统组件提供的面向系统底层的编程接口。Winsock系统组件向上面向用户应用程序提供一个标准的
API接口；向下在Winsock组件和Winsock服务提供者（比如TCP/IP协议栈）之间提供一个标准的SPI接口。各种服务提供者是
Windows支持的DLL，挂靠在Winsock2 的Ws2_32.dll模块下。</p>
<p>
对用户应用程序使用的Winsock2
API中定义的许多内部函数来说，这些服务提供者都提供了它们的对应的运作方式(例如API函数WSAConnect有相应的SPI函数
WSPConnect)。多数情况下，一个应用程序在调用Winsock2 API函数时，Ws2_32.dll会调用相应的Winsock2
SPI函数，利用特定的服务提供者执行所请求的服务。 <br><br>　　Winsock2
SPI允许开发两类服务提供者——传输服务提供者和名字空间服务提供者。&#8220;传输提供者&#8221;（Transport Providers,
一般称作协议堆栈，例如TCP/IP）能够提供建立通信、传输数据、日常数据流控制和错误控制等传输功能方面的服务。&#8220;名字空间提供者&#8221;（Name
Space
Providers，例如DNS名字解析服务）则把一个网络协议的地址属性和一个或多个用户友好名称关联到一起，以便启用与应用无关的名字解析方案。
<p style="text-indent: 2em;">Winsock2
中使用的传输服务提供者有两类：基础服务提供者和分层服务提供者。基础服务提供者执行网络传输协议（比如TCP/IP）的具体细节，其中包括在网络上收发
数据之类的核心网络协议功能。&#8220;分层式&#8221;（Layered）服务提供者只负责执行高级的自定义通信功能，并依靠下面的基础服务提供者，在网络上进行真正的
数据交换。 <br><br>为了进行内部用户对外访问控制，我们需要在现有的基础提供者TCP/IP提供者上设立一个分层式的URL过滤管理者。通过
URL过滤管理者我们可以截获用户请求的HTTP数据包中的URL地址，继而可以通过高效的数据检索算法（如利用Fibonacci散列函数的哈希表），
在访问规则库（被禁止访问的IP集合）中查找指定的IP，根据结果拒绝或提供访问服务。 <br><br>　　传输服务提供者的安装方式决定了它不仅是
一个分层提供者，还是一个基础服务提供者。Winsock
2使用系统配置数据库配置传输服务提供者。配置数据库让Winsock2得知服务提供者的存在，并定义了提供的服务类型。要在Winsock2服务提供者
数据库内成功安装和管理服务提供者，需要四个函数：WSCEnumProtocols、WSCInstallProvider、
WSCWriteProvider Order、WSCDeInstallProvider。</p>
<p>
这些函数利用WSAPROTOCOL_INFOW结构，对服务提供者数据库进行查询和操作。要安装分层式服务提供者，需要建立两个
WSPPROTOCOL_INFOW目录条目结构。一个代表分层提供者（协议链长度等于0），另一个将代表一个协议链（协议长度大于1），该协议链把分层
提供者与一个基础服务提供者链接起来。应该使用现有服务提供者的WSAPROTOCOL_INFOW目录条目结构的属性来初始化这两个结构。</p>
<p>
调用WSCEnumProtocols可以获得已有的服务提供者的WSAPROTOCOL_INFOW目录条目结构。初始化之后，首先需要使用
WSCInstallProvider来安装我们的访问控制分层服务提供者目录条目，然后，利用WSCEnumProtocols列举出所有的目录条目，
获得安装之后为这个结构分配的目录ID。然后，用这个目录条目来设置一个协议链目录条目，通过它，将我们的访问控制服务提供者和另一个提供者（TCP基础
提供者）链接起来。然后再次调用WSCInstallProvider来安装我们的分层链式服务提供者。 <br><br>　　在用
WSCInstallProvider安装一个服务提供者时，目录条目自动成为配置数据库中的最后一个条目。要实现访问控制就必须使我们的URL过滤服务
提供者成为默认的TCP/IP提供者，必须通过调用WSCWriteProviderOrder函数来完成此项工作，对数据库中提供者目录条目进行重新排
序，并把协议链目录条目放在TCP/IP基础提供者之前。 <br><br>　　Winsock2传输服务提供者随标准的Windows动态链接库模块
一起执行。我们必须在我们的服务提供者动态链接库模块中导入DLLMain函数，同时还必须导入一个名为WSPStartup的单一函数条目。我们的
URL过滤服务提供者必须提供对WSPStartup函数和其他30个SPI函数的支持。调用WSAStartup期间，Winsock根据
WSASocket调用的地址家族、套接字类型和协议参数，来决定需要加载哪个服务提供者。只有在一个应用程序通过socket或WSASocket
API调用建立一个采用地址家族AF_INET、套接字类型为SOCK_STREAM的套接字时，Winsock才会搜索并加载与之相应的、能够提供
TCP/IP能力的传输服务提供者。WSPStartup的参数UpcallTable取得Ws2_32.dll的SPI函数派遣表，我们的访问控制分层
服务提供者利用这些函数来管理自身和Winsock2之间的I/O操作。 <br><br>　　我们利用WSPConnect函数来实现访问控制功能。
在用户请求HTTP服务时，需要首先建立与目标站点的连接，连接成功后，在此连接基础上发送HTTP请求数据包。用户应用程序调用connect或
WSAConnect函数建立连接时，SPI会调用对应的WSPConnect函数：INT WSPAPI WSPConnect(...,const
struct sockaddr FAR *name,...,INT FAR
*lpErrno)。在sockaddr类型的参数name中包含了用户将要访问的目标站点的IP地址信息。我们将name参数传递到IP可访问性判定例
程IPFilter。如果IPFilter函数返回代表授权访问的结果，我们采用协议链命令路由，调用下一层的基础服务提供者(TCP/IP)来完成连接
请求。如果IPFilter函数返回代表拒绝服务的结果，我们设置lpErrno参数为相应的错误码，然后返回，不进行协议链下一层服务提供者的调用，从
而实现访问控制。 <br><br>　　分层式服务提供者大大发挥了联网服务的潜能，增强了Winsock的应用，在我们的URL过滤服务中发挥了巨大的作用，基本实现了对内部用户访问外部网络的访问控制，为用户提供了对互联网的健康性的访问服务。<br>(e129)</p>
<br></p>
<br><img src ="http://www.cppblog.com/mydriverc/aggbug/28950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-07-29 14:34 <a href="http://www.cppblog.com/mydriverc/articles/28950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ARP欺骗原理</title><link>http://www.cppblog.com/mydriverc/articles/26250.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Wed, 13 Jun 2007 06:46:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/26250.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/26250.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/26250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/26250.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/26250.html</trackback:ping><description><![CDATA[再仔细看了一下ARP数据包，终于恍然大悟欺骗原理。<br>是这样的，为了能和其他机器通讯，局域网上的各个机器都缓存了ARP列表（ARP列表可以简单理解成&#8220;一个IP地址对应一个MAC地址&#8221;）。机器要通过网关和其他机器通讯，其实是在局域网内发了查询ARP请求（可以简单理解成&#8220;网关啊，请把你的MAC地址告诉我好吗？&#8221;）；网关收到此类请求后，就会发送ARP回应报文，回应网关的MAC。这样，某个机器就会把通讯数据发到网关的MAC上。<br>那么运行了p2pOver之类的软件后是怎么欺骗的呢？简单起见，我们设使用了p2pOver的机器为&#8221;A&#8221;，&#8221;A&#8221;的MAC地址为&#8221;M&#8221;。<br>首先，&#8221;A&#8221;通过ARP查询得到真实的网关MAC，和不停地轮询局域网上其他主机（IP）及其MAC。<br>其次，&#8221;A&#8221;不停地给局域网上其他主机发送伪造的ARP回应报文：告诉他们网关的MAC是&#8221;M&#8221;；<br>同时，&#8221;A&#8221;也不停给交换机发送伪造的ARP回应报文：告诉真正的网关局域网上所有主机的MAC地址为&#8221;M&#8221;。<br>因为是不停地发送报文，到了最后：局域网上的其他主机以为网关就是&#8221;A&#8221;，真正的网关以为局域网上的所有通讯只来自&#8221;A&#8221;。也就是&#8221;A&#8221;变成了事实上的中转中心：不仅可以截取其他主机的流量和数据，还能随心所欲地截断网络通讯。<br><strong>ARP欺骗防治</strong><br>从欺骗原理，不难推出防治关键就是想办法不接收错误的ARP回应报文：<br>1) 使用智能交换机，绑定网内所有IP-MAC。这样也就不需要ARP查询才能知道MAC。<br>2) 还有一个办法，就是在网内所有机器上绑定死网关的MAC（下面适用于WinXP）：<br>在网络正常情况下：<strong>arp -a 网关IP</strong>（如192.168.1.1），查询到正确的网关MAC<br>然后绑定网关MAC：<strong>arp -s 网关IP 网关MAC</strong><br>在执行arp -a，看到网关IP和MAC是静态（Static）的，就可以了
<img src ="http://www.cppblog.com/mydriverc/aggbug/26250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-06-13 14:46 <a href="http://www.cppblog.com/mydriverc/articles/26250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ARP欺骗原理</title><link>http://www.cppblog.com/mydriverc/articles/26251.html</link><dc:creator>旅途</dc:creator><author>旅途</author><pubDate>Wed, 13 Jun 2007 06:46:00 GMT</pubDate><guid>http://www.cppblog.com/mydriverc/articles/26251.html</guid><wfw:comment>http://www.cppblog.com/mydriverc/comments/26251.html</wfw:comment><comments>http://www.cppblog.com/mydriverc/articles/26251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mydriverc/comments/commentRss/26251.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mydriverc/services/trackbacks/26251.html</trackback:ping><description><![CDATA[再仔细看了一下ARP数据包，终于恍然大悟欺骗原理。<br>是这样的，为了能和其他机器通讯，局域网上的各个机器都缓存了ARP列表（ARP列表可以简单理解成&#8220;一个IP地址对应一个MAC地址&#8221;）。机器要通过网关和其他机器通讯，其实是在局域网内发了查询ARP请求（可以简单理解成&#8220;网关啊，请把你的MAC地址告诉我好吗？&#8221;）；网关收到此类请求后，就会发送ARP回应报文，回应网关的MAC。这样，某个机器就会把通讯数据发到网关的MAC上。<br>那么运行了p2pOver之类的软件后是怎么欺骗的呢？简单起见，我们设使用了p2pOver的机器为&#8221;A&#8221;，&#8221;A&#8221;的MAC地址为&#8221;M&#8221;。<br>首先，&#8221;A&#8221;通过ARP查询得到真实的网关MAC，和不停地轮询局域网上其他主机（IP）及其MAC。<br>其次，&#8221;A&#8221;不停地给局域网上其他主机发送伪造的ARP回应报文：告诉他们网关的MAC是&#8221;M&#8221;；<br>同时，&#8221;A&#8221;也不停给交换机发送伪造的ARP回应报文：告诉真正的网关局域网上所有主机的MAC地址为&#8221;M&#8221;。<br>因为是不停地发送报文，到了最后：局域网上的其他主机以为网关就是&#8221;A&#8221;，真正的网关以为局域网上的所有通讯只来自&#8221;A&#8221;。也就是&#8221;A&#8221;变成了事实上的中转中心：不仅可以截取其他主机的流量和数据，还能随心所欲地截断网络通讯。<br><strong>ARP欺骗防治</strong><br>从欺骗原理，不难推出防治关键就是想办法不接收错误的ARP回应报文：<br>1) 使用智能交换机，绑定网内所有IP-MAC。这样也就不需要ARP查询才能知道MAC。<br>2) 还有一个办法，就是在网内所有机器上绑定死网关的MAC（下面适用于WinXP）：<br>在网络正常情况下：<strong>arp -a 网关IP</strong>（如192.168.1.1），查询到正确的网关MAC<br>然后绑定网关MAC：<strong>arp -s 网关IP 网关MAC</strong><br>在执行arp -a，看到网关IP和MAC是静态（Static）的，就可以了
<img src ="http://www.cppblog.com/mydriverc/aggbug/26251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mydriverc/" target="_blank">旅途</a> 2007-06-13 14:46 <a href="http://www.cppblog.com/mydriverc/articles/26251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>