第1篇    广域网安全和优化概述

第1章    企业网模型

    随着应用的发展,各种需求不断出现。作为企业IT系统基础的计算机网络,其未来的发展适应企业业务和应用对IT系统越来越高的要求。


1.2    趋势和挑战


    信息技术发展至今,包括企业在内的各种组织几乎都已部署了各种各样的IT系统,这些系统大部分基于各种类型的计算机网络。应对企业不断发展的需求,IT系统也处于不断的发展进化之中。

    IT系统的发展可分为业务数字化、业务流程整合及面向战略三个阶段:

    ·业务数字化:在这个阶段,IT应用主要集中在业务流程数字化和办公自动化等以数字化代替人工操作的方面。从技术架构来看,此时的IT系统以计算为中心,计算、存储和应用呈现出静态绑定的关系。应用依赖于特定厂商、特定型号的计算、存储设备。IT资源为满足业务应用的峰值需求而配置,其平均利用率则很低,造成IT投资的严重浪费;网络、存储、计算分别独立管理维护,管理复杂,维护难度高,过渡依赖于原厂商提供的服务;系统扩展差,难以快速适应机构内部和外部挑战带来的变化。这一阶段的网络技术也呈现繁杂复杂的局面,存在多种互不兼容的协议体系,例如用于Novell文件和打印共享的IPX/SPX(Internet Packet eXchange/Sequential Packet eXchange,网间分组交换/序列包交换),用于IBM大型机和服务器的SNA(Systems Networks Architecture,系统网络体系结构),以及用于访问Internet的TCP/IP(Transfer Control Protocol/Internet Protocol,传输控制协议/互联网协议)等。

    ·业务流程整合:以客户为中心的业务流程整合,需要打破部门壁垒,实现如ERP、集成供应链、客户关系管理、营销管理、产品研发管理等业务流程整合。业务需求催生出以业务为中心的动态IT架构,这种架构有两大特征,一是能够实现通信、存储、计算三大IT基础资源的整合管理及优化;二是具备开放的体系结构,可满足业务流程定制与优化的要求。而今天的网络系统也正在发展为基于IP的统一平台,这种开放架构可以大幅度降低IT系统的复杂度,提高性能和兼容性。例如,基于IP的网络和存储协同优化可以提高IT整体性能50%以上。

    ·面向战略:未来的IT系统将发展为以战略为中心的知识系统,业务战略与IT战略将融为一体,成为整个组织肌体的一部分。IT将充当整个组织的数字神经系统,提供智能决策支持。计算机网络必须适应这一发展趋势,不仅提供网络连通性,提高性能和可靠性,更要为IT系统上层提供灵活而智能的服务。


    当今的IT系统正在业务数字化阶段向业务流程整合阶段的过渡。一方面,经过多年的建设,IT系统为组织带来高效率、低成本的好处;另一方面,面临业务流程整合的压力,组织机构在IT资源整合、IT资源管理和IT业务等方面都面临重大挑战。

    

    IT资源整合

    设想一个涵盖总部到分支机构的大规模企业IT系统。企业不断采用新技术来扩充IT基础设施。例如,采用基于传统PBX(Private Branch eXchange,私有分支交换)交换机的语音系统;采用基于传统PBX(Private Branch eXchange,私有分支交换)交换机的语音系统;采用基于IPX/SPX的网络实现内部文件服务器和打印机共享;在桌面部署IP协议以实现Internet访问;采用从早期的X.25、帧中继(Frame Relay、T1/E1专线、到ATM(Asynchronous Transfer Mode,异步传输模式)等各种技术构建广域网,连接分支机构;采用独立的基于专线的专用网络实现视频电话和会议;采用基于模拟信号传输、单机硬盘存储的传统监控系统;采用专用光纤、专用存储交换机和专用协议构建存储区域网,部署存储系统等等。

    这样的IT设施条块分割,无法实现协同办公和协同商务。例如,语音网、视频会议网、数据通信网、监控信号传输网、存储网络等并立,企业在部署大量线路的同时,还无法在各系统之间共享数据;由于多种协议共存,难以互相兼容,各应用系统之间的互通极为昂贵和困难,效率低下;并且在一部分系统网络资源不足的情况下,另一部分系统的网络资源却可能闲置浪费。

    因此,包括通信、计算、存储在内的基础资源的整合是IT系统建设面临的难题之一。


    IT管理

    在业务流程整合的阶段,IT管理需要从简单的网管管理转向全面的资源管理及业务管理。优化IT资源,提高IT的ROI(Return On Investment,投资回报率),需要更加精细的管理能力。

    当前计算机网络系统面临的主要管理难点主要包括:

    ·内容管理:对各种信息资源和Internet访问的便捷性,在提高工作效率的同时,也可能导致员工有效工作时间的降低。例如员工与工作无关的Internet访问不但浪费了工作时间,而且加重了网络负担。控制员工的此类行为成为一个管理难点。

    ·流量管理:计算机网络承载了越来越多的实时业务和生产相关的关键业务,某些节点极可能成为网络的瓶颈。深度的业务识别、实时动态的流量监控和调节、网络资源优化配置成为当务之急。

    ·安全管理:由于业务的多样性和网络的开放性,各种各样的***威胁着IT系统。加上承载网络日趋归一,IT系统面临的威胁也日益加重。包括接入安全、内容安全、网络安全、存储安全等在内的整体安全性成为一个关键问题。

    ·配置管理:随着企业规模的扩大,大量的网络设备需要广域互连。一旦需要变更配置,位于分支网点的大量设备要在短时间内进行全面的配置变更或升级。如何此类业务批量部署和配置成为一个难题。

    综上所述,组织机构不但需要不断提高网络性能,更需要构建可维护、可管理、可优化的高品质网络。要解决各种难题,实现这个目标,就需要构建一个全面、精细、架构开放的智能管理系统。。


    IT业务个性化

    自工业革命以来,世界经济商务关系和模型发生巨变,经历了从生产为中心到顾客为中心;从大规模标准化生产到大规模客户个性化定制的转变。传统的IT设施难以提供企业为大批量用户提供个性化、定制化和优化方案所需的灵活性和智能性。

    此外,组织机构的IT系统正从单一应用的集合体转向业务流程整合。每个组织都有与自身战略紧密相关的特色业务,并希望获得个性化的IT解决方案。这要求计算机网络由解决基本通信需求向灵活服务于上层的个性化应用进行转变。建设一个技术标准而开放的网络,实现通信、计算、存储等各种资源的整合、管理与优化是解决问题的关键。


1.3    IToIP面向服务的解决方案

    SOA(Service Oriented Architecture,面向服务的体系结构)是一种定义和提供IT基础设施的方式。体现SOA思想的企业级IT系统设计,应允许不同应用功能或应用系统之间共享数据、资源和能力,参与业务流程,无论它们各自背后使用的是何种软件和硬件。

    基于SOA的网络架构将企业IT系统划分成若干层次:

    ·    基础设施层:在这一层中,分布与各个逻辑和物理位置的资源通过统一而标准化的计算机网络被连接起来,形成IT系统的基础设施。所有资源在任意地点都可以被随时访问。

    ·    服务层:这一层将基础的设施和资源结合起来,形成一系列灵活而相对独立的基础设施服务,例如计算服务、安全服务、存储服务等。基础设施服务不包含业务逻辑,其提供的是非业务性的功能。若干基础设施服务可以进一步形成服务组合。一个服务组合可以实现一项组合的业务任务。任何新的业务任务均可以方便地由基础设施服务组合而成,而无须改变已有的服务组合。

    ·    应用层:企业的业务流程实际上可以由一系列的业务任务或复合业务任务构成,也就是说,任何复杂应用均可以通过调用一系列服务组合接口来实现。

    依托SOA思想设计的企业级网络系统,允许灵活、快速、高效地构建企业智能应用,能快速适应企业业务流程的变化。


    为解决IT系统和计算机网络发展过程中面临的种种挑战,H3C在2004年提出了NGeN(下一代e网)架构。基于这个架构,H3C不断完善IP基础网络、IP通信、IP管理、IP存储等解决方案板块,最终形成完全基于IP技术的新一代IT解决方案——IToIP(IT on IP)。

    IToIP是SOA核心思想的一种表现形式。IToIP通过一个开放的架构把先进的技术及客户需求统一为一个整体,使技术手段及商业方法最终都能服务于客户及合作伙伴,所有这些都能最大限度地满足用户的业务需求。

    IToIP解决方案要求对IT基础架构进行整合。其含义是基于IP技术搭建统一的IT基础架构平台,以IP网络为基础,消除异构系统带来的信息鸿沟,整合IP存储、安全、多媒体等各种服务,实现IT基础设施的构件化和资源化。

    IToIP以智能的业务管理衔接应用与IT基础平台,从而实现基于业务的底层资源配置和管理。IToIP以开放架构完成IT应用层和IT基础资源层的完美对接,使得IT系统真正成为用户的价值平台。

    IToIP以智能的业务管理衔接应用与IT基础平台,从而实现基于业务的底层资源配置和管理。IToIP以开放架构完成IT应用层和IT基础资源层的完美对接,使得IT系统真正成为用户的价值平台。

    当今的IT系统建设进入整合时代,需求的重心从单系统的性能转向跨系统的性能、连通、业务互动。依托IP网络融合IT基础架构,提供整合平台,实现基础架构资源化,基于应用灵活组织IT资源来支撑复杂多变的业务,这些已经成为IT系统建设中普遍认同的理念。IToIP解决方案指明了实现这一目标的途径,给出了达到这样目标的方案,使组织机构得以全面而系统地规划,并有序而分布地部署IT系统。




    IToIP解决方案具备以下关键特性:

    ·    标准——IToIP理念的实现首先指向IT基础设施的标准化。从技术的发展趋势来看,IP已成为计算机网络的事实标准,IT系统以IP网络为基础设施是一个清晰而不可置疑的发展方向。标准化是其他一切特性的前提。H3C基于IP的全系列数据通信网络产品完全实现了标准化的特性。

    ·    融合——在标准化实现之后,基于标准的IP基础设施,各种IT资源可以方便地共享和使用,通信、计算、存储、网络等各种技术和应用进一步实现融合。H3C推出的包括统一通信、存储、监控、数据中心、安全等一系列解决方案是实现这一特性的坚实基础。

    ·    开放——在同构的IT基础设施之上的中间件及开放平台可以提供行业应用定制的接口,实现了应用和基础架构上的分离。H3C OAA(Open Application Architecture,开放应用体系结构)开放合作计划正是为实现这一目标而推出的。

    ·    智能——应用可以通过开放的接口来动态调用IT资源,最终为用户构建一个标准、兼容、安全、智能和可管理的IT应用环境。基于IP标准对IT基础架构进行整合,通过开放的手段,为各行业构筑灵活、高效、快速、低成本、个性化的IT解决方案,实现智能化的IT系统,这是IToIP持续演进的目标。


1.4    层级化网络模型

    现代网络设计普遍采用了层级化网络模型。层级化网络模型将网络划分为三层,在层级化网络模型中,每一层定义了特定而必要的功能,通过各层功能的配合,可以构建一个功能完善的IP网:

    ·接入层:这一层提供丰富的端口,负责接入工作组用户,使其可以获得网络服务。接入层还可以对用户实施接入控制。

    ·汇聚层:这一层通过大量的链路接入层设备,将接入层数据汇集起来。同时,这一层依据复杂的策略对数据、信息等实施控制。其典型行为包括路由聚合和访问控制等。

    ·核心层:这一层是网络的骨干,主要负责对来自汇聚层的数据进行尽可能快速的交换。



1.5    H3C企业网架构

1.5.1    典型企业网结构

典型的企业网由下列部分组成:

    ·园区网:园区网通常是大型企业网络的核心,每个园区包括若干建筑物。园区网通常采用包括核心层、汇聚层和接入层在内的3层网络结构。园区每一建筑内的网络都包括汇聚层和接入层,在汇聚层采用性能较高的三层交换机实现建筑内的汇聚;在接入层使用楼层交换机连接到桌面计算机。各建筑网络通过高速局域网技术连接到高性能的园区网核心层设备上。园区网之间通过高速城域网或广域网进行连接。

    ·大型分支机构网:这种机构通常是区域性的行政中心,可能独占一栋大楼或占据大楼中的多个楼层。其自身可能采用2-3层网络结构。其接入层和汇聚层与园区内的建筑网类似。大型分支机构网通常需要使用性能较好、可靠性较高、支撑业务较为丰富的路由器,通过高速专线连接到核心园区网。

    ·中型分支机构网:多个中型分支机构,可能独占一个楼层或几个办公室。通常采用包括汇聚层和接入层的2层网络结构,使用中低端网络设备,通过专线连接到核心园区网或大型分支机构网。

    ·小型分支机构网和远程/分布式办公人员:可能是拥有几个人员的一个办公室,或在家中办公的SOHO人员,或出差在外的移动办公人员等。这些人员根据其需求通过拨号、×××等技术连接到园区网或适当的分支机构。小型分支机构可能部署一台路由器和简单的局域网,SOHO和移动办公人员则直接使用其桌面PC或便捷式计算机。

    ·数据中心:由高性能存储设备和服务器群构成,通常在物理上位于园区网或大型分支机构中,使用高速以太网技术连接到网络骨干。


1.5.2    H3C模块化企业网架构



第2章    远程网络连接需求

    各种网络应用的不断出现对网络提出了越来越高的要求。网络不仅应具备基本的连通性,具备足够的性能和安全性,而且必须是智能而优化的,可以适应复杂的需求和状况。


2.2    远程连接需求分类

    在构造网络的远程连接部分时,主要的需求如下:

    ·连通性需求:这是计算机网络的基本功能。要通过计算机网络将分散于各地的机构、人员、设施连接起来,必须根据其使用时间、地点、所需带宽、以及可以承受的费用选择适当的连接方式。远程连接的可靠性相对较低,相对更容易发生故障,因此应该对重要的站点和应用配置冗余连接或备份连接。

    ·安全性需求:由于远程连接超出组织本身的管理范围,构建在其他组织的网络和设施之上,因此面临着更多的安全风险,例如数据遭到窃听、***者非法拨号接入等。因此网络必须能够确认接入者的身份,防止远程传输的数据被窃听或伪造,对外隐藏网络内部的细节信息,减少系统的漏洞,防范潜在的***风险。

    ·优化性需求:基于网络的应用日趋多样化,而远程连接的带宽相对较为昂贵,因此更容易发生资源不足的情况。在此种情况下,网络应该有能力辨别出不同的应用类型、用户和数据流,并为提供适当的资源。


2.3    连通性需求


2.4    安全性需求

    主要的网络安全性需求包括:

    ·广域传输安全性:对一般的组织而言,直接从运营商租用的专线和分组交换WAN连接的安全性较高,而公共网络的安全性较低,在基于公共网络构建的×××中传送的数据容易遭到窃听和篡改,因此通常采用IPSec对报文进行完整性检查和加密。

    ·节点/站点安全性:对外通告内部的明细路由信息或链路状态信息相当于通告了整个网络的结构,这样做的风险比较大。因而在不同组织之间发布路由时,通常会对发布的路由信息加以控制。

    一个有效方法是在组织内部使用私有地址,这种地址无法在公共网络上直接路由。使用GRE这样的Site-to-Site ×××技术允许跨越公共网连接使用私有地址的站点。

    另一个更安全的方法是在组织内部使用独立的地址空间,这种地址空间可以与外部地址空间重合,因而无法从外部网络直接访问。BGP/MPLS ×××技术允许企业、运营商使用完全重合的地址空间构建×××,获得更高的节点/站点安全性。

    ·接入安全性:允许移动人员远程接入意味着任何人都可以通过相同的远程访问技术连接到组织的网络,要防止这种非法访问,必须对接入用户的身份进行严格验证,并对其授予适当的访问权限。这通常通过基于RADIUS/TACACS的AAA技术实现。


2.5    优化性需求

    与早期仅用于文件和打印共享的局域网不同,当今网络规模不断扩大,其中的应用日益丰富,各种各样的信息共存于同一个网络上。各种信息类型对网络的要求区别显著。常见的信息类型包括:

    ·网络控制:用于实现和维持网络功能的信息,其种类很多,包括链路协议信息、路由协议信息、ICMP、IGMP、STP、VRRP等等。这类信息重要性很高。

    ·网络管理:用于对网络的性能、故障等进行管理的协议通信。典型如SNMP消息。

    ·文件传输:传输量大,占用大量带宽,典型地如FTP和文件共享等。

    ·网络存储:日常动态的网络存储数据量是突发的,而定期批量备份的数据通常是集中而大量的。

    ·语音、视频应用数据及相关应用的控制:占用的带宽相对恒定,要求比较稳定的网络服务。类似IP音频/视频电话这样的应用要求比较强的实时性,并且其呼叫控制信息要求很强的实时性和可靠性。

    ·远程维护和操作:要求进行实时的交互式操作,这类应用要求操作流畅,因此对延迟比较敏感。如Telnet这样的字符交互应用要求的带宽比较低,但使用越来越广泛的图形化远程操作应用对带宽的要求相对较高。

    ·电子交易和ERP:这类应数据量较小,但对可靠性的要求非常高。

    ·Internet访问:这类访问主要包括Web访问、下载等。其突发性强,带宽需求不稳定,但通常要求并不严格。

    因此,网络必须能够根据对用户的服务承诺,区分其所发送的报文类型,并根据其特点为其提供不同等级、具有不同特点的服务。这要求网络实现QoS(Quality of Service,服务质量)。

    QoS是一种对不同的用户、应用类型、数据流提供有差别服务,并可进而保证其获得的网络资源,提供其所需的机制。例如,实现了QoS的网络能够对于实时性要求高的IP电话音频流报文以最快速度转发;对占用带宽较高的远程容灾备份保证其享有的带宽;对普通用户访问外部网站的流量在资源紧缺的部分丢弃,而对网站设计专业人员访问外部网站的流量给以保证等。


第2篇    宽带接入技术

第3章    宽带接入技术概述

    随着Internet的快速发展普及,网上话音通信,音视频广播和宽带交互式新媒体的出现和发展对接入网带宽的要求将越来越高,由此带来了宽带接入技术的蓬勃发展。


3.2    企业网的宽带接入技术需求

    传统的企业网络经常使用专线技术(如T1和E1等)来连接不同的分支机构。专线技术在实际应用中可以保证较高的安全性,但随之而来的是较为昂贵的线路租用费用和较低的利用率。

    随着现代商业模式的发展,企业的SOHO(Small Office&Home Office)用户及移动用户在极大的提高企业运作效率和降低企业运作成本的同时,也迫切需要高速、灵活、便宜的接入技术来访问企业网络。由于大多数企业从业务角度都需要接入Internet,因此让企业的SOHO和移动用户通过Internet以安全×××的方式来访问企业网络成为了目前主流的选择。


3.3    宽带接入技术关键概念

3.3.1    什么是宽带接入

    对于电信运营商来说,数据网络的建设分为三层,核心交换网(又称为骨干网)、城域网和接入网:

    ·核心交换网相当于城市之间的高速公路;

    ·城域网相当于城市市区内的道路;

    ·接入网则是将道路从市区一直延伸到小区,直至每个家庭用户或分支办公室。

    在传统的PSTN网络概念中,接入即为本地交换机(Local Exchange)与用户之间的连接部分,通常包括用户线传输系统、复用设备、交叉连接设备或用户/网络终端设备。国际电信联盟(ITU-T)第13组于1995年7月通过了关于接入网框架结构方面的新建设G.902,其中对接入网的定义如下:接入网由业务节点接口(SNI)和用户网络接口(UNI)之间的一系列传送实体(如:线路设备和传输设施)组成,为供给电信业务而提供所需传送承载能力的实施系统,可经由管理接口(Q3)配置和管理。

    接入网主要解决的是“最后一公里”的接入(First Mile Access)问题。由于骨干网一般采用光纤结构,传输速度快,因此,接入网往往便成为了整个网络系统的瓶颈。而用户对网络带宽的需求可以说是永无止尽的,因此接入网的宽带化成为了必然的发展趋势。

    虽然传统以太网技术不属于接入网的范畴。但由于以太网具有巨大的网络基础和长期的经验知识,已经是非常成熟的技术,而且在性价比、可扩展性、可靠性和IP网络的适应性上都很有优势,因此目前运营商在数据网络的建设上,从骨干网到接入网都趋于以太网化。

    


3.3.2    宽带接入模型和基本概念


    在上图所示的宽带接入模型中,主要有三个基本概念:CO、CPN和CPE。

    CO(Central Office,局端)主要是指靠近用户网络的局端机房,CO主要提供本地交换和接入设备以实现本地用户线路的接入。

    CPN(Customer Premises Network,用户驻地网),从整个电信网的角度讲,可以将全网划分为公用网和CPN两大块,其中CPN属用户所有,主要指由用户设备构成的网络。

    CPE(Customer Premise Equipment,用户的设备)一般是指物理上位于用户侧的硬件设备。在宽带接入网络中,我们提到CPE设备时实际上指的主要是CPN的出口设备,比如说宽带路由器、宽带调制解调器、机顶盒和cable modem等。


3.4    主要的宽带接入技术

    在现有的宽带接入技术中,常见的传输介质主要包括铜质双绞线、光纤、同轴电缆、无线电波和电力线路等:

    ·铜质双绞线:在传统的窄带网络中,铜质双绞线(电话线)已经被广泛使用,采用调制解调器接入,通过电话线拨号入网,其速率最高可以达到56kbps,如果采用窄带ISDN技术,两个B信道捆绑使用时可以提供最高速率128kbps的连接。从本质上来说,铜质双绞线(电话线)是窄带网络的主流传输介质,但由于窄带时代铜线的大量铺设,电信运营商也比较倾向于在现有的铜线资源上进行技术改造已进行更高带宽的数据传输,目前主要的技术包括一系列的DSL(Digital Subscriber Line,数字用户线路)技术。在某些用户比较密集的园区或者住宅小区中,采用铜质双绞线(网线,如常用的四对五类双绞线)直接入户的方式直接运行以太网Ethernet也是目前常见的宽带接入方式之一。

    ·光纤:相对于传统的窄带接入介质,光纤的带宽高、抗干扰能力强、可靠性高、节约管道资源。使用光纤进行宽带接入的成本也在持续降低中。铜是世界性战略资源,以铜缆为基础的传统线路成本会越来越高,而光纤的原材料是二氧化硅,在自然界取之不尽,用之不竭,在使用寿命上也远高于铜线。因此在新铺用户线路或者老电缆替换中,光纤已经成为更合理的选择,特别是在网络的主干段乃至配线段。而且原有的铜线网络有源设备多,电磁干扰难以避免,维护成本越来越高,作为无源传输介质的光纤则可以避免这类问题。

    接入网络光纤化的技术一般统称为Fiber-to-the-x(FTTx)。在以光纤为介质的宽带接入应用中,上层应用多为以太网,其中比较典型的应用为基于无源光网络的EPON。

    ·同轴电缆……

    ·无线电波……

    ·电力线路……


    不管使用哪种宽带接入技术,在从CO到CPE的运营商网络中(特别是新建的网络),实际上大多数都部分或者全部使用了光纤作为传输介质,即使是在无线宽带接入的应用中,从CO到靠近用户的无线接入点之间往往也会通过光纤进行连接。

    接入网络光纤化的技术一般统称为Fiber-to-the-x(FTTx),其作用范围一般从CO到CPE,CO侧的设备为光线路终端(Optical Line Terminal,OLT),用户端设备为光网络单元(Optical Network Unit,ONU)或者光网络终端(Optical Network Terminal,ONT)。

    FTTx技术一般根据光纤到用户的距离来分类,如上图所示,可分为FTTH(Fiber To The Home,光纤到户)、FTTB(Fiber To The Building,光纤到大楼)和FTTC(Fiber To The Curb,光纤到路边)三种接入模式。

    在FTTC结构中,ONU放置在路边或电线杆的分线盒边。从ONU到各个用户之间一般采用铜质双绞线或者同轴电缆进行连接,这样从ONU到用户家里仍可采用现有的铜缆设施,可以推迟入户的光纤投资。在铜质双绞线或者同轴电缆上可以选择的技术包括DSL、Cable Modem、EoC或直接运行的以太网等。

    在FTTB结构中,ONU被直接放到楼内,光纤到大楼可以采用DSL、Cable Modem、EoC或直接运行的以太网等方式接入用户家用。FTTB与FTTC相比,光纤化程度进一步提高,因而更适用于高密度以及需提供窄带和宽带综合业务的用户区。

    在FTTH结构中,ONU直接放置于用户的办公室或家中,是真正全透明的光纤网络,它们不受任何传输制式、带宽、波长和传输技术的约束,是光纤接入网络发展的理想模式和长远目标。


第4章    以太网接入

4.2    以太网接入的典型应用

    IP技术的发展成熟使得话音、数据、视频和移动等应用的融合成为必然,统一通讯已成为发展的趋势。以IP技术为核心进行网络改造并承载多种新型业务已提升竞争力,是固网运营商的发展方向。

    以太网技术由于标准化程度高、应用广泛、带宽提供能力强、扩展性良好、技术成熟,设备性价比高,对IP的良好支持,成为城域网和接入网的发展趋势。

    大型园区的接入是以太网接入的典型应用场景之一。对于用户众多的大型住宅园区,可以采用园区内设置一台园区交换机作为AN。园区交换机下行以百兆或千兆光纤连接所有楼道交换机,楼道交换机再连接到各用户的HG,实现园区网络的汇聚;上行则采用千兆光纤连接到AGG,实现园区网络的高速接入。

    在如上图所示的以太网接入应用中,AN可以选用三层交换机或二层交换机进行部署,其区别在于:

    ·采用三层转发延伸到AN的接入方式时,AN上行通过路由协议实现路由转发,AN下行通过VLAN实现不同用户二层隔离,这样广播域被限制在AN下行的同一业务VLAN内,提高了接入网的带宽利用率。如果二层交换在AGG终结,则广播域的范围扩大到一台AGG设备下的同一业务VLAN。

    ·在二层交换终结在AGG设备的方案中,一台AGG设备最多可接入用户终端将受限于其自身MAC地址表项数。而如果采用三层到AN的方案,AN对用户进行高密度接入并终结二层转发,从而同一AGG可以接入更多用户终端。

    ·采用三层到AN的方案时,AN和AGG上无须支持和部署复杂的二层隔离和安全特性,网络改造规模小,有利于采用已有设备采用较低成本的设备进行快速部署。


4.3    PPPoE原理及配置

4.3.1    PPPoE原理

    在利用以太网技术进行宽带接入的应用中,如何对用户进行认证、授权和计费也是运营商需要考虑的首要问题之一。在以太网交换机上支持的一些认证手段如802.1X主要基于以太网交换机上的物理端口,而且在部署上需要尽量靠近边缘,甚至需要在运营商管理范围之外的一些接入设备上进行部署,因此在部署和管理上都不太方便,具有一定的局限性。

    RFC2516定义的PPPoE(Point-to-Point Protocol over Ethernet)技术可以说很好的解决了以太网接入应用中的用户认证问题。PPPoE协议采用Client/Server方式,它将包含用户认证信息的PPP报文封装在以太网帧之内,在以太网提供点对点的连接的同时,也利用PPP协议的PAP和CHAP认证方式对用户进行认证。

    PPPoE Client可以是用户侧的HG设备,也可以是连接到网络的PC。PPPoE Client将以太网帧(携带PPP帧)通过以太网传送到PPPoE Server上以进行PPP认证。在实际应用中,PPPoE server通常是位于骨干网的边缘层宽带接入服务器(Broadband Remote Access Server,简称BRAS)。宽带接入服务器(BRAS)主要完成两方面功能:

    ·网络承载功能:负责终结用户的PPPoE连接、汇聚用户的流量功能;

    ·控制实现功能:与认证系统、计费系统和客户管理系统及服务策略控制系统相配合实现用户接入的认证、计费和管理功能。

    PPPoE有两个明显的阶段:Discovery阶段和PPP Session阶段,具体如下:

    ·Discovery阶段:当一个主机想开始PPPoE进程的时候,它必须先识别接入端的以太网MAC地址,建立PPPoE的SESSION ID。这就是Discovery阶段的目的。

    ·PPP Session阶段:当PPPoE进入Session阶段后,PPP报文就可以作为PPPoE帧的净荷在以太网帧发到对端,SESSION ID必须是Discory阶段确定的ID,MAC地址必须是对端的MAC地址,PPP报文从Protocol ID开始。在Session阶段,主机或服务器任何一方都可发PADT(PPPoE Active Discovery Terminate)报文通知对方结束本Session。


4.3.2    PPPoE的配置

    如果以H3C MSR路由器作为PPPoE Server,相关的配置主要包括:

    1)    配置虚拟模版

    2)    在以太网接口上启用PPPoE协议

    在系统视图下使用interface virtual-template命令可以创建虚拟接口模版并进入虚拟接口模版视图。在虚拟接口模版视图下可以进行如下配置:

    ·    设置PPP的工作参数(PAP验证):

    【接口视图】ppp authentication-mode pap[[call-in] domain isp-name]

    ·    设置PPP的工作参数(CHAP验证):

    【接口视图】ppp authentication-mode chap[[call-in] domain isp-name]

    【接口视图】ppp chap user username

    ·    设置PPP的工作参数(通过使用全局地址池给对端分配地址):首先定义全局IP地址池,然后在接口上使用全局地址池给PPP用户分配IP地址。

    【系统视图】ip pool pool-name start-ip-address [end-ip-address] [group group-name]

    【接口视图】remote address pool [pool-number]

    进入指定的以太网接口视图,使用pppoe-server命令绑定虚拟接口模版在以太网接口上启用PPPoE协议。

    如果以H3C MSR路由器作为PPPoE Client,相关的配置主要包括:

    1)配置拨号接口

    2)配置PPPoE会话

    相关的配置命令如下:

        ·配置Dialer-group Rule:【系统视图】dialer-rule dialer-group {protocol-name {permit | deny} | acl acl-number}

        ·创建一个Dialer接口:【系统视图】interface dialer number

        ·配置接口IP地址:【接口视图】ip address {address mask | ppp-negotiate}

    如果以H3C MSR路由器作为PPPoE Client,相关的配置主要包括:

    1)配置拨号接口

    2)配置PPPoE会话

    相关的配置命令如下:

        ·配置Dialer-group Rule:【系统视图】dialer-rule dialer-group {protocol-name {permit | deny} | acl acl-number}

        ·创建一个Dialer接口:【系统视图】interface dialer number

        ·配置接口IP地址:【接口视图】ip address {address mask | ppp-negotiate}

    ·使能共享DDR:【接口视图】dialer bundle enable

    ·配置接口的Dialer Group:【接口视图】dialer-group group-number

    ·在以太网接口视图下建立一个PPPoE会话,并且指定该会话所对应的Dialer Bundle,该Dialer bundle的序号number与Dialer接口的编号相同。

    【接口视图】pppoe-client dial-bundle-number number [no-hostuniq]

    注意:

        可在Dialer接口视图下通过配置dialer timer idle idle [in | in-out]命令来设置链路空闲时间,当idle配置为0时,PPPoE会话工作在永久在线模式下,否则工作在按需拨号模式下



    在如上图所示的组网中,我们用一台MSR路由器(RTA)来作为PPPoE Server,PPPoE Client则有两个,其中PPPoE Client1也是一台MSR路由器(HG),PPPoE Client2是一台安装了Windows操作系统的PC。PPPoE Server和PPPoE Client都通过以太网接口连接到一台以太网交换机(SWA,模拟以太网接入环境)。

    在PPPoE Server上的配置如下:

    1)增加一个PPPoE用户:

    [RTA]local-user user1 class network

    [RTA-luser-user1]password simple pass1

    [RTA-luser-user1]service-type ppp

    2)配置域用户使用本地认证方案

    [RTA]domain system

    [RTA-isp-system]authentication ppp local

    3)增加一个本地IP地址池(9个IP地址)

    [RTA]ip pool 1 1.1.1.2 1.1.1.10

    4)配置虚拟模版参数

    [RTA]interface virtual-template 1

    [RTA-Virtual-Template1]ppp authenticaiton-mode pap domain system

    [RTA-Virtual-Template1]remote address pool 1

    [RTA-Virtual-Template1]ip address 1.1.1.1 255.0.0.0

    5)配置PPPoE参数

    [RTA]interface GigabitEthernet0/0

    [RTA-GigabitEthernet0/0]pppoe-server bind virtual-template 1

    在PPPoE Client1上的配置如下:

    1)拨号接口相关配置

    [HG]dialer-group 1 rule ip permit

    [HG]interface dialer 1

    [HG-Dialer1]ip address ppp-negotiate

    [HG-Dialer1]dialer bundle enable

    [HG-Dialer1]dialer-group 1

    [HG-Dialer1]ppp pap local-user user1 password simple pass1

    2)配置PPPoE会话

    [HG]interface GigabitEthnernet0/0

    [HG-Ethernet0/0]pppoe-client dial-bundle-number 1

    在PPPoE Clinet2上,利用Windows操作系统自带的工具创建PPPoE连接并输入相应的用户名和密码即可。


