回首页

轻松实现虚拟专用网(一
作 者 : 曹彦东      

    一、功能 

    VPN 替代了传统的拨号访问,利用 Internet 公网资源作为企业专网的延续,节省昂贵的长途费用,与 IP Phone 有异曲同工之妙,不过, VPN 不仅仅能够传语音,局域网的各种功能均能实现,因此, VPN 又称为虚拟局域网。 VPN 还又很强的扩展能力和灵活性,实施方便,并且,可以支持多种接入方式,包括:拨号接入、 Cable Modem 、 xDSL 以及 ISDN 等。同时, VPN 也给 ISP 带来新的商业机会, ISP 可藉 VPN 服务吸引更多用户,提高竞争力。

    VPN 通俗一点说就是使用加密 IP 隧道或虚拟专用路由,实现私有 IP 包,和其他网络协议 (IPX , NetBEUI 等 ) 包在 Internet 上的传输,从而实现位于 WAN 上的不同 LAN 的各种协议虚拟连接,即虚拟的局域网。 VPN 拥有成本低、开销少、灵活度高等优点。 VPN 有以下几大功能:可以替换现有的专用网网段或子网;通过把特定应用分离出来满足相应需求,为专用网络提供有益的补充;在不影响现有专用网的情况下,处理新应用;增加新位置,特别是国际性网站。

    有三种一般情况特别合适于采用 VPN :
    1 .位置众多,特别是单个用户和远程办公室站点多;
    2 .用户 / 站点分布范围广,彼此之间的距离远,遍布全球各地;
    3 .带宽和时延要求相对适中。站点的数量是是否采用 VPN 的关键标准。站点数量越多,站点之间的距离越远, VPN 解决方案越有可能成功。

    实现虚拟专网有两种方式,一是以隧道( Tunneling )协议的方式实现,另一种是通过虚拟专用路由( VPR )的方式来实现 VPN 。由于 VPR 方案面向的是电信运营商,下面将主要讨论面向广大客户的隧道方式。

    二、协议 

    VPN 隧道协议主要有四种,它们是 L2F (第二层转发)、 PPTP( 点到点隧道协议 ) 、 L2TP (第 2 层隧道协议 ) 以及 IPSec(IP 安全协议 ) 。

    L2F 是由 Cisco 公司制订的 VPN 隧道数据流协议,协议软件通常运行在 Cisco 路由器以及提供封装服务的远程接入设备上。 L2F 远不如微软的 PPTP 流行。

    PPTP 是由 Microsoft 制订的,利用它可以建立 PC 到 LAN 的 VPN 连接。采用这种方案时,协议软件必须运行在 Windows NT 和 Windows9x 客户工作站上。让我们先理解 PPTP 的工作原理:一般网络协议的工作方法是进行数据包( Data Packet) 的交换包是由要发送的数据加上协议特定的控制信息组成。对于用户来说关心的只是需要传送的数据,对于附加的控制信息并不重要。 PPTP 的工作方式是在 TCP/IP 包中封装原始包 (Native Packet) ,例如 IPX 包,包括控制信息在内的整个 IPX 包都将成为 TCP/IP 包的“数据 " ――负载 (Payload) ,然后它通过 Internet 进行传输。另一端的软件打开包去除增加的 PPTP 控制信息还原成 IPX 包并发送给 IPX 协议进行常规处理。这一过程叫做通道 (Tunneling) 。使用 PPTP 节省了大量长途电话或长途的专线费用。据一般估计可节省 20 %~ 40 %的费用,对于有大量长途拨入的网络甚至可以节省 60 %~ 80 %的费用。使用 PPTP 对于原有的网络安全性并没有大的破坏,因为原有 LAN 的广泛的安全检查照样进行,其实 PPTP 对于网络用户是透明的。另外它还通过压缩、数据加密等手段保证了网络的安全性。

    L2TP 是 L2F 和 PPTP 二者统一的结果。各种相互竞争的第二层隧道传输标准阻碍了可互操作的 IP-VPN 设备的开发。因此, L2F 和 PPTP 都被提交给 IETF 进行统一。于是产生了一个新的隧道标准,即 L2TP 。它在两端点之间产生隧道,允许一个 PPP 会话在隧道间传输,并对其中发生的会话完全透明。一旦建立一个连接,那么授权、连接、数据传输就象通过 Modem 拨号接入一样,不同只是 Modem 拨号连接走的是 PSTN ,而隧道走的是公共 Internet 。

    IPSec 不是一个单独的协议,而是一套协议包,包括三个基本协议: AH 协议为 IP 包提供信息源验证和完整性保证; ESP 协议提供加密保证;密钥管理协议( ISAKMP )提供双方交流时的共享安全信息。这很好理解,因为我们熟知的 TCP/IP 也是指一套协议包。 L2TP 隧道技术只能保证在隧道发生端及终止端进行认证及加密,而隧道在公网的传输过程中不能完全保证安全。而 IPSec 则是在隧道外面再封包,使隧道更安全。 IPSec 协议将每一个在隧道中传输的 IP 包加密,并加上新的信息头,传输到目的端。

    L2F 、 PPTP 和 L2TP 将 PPP 会话封装在 IP 头部支持多种 LAN 协议,而 IPSec 仅仅作用于 IP 数据流,只对 IP 报加密和传输,隧道中不能传输其它的协议,仅支持 IP 。将 L2TP 与 IPSec 结合,可提供非常安全的支持多协议的隧道连接。

轻松实现虚拟专用网(二)

    三、安全

    安全性又分为两个方面:用户认证和保密传输。其实,在使用公共 Internet 进行专用通信时, IT 经理关心的最主要问题就是安全性。幸运的是,这两个方面都有基于标准的解决方案。远程验证用户拨入服务( RADIUS )是一个维护用户配置文件的数据库,包括口令和访问优先权。代理 RADIUS 功能允许在 Internet 服务供应商( ISP )的接入点( POP )设备上接入客户的 RADIUS 服务器,获得必要的用户配置文件信息。

    IETF(Internet 工程任务组织 ) 的 IP 安全协议标准( IPSec )解决了安全性的保密传输问题,它把多种安全技术集合到一起,可以建立一个安全、可靠的隧道。这些技术包括 DiffieHellman 密钥交换技术, DES 、 RC4 、 IDEA 数据加密技术,哈希散列算法 HMAC 、 MD5 、 SHA ,数字签名技术等。 IPSec 的安全有效载荷封装( ESP )允许选择数据加密标准( DES )或三重 DES ( 3DES ),后者提供了更加强大的保密功能。

    四、实现 

    假设有两个 Internet 上的 NT Server 主机 A ,主机 B ,它们的外部 IP 地址为:

   A_E_IP : 202.119.224.1   Subnet Mask 255.255.255.0
   B_E_IP : 202.119.230.1   Subnet Mask 255.255.255.0
A , B 的内部私有网络地址:
   A_I_IP : 10.10.0.1 Subnet Mask 255.255.255.0
   B_I_IP : 10.10.1.1 Subnet Mask 255.255.255.0

    安装 "PPTP 协议 " 和 "Routing&RAS 服务 " :

    1. 安装 PPTP 协议,设置 " 虚拟私人网络号 " 个数,至少为 "2" ,这是两个节点相连,一个用于拨入,一个用于拨出 ; 如果三个节点两两相连,至少为 "6" 了。

    2. 安装 Routing&RAS 服务,设置 Routing&RAS 属性:

加入 2 个 VPN 通道, VPN1 , VPN2 ,设置均为: "Receive calls as a RAS server" , "Dial out and receive calls as a demand dial router"
设置 "Network..." ,存取范围,允许的协议,授权方案, IP 的的分配 ( 建议使用 DHCP) 等等 .

    关于 RAS 设置, 如果你不熟悉,查查相关资料。
    3. 主机 A 上的 Routing&RAS 的配置 

 <<< 主机 A (A_E_IP : 202.119.224.1 , A_I_IP : 10.10.0.1) >>
  . 运行管理工具 "Administrative Tools\Routing and RAS Admin".
  . 右击 "LAN and Demand Dial Interfaces" , ( 先点击关掉 "Use demand
wizard") , "Add Interface.." ,主要设置如下:
  "Interface name" = "vpn_router_1"
  "Phone number or address of remote router" = "202.119.230.1"
  "Connect Using" = "RASPPTPM(VPN1)" ( 任选一个 )
其他的用缺省值即可。
 . 右击刚加入的 Interface "vpn_router_1" , "Set Credentials.." ,
填入远程帐号 ( 主机 B 上 NT 域中帐号 ) :
  "User name" = "vpn"
  "Domain" = 主机 B 上的 NT 域名 
  "Password" , "Confirm Password" = vpn's password
 ( 补充,分别在 NT server 主机 A ,主机 B 中用 " 域用户管理器 " 添加
域用户, 用户名 = "vpn" ,设置相应的口令,注意使 "vpn" 用户具有 " 拨
入 " 的权利 .)
 . 在 "IP rouging Static routes" 添加静态路由表项 ( 注意是 " 静态
路由 " ,这是使用 Demand Dial Interface 必需的 .)
 Detination = "10.10.1.0"  ( 主机 B 的私有网络地址,我们的目标 )
 Network mask = "255.255.255.0"
 Gateway = "10.10.1.1"  ( 主机 B 私有网络中缺省网关, )
 Metric = "4" ( 大点无所谓 )
 Interface = "vpn_router_1"  ( 刚才加入的 Interface)

4. 主机 B 的 Routing&RAS 设置 ( 类似 )
   <<< 主机 B (B_E_IP : 202.119.230.1 , B_I_IP : 10.10.1.1) >>
 . 在 "Add Interface" 中,
    "Interface name" = "vpn_router_1" ( 名称应和下面的一致 )
    "Phone number or address of remote router" = "202.119.224.1"
    "Connect Using" = "RASPPTPM(VPN1)" ( 任选一个 )
  . 右击刚加入的 Interface "vpn_router_1" , "Set Credentials.." ,
填入远程帐号 ( 主机 A 上 NT 域中帐号 ) :
  "User name" = "vpn"
  "Domain" = 主机 A 上 NT 域名 
  "Password" , "Confirm Password" = vpn's password
 . 在 "IP rouging Static routes" 添加静态路由 ( 注意是 " 静态路由
" ,这是使用 Demand Dial Interface 所需的 .)
 Detination = "10.10.0.0"  ( 主机 A 的私有网络地址,我们的目标 )
 Network mask = "255.255.255.0"
 Gateway = "10.10.0.1"
 Metric = "4" ( 大点无所谓 )
 Interface = "vpn_router_1"  ( 刚才加入的 Interface)

    5. 测试 NT 下的 VPN 

    在主机 A 上,或者 A 下面局域网内的任何一台机器 ( 注意其缺省网关为 A ,即为 A_I_IP : 10.10.0.1) PING 一下试一试 .

    ping 10.10.1.1 ( 可以是主机 B 在的私有网中任何一台机器的 IP) 第一次 Ping 位于其他局域网的 IP 时,可能不通,因为 VPN 有个建立连接的过程,你在 "Routing&RAS Admin" 可以看到 Interface"vpn_router_1" 由 "Disconnected" , "Connecting.." , "Connected" 再 ping 一下试一试 .

     Ping 10.10.1.1
     Reply from 10.10.1.1 : bytes=32 time<10ms TTL=128

    至此,一个小型的 VPN 成功实现。

    五、结束语 

    全球 VPN 市场正飞速发展,美国 VPN 正以每年 100% 的速度增长,到 2001 年,整个 VPN 市值将达到 119 亿美元,全美 92% 的 ISP 提供 VPN 业务。然而,在国内,中国电信垄断下的市场将会限制 VPN 及外包业务的发展,因为,企业接入成本的下降,电信运营商的利润相对会减少。但是,技术的潮流是挡不住的,随着中国即将加入 WTO 及电信市场的逐步开放, VPN 技术在中国将会有一个灿烂的明天。

回首页