4.4    以太网接入的局限

    以太网接入的传输距离和使用物理介质有直接的关系,上表列出了基于不同介质的以太网的传输距离数据。从上面的数据可以看出,以太网在高速接入方面的能力毋庸置疑,但维持其高速的传输距离较短。这个问题导致早期的以太网接入只适用于用户相对密集,运营商可以就近部署局端设备的大型园区和住宅小区。

    对于一些偏远地区,密集程度较低的用户,如果要应用以太网接入,往往需要使用大量的有源设备进行级联来扩展以太网的传输距离,从而大大增加了网络建设和维护成本。

    以太网技术本身并不能解决上述问题,但随着无源光网络技术的发展,特别是在无源光网络上运行以太网的技术出现,以太网的传输距离得到了极大的扩展。



第5章    EPON

    以太网(Ethernet)技术经过二十年的发展,以其简便实用,价格低廉的特性,几乎已经完全统治了局域网,并在事实上被证明是承载IP数据包的最佳载体。随着IP业务在城域和干线传输中所占的比例不断攀升,以太网也在通过传输速率、可管理性等方面的改进,逐渐向接入、城域网甚至骨干网上***。

    以太网在高速接入方面的能力毋庸置疑,但维持其高速的传输距离较短。本章介绍的PON(Passive Optical Network,无源光网络)技术,特别是EPON(Ethernet over PON)技术,完美的解决了以太网传输距离短的问题,同时能以较少的投入和较高的可靠性来提供千兆级的带宽。


5.2    PON技术简介

    PON的系统结构如上图所示,一个典型的PON系统由OLT(Optical Line Terminal,光线路终端)、ONU(Optical Network Unit,光网络单元)、POS(Passive Optical Splitter,无源分光器)三类设备组成。

    OLT一般放置在局端CO侧,是整个PON系统的核心设备。OLT通常是一台以太网交换机、路由器或者多媒体转换平台。OLT提供面向无源光纤网络的光纤接口(PON接口)。根据以太网向城域网和广域网发展的趋势,OLT除了提供网络集中和接入的功能外,还可以针对用户的Qos/SLA的不同要求进行带宽分配,网络安全和管理配置。

    ONU用于连接用户侧的网络设备(如PC、机顶盒以及交换机等)或与其合为一体,通常放置在用户家里、楼道或者路边,主要的作用是负责用户接入PON网络,实现光信号到电信号的转换。一般提供1Gbps或100Mbps以太接口。

    PON是一种典型的点对多点(P2MP)的结构,POS作为一个连接OLT和ONU的无源设备,它的功能是在OLT和ONU间提供光信号传输通道,分发下行数据到各个ONU,并将上行数据集中耦合到一根光纤上。一般一个POS的分光比为8、16、32、64、128,并可以多级连接,可以灵活实现各种组网方式。

    OLT和ONU之间的光纤网络通常被称为ODN(Optical Distuibution Network,光分配网络)。


5.3    EPON关键技术

5.3.1    EPON的层次结构



5.3.2    EPON系统的工作过程


5.3.3    ONU注册


5.3.4    扩展OAM连接


5.3.5    带宽分配过程



5.3.6    数据传输过程



5.4    EPON基本配置




第6章    EPCN

6.2    有线电视网络概述


6.3    有线电视网络的双向传输改造


6.4    EPCN技术介绍


第7章    ADSL

    随着因特网的快速发展普及,网上话音通信,音频视频广播和宽带交互式新媒体的出现和发展对接入网带宽的要求将越来越高,由此带来了宽带接入技术的蓬勃发展。所谓的宽带接入网络是局端设备(COE,Central Office Equipment)与用户端设备(CPE,Customer Premises Equipment)之间的信息传输网的总称,用于提供最后一公里的连接。


7.2    DSL技术概述



7.3    ADSL技术原理和应用

7.3.1    ADSL技术的基本原理

    ADSL系统主要由局端COE和用户端设备CPE组成,其组成结构如上图所示。

    COE一般位于电信运营商的交换机房中,由DSLAM(Digital Subscriber Line Access Multiplexer)接入平台、ADSL局端卡、语音分离器、IPC(数据汇聚设备)等组成;

    ·语音分离器将线路上的音频信号和高频数字调制信号分离,并将音频信号送入程控电话交换机,高频数字调制信号送入DSLAM接入平台。一些设备制造商经常把分离器集成在DSLAM机框中;

    ·DSLAM接入平台可以同时插入不同的ADSL局端卡和网管卡等;

    ·ADSL局端卡将线路上的信号调制为数字信号,并提供数据传输接口;

    ·IPC为ADSL接入系统提供不同的广域网接口,如ATM、帧中继、T1/E1等。IPC为可选的设备,在这里为了方便理解,我们可以把IPC设备看作是一台起数据集中转发功能的路由器,后简称集中路由器。

    CPE由ADSL Modem(或ADSL路由器)和语音分离器组成,ADSL Modem(ADSL路由器)对用户的数据包进行调制和解调,并提供数据传输接口。




7.3.2    ADSL的上层应用


7.4    ADSL基本配置


7.5    ADSL2/2+技术简介


第3篇    传统×××技术

第8章    ×××概述

    传统上,企业基于专用的通信线路构建Intranet。这种方式昂贵而缺乏灵活性。而通过Internet直接连接各个分支机构又缺乏安全性和扩展性。因此×××(Virtual Private Network,虚拟专用网)技术应用而生。


8.2    企业网对×××的需求

8.2.1    传统企业网面临的问题

    现代企业在发展过程中,对网络提供了越来越高的要求。而仅采用传统路由交换和广域网连接技术构建企业网时,网络将面对路由设计、地址规划、安全保护、成本、灵活性等各方面的挑战。

    传统企业网要么通过Interent或运营商骨干IP网络,要么通过专线、电路交换或分组交换的广域网技术连接器各分支机构。

    企业通过Internet或运营商骨干网络连接分支机构的方式具有以下缺点:

    ·网络层协议必须统一:企业路由器与运营商路由器运行相同的网络层协议,不支持多协议。例如当跨越Internet进行通信时,企业分支间的IPX协议通信无法实现。

    ·必须使用统一的公网地址空间规划:当直接跨越Internet进行通信时,运营商路由器和所有企业路由器都必须处于统一的Internet地址空间内,企业无法自行规划和使用私有地址空间互联,这势必会进一步加剧公网地址的匮乏情况。而NAT技术的复杂性使其无法有效解决这一问题。

    ·必须使用统一的路由策略:企业路由器与运营商路由器运行相同的路由协议,互相交换路由信息。一方面,企业网内部路由信息完全泄漏,产生安全隐患;另一方面,由于运营商面对大量企业提供服务,将导致路由表规模过大,消耗处理资源。

    企业通过专线、电路交换或分组交换的广域网技术连接器分支机构的方案具有以下缺点:

    ·部署成本高:企业需要向运营商租用昂贵的点对点专线或虚电路建立站点间连接,费用高昂。

    ·变更不灵活:专线或虚电路的建立和变更需要运营商配合,操作周期长,时间成本高。

    ·移动用户远程拨号接入费用高:若采用PSTN/ISDN等拨号方式远程接入企业网,不但速度慢,而且必须支付昂贵的长途电话费用。


8.2.2    什么是×××

    ×××(Virtual Private Network,虚拟私有网)是近年来随着Internet的发展而迅速发展起来的一种技术。×××是利用共享的公共网络设施对广域网进行仿真而构建的私有专用网络。可用于构建×××的公共网络并不局限于Internet,也可以是ISP的IP骨干网络,甚至是企业私有的IP骨干网络等。在公共网络上组建的×××可以像企业现有的私有网络一样提供安全性、可靠性和可管理性等。

    RFC 2764描述了基于IP的×××框架结构。利用基于IP的Internet实现×××的核心是各种隧道(Trunnel)技术。通过隧道,企业私有数据可以跨越公共网络安全地传递。传统的广域网连接是通过专线或电路交换连接来实现。而×××是利用公共网络来建设虚拟的隧道,在远程移动用户、驻外机构、合作伙伴、供应商与公司总部之间建立广域网连接,既可以保证连通性,也可以保证安全性。


8.2.3    ×××的优势

    ×××的应用对于实现电子商务或金融网络与通讯网络的融合将有特别重要的意义。无需改动基础硬件设施,仅通过修改软件配置就可以增加、删除×××用户,使得×××相关应用具有非常好的灵活性,可以大大缩短布置周期,加快业务响应速度。×××可以基于Internet基础设施实施,使用户可以在任何时间、任何地点实现接入,这将很好de地满足快速增长和变化的移动业务需求。×××技术允许构建具有安全保证和服务质量保证的虚拟私有网络,可为×××用户提供不同等级的安全性和服务质量承诺。

    利用公共网络进行通信,一方面使企业能够以更低的成本连接远程分支机构、移动办公人员和合作伙伴,另一方面使ISP(Internet Service Provider,Internet服务提供商)能够极大地提高网络资源利用率,增加综合收益。


8.3    ×××主要概念术语

    在图示网络中,支持协议B的两个网络互相之间没有直接的广域网连接,而是通过一个协议A的网络互连,但它们仍然需要互相通信。

    直接在协议A网络上传送协议B的数据包显然是不实现的,因为协议A无法识别协议B的数据包格式。在这个网络模型中要实现×××,就可以使用某种类型的隧道(Tunnel)机制,使PCA和PCB的通信能够通过该隧道技术跨越协议A网络进行。

    PCA对PCB发送的数据包须经过以下过程才能到达PCB:

        ·首先PCA发送协议B的数据包;

        ·数据包到达隧道点设备RTA,RTA将其封装成协议A数据包,通过协议A网络发送给隧道的另一端点设备RTA,RTA将其封装成协议A数据包,通过协议A网络发送给隧道的另一端点设备RTB;

        ·隧道终点设备将协议A数据包解开,还原协议B数据包,发送给PCB.

    这种情况下,协议A称为承载协议(Delivery Protocol),协议A的包称为承载协议包(Delivery Protocol Packet);协议B称为载荷协议(Payload Protocol),协议B的包称为载荷协议包(Payload Protocol Packet)。而决定如何实现隧道的协议称为隧道协议(Tunnel Protocol)。

    为了便于标识承载协议包中封装了载荷协议包,往往需要承载协议报文头部和载荷协议报文头部之间加入一个新的协议报文头部,这个协议称为封装协议(Encapsulation Protocol),经过封装协议封装的包称为封装协议包(Encapsulation Protocol Packet)。

    在典型的×××场景中,PCA和PCB所在的协议B网络为企业内部网络,称为私网(Private Network);作为承载协议的协议A网络为运营骨干网络或Internet,称为公网(Public Network)。


8.4    ×××分类

    依据不同的划分标准,可以将×××划分为多种类型。

    按照业务用途的不同,可以将×××划分为Intranet ×××、Extranet ×××等:

        ·    Intranet ×××:通过使用Intranet ×××,组织可以跨越公共骨干网络,设置可以跨越Internet,在全球范围内连接其各个分支节点。而与此同时,组织仅需支付较少的费用。因为Intranet ×××主要用于站点间的互连,所有又称为Site-to-Site ×××(站点到站点×××)。

    Intranet ×××可以减少组织花费在租用运营商专线或广域网连接上的巨额费用。同时,企业可以自由规划网络的逻辑连接结构,随时部署新的逻辑拓扑,大大缩短了变更周期。通过额外的逻辑和物理连接,还可以利用Intranet ×××强化了Intranet的可靠性。

    ·    Extranet ×××:Extranet ×××通过共享的Internet基础设施,将企业与其客户、上游供应商,合作伙伴及相关组织等连接在一起。Extranet ×××不但可以提供组织之间的互通,而且随着业务和相关组织的变化,组织可以随时扩充、修改或重新部署Extranet ×××网络结构。

    ·    CPE-Based ×××:CPE(Customer Premise Equipment,用户前端设备)是指放置在用户侧,直接连接到运营商网络的网络设备。CPE可以是一台路由器、防火墙、或者是专用的×××网关。在CPE-Based ×××中,CPE必须支持×××特性,负责建立和维护×××连接,连接到×××隧道的另一个终点——其它的CPE设备。

    因此用户通常需要自行采购这些CPE设备,并且自行在各个站点之间配置×××隧道。有时也可以委托运营商或第三方服务提供商进行配置和管理。

    CPE-Based ×××的好处是,用户可以自由部署、在没有运营商支持的情况下,CPE-Based ×××的服务质量也同样是一个问题。

    ·    Network-Based ×××:在Network-Based ×××中,×××的发起和终结设备放置在运营商网络侧,由运营商负责采购这类支持复杂×××特性的设备,部署并管理用户无须关心×××的具体实现,只需要向运营商提出需求,订购服务即可。

    Network-Based ×××不但把用户从繁杂的×××设计、部署和维护中解放出来;而且为运营商提供了低价格高价值的新业务产品。在Network-Based ×××中,有了运营商的全面参与,服务质量也可以得到有效保障。

    

    按照组网模型的不同,可以将×××划分为VPDN、VPRN、VPLS等。

    ·    VPDN(Virtual Private Dial networks,虚拟私有拨号网络):VPDN允许远程移动用户根据需要访问企业内部网络。用户可以通过诸如PSTN和ISDN这样的拨号网络接入,其数据包通过隧道穿越公共网络,达到中心站点。

    由于涉及远程用户从任意地点访问,VPDN必须提供足够安全的身份验证功能,以确保接入用户的合法性。

    ·    VPRN(Virtual Private Routed Networks,虚拟私有路由网络):VPRN根据网络路由信息,在网络层转发数据包。由于使用相同的网络层转发表,×××之间只能通过不同的路由信息加以区分。

    因为通过网络层转发,所以一个VPRN网络只能支持一种网络层协议,而为另一种协议配置一个新的VPRN。通过路由区分×××还会导致全网必须使用统一的地址空间,如果将其部署于运营网络,则独立的管理区域与路由配置的复杂性之间必将存在天然矛盾,要解决这个问题,就要求VPRN中的ISP网络设备支持多个独立的路由表。

    ·    VLL(Virtual Leased Lines,虚拟专线):在VLL中,运营商通过×××技术建立基础网络,为客户提供虚拟专线服务。对于客户来说,CPE到运营商PE的接口是普通的专线接口,链路层协议是普通的WAN协议,客户所获得的服务就像普通专线服务一样。而运营商在IP骨干网络两端的PE之间建立隧道,封装客户的数据帧并在IP骨干网络上发送。

    例如,客户向运营商订购Frame Relay服务,而运营商并不通过真正的Frame Relay网络提供服务,而是在其IP骨干网络两端的边界设备之间建立IP隧道,将客户的Frame Relay帧封装在IP隧道中传送。

    ·    VPLS(Virtual Private LAN Segment,虚拟私有局域网段):VPLS可以用×××网络透明地传送以太帧,使各个站点的LAN可以直接相连,所以VPLS有称为TLS(Transparent LAN Service,透明局域网服务)。

    由于被传送的是链路层以太帧,所以CPE可以是一个简单二层设备,而处于公共网络的运营商设备必须能够采用某种隧道技术对以太网帧加以封装,并传送到正确的目的站点。

    按照OSI模型层次的不同,可以将×××划分为Layer 2 ×××、Layer 3 ×××等:

    ·L2 ×××(Layer 2 ×××,二层×××):在L2 ×××中,载荷协议处于OSI参考模型的数据链路层,承载协议直接封装载荷协议帧(Frame)。比较典型的L2 ×××技术是L2TP(Layer 2 Tuunel Protocol,二层隧道协议)。L2TP允许在IP隧道中传送二层的PPP帧。

    ·L3 ×××(Layer 3 ×××,三层×××):在L3 ×××中,载荷协议处于OSI参考模型的网络层,承载协议直接封装载荷协议包(Packet)。比较典型的L3 ×××技术是GRE(Generic Routing Encapsulation,通用路由封装)。GRE对三层数据包加以封装,可以构建GRE隧道,这就是一种网络层隧道。


8.5    主要×××技术

    目前一些×××技术已得到普遍应用,或具备一定的代表性。

    主要的L2 ×××技术包括:

    ·L2TP(Layer 2 Tunneling Protocol):二层隧道协议,由于IETF起草,微软等公司参与,结合了PPTP和L2F协议的优点,为众多公司所接受。并且已经成为标准RFC。L2TP既可用于实现拨号×××业务(VPDN接入),也可用于实现专线×××业务。

    ·QinQ:QinQ是802.1Q in 802.1Q的简称,是基于IEEE 802.1Q技术的一种比较简单的二层×××协议。通过将一层VLAN Tag封装到私网报文上,使其携带两层VLAN Tag穿越运营商的骨干网络,从而使运营商能够利用一个VLAN为包含多个VLAN的用户网络提供服务。

    ·MPLS L2 ×××:在MPLS(Multi-Protocol Label Switching,多协议标签交换)的基础上发展出了多种二层×××技术,如Martini和Kompella,CCC实现的VLL方式的×××,以及VPLS方式的×××。


主要的L3 ×××技术包括:

    ·    GRE(Generic Routing Encapsulation,通用路由封装):GRE是为了在任意一种协议中封装任意一种协议而设计的封装方法。IETF在RFC 2784中规范了GRE的标准。GRE封装并不要求任何一种对应的×××协议或实现,任何的×××体系均可以选择GRE或者其他方法用于其×××隧道。GRE可以用来对任意一种网络层协议(如IPv6)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IPv4)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点对点的连接,其两端的设备分别对数据报文进行封装及解封装。

    ·    IPSec(IP Security):是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、基于密码学的安全保证。IPSec通过在特定通信方之间(例如两个安全网关之间)建立“通道”,来保护通信方之间传输的用户数据,该通道通常称为IPSec隧道。IPSec协议不是一个单独的协议,它为IP层上的网络数据安全提供了一整套安全体系结构,包括安全协议AH(Authenticaiton Header,认证头)和ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,互联网密钥交换)以及用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。IPSec可以实现对数据的私密性、完整性保护和源验证。

    ·    BGP/MPLS L3 ×××:是利用MPLS和MP-BGP(Multi-Protocol BGP,多协议BGP)技术实现的三层×××。它不但实现了网络控制平面与转发平面相分离,CPE设备与复杂的×××基础构造配置相分离,CPE设备与复杂的×××基础构造配置相分离,IP地址空间隔离等,而且具备了良好的灵活性、可维护性和扩展性。

    另外还有很多其它的×××技术,例如:

    ·    SSL(Secure Sockets Layer)×××:SSL是由Netscape公司开发的一套Internet数据安全协议,它已被广泛地用于Web浏览器与服务器之间的身份验证和加密数据传输。SSL位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL ×××是采用SSL协议来实现远程移动用户接入的×××技术,具有安全性高、配置简单、多种网络环境适应性强等诸多优点。

    ·    AD×××(Auto Discovery Virtual Private Network,自发现虚拟专用网络):通过VAM(××× Address Managerment,×××地址管理)协议收集、维护和分发动态变化的公网地址等信息,解决了当企业分支机构采用动态地址接入公共网络时,通信一方无法事先知道对端的公网地址进而无法组建×××网络的难题。AD×××把连接到公网上的各节点组成的网络看作×××网络,把公网看作×××网络的链路层,AD×××隧道作为企业内部子网之间的虚通道,相当于网络层。AD×××通过VAM获取通信对端的公网地址,帮助用户快捷、方便的建立起内部的安全隧道。


第9章    GRE ×××

    通过GRE(Generic Routing Encapsulation,通用路由封装)实现的GRE ×××是一种典型的L3 ×××,也是最基本的一种。


9.2    GRE ×××概述

    GRE(Generic Routing Encapsulation,通用路由封装)是一种封装方法的名称,而不是特指×××。IETF首先在RFC 1701中描述了GRE,一个在任意一种网络协议上传送任意一种其他网络协议的封装方法。稍后,IETF又在RFC 1702中描述了如何用GRE在IPv4网络上传送其他的网络协议。最终,RFC 2784规范了GRE的标准。

    GRE只是一种封装方法。对于隧道和×××操作的处理机制,例如如何建立隧道,如何维护隧道,如何拆除隧道,如何保证数据的安全性,当出现数据错误或意外发生时如何处理等等,GRE本身并没有做出任何规范。

    GRE封装并不要求任何一种对应的×××协议或实现。任何的×××体系均可以选择GRE或者其他方法用于其×××隧道。通过为不同的协议分配不同的协议号码,GRE可以应用于在绝大部分的隧道封装场合。

    所谓的GRE ×××实际上是指直接使用GRE封装,在一种网络协议上传送其他协议的一种×××实现。在GRE ×××中,网络设备根据配置信息,直接利用GRE的多层封装构造隧道(Tunnel),从而在一个网络协议上透明传送其他协议分组。这是一种相对简单却相当有效的实现方法。理解GRE ×××工作原理是理解其他×××协议的基础。


9.3    GRE封装格式

9.3.1    GRE协议栈

    在GRE隧道中,数据包使用GRE封装,其协议栈和格式如图所示。此时GRE作为封装协议(Encapsulation Protocol)存在。

    在承载协议头之后加入的GRE头本身就可以告诉目标设备“上层有载荷分组”,使目标设备可以做出不同于A协议标准包的处理。当然这还是不够的,GRE必须表达一些其它的信息,以便设备继续执行正确的处理。例如GRE头必须包含上层协议的类型,以便设备在解封装之后,可以把载荷分组递交到正确的协议栈继续处理。

    RFC 2784定义了GRE标准头格式。其中有一个2字节长的Protocol Type字段用于指示载荷协议的类型。该字段使用IANA(Internet Assigned Number Authority,因特网编号授权委员会)定义的以太网协议类型来标识载荷包的协议。一些常见的GRE载荷协议及其协议号如下表所示。

    出于对日益复杂的网络环境和应用的适应,RFC 2890对GRE进行了增强,形成了GRE扩展头格式。扩展的GRE头在原有GRE头格式基础上,增加了2个可选字段Key和Sequence Number,从而使GRE具备了标识数据流和分组次序的能力。


9.3.2    IP over IP的GRE封装


9.4    GRE隧道工作过程

9.4.1    GRE隧道构成

    为了使点对点的GRE隧道像普通链路一样工作,路由器引入了一种称为Tunnel接口的逻辑接口。在隧道两端的路由器上各自通过物理接口连接公共网络,并依赖物理接口进行实际的通信。在隧道两端的路由器上各自通过物理接口连接公共网络,并依赖物理接口进行实际的通信。两个路由器上分别建立一个Tunnel接口,两个Tunnel接口之间建立点对点的虚拟连接,就形成了一条跨越公共网络的隧道。物理接口具有承载协议的地址和相关配置,直接服务于承载协议;而Tunnel接口则具有载荷协议的地址和相关配置,负责为载荷协议服务。当然实际的载荷协议包需要经过GRE封装和承载协议,再通过物理接口传送。

    图示为典型的IP over IP的GRE隧道的系统构成。站点A和站点B的路由器RTA和RTB的E0/0和Tunnel 0接口均具有私网IP地址,而S0/0接口具有公网IP地址。此时,要从站点A发送私网IP包到站点B,经过的基本过程如下:

    ·RTA根据私网IP包的目标地址,查找路由表,找到一个出站接口;

    ·如果出站接口是GRE ×××的Tunnel0接口,RTA即根据配置,对私网IP包进行GRE封装,再加以公网IP封装,变成一个公网IP包,其目的是RTB的公网地址;

    ·RTA根据封装的公网IP包头目标地址,再次查找路由表,将数据包经物理接口S0/0发出;

    ·此数据包穿越IP公共网,到达RTB。

    ·RTB接收到数据包后,由于其目的地址为RTB,且IP包头中的协议号为47,RTB根据源地址将该数据包交给对应的Tunnel0接口,由GRE模块进行解封装处理;

    ·RTB解开数据包的GRE封装后,根据得到的原始私网IP包目的地址再进行下一步的路由查找,最终通过E0/0将私网IP包发送到站点B的私网去。


9.4.2    GRE隧道处理流程


GRE隧道的工作过程包括以下基本步骤:

    ·隧道起点路由查找

    ·加封装

    ·承载协议路由转发

    ·中途转发

    ·解封装

    ·隧道终点路由查找


9.4.3    隧道起点路由查找


    作为隧道两端的RTA和RTB必须同时具备连接私网和公网的接口,本例中分别是E0/0和S0/0;同时也必须各具有一个虚拟的隧道接口,本例中是Tunnel0。

    当一个私网IP包到达RTA时,如果其目的地址不属于RTA时,如果其目的地址不属于RTA,则RTA需要执行正常的路由查找流程。RTA查看IP路由表,结果有以下可能:

    ·若找不到匹配表项,则丢弃此包;

    ·若匹配一条出站接口为普通接口的路由表项,则执行正常转发流程;

    ·若匹配一条出站接口为Tunnel0的路由表项,则执行GRE封装和转发流程。


9.4.4    加封装

    假设此私网数据包的路由查找过程已完成,出站接口为Tunnel0,则此数据包应该由Tunnel接口发出。但Tunnel0接口是虚拟的,无法直接发送数据,所有数据包必须由物理接口发出。因此在转发之前,必须将此数据包用GRE封装在一个IP公网数据包中。

    要执行GRE封装,RTA需要从Tunnel0接口的配置中获得一系列参数:

    ·    RTA首先得知需要使用GRE封装格式,于是在原私网IP包前添加GRE头,并填充适当的字段。

    ·    同时RTA获知一个源地址和一个目标地址,作为最后构造的公网IP包的源地址和目标地址。这个源地址通常是RTA与IP公网相连的接口地址,例如RTA接口S0/0的地址;目标地址通常是RTA与IP公网相连的接口地址,例如RTA接口S0/0的地址;目标地址通常是隧道终点RTB与IP公网相连的接口地址,例如RTB接口S0/0的地址。当然,这两个地址在两台路由器上必须是一一对应的,也就是说在RTA和RTB上应该有呈镜像关系的端点地址配置。另外,RTA与RTB双方的这两个公网地址必须是互相路由可达的。

    之后,RTA利用这两个地址,为GRE封装包添加公网IP头,并填充其他适当的字段。

    这样,一个包裹着GRE头和私网IP包的公网IP包——也就是承载协议包——就形成了。接下来要执行的是将这个数据包真正地发送至公网。


9.4.5    承载协议路由转发

    RTA针对这个公网IP包再次进行常规路由表查找。类似地,查找的结果可能有:

    ·若找不到匹配表项,则丢弃此包;

    ·若匹配一条路由表项,则执行正常转发流程;

    假设RTA找到一条匹配的路由,则根据这条路由的下一跳地址转发此包。当然,不能排除存在递归查找的可能,但这些过程与普通的IP路由查找和转发没有区别,所以不再讨论。


9.4.6    中途转发

    数据报文从RTA发出后,这个IP包必须通过公共网络,到达RTB。假设RTA和RTB具有公网IP可达性,中途路由器仅需依据公网IP包头执行正常的路由转发即可。


9.4.7    解封装

    这个公网IP到达RTB之后:

    ·    RTB检查数据包目的IP地址,发现此数据包的目标是自己的本地接口地址;

    ·    RTB检查公网IP头,发现上层协议号是47,表示此载荷为GRE封装;

    ·    RTB解开公网IP头,检查GRE头,若无错误发生,则解开GRE头;

    ·    RTB根据公网IP包头目的地址,将得到的私网IP包提交给相应的Tunnel接口,就如同这个数据包是由Tunnel接口收到的一样。本例中的Tunnel接口是Tunnel0。


9.4.8    隧道终点路由查找

    Tunnel接口收到这个私网IP包后,处理方法与普通接口收到IP包时完全相同。如果这个私网IP包的目的地址属于RTB,则RTB将此包解开并转给上层协议处理;如果这个IP包的目的地址不属于RTB,则RTB需要执行正常的路由查找流程。RTB查看IP路由表,结果有一下可能:

    ·若找不到匹配表项,则丢弃此包;

    ·若匹配一条路由表项,则执行正常转发流程。


9.5    部署GRE ×××的考虑因素

9.5.1    GRE ×××的特点

    使用GRE隧道实现的×××实现具有很多优点:

    ·GRE ×××可以用当前最为普遍的IP网络(包括互联网)作为承载网络,因而可以最大程度地扩展×××的范围。

    ·Internet是一个纯粹的IP网络,任何非IP网络层协议的都不会被Internet路由器承认,也不能得到路由。然后,很多情况下,企业仍然会使用一些遗留或特殊的其它网络层协议,例如IPX等。GRE封装可以支持多种协议。GRE ×××可以承载多种上层协议载荷,从而可以跨越公共网使用一些传统和特殊协议。

    ·GRE ×××并不局限于单播报文的传送。事实上,任何需要从Tunnel接口发出的数据包均可以获得GRE封装并穿越隧道。这使GRE ×××能支持IP动态路由协议和应用越来越广泛的IP组播路由技术。

    ·另外,GRE ×××没有复杂的隧道建立和维护机制,因此可以说是最容易理解、最易于部署、最容易维护的×××技术之一。


    但是,GRE ×××也具有很多不足之处:

    ·首先,GRE隧道是一种点对点隧道,在隧道两端建立的是点对点连接,隧道两端建立的是点对点连接,隧道双方地位是平等的,因而只适合于站点对站点的场合。

    ·同时,GRE ×××要求在隧道的两个端点上静态配置隧道接口,并指定本端和对端地址。要想修改隧道配置,必须同时手工修改两端的参数。

    ·当需要在所有站点间建立直接的Full-mesh连接时,必须在每一个站点上指定所有其它隧道端点的参数。当站点数量较大时,部署和修改GRE ×××的代价是呈平方数量级增加。

    ·GRE ×××只提供有限的差错校验、序列校验、验证等机制,并不提供数据加密服务,必须使用IPSec等其它技术才能获得足够的安全性。

    ·从收到数据包开始,到数据包转发结束,GRE隧道端点路由器必须两次查找路由表。但是实际上路由器只有一个路由表。也就是说,当使用IP over IP方式时,公网和私网接口实际上不能具有重合的地址。因此GRE隧道并不能真正分割公网和私网,不能实现互相独立的地址空间。


9.5.2    地址空间和路由配置

    GRE是一种VPRN技术,但每一个运行GRE的路由器只有一个路由表,公网与私网之间只能通过不同的路由加以区分。因此,公网和私网的IP地址空间不能重合。但公网和私网路由策略是不同的。实际上,对隧道端点路由器来说:

    ·    其连接到私网的物理接口和Tunnel接口属于私网路由AS,它们采用一致的私网路由策略。

    ·    其连接到公网的物理接口属于公网路由AS,它必须与公网使用一致的路由策略。

    企业连接到IP公网的边缘路由器通常从IP公网获得一个公网路由,以保证隧道两端路由器的物理接口的可达性。而为私网转发数据的Tunnel接口则可以使用静态路由或动态路由协议获得对方站点的私网路由:

    ·    静态路由配置:需手工配置到达目的的IP私网网段(不是Tunnel的目的地址,而是未进行GRE封装的报文的目的地址所属网段)的路由,下一跳是对端Tunnel接口的地址。在Tunnel的两端都要进行这些配置。

    ·    动态路由配置:需将配置和私网作为一个自治系统对待,在IP私网接口和Tunnel接口上启动相应的动态路由协议。例如,如果图示的IP私网要求运行OSPF,则应对RTA和RTB的Tunnel0接口均运行OSPF保证RTA和RTB互相学习到对方站点的私网路由。


9.5.3    Tunnel接口Keeplive

    GRE隧道根据手工的配置启动。但是,GRE本身并不提供对隧道状态的检测和维护机制。默认情况下,系统根据隧道源物理接口设置Tunnel接口状态。

    如图,隧道两端的物理接口状态正常,但在隧道经过的物理路径上有一个中间链路发生故障,由于RTA的接口E1/0状态仍然up,Tunnel0接口的状态也会保持up。如果使用静态路由,则RTA上的路由表不会发生任何变化。因此,即使存在备用的隧道,隧道封装包仍会由主用隧道发出,随后在途中被丢弃。

    因此,要为GRE ×××配置静态路由,就需要有一种手段维护隧道的状态,从而实现故障探测和路由备份的目的。


    Tunnel接口Keeplive功能允许路由器探测并感知隧道的实际工作情况,并随之修改Tunnel接口的状态。启动了Keeplive功能后,路由器会从Tunnel接口周期性发送Keeplive报文。默认情况下,一旦路由器连续3次收不到对方响应的Keeplive报文,即认为隧道不可用,随即将Tunnel接口的状态置为Down。

    这样,此次Tunnel接口为出接口的静态路由表项就会从路由表中消失,避免造成路由错误。

    如果使用路由协议,则由于路由协议自身可以动态发现并适应网络的变化,Keeplive功能不再是必需的。


9.6    GRE ×××配置

9.6.1    GRE ×××基本配置


    要配置GRE隧道,必须首先创建GRE模式的Tunnel接口,才能在Tunnel接口上进行其它功能特性的配置。当删除Tunnel接口后,该接口上的所有配置也将被删除。

    要创建Tunnel接口,请在系统视图下使用命令:

        interface tunnel interface-number mode gre

    interface-number为设定的Tunnel接口号。但实际可建的Tunnel数目受到设备类型、版本、接口总数及内存状况的限制。

    要删除Tunnel接口,请在系统视图下使用命令:

        undo interface tunnel interface-number

    缺省情况下,路由器上未创建Tunnel接口。

    在创建Tunnel接口后,还要指明Tunnel隧道的源端地址和目的端地址,即发出和接收GRE报文的实际物理接口地址。Tunnel的源端地址唯一标识了一个隧道。这些配置在Tunnel两端必须配置。要设置Tunnel接口的源端地址,请在Tunnel接口视图下使用命令:

        source {ip-address | interface-type interface-number}

    缺省情况下,路由器上未创建Tunnel接口。

    在创建Tunnel接口后,还要指明Tunnel隧道的源端地址和目的端地址,即发出和接收GRE报文的实际物理接口地址。Tunnel的源端地址与目的端地址唯一标识了一个隧道。这些配置在Tunnel两端必须配置。要设置Tunnel接口的源端地址,请在Tunnel接口视图下使用命令:

        source{ip-address | interface-number}

    如果使用source命令指定了一个接口,则系统会依次接口为源端接口,以该端口地址为源端地址。

    要设置Tunnel通道的目的端地址,请在Tunnel接口视图下使用命令:

        destinaiton ip-address

    另外还需要设置为Tunnel接口的网络层地址。一个隧道两端的Tunnel接口网络层地址应该位于同一网段上。请在Tunnel接口视图下使用命令:

        ip address ip-address{mask | mask-length}

    除此之外,在源端路由器和目的端路由器上都必须存在经过Tunnel转发数据包的路由,这样GRE封装后的报文才能正确转发。可以配置静态路由,也可以配置动态路由。


9.6.2    GRE ×××高级配置

    GRE ×××支持数据校验功能。若GRE头中的Checksum Present位置位,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致对报文进一步处理,否则丢弃。

    隧道两端可以根据实际应用的需要,选择启用或禁用校验和功能。如果本端配置了校验和而对端没有配置,则本端将不会对接收到的报文进行校验和检查,但对发送的报文计算校验和;相反,如果本端没有配置校验和而对端已配置,则本端将对端发来的报文进行校验和检查,但对发送的报文不计算校验和。缺省情况下,禁止Tunnel两端进行端到端校验。要配置校验和,在Tunnel接口视图下使用命令:

        gre checksum

    若GRE头中的Key Present位置位,则收发双方将使用隧道识别关键字进行验证。只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将丢弃报文。要设置为GRE隧道接口的密钥并启动验证,在Tunnel接口视图下使用命令:

        gre key key-number

    其中key-number可取值为0-4294967295之间的整数。缺省情况下,Tunnel不使用验证。

    要设置Tunnel的Keepalive功能,在Tunnel接口视图下使用命令:

        keepalive seconds times

    其中seconds参数指定Keepalive报文发送周期,取值范围为1-32767,缺省为10秒。times参数指定判断隧道中断所需的Keeplive报文的传送次数,取值范围为1-255,缺省为3次。

    配置了该命令后,设备会从Tunnel口定期发送GRE隧道的Keepalive报文。如果超时时间内没有收到隧道对端的Keepalive响应报文,则本端继续重新发送Keepalive报文。如果超过times参数规定的传送次数后仍然没有收到对端的Keepalive响应报文,则把本端Tunnel接口的协议状态置为Down。如果Tunnel口处于Down状态时收到对端的Keepalive确认报文,Tunnel接口的状态将转换为Up,否则继续保持Down状态。缺省情况下不启动GRE的Keepalive的功能。


9.6.3    GRE ×××信息的显示和调试


9.6.4    GRE ×××配置示例之一

    如图,站点A和站点B运行IP协议,并使用私有地址空间10.0.0.0/8。两个站点通过在路由器RTA和路由器RTB之间使用GRE隧道,跨越公网实现互联。在本例中,由于使用静态路由,RTA和RTB都启动了Keepalive功能,并采用默认参数。

    本例并未列出保证RTA到RTB可达性的相关路由配置,但是这种可达性的要求是隐含的,也是必须保证的。


9.6.5    GRE ×××配置示例之二

    在本例中,私网AS使用了OSPF路由协议,因此在RTA和RTB上启用了OSPF协议,并在Tunnel0接口和E0/0接口启动了OSPF。

    本例并未列出保证RTA和RTB可达性的相关路由配置,但是这种可达性的要求同样是必须保证的。


第10章    L2TP ×××

    移动用户和临时办公场所通常不具备永久性的连接,因此常用PSTN/ISDN等拨号技术接入企业内部网络。但这种方式可能需要支付高昂的长途拨号费用。而作为Access ×××的L2TP(Layer 2 Tunneling Protocol,二层隧道协议)正好可以在降低费用的同时满足接入企业内部网络的需要。L2TP支持“独立LAC”和“客户LAC”两种模式,使其既可用于实现VPDN,也可用于实现站点到站点(Site-to-Site)×××业务。


10.2    L2TP

10.2.1    传统拨号接入模式

    在传统的拨号接入方式中,小型办公室或漫游用户通过PSTN/ISDN之类的技术,直接对NAS(Network Access Server,网络访问服务器)发起远程呼叫,建立二层的点到点链路。用户的设备与NAS之间通常使用PPP(Point to Point Protocol,点到点协议)协议,以实现验证并支持多种网络层协议。

    这样的接入方式需要消耗大量的长途呼叫费用,企业还必须为NAS设备配置大量的拨号接入端口。


10.2.2    L2TP

    IETF在RFC 2661中定义了L2TP协议(Layer Two Tunnel Protocol,二层隧道协议)。L2TP提供了对PPP链路层数据包的隧道(Tunnel)传输支持。它允许二层链路端点和PPP会话点驻留在不同设备上,并且采用分组交换网络技术进行信息交互,从而扩展了PPP模型。L2TP协议结合了L2F协议和PPTP协议的各自优点,成为IETF有关二层隧道协议的工作标准。

    L2TP是一种典型的Access ×××技术。使用L2TP时,用户不必长途拨号直接连接到ISP(Internet Service Provider,因特网服务提供商)位于本地的POP(Point Of Presence,存在点),然后由ISP设备跨Internet建立L2TP隧道,将用户接入到组织内部网络。而具备直接Internet连接的移动用户也可以在没有LAC的情况下,以客户端LAC的方式访问总部资源。这样,用户可以节约大量的长途拨号费用,并可以方便地接入组织内部网络。

    L2TP支持对用户和隧道的验证,也支持对客户端的动态地址分配。使用L2TP,企业不仅可以通过PPP连接自行验证用户身份并分配IP地址,而且可以通过ISP的LAC额外的AAA验证。企业还可以在防火墙和内部服务器上实施访问控制,从而确保了安全性。

    L2TP具备点到网的特性,特别适合单个或少数远程用户接入企业中心网络的情况。企业的小型远程办公室和出差人员可以花费较少的本地接入费用接入其组织中心。

    由于L2TP隧道由PPP触发,承载PPP帧,因而PPP帧,因而其适应性强,可以支持任意的网络层协议。

    但是L2TP不提供任何加密能力,跨越公共网络的数据很容易遭到窃听或篡改。因此在保密性要求比较高的情况下,需要结合其他加密手段——例如IPSec——保证数据安全性。

    在L2TP协议体系中,用户是通过二层链路连接到一个访问集中器(Access Concentrator),然后访问集中器将PPP协议帧通过隧道传送到NAS,这个隧道可以基于一个共享的网络,甚至是Internet。这样,物理链路终止在集中器上,而PPP链路却可以延伸到遥远的目标站点。

    与PPP模块配合,L2TP支持本地和远端的验证、授权和计费(Authenticaiton,Authorizaiton and Accounting,AAA)功能,也可根据需要采用全用户名,用户域名和用户拨入的特殊服务号码来识别是否为×××用户。同时,L2TP也支持对接入用户动态分配地址。

    主要的L2TP组件包括:

    ·远程系统(Remote System):远程系统是一台终端计算机,或者是一台路由器。远程系统连接到诸如PSTN一类的远程接入网络上。它既可以是呼叫发起者,也可以是呼叫接收者。有称为拨号客户(Dial-up Client)或者虚拟拨号客户(Virtual Dial-up Client)。

    ·LAC(L2TP Access Concentrator,L2TP访问集中器):LAC是L2TP的隧道端点之一。LAC与LNS互为L2TP隧道的对等节点,L2TP隧道在LAC和LNS之间建立,由LAC和LNS共同维护。LAC把从远程系统接收的报文封装后发给LNS,把LNS发来的报文解封装后发给远程系统。LAC的位置处于远程系统与LNS之间,或者就存在于远程系统上。

    ·LNS(L2TP Network Server,L2TP网络服务器):LNS是L2TP的隧道端点之一。LAC与LNS互为L2TP隧道的对等节点,L2TP隧道在LAC与LNS之间建立,由LAC和LNS共同维护。同时,LAC和LNS也是会话(Session)的终结点。

    ·NAS(Network Access Server,网络访问服务器):NAS是一个常规的抽象概念。NAS是远程访问网络的接入点,为远程客户提供接入服务。它既可以是LAC,也可以是LNS。


10.3    L2TP工作原理

10.3.1    L2TP概念术语

    L2TP协议还有一些需要掌握的术语,包括:

    ·    呼叫(Call)

    ·    隧道(Tunnel)

    ·    控制连接(Control Connection)

    ·    控制消息(Control Message)

    ·    会话(Session)

    L2TP呼叫(Call)是指远程系统到LAC的连接。例如,一个远程系统用PSTN拨号连接到LAC,则这个连接就是一个L2TP呼叫。呼叫成功之后,如果隧道存在,LAC就会在隧道中发起L2TP会话;如果隧道不存在,就会先触发隧道的建立,然后再发起会话。

    L2TP隧道(Tunnel)存在于一对LAC与LNS之间。一个隧道内包括一个控制连接(Control Connection)以及0个或多个会话(Session)。隧道承载L2TP控制消息(Control Messages)以及封装后的PPP帧。PPP帧以L2TP封装格式传送。

    L2TP控制连接(Control Connection)存在于L2TP隧道内部,在LAC和LNS之间建立。控制连接的作用是建立、维护和释放隧道中的会话以及隧道本身。

    L2TP控制消息(Control Messages)是在LAC和LNS之间交换的。可以看作是L2TP隧道的带内消息。控制消息被用于LAC和LNS的沟通,以便建立、维护和释放隧道中的会话以及隧道本身。L2TP的控制消息中包含了AVP(Attribute Value Pair,属性值对)。AVP是一系列属性及其具体值,控制消息通过其携带的AVP使隧道两端设备能沟通信息,管理会话和隧道。

    L2TP是面向连接,可以为其传送的控制信息提供一定的可靠性。LAC和LNS维护远程系统与LAC的每一个呼叫的状态和信息。

    当一个远程系统建立了到LNS的PPP连接时,一个L2TP会话(Session)就会相应地存在于LAC和LNS之间。来自这个呼叫的PPP帧在相应的会话中被封装,并传送给LNS。因此,L2TP会话与L2TP呼叫是一一对应的。一对LAC和LNS也同时维护在两者之间的会话信息和状态。


10.3.2    L2TP拓扑结构

    根据不同的应用请求,L2TP可使用两种不同的拓扑结构——独立LAC方式和客户LAC方式。

    在独立LAC方式中,远程系统通过一个远程接入方式接入到LAC中,由LAC对LNS发起隧道并建立会话。

    例如,一个企业的员工通过PSTN/ISDN接入位于ISP的LAC设备。该LAC提供用户接入的AAA服务,并通过Internet向位于企业总部的LNS发起建立隧道连接请求,以建立隧道和会话连接。而企业总部的LNS作为L2TP企业侧的×××服务器,接收来自LAC的隧道和会话请求,完成对用户的最终授权和验证,并建立连接LNS和远程系统的PPP通道。

    这种方式的好处在于,所有×××操作对终端用户是透明的。终端用户不需要配置×××拨号软件,只需要执行普通拨号,一次登录就可以接入企业网络。并且,员工即使不能访问Internet,只要它能够拨号到ISP的LAC,就可以访问公司资源。用户验证和内部地址分配由私网进行,使用私有地址空间,不占用公共地址。对拨号用户的计费可由LNS或LAC侧的AAA完成。

    但这种方式需要ISP支持L2TP协议,需要验证系统支持VPDN属性。

    在客户LAC方式中,LAC设备存在于远程系统计算机上。远程系统本身具有Internet连接,并采用一个内部机制——例如VPDN客户端软件——跨越Internet对LNS发起呼叫,并建立隧道和会话。

    例如,企业员工直连接到Internet获得数据通信服务。在员工的计算机上配置×××拨号软件,就可以与总部建立×××连接。用户端计算机同时实现了远程系统和LAC的功能,直接与位于企业总部的LNS建立隧道和会话。此时,对用户的验证仅有LNS侧执行。

    这种方式的好处在于,用户上网的方式和地点没有限制,不需依赖ISP的独立LAC介入,只要客户端具有Internet接入能力,就可以实现VPDN。

    但是远程用户需要具备Internet连接,并安装专用的客户端软件,与独立LAC模式相比较,客户端侧的设置操作更复杂。


10.3.3    L2TP封装


10.3.4    L2TP协议操作

    L2TP协议的主要操作包括:

    ·    建立控制连接

    ·    建立会话

    ·    转发PPP帧

    ·    Keepalive

    ·    关闭会话

    ·    关闭控制连接




10.3.5    L2TP验证


L2TP的验证可以包括三步:

    ·对拨入的远程系统的初始PPP验证:在LAC与远程系统之间进行,用于验证拨入用户的合法性。可以使用CHAP或PAP验证。

    ·对LAC和LNS之间隧道的验证:在LAC与LNS之间进行,用于验证隧道端点的合法性。采用类似CHAP的验证方式。这一验证是可选的。

    ·LNS对远程系统的再次PPP验证:在LNS与远程系统之间进行,用于验证远程系统的身份,以便决定其是否能够访问私网资源。这一步验证有可以分为下列三种:

    ·代理验证:LAC将它从远程系统得到的所有验证信息及LAC端本身配置的验证方式发送给LNS。

    ·强制CHAP验证:LNS直接对远程系统进行CHAP验证。

    ·LCP重协商:LNS将与远程系统重新进行LCP协商,并采用相应的虚拟模版接口上配置的验证方式进行验证。


10.3.6    典型L2TP工作过程



10.4    配置独立LAC模式

10.4.1    独立LAC模式配置任务

    配置L2TP时,根据其工作方式的不同,必须完成的配置项也有所不同。

    对于独立LAC方式,L2TP的配置分为远程系统、LAC、LNS三部分。如果配置了远程验证,则还需要验证服务器。其中远程系统仅使用普通的拨号客户端即可。远程系统和验证服务器的配置此处不再。此外用户还必须完成LAC侧的配置和LNS侧的配置。

    在将设备配置为LAC或LNS之前,必须首先使能L2TP、创建L2TP组,使设备具有基本的L2TP处理能力;然后根据不同的使用环境,分别进行LAC或LNS的特性配置,使设备具有独立的L2TP隧道端点功能。


10.4.2    L2TP基本功能配置

    只有启用L2TP后,设备上的L2TP功能才能正常发挥作用;如果未启用L2TP,则即使配置了L2TP的参数,设备也不会提供相关功能。默认情况下,L2TP功能处于关闭状态。要启用L2TP功能,在系统视图下使用命令:

         enable

    为了进行L2TP的相关参数配置,还需要创建L2TP组。L2TP组的使用允许在设备上灵活配置L2TP功能,方便地实现了LAC和LNS之间一对一、一对多的组网应用。L2TP组在LAC和LNS上独立编号,只需要保证LAC和LNS之间关联的L2TP组的相关配置(如隧道对端名称、LNS地址等)保持对应关系即可。默认情况下没有创建任何L2TP组。要创建L2TP组并进入L2TP组视图,在系统视图下使用命令:

        -group group-number mode {lac | lns}

    隧道名在LAC和LNS进行隧道协商时使用。LAC侧隧道名称要与LNS侧配置的接收L2TP连接请求的隧道对端名称保持一致。默认情况下,隧道本端的名称为系统的名称。要配置隧道本端的名称,在L2TP组视图下使用命令:

    tunnel name name



10.4.3    LAC基本配置命令

    只有在满足一定的条件时,LAC才会向LNS发出建立L2TP连接的请求。通过配置对接入的PPP用户信息的判别条件,并指定相应的LNS端的IP地址,LAC设备可以鉴定用户是否为L2TP ×××用户,并决定是否向LNS发起连接。

    LAC发起L2TP连接请求时,支持两种用户名的触发——完整的用户名(fullsername)和带特定域名的用户名(domain)。

    要配置本端作为L2TP LAC段时向LNS发起隧道建立请求的触发条件,在L2TP组视图下使用命令:

        user {domian domain-name | fullsername user-name}

    每个LAC的L2TP组最多可以设置五个LNS,即允许存在备用LNS。正常运行时,LAC按照LNS配置的先后顺序,依次进行L2TP连接请求,直到某个LNS接受连接请求,该LNS就成为L2TP隧道的对端。

    要配置LNS的IP地址,在L2TP组视图使用命令:

        Ins-ip {ip-address}&<1-5>

    通过在LAC侧配置对×××用户的AAA验证,可以对远程拨入用户的身份予以验证和确认。验证通过后才能发起建立隧道连接的请求。设备支持的AAA验证方式包括:

    ·本地验证:需要在LAC侧配置本地用户名、密码和服务类型等信息。LAC通过检查用户名与密码是否与本地注册用户名/密码相符合来进行用户身份验证。

    ·远程验证:需要与RADIUS/HWTACACS服务器协同进行验证。LAC将用户名和密码发往服务器进行验证申请,服务器负责保存×××用户的用户名和密码,进行用户身份验证,并将验证结果反馈给LAC。


10.4.4    LNS基本配置命令

    虚模版VT(Virtual-Template,虚拟模版)接口是一种虚拟的逻辑接口。L2TP会话连接建立之后,需要创建一个VA(Virtual Access,虚拟访问)接口用于和LAC端交换数据。VA接口是基于VT接口上配置的参数动态创建,因此配置LNS时需要首先创建VT接口,并配置该接口的参数。默认情况下系统没有创建虚模版接口。要配置虚模版接口并进入其接口视图,在系统视图下使用命令:

        interface virtual-template number

    虚模版接口本身需要一个IP地址。要配置本端IP地址,在虚模版接口视图下使用命令:

        ip address ip-address {mask | mask-length} [sub]

    当LAC与LNS之间的L2TP隧道连接之后,LNS需要为×××用户分配IP地址。地址分配包括两种方式:指定地址池或直接配置IP地址。在指定地址池之前,需要在系统视图下用ip pool命令先定义一个地址池。要指定给对端分配地址所用的地址池或直接给对端分配IP地址,在虚模版接口视图下使用命令:

        remote address {pool [pool-number] | ip-address}

    当LNS对远程系统进行验证时,需要使用一些验证参数信息,配置在虚模版接口中。要配置本端远程系统进行某种方式的PPP验证,在虚模版接口视图下使用命令:

        ppp authenticaiton-mode {chap | ms-chap | ms-chap-v2 | pap } [[call-in] | domain isp-name]

    默认情况下不进行验证.

    LNS可以使用不同的虚模版接口接收不同LAC的创建隧道的请求。接收到来自LAC的请求后,LNS需要检查LAC的隧道本端名称是否与本地配置的隧道对端名称相符合,从而决定是否允许与对端建立隧道。要指定接收呼叫的虚模版接口、隧道对端名称等参数,在L2TP组视图下使用allow 命令。

    当L2TP组号为1(默认的L2TP组号)时,可以不指定隧道对端名称等参数,在L2TP组视图下使用allow 命令。

    当L2TP组号为1(默认的L2TP组号)时,可以不指定隧道对端名,即LNS可以接受任何名称的隧道对端的隧道建立请求,使用命令:

        allow virtual-template virtual-template-number [remote remote-name]

    当L2TP组号不为1时,使用命令:

        allow virtual-template virtual-template-number remote remote-name



10.4.5    高级配置命令

    LNS可以使用不同的虚拟模版接口接收不同LAC的创建隧道的请求。接收到来自LAC的请求后,LNS需要检查LAC的隧道本端名称是否与本地配置的隧道对端名称相符合,从而决定是否允许与对端建立隧道。要指定接收呼叫的虚模版接口、隧道对端名称等参数,在L2TP组视图下使用allow 命令。

    当L2TP组号为1(默认的L2TP组号)时,可以不指定隧道对端名,即LNS可以接受任何名称的隧道对端的隧道建立请求,使用命令:

        allow virtual-template virtual-template-number [remote remote-name]

    当L2TP组号不为1时,使用命令:

        allow virtual-template virtual-template-number remote remote-name



10.4.5    高级配置命令

    管理员可根据实际需要,决定是否在创建隧道连接之前进行隧道验证。隧道验证请求可由LAC或LNS任何一侧发起。只要有一方启用了隧道验证,则只有在对端也启用了隧道验证、两端密码完全一致并且不为空的情况下,隧道才能建立;否则才能建立;否则本端将自动将隧道连接断开。

    若隧道两端都配置了禁止隧道验证,隧道验证的密钥一致与否将不影响隧道建立。

    为了保证隧道安全,建议用户最好禁用隧道验证的功能。如果用户需要修改隧道验证的密钥,请在隧道开始协商前进行,否则修改的密钥不生效。

    在L2TP组视图下使用tunnel authenticaiton命令启用了L2TP的隧道验证功能。默认情况下,L2TP隧道验证功能处于开启状态。

    要配置隧道验证密码,在L2TP组视图下使用命令:

        tunnel password {simple | cipher} password

    默认情况下,没有配置隧道验证密码。

    为了检测LAC和LNS之间隧道的连通性,LAC和LNS会定期向对端发送Hello消息,接收方接收到Hello报文后会进行响应。当LAC或LNS在指定时间间隔内未收到对端的Hello消息时,将重复发送Hello消息。如果重复发送超过5次都没有收到对端的Hello消息,则认为L2TP隧道已经断开。默认情况下,隧道中Hello报文的发送时间间隔为60秒。要配置隧道Hello消息的发送时间间隔,L2TP组视图下使用命令:

        tunnel timer hello hello-interval

    要强制断开指定的隧道连接,在用户视图下执行命令:

        reset tunnel {id tunnel-id | name remote-name}

    当LAC对用户进行验证后,为了增强安全性,LNS可以再次对用户进行验证。在这种情况下,将对用户进行两次验证,第一次发生在LAC侧,第二次发生在LNS侧,只有两次验证全部成功后,L2TP隧道才能建立。

    在L2TP组网中,LNS侧对用户的验证方式有三种:1、代理验证:由LAC代替LNS对用户进行验证,并对用户的所有验证信息及LAC端本身配置的验证方式发送给LNS。LNS根据接收到的信息及本端配置的验证方式,判断用户是否合法。2、强制CHAP验证:强制在LAC代理验证成功后,LNS再次对用户进行CHAP验证。3、LCP重协商:忽略LAC侧的代理验证信息,强制LNS与用户间重新进行LCP(Link Control Protocol,链路控制协议)协商。

    关于强制CHAP验证,启用该配置后,对于NAS-Initiated模式L2TP隧道的用户来说,会经过两次验证:一次是在NAS端的验证,另一次是在LNS端的验证。一些用户可能不支持进行第二次验证,这时,LNS端的CHAP重新验证会失败。在这种情况下,建议不要开启LNS的强制CHAP验证功能。配置强制CHAP验证时,需要在LNS的VT接口下配置PPP用户的验证方式为CHAP认证。

    关于强制LCP重协商,启用该配置后,对于NAS-Initialted模式L2TP隧道的PPP用户,在PPP会话开始时,先和NAS进行PPP协商。若协商通过,则由NAS触发建立L2TP隧道,并将用户信息传递给LNS,由LNS根据收到的代理验证信息,判断用户是否合法。但在某些特定的情况下(如LNS不接受LAC的LCP协商参数,希望和用户重新进行参数协商),需要强制LNS与用户重新进行LCP协商,并采用相应的虚拟模版接口上配置的验证方式对用户进行验证。启用LCP重协商后,如果相应的虚拟模版接口上没有配置验证,则LNS将不对用户进行二次验证(这时用户只在LAC侧接受一次验证)。

    验证方式的优先级从高到低依次为:LCP重协商、强制CHAP验证和代理验证。如果在LNS上同时配置LCP重协商和强制CHAP验证,L2TP将使用LCP重协商;如果只配置强制CHAP验证,则在LAC代理验证成功后,LNS再次对用户进行CHAP验证;如果既不配置LCP重协商,也不配置强制CHAP验证,则对用户进行默认代理验证。


10.4.6    配置示例


10.5    用iNode客户端实现客户LAC模式

10.5.1    iNode客户端介绍



10.5.2    客户LAC模式配置任务

    在L2TP客户LAC组网模式中,LNS的配置与独立LAC模式相同,但远程系统的配置有所不同。由于远程系统必须同时执行LAC功能,因此要求其必须具备可用的公网连接,具备与LNSd IP达到性。

    在Windows系统中安装iNode客户端非常简便,根据图形化向导的指示完成安装即可。

    配置iNode客户端实现L2TP的基本配置任务包括:

    ·    创建L2TP ×××连接

    ·    配置登录用户名和密码

    ·    ×××连接基本设置

    ·    ×××连接高级属性

    此外还可以配置RSA验证、智能卡、IPSec等参数。


10.5.3    客户LAC模式配置示例



10.6    L2TP信息显示与调试


第4篇    安全×××技术

第11章    数据安全技术基础

    随着互联网用户的持续增长,基于互联网的应用逐步在电子商务、电子政务以及各个领域成熟,新的业务模式层出不穷。

    由于互联网的开放型,随之而来的安全问题越来越紧迫的摆在我们的面前:用户账号/密码被恶意窃取;私有或机密资料被泄露或被篡改;个人身份被假冒而造成侵害;钓鱼网站层出不穷,用户安全无法得到保证,同时由于证据有限而增加纠纷及解决成本;进而由于感受到网络安全方面的弱点,造成用户裹足不前,影响网上应用的进一步发展。


11.2    概念和术语

    那么什么样的数据传输是安全的呢?

    首先我们必须确保数据的机密性,不被窃听。所谓保证数据的机密性是指防止数据被未获得授权的查看者理解,从而在存储和传输的过程中,防止有意或无意信息内容泄漏,保证信息安全性。

    完整性是另外一个基本的保密需求。所谓保证数据完整性是指防止数据在存储和传输的过程中受到非法的篡改。这种篡改既然包括无授权的篡改,也包括具备有限授权者的越权篡改。一些意外的错误也可能导致信息错误,完整性检查应该能发现这样的错误。

    鉴别与授权必不可少。接受者如何保证对方就是正确的发送者呢?或者说,这份数据是否可能是他人伪造的呢?身份验证(Authentication)就是要解决这样的问题。身份验证通过检查用户的某种印鉴或标识,判断一份数据是否源于正确的创建者。

    同时,在电子商务越来越红火的今天,必须有一个安全手段能保证交易或者其他操作不被否认,对相关操作留有证据,概括来说,就是不可抵赖性。

    把机密性、身份验证、完整性、不可抵赖性结合起来,能够组成一个安全的网络传输环境。


11.3    数据加解密

11.3.1    加解密简介

    数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码。

    未加密的数据通常称为“明文”,加密后的数据通常称为“密文”。将数据从明文转换为密文的过程,称为“加密”,而将数据从密文转换为明文的过程称为“解密”。

    数据机密性通常是由加密算法提供的。加密时,算法以明文为输入,将明文转换为密文,从而使无授权者不能理解真实的数据内容。解密时,算法以密文为输入,将密文转换为明文,从而使有授权者能理解数据内容。

    在将明文加密为密文和将密文解密为明文的过程中,除了加解密的数据外,加密算法还需要一个加解密的参数,称之为密钥。

    加密算法根据其工作方式的不同,可以分为对称加密算法和非对称解密算法两种。


11.3.2    对称密钥加密

    在对称加密算法中,通信双方共享一个秘密,作为加密/解密的密钥。这个密钥既可以直接获得的,也可以是通过某种共享的方法推算出来的。所以,对称加密算法也称为单密钥算法。

    由于任何具有这个共享密钥的人都可以对密文进行解密,所以,对称加密算法的安全性依赖密钥本身的安全性。由于这种加密方法和加解密算法使用同一个密钥,所以发送者和接受人在开始传输数据之前必须先交换密钥。数据传输和接收通常在很多人之间进行的,每一对发送方和接收方都要有他们之间专用的密钥,因此这种加密算法对密钥的需求量较大。

    再加以对称密钥加密方法执行效率一般都比较高,因此对称密钥加密算法适用于能够安全地交换密钥且传输数据量较大的场合。

    目前有不少对称密钥加密算法的标准,包括DES、3DES、RC4、AES等。

    3DES又称之为“三重数字加密算法”,是DES算法的加强算法。密钥长度达到了168位,与56位的DES算法相比,安全性要高出不少。

    RC4是一种对称算法,是Ron Rivest在1987年设计的,用变长密钥对大量数据进行加密,比DES快。

    AES有称Rijndael加密法,是美国联邦政府采用的一种区块加密算法。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。目前已然成为对称密钥加密中最流行的算法之一。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计。


11.3.3    非对称密钥加密

    非对称加密算法也称为公开密钥算法。此类算法为每个用户分配一对密钥:一个私有密钥和一个公开密钥。

    私有密钥是保密的,由用户自己保管。公开密钥是公诸于众的,其本身不构成严格的秘密。这两个密钥的产生没有相互关系,也就是说不能利用公开密钥推断出私有密钥。

    用两个密钥之一加密的数据,只有用另外一个密钥才能解密。发送方发送数据时,可以将准备发送给接收方公开密钥进行加密,接收方接收到加密数据后用其私有密钥进行解密。

    使用非对称加密算法的时候,用户不必记忆大量的共享密钥,只需要知道自己的密钥和对方的公开密钥即可。虽然处于安全目的,仍然需要一定的公开密钥管理机制,但是在降低密钥管理复杂性方面,非对称算法具有相当的优势。

    不过,非对称加密算法的弱点在于其速度非常慢,吞吐量低。因此不适宜对大量数据的加密。


    非对称密钥的算法有好几个,其中最著名和最流行的要数RSA和DH了。

    RSA是1977年由罗纳德·李维斯特(Ron Rivert)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Lenard Adleman)一起提出的。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种***的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解。

    DH算法一般用于使用不对称加密算法传送对称密钥,其过程一般为:

    1、相互产生密钥对。

    2、交换公钥。

    3、用对方的公钥和自己的私钥运行DH算法得到另外一个密钥X(这里的奇妙之处是这个值两端都是一样的).

    4、A产生对称加密密钥,用密钥X加密这个对称的加密密钥并发送到B。

    5、B用密钥X解密,得到对称的加密密钥。

    6、B用这个对称的加密密钥来解密A的数据。


11.3.4    组合加解密技术

    组合加解密技术把对称密钥算法的数据处理速度和不对称密钥算法对密钥的保密功能两方面的优势结合在一起。

    比如A和B需要交换大量数据,并且这些数据必须严格保密。如果采用不对称加密算法,则需要花费的时间较长;而交换对称加密算法的密钥的安全问题又让人不放心。

    组合加密技术很好的解决了这个问题。首先,发送方选择一个对称密钥用于对需要传输的大量数据进行加密,同时通过不对称加密方法用接收方的公钥将该用于传输大量数据的对称密钥加密,和加密好的数据一起传送给接收方。这样一来,接收方就能够接收到通过非对称加密方法加密的对称密钥并用此对称密钥来解密接收到的数据。


    接收方收到数据后首先用自己的私钥解密得到对称加密密钥,然后用该对称加密密钥来解密发送方的加密数据。

    这就使得既能够安全地交换对称密钥,有能够加快加密工作的处理效率。


11.4    数据完整性

    为了保证数据的完整性,我们通常使用摘要算法(HASH)。采用HASH函数对一段长度可变的数据进行hash计算,会得到一段固定长度的结果,该结果称之为原数据摘要,也称之为消息验证码(Message Authentication Code,MAC)。摘要中包含了被保护数据的特征,如果该数据稍有变化,都会导致最后计算的摘要不同。另外HASH函数具有单向性。也就是说无法根据结果导出原始输入,因为无法构造一个与原报文有相同摘要的报文。

    总体而言,HASH算法具有如下三个特征:

    ·    无法根据结果推出输入的消息。

    ·    无法人为控制某个原始数据的HASH值等于某个特定值。

    ·    无法找到具有相同摘要的两个不同输入。

    如果你想保证一条消息在传输过程中不被篡改,可以在将它发给接受者之前先计算出该消息的摘要,然后这个摘要随消息一起发送给接收者。接收者收到消息后,先计算出该消息的摘要,然后将计算出的摘要值和接收到的摘要值进行比较,如果两个值相等就说明该消息在传输过程中没有被篡改。


    HMAC算法进一步提高安全性。该算法是原来单输入的HASH算法的改进。

    该算法需要收发双方共享一个MAC密钥,计算摘要时,除了数据报文外,还需要提供MAC密钥。这样计算出来的MAC值不但取决于输入的数据报文,还取决于MAC密钥参数。

    如果***截获了报文,修改了报文内容,伪造了摘要,由于不知道MAC密钥,***无法构造正确的摘要。接收方重新计算报文摘要时,一定可以发现报文的MAC值与携带的MAC值不一致的。


11.5    数字签名

    简单地说,数字签名是指使用密钥算法对待发的数据进行加密处理,生成一段信息,附着在原文上一起发送,这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文真伪。数字签名技术是不对称加密算法的典型应用。

    因为直接对原始数据进行加密处理效率越低,一般而言,数字签名的过程是:数据发送方首先对数据进行HASH运算,然后使用自己的私钥对HASH进行加密处理,然后将该加密后的HASH值和原始数据一起发送给接收方,完成对数据的合法“签名”。数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的校验,以确认签名的合法性。

    数字签名技术是在网络虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签名”,在技术和法律上有保证。

    数字签名可以保证信息传输的完整性,确认发送者的真实身份并防止交易中的抵赖发生。


    在数字签名过程中,发送方首先将待发送的原始数据进行HASH运算,得到该原始数据的MAC值,然后用自己的私钥对该MAC值进行加密,得到一个密文串。将该密文串依附在原始报文后面一起发送给接收方。

    接收方接收到该内容后,也对原始报文内容进行HASH运算,得到一个MAC值,然后用发送方的公钥对接受报文中的密文串进行解密,比较解密后的值和运算得到的MAC值是否相等,如果相等说明报文确实是合法的发送方的,且报文在传送过程中没有被修改。


11.6    数字证书

    我们知道,公钥技术有很多优势,可以运用到加解密中,也可以运用到身份验证中。但如果规模性地运用到实际生活中,必定要解决好公钥的传播问题。

    比如运用在数据加密过程中,发送方会利用接受方的公钥进行加密,那么接收方是如何将自身的公告发送给数据发送方的呢?特别是大规模应用中更是一个难题。在比如在身份验证服务中,一般发送方会用自身的私钥对数据进行加密,接收方如何确认接受的发送方的公钥不是伪造的呢?

    


11.7    公钥基础设施PKI

11.7.1    PKI概述

    PKI(Public Key Infrastructure)即“公开密钥体系”,它不是一个单一的产品,也不是一个单一的协议、技术,它是一个签发证书、传播证书、管理证书、使用证书的环境。PKI采用了多种技术,由多个实体协同运作的一种环境,包含软件、硬件、人、企业、多种的服务、多种应用。PKI保证了公钥的可获得性、真实性、完整性。

    完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。

    PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。


    一个PKI体系由终端、证书机构、注册机构和PKI存储库四类实体共同组成。

    终端实体是PKI产品或服务的最终使用者的最终使用者,可以是个人、组织、设备(如路由器、交换机)或计算机中运行的进程。

    证书机构CA是PKI的信任基础,是一个用来签发并管理数字证书的可信实体。其作用包括:发放证书、规定证书的有效期等。

    注册机构RA是CA的延伸,可作为CA的一部分,也可以独立。RA功能包括个人身份审核、CRL管理、密钥对产生和密钥对备份等。PKI国际标准推荐由一个独立的RA来完成注册管理的任务,这样可以增强应用系统的安全性。

    PKI存储库包括LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行存储和管理,并提供一定的查询功能。


11.7.2    PKI工作过程

    针对一个使用PKI的网络,配置PKI的目的就是为指定的实体向CA申请一个本地证书,并由设备对证书的有效性进行验证。当由于用户姓名的改变、私钥泄露或业务中止等原因,需要存在一种方法将现行的证书撤销,即撤销公开密钥及相关的用户身份信息的绑定关系。在PKI中,所使用的这种方法为证书废除列表。任何一个证书被废除以后,CA就要发布CRL来声明该证书是无效的,并列出所有被废除证书的证书的序列号。CRL提供了一种验证证书有效性的方式。

    下面PKI的工作过程:

    1.实体向RA提出证书申请:

    2.RA审核实体身份,将实体信息和公开密钥以数字签名的方式发给CA;

    3.CA验证数字签名,同意实体的申请,颁发证书;

    4.RA接收CA返回的证书,发送到LDAP服务器以提供目录浏览服务,并通知实体证书发行成功;

    5.实体获取证书,利用该证书可以与其它实体使用加密、数字签名进行安全通信;

    6.实体希望撤销自己的证书时,向CA提交申请,CA批准实体撤销证书,并更新CRL,发布到LDAP服务器。


    在使用每一个证书之前,必须对证书进行验证。证书验证包括对签发时间、签发者信息以及证书的有效性等几方面进行验证。证书验证的核心是检查CA在证书上的签名,并确定证书仍在有效期内,而且未被废除,因此在进行证书验证操作之前必须首先获取CA证书。

    配置证书验证时可以设置是否必须进行CRL检查,如果配置为使能CRL检查,则验证证书的有效性,必须通过CRL判断。


11.7.3    配置PKI

    一份证书是一个公开密钥与一个身份的绑定,而身份必须与一个特定的PKI实体相关联。实体DN(Distinaguished Name,可识别名称)的参数包括:实体通用名、实体所属国家代码、实体FQDN(Fully Qualified Domain Name,合格域名)、实体IP地址、实体所在地理区域名称、实体所属组织名称等等。

    实体在进行PKI证书申请操作之前需要配置一些注册信息来配合完成申请的过程。这些信息的集合就是一个实体的PKI域。PKI域是一个本地概念,因此创建PKI域是一个本地概念,因此创建PKI域的目的是便于其它应用引用PKI的配置,比如IKE、SSL等。一个设备上配置的PKI域对CA和其他设备是不可见的,每一个PKI域有单独的域参数配置信息。PKI域中包括以下参数:信任的CA名称、实体名称、证书申请的注册机构、注册服务器的URL等等。

    证书申请就是实体向CA自我介绍的过程。实体向CA提供身份信息,以及相应的公开密钥,这些信息将成为颁发给该实体证书的主要组成部分。实体向CA提出证书申请,有离线和在线两种方式。离线申请方式下,CA允许申请方通过带外方式(如电话、磁盘、电子邮件等)向CA提供申请信息。在线证书申请有手工发起和自动发起两种方式。



    pki entity命令用来配置实体名称,并进入该实体视图。undo pki entity命令用来删除此实体的名称及其实体命名空间下的所有配置。

    参数entity-name是指实体名,为1-31个字符的字符串,不区分大小写。

    在PKI实体视图下可配置实体的各种属性值。entity-name只有用来方便被其它命令引用,不用于证书的相关字段。

    common-name命令用来配置实体的通用名,比如用户名称。undo common-name命令用来删除实体的通用名。

    name:实体的通用名称,为1-63个字符的字符串,不区分大小写,不能包含逗号。


配置PKI域一般需要配置以下几个参数:

    ·信任的CA名称:在申请证书时,是通过一个可信实体认证机构,来完成实体证书的注册颁发,因此必须指定一个信任的CA名称。

    ·实体名称:向CA发送证书申请请求时,必须指定所使用的实体名,以向CA表明自己的身份。

    ·证书申请的注册机构:注册申请的受理一般由一个独立的注册机构(即RA)来承担,它接收用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只对用户进行资格审查。有时PKI把注册管理的职能交给CA来完成,而不设立独立运行的RA。PKI推荐独立使用RA作为注册审理机构。

    ·注册服务器的URL:证书申请之前必须指定注册服务器的URL,随后实体可通过简单证书注册协议(SCEP:Simple Certification Enrollment Protocol)向该服务器提出证书申请,SCEP是专门用于与认证机构进行通信的协议。

    在线证书申请有手工发起和自动发起两种方式。

    配置自动申请证书方式后,当有应用与PKI联动时,如果没有本地证书(比如IKE使用PKI证书方式认证时,IKE协商时发现没有本地证书),则自动向CA服务器发起申请,获取证书。

    配置证书申请方式为手工方式后,需要手工完成获取CA证书、生成密钥对、申请本地证书的工作。获取CA证书的目的是用来验证本地证书的真实性和合法性。密钥对的产生是证书申请过程中重要的一步。申请过程使用了一对主机密钥:私钥和公钥。私钥由用户保留,公钥和其他信息则交由CA中心进行签名,从而产生证书。

    获取证书后,在任意视图下执行display命令可以显示配置后PKI的运行情况,通过查看显示信息验证配置的效果。


第12章    IPSec基本原理

    数据在公网上传输时,很容易遭到篡改和窃听。普通的×××技术虽然将数据封装在×××承载协议内部,但其通本质上并不能防止篡改和窃听。IPSec通过验证算法和加密算法防止数据遭受篡改和窃听等安全威胁,大大提高了安全性。


12.2    IPSec ×××概述

    由于IP不能保证数据的安全性,IETF在RFC 2401中描述了IP的安全体系结构——IPSec(IP Security),以便为IP提供安全保障。IPSec并非单一的协议,而是由一系列的安全开放标准构成。

    IPSec是一种网络层安全保障机制,可以在一对通信节点之间提供一个或多个安全的通信路径。它使一个系统能选择其所需要的安全协议,确定安全服务所使用的算法,并为相应安全服务配置所需的密钥。

    IPSec可以实现访问控制、机密性、完整性验证、数据源验证、拒绝重播(replay)报文等安全功能。IPSec实现于OSI参考模型的网络层,因此,上层的TCP、UDP以及依赖这些协议的应用协议均可以受到IPSec隧道的保护。

    IPSec是一个可扩展的体系,它并不受限于任何一种特定算法。IPSec中可以引入多种开放的验证算法、加密算法和密钥管理机制。

    IPSec可以在主机、路由器或者防火墙上实现。这些实现了IPSec的中间设备称为“安全网关”。

    IPSec ×××是利用IPSec隧道实现的L3 ×××。IPSec对IP包的验证、加密和封装能力使其可以被用来创建安全的IPSec隧道,传送IP包。利用这一隧道功能实现的×××称为IPSec ×××。

    IPSec也具有一些缺点,例如其协议体系复杂而难以部署;高强度的运算消耗大量资源;增加了数据传输的延迟,不利于语音视频等实时性要求强的应用;仅能对点对点的数据进行保护,不支持组播等。


12.3    IPSec体系结构

12.3.1    IPSec体系概述

    IPSec使用两种安全协议(Security Protocol)来提供通信安全服务:

    ·AH(Authenticaiton Header,验证头):AH提供完整性保护和数据源验证以及可选的抗重播服务,但是不提供机密性保护。

    ·ESP(Encapsulationing Security Payload,封装安全载荷):ESP不但提供了AH的所有功能,而且可以提供加密功能。AH和ESP不但可以单独使用,还可以同时使用,从而提供了额外的安全性。

    AH和ESP两种协议并没有定义具体的加密和验证算法,相反,实际上大部分对称算法可以为AH和ESP采用。这些算法分别在其它标准的文档定义。为了确保IPSec实现的互通性,IPSec规定了一些必须实现的算法,如加密算法DES-CBC。

    不论是AH还是ESP,都具有两种工作模式:

    `传输模式(Transport Mode):用于保护端到端(End-to-End)安全性。

    ·隧道模式(Tunnel Mode):用于保护站点到站点(Site-to-Site)安全性。

    IPSec的安全保护依赖于相应的安全算法。验证算法和对称加密算法通常需要通信双方拥有相同的密钥。IPSec通过两种途径获得密钥:

    ·手工配置:管理员为通信双方预先配置静态密钥。这种密钥不便于随时修改,安全性较低,不易维护。

    ·通过IKE协商:IPSec通信双方可以通过IKE动态生成并交换密钥,获得更高的安全性。


12.3.2    隧道模式和传输模式

    在传输模式中,两个需要通信的终端计算机在彼此之间直接运行IPSec协议。AH和ESP直接用于保护上层协议,也就是传输层协议。

    在使用传输模式时,所有加密、解密和协商操作均由端系统自行完成,网络设备仅执行正常的路由转发,并不关心此类过程或协议,也不加入任何IPSec过程。

    传输模式的目的是直接保护端到端通信。只有在需要端到端安全性的时候,才推荐使用此种模式。


    在隧道模式中,两个安全网关在彼此之间运行IPSec协议,对彼此之间需要加密的数据达成一致,并运用AH或ESP对这些数据进行保护。

    用户的整个IP数据包被用来计算AH或ESP头,且被加密。AH或ESP头和加密用户数据被封装在一个新的IP数据包中。

    隧道模式对端系统的IPSec能力没有任何要求。来自端系统的数据流经过安全网关时,由安全网关对其进行保护。所有加密、解密和协商操作均由安全网关完成,这些操作对于端系统来说是完全透明的。

    隧道模式的目的是建立站点到站点(Site-to-Site)的安全隧道,保护站点之间的特定或全部数据。


12.3.3    IPSec SA

    SA(Security Assocation,安全联盟)是IPSec中的一个基础概念。IPSec对数据流提供的安全服务通过SA来实现。

    SA是通信双方就如何保证通信安全达成的一个特定,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。

    SA是单向的。一个SA就是两个IPSec系统之间的一个单向逻辑连接,入站数据流和出站数据流由入站SA与出站SA分别处理。

    一个SA由一个(SPI,IP目的地址,安全协议标识符)三元组唯一标识。其中:

    ·SPI(Security Parameter Index,安全参数索引)是一个32比特的数值,在每一个IPSec报文中都携带该值。

    ·IP目的地址是IPSec协议对方的地址。

    ·安全协议标识符是AH或ESP。

    SA可通过手工配置和自动协商两种方式建立。手工建立SA的方式是指用户通过在两端手工设置一些参数,在两端参数匹配和协商通过后建立SA。自动协商方式由IKE生成和维护,通信双方基于各自的安全策略经过匹配和协商,最终建立SA而不需要用户的干预。在手工配置SA时,需要手工指定SPI的取值。为保证SA的唯一性,必须使用不同的SPI来配置SA;使用IKE协商产生SA时,SPI将随机生成。

    SA的生存时间(Life Time)有“以时间进行限制”和“以流量进行限制”两种方式。前者要求每隔定长的时间就对SA进行更新,后者要求每传输一定字节数量的信息就对SA进行更新。一旦生存时间期满,SA就会被删除。

    IPSec设备把类似“对哪些数据提供哪些服务”这样的信息存储在SPD(Security Policy Database,安全策略数据库)中。而SPD中的项指向SAD(Scurity Association Database,安全联盟数据库)中的相应项。一台设备上的每一个IPSec SA都在SAD有对应项。该项定义了与该SA相关的所有参数。

    例如对一个需要加密的出站数据包来说,系统会将它与SPD中的策略相比较。若匹配其中一项,系统会使用该项对应的SA及算法对此数据包进行加密。如果此时不存在一个相应的SA,系统就需要建立一个SA。


12.3.4    IPSec包处理流程

    在出站数据包被路由器从某个配置了IPSec的接口转发出去之前,需要经过以下处理步骤:

    ·首先查找SPD。得到的结果可能有“丢弃”、“旁路安全服务”、“提供安全服务”三种。如果是第一种,直接丢弃此包;如果是第二种,则直接转发此包;如果是第三种,则系统会转下一步——查找IPSec SA。

    ·系统从SAD中查找IPSec SA。如果找到,则利用此IPSec SA的参数对此数据包提供安全服务,并进行转发;如果找不到相应的SA,则系统就需要为其创建一个IPSec Sa。

    ·系统专向IKE协议数据库,视图寻找一个合适的IKE SA,以便为IPSec协商SA。如果找到,则利用此IKE SA协商IPSec Sa,否则,系统需要启动IKE协商进程,创建一个IKE SA。

    对一个入站并且目的地址为本地的IPSec数据包来说,系统会提取SPI、IP地址和协议类型等信息,查找相应的IPSec Sa,然后根据SA的协议标识符,选择合适的协议(AH或ESP)解封装,获得原始IP包,再进一步根据原始IP包的信息进行处理。


12.4    AH

12.4.1    AH介绍

    规范于RFC 2402的AH(Authenticaiton Header,验证头)是IPSec的两种安全协议之一。它能够提供数据的完整性校验和源验证功能,同时也能提供一些有限的抗重播服务。

    AH不能提供数据加密功能,因此不能保证机密性。


12.4.2    AH头格式


    紧贴在AH头之前的IP头,以协议号51标识AH头。例如对IPv4来说,其Protocol字段值将为51;而对IPv6来说,其Next Header字段值为51。

    如图所示为AH头格式。其中各个字段含义如下:


12.4.3    AH封装

    在传输模式中,AH保护的是IP包的上层协议,如TCP和UDP。两个需要通信的终端计算机在彼此之间直接运行IPSec协议,通信连接的端点就是IPSec协议的端点。中间设备不做任何IPSec处理。

    在建立好AH头并填充了各个字段之后,AH头被插入原始IP头和原始载荷之间。



    在隧道模式中,AH保护的是整个IP包。整个原始IP包将会以AH载荷的方式加入新建的隧道数据包。同时,系统根据隧道起点和终点等参数,建立一个隧道IP头,作为隧道数据包的IP头。AH夹在隧道IP头和原始IP包之间。

    当系统通过SPD了解到一个出站IP包需要获得AH服务时,就开始寻找一个相应的SA。如果这个SA不存在,就呼叫IKE去建立一个SA;如果这个SA存在,就利用这个SA提供AH安全服务。

    当一个SA刚刚建立时,序列号被初始化为0,之后随着数据包的数量不断递增。在计算ICV之前,要先完成序列号的递增。

    系统首先把IP包头中的可变字段修改为0,并把AH头的Authentication Data字段置为0,然后把IP包头、载荷、AH头以及密钥输入HMAC单向散列算法,得到ICV数值。如果这个数值不符合32位的整数倍,还要进行填充,并且填充值也必须加入ICV的计算。

    计算完成后,根据相应的工作模式,封装好数据包,就可以发送出去了。

    IPSec包在网络上传输时,可能遭到分段。因此,接收方有必要首先重组被分段的数据包。

    接收方根据入站IP包的目的IP地址、安全协议类型(Ah)和SPI查找SA。如果没有SA,就丢弃之;如果有SA,就可以了解到所使用的算法,以及是否验证序列号,并根据这些信息做相应处理。如果需要验证序列号,就进行序列号的核查。接收方把IP头的可变字段清零,并把Authentication Data清零,重新计算ICV。如果结果与收到的ICV相等,则验证通过;反之则丢弃该数据包。


12.5    ESP

12.5.1    ESP介绍



12.5.6    ESP头和尾格式


12.5.3    ESP封装


    在传输模式中,ESP加密的是IP包的上层协议,如TCP和UDP。两个需要通信的终端计算机在彼此之间直接运行IPSec协议,通信连接的端点就是IPSec协议的端点。中间设备不做出任何IPSec处理。

    在建立好ESP头和尾,并填充了各个字段之后,ESP头被插在原始IP头和原始载荷之间,后缀ESP尾,最后将ICV写入ESP尾之后的Authentication Data字段,建立完整的ESP封装数据包,并发送之。如果ESP提供加密服务,则原始载荷和ESP尾将以密文的形式出现。


12.6.1    IKE介绍


12.6.2    IKE与IPSec的关系


12.6.3    IKE协商的阶段


    IKE也使用SA——IKE SA。与IPSec SA不同,IKE SA是用于保护一对协商节点之间通信的密钥和策略的一个集合。它描述了一对进行IKE协商的节点如何进行通信,负责为双方进一步的IKE通信提供机密性、消息完整性以及消息源验证服务。IKE SA本身也经过验证。IKE协商的对方也就是IPSec的对方节点。

    IKE协商分为两个阶段:

    ·    阶段1:IKE使用Diffie-Hellman交换建立共享密钥,在网络上建立一个IKE SA,为阶段2协商提供保护;

    ·    阶段2:在阶段1建立的IKE SA的保护下完成IPSec SA的协商。

    IKE定义了两个阶段1的交换模式——主模式(Main Mode)和野蛮模式(Aggressive Mode):还定义了一个阶段2的交换模式——快速模式(Quick Mode):另外还定义了两个其它交换,用于SA的维护——新组模式(New Group Mode)和信息交换(Informational Exchanges),前者用于协商新的DH交换组,后者用于通告SA状态和消息。



12.6.4    IKE 主模式


    主模式是IKE强制实现的阶段1交换模式。它可以提供完整性保护。主模式总共有三个步骤,六条消息。

    第一个步骤是策略协商。在这个步骤里,IKE对等体双方用主模式的前两条消息协商SA所使用的策略。下列属性被作为IKE SA的一部分来协商,并用于创建IKE SA:

    ·    加密算法:IKE使用诸如DES、3DES、AES这样的对称加密算法保护机密性。

    ·    散列算法:IKE使用MD5、SHA等散列算法。

    ·    验证算法:IKE允许多种不同的验证方法,包括预共享密钥(Pre-shared Key)、数字签名标准(Digital Signature Standard,DSS)以及从RSA公共密钥加密得到签名和验证的方法。

    ·    进行Diffie-Hellman操作的组(group)信息。

    IKE使用的Diffie-Hellman操作的组(group)信息。

    IKE使用的Diffie-Hellman交换组包括:

    1.MODP 768位

    2. MODP 1024位

    3.EC2N 155字节

    4.EC2N 185字节

    5.MODP 1536位

    其中必须实现的是第1种。

    另外,IKE生存时间(IKE Lifetime)也会被加入协商消息,以便明确IKE SA的存活时间。这个时间值可以以秒或者数据量计算。如果这个时间超时了,就需要重新进行阶段1交换。生存时间越长,秘密被破解的可能性就越大。

    第二个步骤是Diffie-Hellman交换。在这个步骤里,IKE对等体双方用主模式的第三和第四条消息交换Diffe-Hellman公共值及一些辅助数据(Nonce)。

    在第三个步骤里,IKE对等体双方用主模式的最后两条消息交换ID信息和验证数据,对Diffie-Hellman交换进行验证。

    通过这六条消息的交换,IKE对等体双方建立一个IKE SA。


12.6.5    IKE野蛮模式

    在使用预共享密钥的主模式IKE交换时,通信双方必须首先确定对方的IP地址。对于拥有固定地址的站点到站点的作用,这不是个大问题。但是在远程拨号访问时,由于拨号用户的IP地址无法预先确定,就不能使用这种方法。为了解决这个问题,需要使用IKE的野蛮模式交换。

    IKE野蛮模式的目的与主模式相同——建立一个IKE SA,以便为后续协商服务。但IKE野蛮模式交换只使用了三条消息。前两条消息负责协商策略、交换Diffie-Hellman公共值以及辅助数值(Nonce)和身份信息;同时第二条信息还用于验证响应者;第三条信息用于验证发起者。

    首先,IKE协商发起者发送一个消息,其中包括:

    ·    加密算法

    ·    散列算法

    ·    验证算法

    ·    进行Diffie-Hellman公共值

    ·    Nonce和身份信息

    然后,响应者回应一条消息,不但须包含上述协商内容,还需要包含一个验证载荷。

    最后,发起者回应一个验证载荷。

    IKE野蛮模式的功能比较有限,安全性差于主模式。但是在不能预先得知发起者的IP地址,并且需要使用预共享密钥的情况下,就必须使用野蛮模式。另外,野蛮模式的过程比较简单快捷,在充分了解对方安全策略的情况下,也可以使用野蛮模式。


第13章    IPSec配置和应用

13.2    配置前准备

 在配置IPSec前需要做好如下的准备:

    ·确定需要保护的数据:由于运行IPSec将会占用很多系统资源,并不是所有经过安全网关转发的数据都要进行验证和加密,只需对需要保护的数据进行验证和加密。可以通过定义扩展ACL来匹配需要验证和加密的数据。

    ·确定使用安全保护的路径:只有当数据在不安全的路径上进行传输时才需要进行安全保护。例如,如果认为企业网络内部是安全的,而数据在Internet上传输则是不安全的,那么只需要对跨越Internet传送数据的路径进行保护,通常也就是从一个安全网关到另一个安全网关之间对数据进行加密。

    ·确定对数据流采用哪种方式的安全保护:根据不同的需求,可以对数据只验证而不加密;也可以对数据既验证又加密。只加密而不验证的方式是不推荐使用的,因为在对于数据的来源都不清楚的情况下对数据进行加密和解密是没有意义的。对数据只验证而不加密通常使用AH协议。对数据既进行验证又进加密行通常使用ESP协议。虽然也可以同时使用AH和ESP协议进行验证和加密,但这样会消耗多的系统资源。

    ·确定安全保护的强度:不同的算法的强度不同。强度越高的算法,受保护的数据越难破解,但消耗的计算资源越多。一般来说密钥越长的算法强度越高,如128位密钥的算法强度高于96位的算法。但不同算法的强度不易比较,例如通常认为AES优于DES,但不能认为MD5优于SHA。


13.3    配置IPSec ×××

13.3.1    IPSec ×××配置任务

IPSec ×××的基本配置任务包括:

    ·配置安全ACL:IPSec使用ACL的条件定义并匹配需获得安全服务的数据包,因此首先需配置一个ACL供IPSec使用,这种ACL称为安全ACL。

    ·配置安全提议:配置IPSec安全网关期望使用的安全参数,包括创建安全提议,选择安全协议,选择安全算法和选择工作模式等。

    ·配置安全策略:通过安全策略允许安全网关为各种数据流提供复杂而截然不同的安全服务,安全策略包括手工配置参数的安全策略和通过IKE协商参数的安全策略等。一组同名的安全策略构成一个安全策略组。

    ·在接口上应用安全策略组:要想使安全策略生效,必须将其所在安全策略组应用于适当的接口上,以便使穿过此接口的相应数据包获得安全服务。


13.3.2    配置安全ACL

    IPSec使用ACL的条件定义并匹配需获得安全服务的数据包,这种ACL也称为安全ACL。对于发送方来说,安全ACL许可(permit)的包将被保护,安全ACL拒绝(deny)的包将不被保护。

    在建立IPSec隧道的两个安全网关上定义的ACL必须是想对称的。即一端的安全ACL定义的源IP地址要与另一端安全ACL的目的IP地址一致。

    IPSec对安全ACL匹配的数据流进行保护,因此建议精确地配置ACL,只对确实需要IPSec保护的数据流配置permit,避免盲目地使用关键字any。


13.3.3    配置安全提议


    安全提议保存IPSec提供安全服务时准备使用的一组特定参数,包括安全协议、加密/验证算法、工作模式等,以便IPSec通信双方协商各种安全参数。IPSec安全网关必须具备相同的安全提议才可以就安全参数达成一致。

    一个安全策略通过引用一个或多个安全提议来确定采用的安全协议、算法和报文封装形式。在安全策略引用一个安全提议之前,这个安全提议必须已经建立。安全提议的配置内容如下述。

    ·    创建安全提议,并进入安全提议视图

    [Router]ipsec transform-set transform-set-name

    默认情况下没有任何安全提议存在。

    ·    选择安全协议

    [Router-ipsec-transform-set-tran1]transform {ah | ah-esp | esp}

    在安全提议中需要选择所采用的安全协议。可选的安全协议有AH和ESP,也可以指定同时使用AH与ESP。安全隧道两端所选择的安全协议必须一致。默认情况下采用ESP协议。

    ·    选择工作模式

    在安全提议中需要指定安全协议。可选的安全协议有AH和ESP,也可指定同时使用AH和ESP。安全隧道两端所选择的安全协议必须一致。默认情况下采用ESP协议。

    ·    选择工作模式

    在安全提议中需要指定安全协议的工作模式,安全隧道的两端所选择的模式必须一致。默认情况下采用隧道模式。

    [Router-ipsec-transform-set-tran1]encapsulation-mode {transport | tunnel}

    ·    选择安全算法

    不同的安全协议可以采用不同的验证算法和加密算法。目前,AH支持MD5和SHA-1验证算法;ESP协议支持MD5、SHA-1验证算法以及DES、3DES、AES、null等加密算法,null表示不加密。

    设置ESP协议采用的加密算法:

    [Router-ipsec-transform-set-tran1]esp encryption-algorithm {3des-cbc | aes-cbc-128 | aes-cbc-192 | des-cbc | null}

    设置ESP协议采用的验证算法:

    [Router-ipsec-transform-set-tran1]ah authentication-algorithm {md5 | sha1}

    ESP协议允许对报文同时进行加密和验证,或只加密、或只验证。AH协议没有加密的功能,只对报文进行验证。在安全隧道的两端设置的安全策略所引用的安全提议必须设置成采用同样的验证算法和/或加密算法。

    默认情况下,ESP协议采用的加密算法是DES,采用的验证算法是MD5;AH协议采用的验证算法是MD5。

注意:

    可以对安全提议进行修改。但若一个SA已协商成功,则新修改的安全提议并不立即生效,即SA仍然使用原来的安全提议,除非使用reset ipsec sa命令重置SA;而新协商的SA将使用新的安全提议。



13.3.4    理解安全策略

    安全策略绑定了对什么样的数据流采用什么样的安全提议。一条安全策略由“名字”和“顺序号”共同唯一标识。若干名字相同的安全策略构成一个安全策略组。

    安全策略包括两类:

    ·    静态:手工配置参数的安全策略。需要用户手工配置密钥、SPI、安全协议和算法等参数,在隧道模式下还需要手工配置安全隧道两个端点的IP地址。

    ·    动态:通过IKE协商参数的安全策略。由IKE自动协商生成密钥、SPI、安全协议和算法等参数。

    如果通过手工方式创建一条安全策略,则不能再修改它为IKE协商创建,而必须先删除该安全策略然后再创建;反之亦然。


    如果在一个接口上应用了一个安全策略组,则当从此接口发送数据包时,将按照顺序号从小到大的次序尝试匹配安全策略组中每一条安全策略。

    如果数据包匹配了一条手工配置参数的安全策略所引用的ACL,则使用这条安全策略定义的参数对数据包提供安全服务;如果数据包没有匹配一条安全策略引用的ACL,则继续尝试匹配下一条安全策略;如果数据包与所有安全策略引用的ACL都不匹配,则不对数据包提供任何安全服务而直接发送之。


    如果数据包匹配了一个通过IKE协商参数的安全策略所引用的ACL,则使用这条安全策略定义的参数通过IKE协商安全参数,建立SA,并据此对数据包提供安全服务。如果IKE协商失败,则丢弃数据包。


13.3.5    配置手工参数的安全策略


    手工配置参数的安全策略主要配置内容如下述:

    ·    创建一条安全策略,并进入安全策略视图

    [Router]ipsec policy policy-name seq-number manual

    具有相同名字、不同顺序号的安全策略共同构成一个安全策略组。在一个安全策略组中,顺序号越小的安全策略优先级越高。默认情况下没有任何安全策略存在。

    ·    配置安全策略引用的ACL

    [Router-ipsec-policy-manual-map1-10]seurity acl acl-number

    一条安全策略只能引用一个ACL,如果设置安全策略引用了多于一个ACL,最后引用的ACL生效。默认情况下,安全策略没有引用ACL。

    ·    配置安全策略所引用的安全提议

    [Router-ipsec-policy-manual-map1-10]transform-set transform-set-name

    通过手工方式建立SA,一条安全策略只能引用一个安全提议,并且如果已经引用了安全提议,必须先取消原先的安全提议才能引用新的安全提议。默认情况下,安全策略没有引用任何安全提议。


    ·    配置IPSec隧道的对端地址

    [Router-ipsec-manual-map1-10]remote-address ip-address

    默认情况下,没有配置安全隧道的对端地址。安全隧道建立在本端和对端之间,在安全隧道的两端,当前端点的对端地址需要与对端的本端地址保持一致。IPSec隧道的本端地址为应用安全策略的接口的IP主IP地址。

    ·    配置安全联盟的SPI

    [Router-ipsec-policy-manual-map1-10]sa spi {inbound | outbound} {ah | esp} spi-number

    为保证安全联盟的唯一性,不同SA必须对应不同的SPI。


    ·    配置SA使用的密钥

    配置协议的验证密钥(以16进制方式输入):

    [Router-ipsec-policy-manual-map1-10]sa hex-key authenticaiton {inbound | outbound } {ah | esp} {cipher | simple} key-value

    配置协议的验证密钥(以字符串方式输入):

    [Router-ipsec-policy-manual-map1-10]sa string-key { inbound | outbound} {ah | esp } key-value

    配置ESP协议的加密密钥(以字符串方式输入):

    [Router-ipsec-policy-manual-map1-10]sa string-key { inbound | outbound } esp key-value


    ·    配置SA使用的密钥

    配置ESP协议的加密密钥(以16进制方式输入):

    [Router-ipsec-policy-manual-map1-10]sa hex-key encryption { inbound | outbound } esp {cipher | simple} key-value

    在安全隧道的两端设置的SA参数必须是完全匹配的。本端的入方向SA的SPI及密钥必须与对端的出方向SA的SPI及密钥一样;本端的出方向SA的SPI及密钥必须与对端的入方向SA的SPI及密钥一样。

    如果分别以两种方式输入了密钥,则最后设定的密钥有效。

    在为系统配置SA时,必须分别设置inbound和outbound两个方向SA的参数。


13.3.6    配置IKE协商参数的安全策略

    通过IKE协商建立SA时,一条安全策略最多可以引用六个安全提议。IKE对等体之间将交换这些安全提议,并搜索能够完全匹配的安全提议。如果找到互相匹配的安全提议,即使用其参数建立SA。如果IKE在两端找不到完全匹配的安全提议,则SA不能建立,需要被保护的报文将被丢弃。



    IKE协商方式的IPSec安全策略有以下两种配置方式:

    ·    直接配置IPSec安全策略:直接创建一个IPSec安全策略,在安全策略视图中定义需要协商的安全提议、安全ACL和IKE协议框架等参数。

    ·    引用IPsec安全策略模版配置IPsec安全策略:首先在IPSec安全策略模版中定义需要协商的安全提议、和IKE协议框架等参数,然后通过引用IPSec安全策略模版创建一条IPsec安全策略。

    直接配置IPSec安全策略的方式中必须指定IPsec隧道的对端IP地址,适用于隧道对端IP地址固定的情况下。引用IPsec安全策略模版配置IPsec安全策略的方式中隧道对端IP地址、安全ACL等很多参数都是可选的,而安全策略模版中未定义的可选参数由发起方来决定,而响应方会接受发起方的建立,例如IPSec安全策略模版下未配置用于定义保护对象范围的ACL时,相当于完全接受协商发起端的ACL设置。所以这种方式配置的IPsec安全策略通常配置响应方,并且可以用于隧道对端地址不固定的情况下,允许这些对端设备向本端设备主动发起协商。


    直接配置IKE协商参数的安全策略主要配置内容如下述。

    ·    创建一条安全策略,并进入安全策略视图

    [Router]ipsec policy policy-name seq-number isakmp

    ·    配置安全策略引用的ACL

    [Router-ipsec-policy-manual-map1-10]security acl acl-number

    ·    配置安全策略引用的安全提议

    [Router-ipsec-policy-manual-map1-10]transform-set transform-set-name

    通过IKE协商建立SA时,一条安全策略最多可以引用留个安全提议。

    ·    配置安全策略引用的IKE协议框架

    [Router-ipsec-policy-manual-map1-10]ike-profile profile-name

    通过IKE协商建立SA时,一条安全策略最多可以引用六个安全提议。

    ·    配置安全策略引用的IKE协议框架

    [Router-ipsec-policy-manual-map1-10]ike-profile profile-name

    使用ike-profile命令可以将一条安全策略与一个IKE profile关联起来。一旦有数据包匹配此安全策略,系统将使用此IKE profile指定的参数与指定的设备协商IPSec隧道的安全参数。

注意:

    此处仅介绍了IPSec对IKE profile的引用命令。实际上还需要对IKE profile进行一些相关参数的设置,包括IKE的安全提议、协商模式、本端身份信息、DPD、预共享密钥、PKI域、匹配对端身份的规则等。有关IKE profile的配置。


    ·    配置IPSec隧道的本端IP地址

    [Router-ipsec-policy-isakmp-map1-10]local-address ip-address

    IPSec隧道的本端IP地址为应用IPsec安全策略的接口的主地址,此处指定的IPsec隧道本端IP地址必须与IKE使用的标识本端身份的IP地址一致。缺省情况下,IPsec隧道的本端IP地址为应用IPsec安全策略的接口的主IP地址。

    ·    配置IPsec隧道的对端IP地址

    [Router-ipsec-policy-isakmp-map1-10]remote-address ip-address

    缺省情况下,未指定IPsec隧道的对端IP地址,采用直接配置IKE协商方式的IPsec安全策略时,必须配置隧道对端IP地址,而且发起方的IPsec隧道的对端IP地址必须与响应方的IPsec隧道本端IP地址一致。另外,还可以采用主机名的方式配置隧道的对端IP地址,采用主机名方式时需要在设备上配置DNS服务器或者静态域名。

    ·    配置安全策略的SA生存周期

    [Router-ipsec-policy-isakmp-map1-10] sa duration { time-based seconds | traffic-based kilobytes }

    缺省情况下,IPsec安全策略下的IPsec SA生存时间为当前全局的IPsec SA生存时间。

    ·    配置全局的SA生存周期

    [Router]ipsec sa global-duration {time-based seconds | traffic-based kilobytes}

    默认情况下,安全联盟基于时间的生存周期为3600s,基于流量的生存周期为1843200KB。

    当IKE协商安全联盟时,如果采用的安全策略没有配置自己的生存周期,将采用此命令所定义的全局生存周期与对端协商。如果安全策略配置了自己的生存周期,则系统使用安全策略自己的生存周期与对端协商。

    IKE为IPSec协商建立安全联盟时,采用本地配置的生存周期和对端提议的生存周期中较小的一个。


13.3.7    在接口上应用安全策略


13.3.8    IPSec的信息显示与调试维护


13.4    IKE的配置

13.4.1    IKE配置前准备


配置IKE之前需提前确定以下信息:

    ·    确定IKE交换过程中安全保护的强度。包括身份验证方法、加密算法、验证算法、DH组等。

    ·    确定所选验证方法的相应参数。如果使用预共享密钥(pre-shared key)方法,需预先约定共享密钥;如果使用数字签名方法需预先约定所属的PKI域。


13.4.2    IKE 配置任务

IKE的主要配置任务包括:

    ·    配置IKE提议:包括创建IKE提议、选择IKE提议的加密算法、选择IKE提议的验证方法、选择IKE提议的验证算法、选择IKE阶段一密钥协商所使用的DH组、配置IKE提议的ISAKMP SA生存周期等。

    ·    配置IKE对等体:包括创建IKE对等体、配置IKE协商模式、配置共享密钥验证方法的身份验证密钥、配置RSA签名验证方法的PKI域、配置本端及对端安全网关的IP地址。


13.4.3    理解IKE协议

    在安全网关之间执行IKE协商之初,双方首先协商保护IKE协商本身的安全参数,包括验证方法、验证算法、加密算法、DH组以及用于IKE协商的ISAKMP SA生存时间等。双方查找出互相匹配的IKE提议,用其参数建立ISAKMP SA并保护IKE交换时的通信。


13.4.4    配置IKE提议




13.4.5    配置IKE Keychain


13.4.6    配置IKEb本端身份信息


13.4.7    配置IKE Profile


13.4.8    IKE的显示信息与维护




13.5    IPSec隧道示例

13.5.1    IPSec+IKE预共享密钥方法配置示例


13.5.2    IPSec+IKE RSA签名方法配置示例


13.5.3    IPSec+IKE 野蛮模式配置示例



13.6    IPSec与传统×××技术相结合

13.6.1    GRE over IPSec

    GRE是一种通用封装协议,因此其可以支持多种网络层协议。GRE隧道的实现采用了虚拟的Tunnel接口,因而其可以支持组播和广播,并可以支持丰富的IP协议族以及路由协议。但是GRE ×××不能确保数据的机密性、完整性,也不能验证数据的来源。

    而IPSec是针对IP数据流而设计的,其协议机制决定了其难以支持组播,因而也不便于支持路由协议,并且对IP协议族中纷繁的各种协议支持得不好。

    然而,GRE隧道中传送的一切包括终究被封装为公网数据包,在两个隧道端点设备之间点到点地传送。如果用IPSec对这个点到点的数据流进行保护,就可以同时具备GRE ×××和IPSec ×××的优良特性,支持丰富的应用场合。


    使用GRE over IPSec时,GRE隧道封装与IPSec隧道封装同时独立工作。原始IP包被封装在GRE隧道封装包中,GRE隧道封装包被封装在IPSec隧道封装包中,随后在公网上传送。


13.6.2    L2TP over IPSec

    L2TP ×××经常应用于移动用户通过Internet连接企业私网的情况。在Internet中数据受到的安全威胁较高,但L2TP不能确保数据的机密性和完整性,不能适应日益提高的安全性需求。

    然而,L2TP隧道是在LAC和LNS之间建立的。如果用IPSec对这个点到点的数据流进行保护,就可以具有L2TP ×××和IPSec ×××的特性,提供安全的Access ×××。

    在使用L2TP over IPSec时,IPSec隧道在LAC与LNS之间建立,保护L2TP隧道数据流,L2TP隧道封装包被封装在IPSec隧道封装包之中。

    对于独立LAC模式而言,虽然远程系统到LAC的数据传输没有受到IPSec保护,但这一段通常为基于电路交换的连接,其安全性仍然是较高的。

    对于客户LAC模式而言,IPSec隧道需要直接在客户端主机与LNS之间建立的。由于客户端主机通常从Internet获取动态IP地址,因而应使用IKE野蛮模式与LNS协商。

    


第14章    SSL ×××

    随着信息技术在企业中的应用不断深化,企业信息系统对×××网络也提供了越来越高的要求。最初的×××仅实现简单的网络互联功能,采用了L2TP、GRE等隧道技术。为了保证数据的私密性和完整性,而产生了IPsec ×××。

    随着接入技术和移动技术的发展,如今的人们可以随时随地以多种方式接入Intenret。企业的员工要求随时可以在家中、网吧、旅馆,使用自己的、别人的、公用的电脑访问公司的信息系统。这些多种多样的远程接入都是动态建立的,远程主机的安全性得不到保证,并且远程终端的多样性也要求×××的客户端具有跨平台、易于升级和维护等特点。另外,随着企业经营模式的改变,企业需要建立Extranet与合作伙伴共享某些信息资源,以便提高企业的运作效率。对合作伙伴的访问必须进行严格有效地控制,才能保证企业信息系统的安全。

    面对这些新的挑战,SSL ×××便应运而生了。SSL ×××以其简单易用的安全接入方式、丰富有效的权限管理,跨平台、免安装、免维护的客户端而成为远程接入市场上的新贵。


14.2    SSL协议简介

14.2.1    协议概述

    SSL(Secure Sockets Layer,安全套接字)是一个安全协议,为基于TCP的应用层协议提供安全连接,如SSL可以为HTTP协议提供安全连接。SSL协议广泛应用于电子商务、网上银行等领域,为网络上数据的传输提供安全性保证。

    SSL提供的安全连接可以实现:

    ·    连接的私密性:在SSL握手阶段生成密钥后,用对称加密算法对传输数据进行加密。

    ·    身份认证:对服务器和客户端进行基于证书的身份认证(其中客户端认证是可选的)。

    ·    连接的可靠性:消息传输过程中使用基于密钥的MAC(Message Authenticaiton Code,消息验证码)来检验消息的完整性。

    SSL协议采用C/S结构的通讯模式,SSL服务器服务端口为TCP协议的443号端口。


    SSL协议的通讯实体一般分为两层:握手层和记录层。握手层用于协商会话参数,建立SSL连接;记录层用于加密传输数据,封装传输报文。

    握手层包括握手协议、告警协议、密钥改变协议等三个协议模块。

    握手协议模块负责建立SSL连接,维护SSL会话。在建立SSL连接的过程中,通讯双方可以协商出一致认可的最高级别的加密处理能力,以及加密所需的各种密钥参数。

    在协商出密钥后,握手协议模块通过“密钥改变协议”模块向对方发送一个“密钥改变”报文,通知对方的记录层:本方后续发送的报文将要启用刚才协商好的密钥参数。接收方收到“密钥改变”报文后,将在记录层设置好解密参数,对后续接收到的报文进行解密处理。

    在SSL通讯期间,如果握手协议模块或者上层应用程序发现了某种异常,可以通过“告警协议”模块发送“告警消息”给另一方。告警消息有多种,如报文校验出错、解密失败、记录报文过长等,其中有一条消息是“关闭通知”消息,用于通知对方本端将关闭SSL连接。

    除了上述协议功能模块外,为了便于应用程序对SSL协议功能的调用,SSL模块还对外提供了一组API接口,使得应用程序可以简单透明地使用SSL协议的加密传输功能。


14.2.2    记录层

    SSL协议的记录层用于封装传输报文,加密传输数据,为上层通讯提供了以下的服务:

    1.保护传输数据的完整性,对数据进行加密和解密;

    2.验证传输数据的完整性,计算报文的摘要;

    3.提高数据的传输效率,对数据进行压缩;

    4.保证数据传输的有序性和可靠性;

    具体操作流程为:

    在发送方首先将报文进行分片。SSL记录层一次最大的数据长度为16K字节,当上层一次传输数据超过16K时,SSL记录层将会对数据进行分片;为了提高数据传输效率,SSL可以对数据进行压缩;最后发送方对经过压缩的报文进行加密,然后通过TCP连接将报文发送出去。

    而在接收方,记录层首先对接收到的报文进行解密,然后对解密完的数据进行解压缩,最后将得到的结果传输给上层应用。



14.2.3    握手层

    SSL握手层是用来建立SSL连接。发起SSL连接请求的一方称为SSL客户段,响应SSL连接请求的一方称为SSL服务器端。该协议具有下列功能:

    ·    协商通讯所使用的SSL协议版本:目前在应用中可能遇到的SSL版本有:SSL 2.0,SSL 3.0,SSL 3.1(TLS1.0)。SSL的客户端与服务器端在正式传输数据前,可以协商出双方都支持的最高协议版本。

    ·    协商通讯所使用的加密套件:加密套件是SSL通讯过程中所用到的各种加密算法的一种组合,SSL协议的加密套件包括密钥交换算法、加密算法、HMAC算法等。

    ·    协商加密所使用的密钥参数:SSL连接是双向的,每个传输方向上都有一套加密密钥。

    ·    通讯双方彼此验证对方的身份:SSL协议通过数字证书来验证双方的真实身份。服务器端必须传送自己的证书给客户端,当服务器端需要验证客户端的真实身份时,可以通过CerticateRequest消息向客户端索要证书(客户端验证是可选的)。

    ·    建立SSL连接和维护SSL会话:在完成了上述协商任务,验证了对方的合法身份后,通讯双方就建立起了SSL连接。协商出来的参数,如协议版本、加密套件和密钥参数等,都保存到会话(session)中。当SSL连接断开后,SSL会话并不会立即被清除,还会在SSL服务器端和客户端保留一段时间。如果客户端后续还要与相同的服务器端进行SSL通讯,则可以通过恢复SSL会话快速建立起SSL连接。


14.2.4    握手过程

    SSL握手协议规定了三种握手过程:

    ·    无客户端认证的全握手过程:所谓全握手过程是指一个完整的SSL连接建立过程,在其中需要建立新的SSL会话,协商出新的会话参数。“无客户端认证”是指在该过程中服务器端并不验证客户端的身份。但是,服务器端需要传递证书给客户端,客户端是否对服务器的证书进行验证由客户端的具体实现来决定。

    ·    有客户端身份认证的全握手过程:如果服务器端想验证客户端的真实身份,在原来无客户端身份认证过程的基础上,增加了所取客户端证书以及验证客户端身份的消息。这样在握手过程结束时,双方不但协商出了加密参数,还使得服务器端验证了用户的真实身份。

    ·    会话恢复过程:一般情况下,一次页面请求结束后,SSL连接就会被关闭。为了提高SSL通讯的效率,避免重复的SSL连接建立过程,SSL提供了会话恢复机制,后续的对同一对服务器的SSL通讯可以使用上一次保存在缓存中的SSL会话参数。



14.3    SSL ×××概述

14.3.1    SSL与SSL ×××

    SSL ×××其实就是采用SSL加密协议建立远程连接的一种×××。SSL本身一些特性使得SSL ×××具有一些独特的优势:

    首先,SSL协议是一种加密协议,可以很好地保证数据传输的私密性和完整性。

    其次,SSL协议还是一种工作在TCP协议层之上的协议。使用SSL进行通讯,不改变IP报文头和TCP报文头,因而SSL报文对NAT和防火墙来说都是透明的,SSL ×××的部署不会影响现有的网络。这样用户从任何地方上网,只要能接入Internet,就能使用SSL ×××。

    另外,SSL加密协议受到了目前绝大多数软件平台的支持。常用的操作系统Windows、Linux,浏览器IE、Firefox都支持SSL。



 

14.3.2    SSL ×××运作流程

    典型的SSL ×××构成其实非常简单,包括远程主机、SSL ×××网关、内网资源服务器及相关认证及CA类服务器等。

    远程主机是用户远程接入的终端设备,一般就是一台普通PC。

    SSL ×××网关是SSL ×××的核心,负责终结客户端发来的SSL连接;检查用户的访问权限;代理远程主机向资源服务器发出访问请求;对服务器返回的应答进行转化,并形成适当的应答转发给远程客户端主机。

    SSL ×××网关上配置了三种类型的账号:超级管理员、域管理员和普通用户。超级管理员为系统域的管理员,可以创建新的域,并初始化域的管理员密码,给域授予资源组,并授权域是否能够创建新的资源。

    超级管理员可以创建若干个域,并指定每个域的域管理员。


    域管理员是一个SSL ×××域的管理人员,主要是对一个域的所有用户进行访问权限的限制。域管理员可以创建域的本地用户、用户组、资源和资源组等。

    以域管理员帐号登陆到SSL ×××网关后,可以配置本域的资源和用户,将资源加入到资源组,将用户加入到用户组,然后为每个用户组指定可以访问的资源组。


    而SSL ×××用户帐号是真正的最终用户,是使用SSL ×××访问网络资源的用户。

    以SSL ×××用户帐号登录后可以访问SSL ×××网关访问页面,选择需要访问的资源,通过SSL连接将访问请求发送给SSL ×××网关;SSL ×××网关根据域管理员配置的用户权限及该用户使用的主机安全情况决定该用户可以访问的资源,将访问请求转发给内网资源服务器;内网资源服务器将应答SSL ×××网关,SSL ×××网关将该应答通过SSL连接转发给远程客户端。


14.4    SSL ×××功能与实现

14.4.1    接入方式




14.4.2    访问控制


14.4.3    静态授权



14.4.4    动态授权




14.4.5    缓存清除


14.5    部署SSL ×××

14.5.1    部署方式