IPSec(Internet Protocol Security)
2.1
术语解释
为了便于理解IPSec的工作原理,首先介绍一些数据加密和安全方面常用的一些术语和基本知识,然后再介绍IPSec的实现以及它如何在网络中提供安全通信的。这种介绍仅仅是一个概述并为后面讨论IPSec做一个铺垫。加密是一个复杂的领域,它包含了许多规则、算法以及数学方面的知识。这里我们将着重讨论加密技术的实际实现,对于它内在的理论只作一个简要的概述。
数据加密标准:数据加密标准(Data Encryption Standard,DES)是美国国家标准局于1977年开发的对称密钥算法。它是一种对称密钥算法,可以使用40~56位长的密钥。另一种称为3DES的加密策略也使用同样的DES算法,但它并不只是加密一次,而是先加密一次,再加密(解密)一次,最后做第三次加密,每一次加密都使用不同的密钥。这一过程显著地增加了解密数据的难度。
RSA算法:RSA是一种根据它的发明者Rivest,Shamir和Adleman命名的公开密钥算法。它方便了对称密钥加密中的密钥交换过程。它还可以用来产生数字签名。
Diffie-Hellman:Diffie-Hellman是一种简化在非安全网络上交换秘密密钥的公开密钥加密算法。算法是以Diffie和Hellman命名的,他们在1977年出版了第一个公开密钥加密的公开搜索。它的主要目的是简化在不安全网络上交换秘密会话密钥的过程。
Diffie-Hellman:Diffie-Hellman是一种简化在非安全网络上交换秘密密钥的公开密钥加密算法。算法是以Diffie和Hellman命名的,他们在1977年出版了第一个公开密钥加密的公开搜索。它的主要目的是简化在不安全网络上交换秘密会话密钥的过程。
散列函数:散列(Hash)函数是一种单向的算法,它提取任意长度的一段信息并产生固定长度的乱序的摘要。摘要是文本的一个截取,只包含与文本最相关的部分,这就是Hash函数所产生的结果。Hash是一种单向的定义。我们可以在给定的文本上运行算法来获得固定长度的Hash值,但不能从Hash过程中获得最初的文本。Hash函数可以唯一地定义文本。它对每个唯一的消息而言就像是指纹一样。不同的消息可以产生不同的值,并且相同的消息会产生完全相同的Hash,Hash值可以用于维持数据的完整性。如果A发送一个消息给B,并给B消息的Hash。B可以在消息上运行用在该消息上的同一Hash算法,并用计算得到的Hash值与B收到的Hash值相比较。如果发现根据消息计算出来的Hash与B收到的Hash值不同,就可以知道数据在传输的过程中出错了。
消息摘要MD5:消息摘要(Message Digest 5,MD5)是一种符合工业标准的单向128位的Hash算法,由RSA Data Security Inc.开发,它可以从一段任意长的消息中产生一个128位的Hash值。(例如,质询握手身份验证协议 (CHAP)通过使用MD5来协商一种加密身份验证的安全形式。CHAP在响应时使用质询-响应机制和单向MD5散列。用这种方法,用户可以向服务器证明自己知道密码,但不必实际将密码发送到网络上,从而保证了密码本身的安全性。)
安全散列算法: Secure Hash Algorithm(SHA-1)是一种产生160位Hash值的单向Hash算法。它类似于MD5,但安全性比MD5更高。
Hash信息验证码HMAC(Hash message authentication codes):HMAC可以用来验证接收消息和发送消息的完全一致性(完整性)。
数字签名:数字签名标准(Digital Signature Standard,DSS)是国家标准技术研究所开发的数字签名算法。数字签名(Digital Signature,DS)是一种用使用者的私有密钥加密的Hash值。它可以像正常签名一样用于认证,但它也可以用做与签名相关的信息完整性的认证。
Hash信息验证码HMAC(Hash message authentication codes):HMAC可以用来验证接收消息和发送消息的完全一致性(完整性)。
数字签名:数字签名标准(Digital Signature Standard,DSS)是国家标准技术研究所开发的数字签名算法。数字签名(Digital Signature,DS)是一种用使用者的私有密钥加密的Hash值。它可以像正常签名一样用于认证,但它也可以用做与签名相关的信息完整性的认证。
认证授权:认证授权(Certificate Authority,CA)是一个实体,通常是一台计算机,它保存了一些公开密钥。事实上,它保存的一些称为认证的目标包含了用户或设备的信息,其中包括它们的公开密钥。认证包含某个公开密钥的所有者的认证信息,如:姓名、地址、公司等。认证的目的有两个:标志一个用户或设备的公开密钥。确认假设的公开密钥的拥有者是公开密钥的真实拥有者。
认证授权(CA)是一个记录了所有认证的第三方。使用CA,用户可以有一个认证的集中贮藏处,它允许用户获得其他用户的公开密钥并认证那些用户。它提供了一个记录用户和设备公开密钥的集中存放点。它还提供了认证授权,当用户从CA中获得用户A的公开密钥时,密钥确实是用户A的而不是其他人的。
OAKLEY密钥决定协议:Hilarie Orman提出的"OAKLEY密钥决定协议",Oakley和SKEME各自定义了一种建立已认证密钥交换的方法,包括载荷的结构、所承载载荷信息、处理它们的顺序以及如何使用它们。Oakley描述了一系列的密钥交换模式,提供密钥交换和刷新功能。
SKEME:Secure Key Exchange Mechanism
Hugo Krawczik提出的"安全密钥交换机制(SKEME)"SKEME描述了通用密钥交换技术,提供匿名性、防抵赖和快速刷新。
互连网安全联盟及密钥管理协议:
认证授权(CA)是一个记录了所有认证的第三方。使用CA,用户可以有一个认证的集中贮藏处,它允许用户获得其他用户的公开密钥并认证那些用户。它提供了一个记录用户和设备公开密钥的集中存放点。它还提供了认证授权,当用户从CA中获得用户A的公开密钥时,密钥确实是用户A的而不是其他人的。
OAKLEY密钥决定协议:Hilarie Orman提出的"OAKLEY密钥决定协议",Oakley和SKEME各自定义了一种建立已认证密钥交换的方法,包括载荷的结构、所承载载荷信息、处理它们的顺序以及如何使用它们。Oakley描述了一系列的密钥交换模式,提供密钥交换和刷新功能。
SKEME:Secure Key Exchange Mechanism
Hugo Krawczik提出的"安全密钥交换机制(SKEME)"SKEME描述了通用密钥交换技术,提供匿名性、防抵赖和快速刷新。
互连网安全联盟及密钥管理协议:
互连网安全联盟及密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)是一个定义在主机之间交换密钥和协商安全参数的框架。ISAKMP定义密钥在非安全网络上交换的一般机制,ISAKMP定义的信息包括报文中消息的位置和通信过程发生的机制,但它不指明使用的协议和算法。
互连网密钥交换:
互连网密钥交换(Internet Key Exchange,IKE)是一种实现密钥交换定义的协议。IKE是一种在ISAKMP框架下运行的协议。它是从其他密钥交换协议OaKley和SKEME中派生而来的。IKE用于在对等端之间认证密钥并在它们之间建立共享的安全策略。IKE用于确认,譬如标志一个要求加密会话的对等端,以及决定对等端使用何种算法和何种密钥。
IKE考虑了IPSec使用的所有算法交换秘密密钥的复杂性。通过将密钥管理函数替代普通的密钥管理协议,简化了将新的算法添加进IPSec协议栈的过程。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
Kerberos V5身份验证:
Kerberos V5是用于处理用户和系统身份的身份验证的Internet标准安全协议,是在Windows 2000 Server域中进行身份验证的主要安全协议。使用Kerberos V5,通过网络线路所发送的密码将经过加密而不作为纯文本进行发送。Kerberos V5协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。
IKE考虑了IPSec使用的所有算法交换秘密密钥的复杂性。通过将密钥管理函数替代普通的密钥管理协议,简化了将新的算法添加进IPSec协议栈的过程。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
Kerberos V5身份验证:
Kerberos V5是用于处理用户和系统身份的身份验证的Internet标准安全协议,是在Windows 2000 Server域中进行身份验证的主要安全协议。使用Kerberos V5,通过网络线路所发送的密码将经过加密而不作为纯文本进行发送。Kerberos V5协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。
IPSeC用来提供通信安全的协议是AH以及ESP。这两种协议被认为是纯粹的IPSec协议,并且严格地用于IPSec。每种协议都在它们自己的RFFC中进行描述。可以在IPSec连接上分别使用AH和ESP,或着也可以同时使用它们。
IKE和IPSec在对等实体之间协商加密及认证服务。这种协商过程以在安全对等实体之间建立SA作为结束。IKEsa是双向的,但是IPSec SA却不是双向的,为了建立双向通信,×××对等实体的每个成员必须建立IPSec。为了在对等实体之间建立安全通信,在每个对等实体上必须有一个相同的SA。与每个SA相关的信息存储在安全关联数据库中,并且为每个SA都分配一个SPI(Security Parameters Index,安全参数索引),当它与目的地IP地址以及安全协议 (AH或者ESP)结合在一起时,就惟一地标识了一个 SA.
IPSec的关键是建立这些SA。当满足某个条件时,一旦开始IPSec会话就开始协商SA,并且周期性地贯穿整个会话过程。为了避免为每个分组协商安全措施,不得不利用安全对等实体之间已达成一致的SA来进行通信。
那就是使用AH和ESP协议的地方。这两种协议仅仅确定是什么用来预协商适用于从一个对等实体到其他对等实体的分组安全特性的一种手段。这两种协议都可以在第3层(IP层)与第4层 (通常是TCP或UDP)协议头之间将附加协议头添加到IP数据报中。在每个协议头中包含的关键元素是SPI,给出了需要用来认证及解密分组的目的对等实体的信息。
1.认证头
在RFC1826和2402中定义了AH协议,它提供数据完整性。数据源认证以及可选的反重传服务。AH不能提供加密服务,这就意味着分组将以明文的形式传送。由于AH的速度比ESP稍微快一点,因此仅当需要确保分组的源和完整性而不考虑机密性的时候,可以选择使用 AH.
在IP头与第4层协议的头之间,被配置为使用AH的设备将附加的协议头插入"感兴趣的流量"的IP数据报中。由于处理开销与IPSec相关,可以通过配置×××来选择保护哪个流量,而且在安全对等实体之间,IPSec和非IPSec流量是可以共存的。比如,可以选择保护电子邮件流量而不是保护Web流量。插入AH头
AH中包含以下一些:
Next Header(8位)----该字段包含跟在IPSec头之后的第4层协议头的协议号。如果第4层协议是TCP,这个字段的值是6。对于UDP,它的值将是17。
注意:当AH被用作IPSec协议的时候,在IPSec头前的IP头中的Next Header或协议值将包含51这个值。
Payload Length(8位)----在32位字中,这个字段包含IPSec协议头长度减2的值。协议头的固定部分是96位,即3个32位字。认证数据部分是可变长的,但有一个标准长度为96位,同样也是3个32位字。这样总共是6个32位字。最后减去2并进入Payload Length字段的值将是4。
Reserved(16位)------目前没有使用,协议头的这部分必须用0填充。
Security Parameters Index(SP)(32位)----目的IP地址、IPSec协议以及编号,它们用来惟一地为这个分组确定SA。
Sequence Number Field(32位)-----这是一个无符号单调递增的计数器,对于一个特定的SA,它实现反重传服务。这些信息不被接收对等实体使用,但是发送方必 须包含这些信息。当建立一个SA时,这个值被初始化为0。如果使用反重传服务重传,那么这个值决不允许重复。由于发送方并不知道接受方是否使用了反重传功能,该字段中的值不能被重复的事实就要求终止SA,并且在传送第23个分组之前建立一个新的SA。
认证数据(变长)----该字段包含了针对分组的ICV(Integrity CheckValue,完整性校验值)。该字段长度必须是32位的整数倍,并且可以包含填充位来填充下32位增量。
通过使用认证算法来计算ICV,这些算法包括MACs(Message Authentication Codes,消息认证码)。MACs基于对称加密算法 (比如DES,3DES)或是基于单向函数 (比如MD5或SHA-1)。当计算ICV时,使用整个新的分组来完成计算过程。为了保证元素正确排列,任何不可预知的可变字段以及IPSec头的认证数据字段都应该被置为0。可预知的可变字段应该置为预知的值。假设上层的数据是不可变的。为了使得MAC很难伪造,在MAC计算中通常使用共享密钥。
在×××端点的每个对等实体都分别计算这个ICV。如果这些ICV不能匹配,分组将被丢弃,因此可以确保分组在传送过程中没有被修改。
2.封装安全负载
其他IPSeC协议是ESP协议。该协议通过原始分组的加密来提供数据机密性。另外,ESP还提供数据源认证、完整性服务、反重传服务以及一些有限制的流量的机密性。当在IPSec流量中需要数据机密性时,应该使用ESP协议。
ESP协议的工作方式与AH不一样。正如它的名字暗示的那样,ESP使用一个头和一个尾包围原始阳数据报,从而封装它的全部或部分内容。下图与给出了封装的过程。
在ESP中包含下面一些字段:
Security Parameters Index(SPI)(32位)----目的IP地址。TPSec协议以及编号,它们为该分组惟一地确定一个 SA.
SequenceNumberField(32位) 它是一个无符号单调递增的计数器,它为一个特定的SA实现反重传服务。这些信息不能被接收对等实体使用,但是发送方必须包含它。当SA被建立时,这个值被初始化为0。如果使用反重传服务,那么这个值不允许重复。由于发送方并不知道接收方是否使用反重传功能,这个值不能被重复的事实需要终止SA,并在传送第232个分组之前建立一个新的SA。
Payload(可变)-----它是原始IP数据报,或者数据报的一部分。它是否是完整的数据报依赖于使用的模式。当使用隧道模式时,负载包括完整的IP数据报。在传输模式中,它仅包含原始IP数据报的上层部分。TPSec模式将在下面的章节中讨论。负载的长度总是字节的整数倍。
Paddmmg(0-255位)----PadLength以及NextHeader字段必须在4字节 (32位)边界内右对齐,如图2.7所示。如果负载不能实现右对齐,必须添加填充字段以确保右对齐。另外,可以添加填充字段来支持加密算法的多块尺寸请求。还可以添加填充字段来隐藏Payload的真正长度。
PadLength(8位)-----该字段包含前面填充字段中包含的填充字节数。
Next Header(8位)-----该字段包含在IPSec头之后的第4层协议头的协议号。如果第4层协议是TCP,该字段的值为6。对于UDP,该字段的值为17。
注意:当把ESP用作IPSec协议时,在IPSec协议头前的IP协议头中的NextHeader或Protocol值包含50。
Authentication Data(可变)------该字段包含用于分组的TCV。该字段必须是32位的整数倍,并可以包含填充位来填充增加的下32位。当在SA中指定认证时,该字段是可选的。
上面的图给出了加密和认证覆盖的数据字段。如果在SA中指定了加密,从Payload到Next Header之间的字段都应该被加密。如果指定了认证,那么它应该出现在从SPI字段到NextHeader宇段之间的可变字段上。
3.AH和ESP的操作模式
先前使用几个实例讨论了AH和ESP协议,这些实例展示了将IP数据报的IP协议头调整至数据报的左边,插入AH或ESP协议头,以及将数据报的上层部分附加在那些后面。这是对IPSec一种操作模式的典型描述,这种操作模式被称为传输模式。IPSec的另外一种操作模式就是隧道模式。
这两种模式为IPSec提供更进一步的认证或加密支持。下面将讨论这两种IPSec模式。
传输模式
传输模式主要用于主机或充当主机的设备之间的端对端连接。隧道模式则用于其他所有情况。当一个管理人员为了配置或者其他管理操作而访问一个IPSec网关时,该网关(比如CiscoIOS软件路由,CiscoPIX防火墙或Cisco ×××3000系列集中器等)都可能充当主机。
下图给出了传输模式如何影响AHIPSec连接。第3层以及第4层协议头被分开,在它们之间添加了AH。认证可以保护原始IP协议头中除了可变字段以外的其他部分。
下图给出了ESP传输模式。同样,IP协议头被调整到数据报左边,并插入ESP协议头。ESP协议尾以及ICV附加在数据报末端。如果需要加密(在AH中无效),仅对原始数据和新的ESP协议尾进行加密。认证从ESp协议头一直延伸到ESP协议尾。
即便在两种情况中原始协议头根本就是保持原封不动,但是由于改变源IP协议头中的IP地址将导致认证失败,因此AH传输模式不支持NAT。如果需要在AH中使用NAT,必须确保NAT出现在IPSec之前。
需要注意的是在ESP传输模式中并不存在这个问题。对于ESP传输模式的数据报,IP协议头位于认证及加密部分之外。
隧道模式
IPSec隧道模式用于两个网关之间,比如CiscoIOS软件路由器、CiscoPIX防火墙以及Cisco×××3000系列集中器。当一台主机为了获得对某个网关控制的网络的访问而与这些网关中的某一个建立连接时,通常使用IPSec隧道模式"比如大多数远程访问用户通过拨号接入一个路由器或集中器就是这种情况。
在隧道模式中,不是将原始的IP协议头移到最左边然后插入IPSeC协议头,而是复制原始IP协议头,并将复制的IP协议头移到数据报最左边作为新的IP协议头。随后在原始IP协议头与IP协议头的副本之间放置IPSec协议头。原始IP协议头保持原封不动,并且整个原始IP协议头都被认证或由加密算法进行保护
IKE和IPSec在对等实体之间协商加密及认证服务。这种协商过程以在安全对等实体之间建立SA作为结束。IKEsa是双向的,但是IPSec SA却不是双向的,为了建立双向通信,×××对等实体的每个成员必须建立IPSec。为了在对等实体之间建立安全通信,在每个对等实体上必须有一个相同的SA。与每个SA相关的信息存储在安全关联数据库中,并且为每个SA都分配一个SPI(Security Parameters Index,安全参数索引),当它与目的地IP地址以及安全协议 (AH或者ESP)结合在一起时,就惟一地标识了一个 SA.
IPSec的关键是建立这些SA。当满足某个条件时,一旦开始IPSec会话就开始协商SA,并且周期性地贯穿整个会话过程。为了避免为每个分组协商安全措施,不得不利用安全对等实体之间已达成一致的SA来进行通信。
那就是使用AH和ESP协议的地方。这两种协议仅仅确定是什么用来预协商适用于从一个对等实体到其他对等实体的分组安全特性的一种手段。这两种协议都可以在第3层(IP层)与第4层 (通常是TCP或UDP)协议头之间将附加协议头添加到IP数据报中。在每个协议头中包含的关键元素是SPI,给出了需要用来认证及解密分组的目的对等实体的信息。
1.认证头
在RFC1826和2402中定义了AH协议,它提供数据完整性。数据源认证以及可选的反重传服务。AH不能提供加密服务,这就意味着分组将以明文的形式传送。由于AH的速度比ESP稍微快一点,因此仅当需要确保分组的源和完整性而不考虑机密性的时候,可以选择使用 AH.
在IP头与第4层协议的头之间,被配置为使用AH的设备将附加的协议头插入"感兴趣的流量"的IP数据报中。由于处理开销与IPSec相关,可以通过配置×××来选择保护哪个流量,而且在安全对等实体之间,IPSec和非IPSec流量是可以共存的。比如,可以选择保护电子邮件流量而不是保护Web流量。插入AH头
AH中包含以下一些:
Next Header(8位)----该字段包含跟在IPSec头之后的第4层协议头的协议号。如果第4层协议是TCP,这个字段的值是6。对于UDP,它的值将是17。
注意:当AH被用作IPSec协议的时候,在IPSec头前的IP头中的Next Header或协议值将包含51这个值。
Payload Length(8位)----在32位字中,这个字段包含IPSec协议头长度减2的值。协议头的固定部分是96位,即3个32位字。认证数据部分是可变长的,但有一个标准长度为96位,同样也是3个32位字。这样总共是6个32位字。最后减去2并进入Payload Length字段的值将是4。
Reserved(16位)------目前没有使用,协议头的这部分必须用0填充。
Security Parameters Index(SP)(32位)----目的IP地址、IPSec协议以及编号,它们用来惟一地为这个分组确定SA。
Sequence Number Field(32位)-----这是一个无符号单调递增的计数器,对于一个特定的SA,它实现反重传服务。这些信息不被接收对等实体使用,但是发送方必 须包含这些信息。当建立一个SA时,这个值被初始化为0。如果使用反重传服务重传,那么这个值决不允许重复。由于发送方并不知道接受方是否使用了反重传功能,该字段中的值不能被重复的事实就要求终止SA,并且在传送第23个分组之前建立一个新的SA。
认证数据(变长)----该字段包含了针对分组的ICV(Integrity CheckValue,完整性校验值)。该字段长度必须是32位的整数倍,并且可以包含填充位来填充下32位增量。
通过使用认证算法来计算ICV,这些算法包括MACs(Message Authentication Codes,消息认证码)。MACs基于对称加密算法 (比如DES,3DES)或是基于单向函数 (比如MD5或SHA-1)。当计算ICV时,使用整个新的分组来完成计算过程。为了保证元素正确排列,任何不可预知的可变字段以及IPSec头的认证数据字段都应该被置为0。可预知的可变字段应该置为预知的值。假设上层的数据是不可变的。为了使得MAC很难伪造,在MAC计算中通常使用共享密钥。
在×××端点的每个对等实体都分别计算这个ICV。如果这些ICV不能匹配,分组将被丢弃,因此可以确保分组在传送过程中没有被修改。
2.封装安全负载
其他IPSeC协议是ESP协议。该协议通过原始分组的加密来提供数据机密性。另外,ESP还提供数据源认证、完整性服务、反重传服务以及一些有限制的流量的机密性。当在IPSec流量中需要数据机密性时,应该使用ESP协议。
ESP协议的工作方式与AH不一样。正如它的名字暗示的那样,ESP使用一个头和一个尾包围原始阳数据报,从而封装它的全部或部分内容。下图与给出了封装的过程。
在ESP中包含下面一些字段:
Security Parameters Index(SPI)(32位)----目的IP地址。TPSec协议以及编号,它们为该分组惟一地确定一个 SA.
SequenceNumberField(32位) 它是一个无符号单调递增的计数器,它为一个特定的SA实现反重传服务。这些信息不能被接收对等实体使用,但是发送方必须包含它。当SA被建立时,这个值被初始化为0。如果使用反重传服务,那么这个值不允许重复。由于发送方并不知道接收方是否使用反重传功能,这个值不能被重复的事实需要终止SA,并在传送第232个分组之前建立一个新的SA。
Payload(可变)-----它是原始IP数据报,或者数据报的一部分。它是否是完整的数据报依赖于使用的模式。当使用隧道模式时,负载包括完整的IP数据报。在传输模式中,它仅包含原始IP数据报的上层部分。TPSec模式将在下面的章节中讨论。负载的长度总是字节的整数倍。
Paddmmg(0-255位)----PadLength以及NextHeader字段必须在4字节 (32位)边界内右对齐,如图2.7所示。如果负载不能实现右对齐,必须添加填充字段以确保右对齐。另外,可以添加填充字段来支持加密算法的多块尺寸请求。还可以添加填充字段来隐藏Payload的真正长度。
PadLength(8位)-----该字段包含前面填充字段中包含的填充字节数。
Next Header(8位)-----该字段包含在IPSec头之后的第4层协议头的协议号。如果第4层协议是TCP,该字段的值为6。对于UDP,该字段的值为17。
注意:当把ESP用作IPSec协议时,在IPSec协议头前的IP协议头中的NextHeader或Protocol值包含50。
Authentication Data(可变)------该字段包含用于分组的TCV。该字段必须是32位的整数倍,并可以包含填充位来填充增加的下32位。当在SA中指定认证时,该字段是可选的。
上面的图给出了加密和认证覆盖的数据字段。如果在SA中指定了加密,从Payload到Next Header之间的字段都应该被加密。如果指定了认证,那么它应该出现在从SPI字段到NextHeader宇段之间的可变字段上。
3.AH和ESP的操作模式
先前使用几个实例讨论了AH和ESP协议,这些实例展示了将IP数据报的IP协议头调整至数据报的左边,插入AH或ESP协议头,以及将数据报的上层部分附加在那些后面。这是对IPSec一种操作模式的典型描述,这种操作模式被称为传输模式。IPSec的另外一种操作模式就是隧道模式。
这两种模式为IPSec提供更进一步的认证或加密支持。下面将讨论这两种IPSec模式。
传输模式
传输模式主要用于主机或充当主机的设备之间的端对端连接。隧道模式则用于其他所有情况。当一个管理人员为了配置或者其他管理操作而访问一个IPSec网关时,该网关(比如CiscoIOS软件路由,CiscoPIX防火墙或Cisco ×××3000系列集中器等)都可能充当主机。
下图给出了传输模式如何影响AHIPSec连接。第3层以及第4层协议头被分开,在它们之间添加了AH。认证可以保护原始IP协议头中除了可变字段以外的其他部分。
下图给出了ESP传输模式。同样,IP协议头被调整到数据报左边,并插入ESP协议头。ESP协议尾以及ICV附加在数据报末端。如果需要加密(在AH中无效),仅对原始数据和新的ESP协议尾进行加密。认证从ESp协议头一直延伸到ESP协议尾。
即便在两种情况中原始协议头根本就是保持原封不动,但是由于改变源IP协议头中的IP地址将导致认证失败,因此AH传输模式不支持NAT。如果需要在AH中使用NAT,必须确保NAT出现在IPSec之前。
需要注意的是在ESP传输模式中并不存在这个问题。对于ESP传输模式的数据报,IP协议头位于认证及加密部分之外。
隧道模式
IPSec隧道模式用于两个网关之间,比如CiscoIOS软件路由器、CiscoPIX防火墙以及Cisco×××3000系列集中器。当一台主机为了获得对某个网关控制的网络的访问而与这些网关中的某一个建立连接时,通常使用IPSec隧道模式"比如大多数远程访问用户通过拨号接入一个路由器或集中器就是这种情况。
在隧道模式中,不是将原始的IP协议头移到最左边然后插入IPSeC协议头,而是复制原始IP协议头,并将复制的IP协议头移到数据报最左边作为新的IP协议头。随后在原始IP协议头与IP协议头的副本之间放置IPSec协议头。原始IP协议头保持原封不动,并且整个原始IP协议头都被认证或由加密算法进行保护
Router:sam-i-am(××× Server)
Current configuration:
version 12.2
service timestamps debug uptime
service timestamps log up time
no service password-encryption
hostname sam-i-am
ip subnet-zero
!--- IKE配置
sam-i-am(config)#crypto isakmp policy 1 // 定义策略为 1
sam-i-am(isakmp)#hash md5 //定义MD5散列算法
sam-i-am(isakmp)#authentication pre-share // 定义为预共享密钥认证方式
sam-i-am(config)#crypto isakmp key cisco123 address 0.0.0 .0 0.0.0.0
!--- 配置预共享密钥为cisco123,对等端为所有 IP
!--- IPSec协议配置
sam-i-am(config)#crypto ipsec transform-set rtpset esp-des esp-md5-hmac
!-- 创建变换集 esp-des esp-md5-hmac
sam-i-am(config)#crypto dynamic-map rtpmap 10 //创建动态保密图 rtpmap 10
san-i-am(crypto-map)#set transform-set rtpset //使用上面的定义的变换集 rtpset
san-i-am(crypto-map)#match address 115 //援引访问列表确定受保护的流量
sam-i-am(config)#crypto map rtptrans 10 ipsec-isakmp dynamic rtpmap
!--- 将动态保密图集加入到正规的图集中
interface Ethernet0
ip address 10.2.2.3 255.255.255.0
no ip directed-broadcast
ip nat inside
no mop enabled
interface Serial0
ip address 99.99.99.1 255.255.255.0
no ip directed-broadcast
ip nat outside
crypto map rtptrans // 将保密映射应用到S0接口上 !
ip nat inside source route-map nonat interface Serial0 overload
!--- 这个NAT配置启用了路由策略,内容为10.2.2.0到10.1.1.0的访问不进行地址翻译
!--- 到其他网络的访问都翻译成SO接口的IP地址
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0 // 配置静态路由协议
no ip http server
access-list 115 permit i p 10.2.2 .0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 115 deny i p 10.2.2 .0 0.0.0.255 any
access-list 120 deny i p 10.2.2 .0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 120 permit i p 10.2.2 .0 0.0.0.255 any
sam-i-am(config)#route-map nonat permit 10 // 使用路由策略
sam-i-am(router-map)#match ip address 120
line con 0
transport input none
line aux 0
line vty 0 4
password ww
login
end
Router:dr_whoovie(××× Client)
Current configuration:
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
hostname dr_whoovie
ip subnet-zero
dr_whoovie(config)#crypto isakmp policy 1 // 定义策略为 1
dr_whoovie(isakmp)#hash md5 //定义MD5散列算法
dr_whoovie(isakmp)#authentication pre-share // 定义为预共享密钥认证方式
dr_whoovie(config)#crypto isakmp key cisco123 address 99.99.99.1
!--- 配置预共享密钥为cisco123,对等端为服务器端 IP99.99.99.1
IPSec协议配置
dr_whoovie(config)#crypto ipsec transform-set rtpset esp-des esp-md5-hmac
创建变换集 esp-des esp-md5-hmac
dr_whoovie(config)#crypto map rtp 1 ipsec-isakmp
!--- 使用IKE创建保密图 rtp 1
dr_whoovie(crypto-map)#set peer 99.99.99.1 //确定远程对等端
dr_whoovie(crypto-map)#set transform-set rtpset // 使用上面的定义的变换集 rtpset
dr_whoovie(crypto-map)#match address 115 //援引访问列表确定受保护的流量
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
no ip directed-broadcast
ip nat inside
no mop enabled
interface Serial0
ip address negotiated //IP 地址自动获取
no ip directed-broadcast
ip nat outside
encapsulation ppp //S0 接口封装ppp协议
no ip mroute-cache
no ip route-cache
crypto map rtp // 将保密映射应用到S0接口上
ip nat inside source route-map nonat interface Serial0 overload
!--- 这个NAT配置启用了路由策略,内容为10.1.1.0到10.2.2.0的访问不进行地址翻译
!--- 到其他网络的访问都翻译成SO接口的IP地址
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0 // 配置静态路由协议
no ip http server
access-list 115 permit i p 10.1.1 .0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 115 deny i p 10.1.1 .0 0.0.0.255 any
access-list 120 deny i p 10.1.1 .0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 120 permit i p 10.1.1 .0 0.0.0.255 any
dialer-list 1 protocol ip permit
dialer-list 1 protocol ipx permit
route-map nonat permit 10 // 使用路由策略
match ip address 120
line con 0
transport input none
line aux 0
line vty 0 4
password ww
login
end
Current configuration:
version 12.2
service timestamps debug uptime
service timestamps log up time
no service password-encryption
hostname sam-i-am
ip subnet-zero
!--- IKE配置
sam-i-am(config)#crypto isakmp policy 1 // 定义策略为 1
sam-i-am(isakmp)#hash md5 //定义MD5散列算法
sam-i-am(isakmp)#authentication pre-share // 定义为预共享密钥认证方式
sam-i-am(config)#crypto isakmp key cisco123 address 0.0.0 .0 0.0.0.0
!--- 配置预共享密钥为cisco123,对等端为所有 IP
!--- IPSec协议配置
sam-i-am(config)#crypto ipsec transform-set rtpset esp-des esp-md5-hmac
!-- 创建变换集 esp-des esp-md5-hmac
sam-i-am(config)#crypto dynamic-map rtpmap 10 //创建动态保密图 rtpmap 10
san-i-am(crypto-map)#set transform-set rtpset //使用上面的定义的变换集 rtpset
san-i-am(crypto-map)#match address 115 //援引访问列表确定受保护的流量
sam-i-am(config)#crypto map rtptrans 10 ipsec-isakmp dynamic rtpmap
!--- 将动态保密图集加入到正规的图集中
interface Ethernet0
ip address 10.2.2.3 255.255.255.0
no ip directed-broadcast
ip nat inside
no mop enabled
interface Serial0
ip address 99.99.99.1 255.255.255.0
no ip directed-broadcast
ip nat outside
crypto map rtptrans // 将保密映射应用到S0接口上 !
ip nat inside source route-map nonat interface Serial0 overload
!--- 这个NAT配置启用了路由策略,内容为10.2.2.0到10.1.1.0的访问不进行地址翻译
!--- 到其他网络的访问都翻译成SO接口的IP地址
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0 // 配置静态路由协议
no ip http server
access-list 115 permit i p 10.2.2 .0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 115 deny i p 10.2.2 .0 0.0.0.255 any
access-list 120 deny i p 10.2.2 .0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 120 permit i p 10.2.2 .0 0.0.0.255 any
sam-i-am(config)#route-map nonat permit 10 // 使用路由策略
sam-i-am(router-map)#match ip address 120
line con 0
transport input none
line aux 0
line vty 0 4
password ww
login
end
Router:dr_whoovie(××× Client)
Current configuration:
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
hostname dr_whoovie
ip subnet-zero
dr_whoovie(config)#crypto isakmp policy 1 // 定义策略为 1
dr_whoovie(isakmp)#hash md5 //定义MD5散列算法
dr_whoovie(isakmp)#authentication pre-share // 定义为预共享密钥认证方式
dr_whoovie(config)#crypto isakmp key cisco123 address 99.99.99.1
!--- 配置预共享密钥为cisco123,对等端为服务器端 IP99.99.99.1
IPSec协议配置
dr_whoovie(config)#crypto ipsec transform-set rtpset esp-des esp-md5-hmac
创建变换集 esp-des esp-md5-hmac
dr_whoovie(config)#crypto map rtp 1 ipsec-isakmp
!--- 使用IKE创建保密图 rtp 1
dr_whoovie(crypto-map)#set peer 99.99.99.1 //确定远程对等端
dr_whoovie(crypto-map)#set transform-set rtpset // 使用上面的定义的变换集 rtpset
dr_whoovie(crypto-map)#match address 115 //援引访问列表确定受保护的流量
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
no ip directed-broadcast
ip nat inside
no mop enabled
interface Serial0
ip address negotiated //IP 地址自动获取
no ip directed-broadcast
ip nat outside
encapsulation ppp //S0 接口封装ppp协议
no ip mroute-cache
no ip route-cache
crypto map rtp // 将保密映射应用到S0接口上
ip nat inside source route-map nonat interface Serial0 overload
!--- 这个NAT配置启用了路由策略,内容为10.1.1.0到10.2.2.0的访问不进行地址翻译
!--- 到其他网络的访问都翻译成SO接口的IP地址
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0 // 配置静态路由协议
no ip http server
access-list 115 permit i p 10.1.1 .0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 115 deny i p 10.1.1 .0 0.0.0.255 any
access-list 120 deny i p 10.1.1 .0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 120 permit i p 10.1.1 .0 0.0.0.255 any
dialer-list 1 protocol ip permit
dialer-list 1 protocol ipx permit
route-map nonat permit 10 // 使用路由策略
match ip address 120
line con 0
transport input none
line aux 0
line vty 0 4
password ww
login
end
-----------IKE配置
----------------
IPSec ×××对等端为了建立信任关系,必须交换某种形式的认证密钥。
Internet 密钥交换(Internet Key Exchange,IKE)是一种为IPSec管理和交换密钥的标准方法。
一旦两个对等端之间的IKE协商取得成功,那么IKE就创建到远程对等端的安全关联(security association,SA)。SA是单向的;在两个对等端之间存在两
个SA。
IKE 使用UDP端口500进行协商,确保端口500不被阻塞。
IPSec ×××对等端为了建立信任关系,必须交换某种形式的认证密钥。
Internet 密钥交换(Internet Key Exchange,IKE)是一种为IPSec管理和交换密钥的标准方法。
一旦两个对等端之间的IKE协商取得成功,那么IKE就创建到远程对等端的安全关联(security association,SA)。SA是单向的;在两个对等端之间存在两
个SA。
IKE 使用UDP端口500进行协商,确保端口500不被阻塞。
配置
1 、(可选)启用或者禁用 IKE
(global)crypto isakmp enable
或者
(global)no crypto isakmp enable
默认在所有接口上启动 IKE
2、创建IKE策略
(1) 定义策略
(global)crypto isakmp policy priority
注释:policy 1表示策略1,假如想多配几个×××,可以写成policy 2、 policy3┅
(2)(可选)定义加密算法
(isakmp)encryption {des | 3des}
加密模式可以为56位的DES-CBC(des,默认值)或者168位的 3DES(3des)
(3)(可选)定义散列算法
(isamkp)hash {sha | md5}
默认 sha
(4)(可选)定义认证方式
(isamkp)authentication {rsa-sig | rsa-encr | pre-share}
rsa-sig 要求使用CA并且提供防止抵赖功能;默认值
rsa-encr 不需要CA,提供防止抵赖功能
pre-share 通过手工配置预共享密钥
(5) (可选)定义Diffie-Hellman标识符
(isakmp)group {1 | 2}
注释:除非购买高端路由器,或是×××通信比较少,否则最好使用group 1长度的密钥,group命令有两个参数值:1和2。参数值1表示密钥使用768位密钥,
参数值2表示密钥使用1024位密钥,显然后一种密钥安全性高,但消耗更多的CPU时间。
(6) (可选)定义安全关联的生命期
(isakmp)lifetime seconds
注释:对生成新SA的周期进行调整。这个值以秒为单位,默认值为86400,也就是一天。值得注意的是两端的路由器都要设置相同的SA周期,否则×××在正
常初始化之后,将会在较短的一个SA周期到达中断。
3 、(rsa-sig)使用证书授权 (CA)
(1)确保路由器有主机名和域名
(global)hostname hostname
(global)ip domain-name domain
(2) 产生RSA密钥
(global)crypto key generate rsa
(3) 使用向IPSec对等端发布证书的 CA
--设定CA的主机名
(global)crypto ca identity name
--设定联络CA所使用的 URL
(ca-identity)enrollment url url
--(可选)使用RA模式
(ca-identity)enrollment mode ra
(ca-identity)query url url
--(可选)设定注册重试参数
(ca-identity)enrollment retry period minutes
(ca-identity)enrollment retry count number
minutes(1 到60;默认为1) number(1到100;默认为0,代表无穷次 )
--(可选)可选的证书作废列表
(ca-identity)crl optional
(4) (可选)使用可信的根 CA
--确定可信的根 CA
(global)crypto ca trusted-root name
--(可选)从可信的根请求 CRL
(ca-root)crl query url
--定义注册的方法
(ca-root)root {CEP url | TFTP server file | PROXY url}
(5) 认证 CA
(global)crypto ca authenticate name
(6)用CA注册路由器
(global)crypto ca enroll name
4 、(rsa-encr)手工配置RSA密钥(不使用CA)
(1) 产生RSA密钥
(global)crypto key generate rsa
(2) 指定对等端的ISAKMP标识
(global)crypto isakmp identity {address | hostname}
(3) 指定其他所有对等端的RSA密钥
--配置公共密钥链
(global)crypto key pubkey-chain rsa
--用名字或地址确定密钥
(pubkey-chain)named-key key-name [encryption | signature]
(pubkey-chain)addressed-key key-name [encryption | signature] --(可选)手工配置远程对等端的IP地址
(pubkey-key)address ip-addr
1 、(可选)启用或者禁用 IKE
(global)crypto isakmp enable
或者
(global)no crypto isakmp enable
默认在所有接口上启动 IKE
2、创建IKE策略
(1) 定义策略
(global)crypto isakmp policy priority
注释:policy 1表示策略1,假如想多配几个×××,可以写成policy 2、 policy3┅
(2)(可选)定义加密算法
(isakmp)encryption {des | 3des}
加密模式可以为56位的DES-CBC(des,默认值)或者168位的 3DES(3des)
(3)(可选)定义散列算法
(isamkp)hash {sha | md5}
默认 sha
(4)(可选)定义认证方式
(isamkp)authentication {rsa-sig | rsa-encr | pre-share}
rsa-sig 要求使用CA并且提供防止抵赖功能;默认值
rsa-encr 不需要CA,提供防止抵赖功能
pre-share 通过手工配置预共享密钥
(5) (可选)定义Diffie-Hellman标识符
(isakmp)group {1 | 2}
注释:除非购买高端路由器,或是×××通信比较少,否则最好使用group 1长度的密钥,group命令有两个参数值:1和2。参数值1表示密钥使用768位密钥,
参数值2表示密钥使用1024位密钥,显然后一种密钥安全性高,但消耗更多的CPU时间。
(6) (可选)定义安全关联的生命期
(isakmp)lifetime seconds
注释:对生成新SA的周期进行调整。这个值以秒为单位,默认值为86400,也就是一天。值得注意的是两端的路由器都要设置相同的SA周期,否则×××在正
常初始化之后,将会在较短的一个SA周期到达中断。
3 、(rsa-sig)使用证书授权 (CA)
(1)确保路由器有主机名和域名
(global)hostname hostname
(global)ip domain-name domain
(2) 产生RSA密钥
(global)crypto key generate rsa
(3) 使用向IPSec对等端发布证书的 CA
--设定CA的主机名
(global)crypto ca identity name
--设定联络CA所使用的 URL
(ca-identity)enrollment url url
--(可选)使用RA模式
(ca-identity)enrollment mode ra
(ca-identity)query url url
--(可选)设定注册重试参数
(ca-identity)enrollment retry period minutes
(ca-identity)enrollment retry count number
minutes(1 到60;默认为1) number(1到100;默认为0,代表无穷次 )
--(可选)可选的证书作废列表
(ca-identity)crl optional
(4) (可选)使用可信的根 CA
--确定可信的根 CA
(global)crypto ca trusted-root name
--(可选)从可信的根请求 CRL
(ca-root)crl query url
--定义注册的方法
(ca-root)root {CEP url | TFTP server file | PROXY url}
(5) 认证 CA
(global)crypto ca authenticate name
(6)用CA注册路由器
(global)crypto ca enroll name
4 、(rsa-encr)手工配置RSA密钥(不使用CA)
(1) 产生RSA密钥
(global)crypto key generate rsa
(2) 指定对等端的ISAKMP标识
(global)crypto isakmp identity {address | hostname}
(3) 指定其他所有对等端的RSA密钥
--配置公共密钥链
(global)crypto key pubkey-chain rsa
--用名字或地址确定密钥
(pubkey-chain)named-key key-name [encryption | signature]
(pubkey-chain)addressed-key key-name [encryption | signature] --(可选)手工配置远程对等端的IP地址
(pubkey-key)address ip-addr
--指定远程对等端的公开密钥
(pubkey-key)key-string key-string
5 、(preshare)配置预共享密钥
(global)crypto isakmp key key-string {addrss | hostname} {peer-address | peer-hostname}
注释:返回到全局设置模式确定要使用的预先共享密钥和指归×××另一端路由器IP地址,即目的路由器IP地址。相应地在另一端路由器配置也和以上命令类
似
6 、(可选)使用IKE模式
(1) 定义要分发的“内部”或者受保护IP地址库
(global)ip local pool pool-name start-address end-address
(2) 启动IKE模式协商
(global)crypto isakmp client configuration address-pool local pool-name
(pubkey-key)key-string key-string
5 、(preshare)配置预共享密钥
(global)crypto isakmp key key-string {addrss | hostname} {peer-address | peer-hostname}
注释:返回到全局设置模式确定要使用的预先共享密钥和指归×××另一端路由器IP地址,即目的路由器IP地址。相应地在另一端路由器配置也和以上命令类
似
6 、(可选)使用IKE模式
(1) 定义要分发的“内部”或者受保护IP地址库
(global)ip local pool pool-name start-address end-address
(2) 启动IKE模式协商
(global)crypto isakmp client configuration address-pool local pool-name
--------------IPSec配置
----------------
IPSec 使用加密、数据完整性、源发鉴别以及拒绝重演分组来保护和认证网络层对等端之间的IP分组
IPSec 对于构建内因网、外因网以及远程用户接入×××来说非常有用处
IPSec 支持以下标准
--Internet 协议的安全体系结构
--IKE(Internet 密钥交换 )
--DES(数据加密标准 )
--MD5
--SHA
--AH(Authentication Header,认证首部)数据认证和反重演(anti-reply)服务
--ESP(Encapsulation Security Payload ,封装安全净荷)数据隐私、数据验证以及反重演(anti-reply)服务
IPSec 使用加密、数据完整性、源发鉴别以及拒绝重演分组来保护和认证网络层对等端之间的IP分组
IPSec 对于构建内因网、外因网以及远程用户接入×××来说非常有用处
IPSec 支持以下标准
--Internet 协议的安全体系结构
--IKE(Internet 密钥交换 )
--DES(数据加密标准 )
--MD5
--SHA
--AH(Authentication Header,认证首部)数据认证和反重演(anti-reply)服务
--ESP(Encapsulation Security Payload ,封装安全净荷)数据隐私、数据验证以及反重演(anti-reply)服务
敏感流量由访问列表所定义,并且通过crypto map(保密图)集被应用到接口上。
配置
1 、为密钥管理配置 IKE
2、(可选)定义SA的全局生命期
(global)crypto ipsec security-association lifetime seconds seconds
(global)crypto ipsec security-association lifetime killobytes kilobytes
3 、定义保密访问列表来定义受保护的流量
(global)access-list access-list-number ....
或者
(global)ip access-list extended name
扩展的访问列表必须定义由IPSec保护哪种IP流量。保密图(crypto map)援引这个访问列表来确定在接口上要保护的流量。
4 、定义IPSec交换集
(1) 创建变换集
(global)crypto ipsec transform-set name [transform1 | transform2 | transform3]
可以在一个保密图(crypto map)中定义多个变换集。如果没有使用IKE,那么只能定义一种变换集。用户能够选择多达三种变换。
(可选)选择一种AH变换
--ah-md5-hmac
--ah-sha-hmac
--ah-rfc-1828
(可选)选择一种ESP加密编号
--esp-des
--esp-3des
--esp-rfc-1829
--esp-null
以及这些验证方法之一
--esp-md5-hmac
--esp-sha-hmac
(可选)选择IP压缩变换
--comp-lzs
(2) (可选)选择变换集的模式
(crypto-transform)mode {tunnel | transport}
5 、使用IPSec策略定义保密映射
保密图(crypto map)连接了保密访问列表,确定了远程对等端、本地地址、变换集和协商方法。
(1) (可选)使用手工的安全关联(没有IKE协商)
-- 创建保密图
(global)crypto map map-name sequence ipsec-manual
-- 援引保密访问列表来确定受保护的流量
(crypto-map)match address access-list
-- 确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- 指定要使用的变换集
(crypto-map)set transform-set name
变换集必须和远程对等端上使用的相同
-- (仅适用于AH验证)手工设定AH密钥
(crypto-map)set session-key inbound ah spi hex-key-data
(crypto-map)set session-key outbound ah spi hex-key-data
-- (仅适用于ESP验证)手工设定ESP SPI和密钥
(crypto-map)set session-key inbound ah spi hex-key-data [authenticator hex-key-data]
(crypto-map)set session-key outbound ah spi hex-key-data [authenticator hex-key-data]
(2) (可选)使用IKE建立的安全关联
-- 创建保密图
(global)crypto map map-name sequence ipsec-isakmp
-- 援引保密访问列表来确定受保护的流量
(crypto-map)match address access-list
-- 确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- 指定要使用的变换集
(crypto-map)set transform-set name
变换集必须和远程对等端上使用的相同
-- (可选)如果SA生命期和全局默认不同,那么定义它:
(crypto-map)set security-association lifetime seconds seconds
(crypto-map)set security-association lifetime kilobytes kilobytes
-- (可选)为每个源/目的主机对使用一个独立的 SA
(crypto-map)set security-association level per-host
--(可选)对每个新的SA使用完整转发安全性
(crypto-map)set pfs [group1 | group2]
(3) (可选)使用动态安全关联
-- 创建动态的保密图
(global)crypto dynamic-map dyn-map-name dyn-seq-num
-- (可选)援引保密访问列表确定受保护的流量
(crypto-map)match address access-list
-- (可选)确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- (可选)指定要使用的变换集
(crypto-map)set transform-set tranform-set-name
-- (可选)如果SA生命期和全局默认不同,那么定义它:
(crypto-map)set security-association lifetime seconds seconds
(crypto-map)set security-association lifetime kilobytes kilobytes
-- (可选)对每个新的SA使用完整转发安全性
(crypto-map)set pfs [group1 | group2]
-- 将动态保密图集加入到正规的图集中
(global)crypto map map-name sequence ipsec-isakmp dynamic dyn-map-name [discover]
-- (可选)使用IKE模式的客户机配置
(global)crypto map map-name client configuration address [initiate | respond]
-- (可选)使用来自AAA服务器的预共享IKE密钥
(global)crypto map map-name isakmp authorization list list-name
6 、将保密映射应用到接口上
(1) 指定要使用的保密映射
(interface)crypto map map-name
(2) (可选)和其他接口共享保密映射
(global)crypto map map-name local-address interface-id
1 、为密钥管理配置 IKE
2、(可选)定义SA的全局生命期
(global)crypto ipsec security-association lifetime seconds seconds
(global)crypto ipsec security-association lifetime killobytes kilobytes
3 、定义保密访问列表来定义受保护的流量
(global)access-list access-list-number ....
或者
(global)ip access-list extended name
扩展的访问列表必须定义由IPSec保护哪种IP流量。保密图(crypto map)援引这个访问列表来确定在接口上要保护的流量。
4 、定义IPSec交换集
(1) 创建变换集
(global)crypto ipsec transform-set name [transform1 | transform2 | transform3]
可以在一个保密图(crypto map)中定义多个变换集。如果没有使用IKE,那么只能定义一种变换集。用户能够选择多达三种变换。
(可选)选择一种AH变换
--ah-md5-hmac
--ah-sha-hmac
--ah-rfc-1828
(可选)选择一种ESP加密编号
--esp-des
--esp-3des
--esp-rfc-1829
--esp-null
以及这些验证方法之一
--esp-md5-hmac
--esp-sha-hmac
(可选)选择IP压缩变换
--comp-lzs
(2) (可选)选择变换集的模式
(crypto-transform)mode {tunnel | transport}
5 、使用IPSec策略定义保密映射
保密图(crypto map)连接了保密访问列表,确定了远程对等端、本地地址、变换集和协商方法。
(1) (可选)使用手工的安全关联(没有IKE协商)
-- 创建保密图
(global)crypto map map-name sequence ipsec-manual
-- 援引保密访问列表来确定受保护的流量
(crypto-map)match address access-list
-- 确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- 指定要使用的变换集
(crypto-map)set transform-set name
变换集必须和远程对等端上使用的相同
-- (仅适用于AH验证)手工设定AH密钥
(crypto-map)set session-key inbound ah spi hex-key-data
(crypto-map)set session-key outbound ah spi hex-key-data
-- (仅适用于ESP验证)手工设定ESP SPI和密钥
(crypto-map)set session-key inbound ah spi hex-key-data [authenticator hex-key-data]
(crypto-map)set session-key outbound ah spi hex-key-data [authenticator hex-key-data]
(2) (可选)使用IKE建立的安全关联
-- 创建保密图
(global)crypto map map-name sequence ipsec-isakmp
-- 援引保密访问列表来确定受保护的流量
(crypto-map)match address access-list
-- 确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- 指定要使用的变换集
(crypto-map)set transform-set name
变换集必须和远程对等端上使用的相同
-- (可选)如果SA生命期和全局默认不同,那么定义它:
(crypto-map)set security-association lifetime seconds seconds
(crypto-map)set security-association lifetime kilobytes kilobytes
-- (可选)为每个源/目的主机对使用一个独立的 SA
(crypto-map)set security-association level per-host
--(可选)对每个新的SA使用完整转发安全性
(crypto-map)set pfs [group1 | group2]
(3) (可选)使用动态安全关联
-- 创建动态的保密图
(global)crypto dynamic-map dyn-map-name dyn-seq-num
-- (可选)援引保密访问列表确定受保护的流量
(crypto-map)match address access-list
-- (可选)确定远程的IPSec对等端
(crypto-map)set peer {hostname | ip_addr}
-- (可选)指定要使用的变换集
(crypto-map)set transform-set tranform-set-name
-- (可选)如果SA生命期和全局默认不同,那么定义它:
(crypto-map)set security-association lifetime seconds seconds
(crypto-map)set security-association lifetime kilobytes kilobytes
-- (可选)对每个新的SA使用完整转发安全性
(crypto-map)set pfs [group1 | group2]
-- 将动态保密图集加入到正规的图集中
(global)crypto map map-name sequence ipsec-isakmp dynamic dyn-map-name [discover]
-- (可选)使用IKE模式的客户机配置
(global)crypto map map-name client configuration address [initiate | respond]
-- (可选)使用来自AAA服务器的预共享IKE密钥
(global)crypto map map-name isakmp authorization list list-name
6 、将保密映射应用到接口上
(1) 指定要使用的保密映射
(interface)crypto map map-name
(2) (可选)和其他接口共享保密映射
(global)crypto map map-name local-address interface-id
用cisco路由器实现×××实例配置方案-中文注解
GRE(Generic Routing Encapsulation)
通用路由封装(GRE)最初由Cisco开发,现在是一个RFC1700、RFC1702和RFC2784定义的标准。GRE是一个在网络之间传输数据包的通道协议。
如果对你而言它听起来像一个虚拟专用网络(×××),这是因为理论上确实是这样:技术上,GRE是一种×××,但它并不是一种安全的通道方法。不过,你可以用IPSec这样的加密方法对GRE进行加密,构建一个安全的×××。
实际上,点对点通道协议(PPTP)就使用GRE来建立×××通道。例如,如果你应用微软×××通道,在默认情况下,你使用PPTP,它使用GRE。
我为什么要使用GRE?
下面列出了一些使用GRE为流量建立通道的原因:
你需要加密多点传送流量。GRE通道能够传送多点传送数据包——就像真实的网络接口一样——这与使用IPSec不同,它不能加密多点传送流量。OSPF、EIGRP和RIPV2都属于多点传送。而且,许多视频、VoIP和音乐流应用程序都使用多点传送。
你只有一个不能路由的协议,如NetBIOS或非IP网络上的非IP流量。例如,你可以通过一个IP网络使用GRE为IPX或AppleTalk建立通道。
你需要用不同的IP地址连接两个由一个不同网络连接的相似网络。
我如何配置GRE通道?
在Cisco路由器上配置GRE通道相当容易——只需要执行几条简单的命令即可。下面是一个简单的配置实例:
路由器A:
interface Ethernet0/1
ip address 10.2.2 .1 255.255.255.0
interface Serial0/0
ip address 192.168.4.1 255.255.255.0
interface Tunnel0
ip address 1.1.1 .2 255.255.255.0
tunnel source Serial0/0
tunnel destination 192.168.4.2
路由器B:
interface FastEthernet0/1
ip address 10.1.1 .1 255.255.255.0
interface Serial0/0
ip address 192.168.4.2 255.255.255.0
interface Tunnel0
ip address 1.1.1 .1 255.255.255.0
tunnel source Serial0/0
tunnel destination 192.168.4.1
在这个例子中,两个路由器各有一个虚拟接口——通道接口。这个接口像一个点对点T1电路一样,有它自己的网络。经过通道网络的流量也流经串行网络。
对每个路由器而言,很明显它们有两条远程路径——串行接口和通道接口(流经通道)。然后这个通道就能传送非路由流量,如NetBIOS或AppleTalk。如果它通过互联网,你可以使用IPSec进行加密。
如下面的输出所见,路由器B上的通道接口和其它接口一样:
RouterB# sh ip int brie
InterfaceIP-AddressOK?MethodStatusProtocol
Ethernet 010.1.1 .1YESmanualupdown
Serial0192.168.4.2YESmanualupup
Serial1unassignedYESunsetadministratively downdown
Tunnel 01.1.1 .1YESmanual upup
RouterB#
GRE通道故障修复
由于GRE把一个数据包封装到另一个数据包中,因此你可能会遇到以下情形:你发送的数据包超出你的接口所允许的大小。在通道接口上配置ip tcp adjust-mss 1436,就可以解决这个问题。
虽然GRE不提供加密功能,但你可以使用tunnel key命令在通道的两端激活一个密钥,它就像一个没有加密的简单明文密码。
因为GRE通道没有状态,那么可能出现这样的情况:通道的一端关闭,而另一端仍然开放。在解决这个问题,可以在通道的两端启动keepalive数据包。这样设置后,通道的两端定期向另一端发送一个keepalive数据包。如果一端没有在指定的时间收到keepalive数据包,两端的通道就会关闭
基于gre协议
的×××原理及实现
摘要 本文首先对×××技术的特点和基本应用进行了描述,在此基础上引出了GRE在×××中的多协议局域网通过×××互连的工作原理,结合实际着重分析了IP承载IPX原理和最终在路由器上的实现
.
关键词 GRE ××× IPX 隧道 封装
引言
随着企业和公司的不断发展壮大,员工出差日趋频繁,驻外机构及客户群分布日益分散,合作伙伴日益增多,越来越多的现代企业迫切需要利用公共Internet资源来进行促销,销售,售后服务,培训,合作及其它咨询活动 .
×××(Virtual Private Network,虚拟私有网)是近年来随着Internet的广泛应用而迅速发展起来的一种新技术,实现在公用网络上构建私人专用网络."虚拟"主要指这种网络是一种逻辑上的网络 .
另外,由于企业的分支机构相互间的网络基础设施互不兼容的问题随着×××的应用而突显出来,GRE(通用路由封装协议)的应用优势由此产生 .
2 ×××特点及基本应用
⑴ ×××的特点
××× 有别于传统网络,它并不实际存在,而是利用现有公共网络,通过资源配置而成的虚拟网络,是一种逻辑上的网络 .
×××只为特定的企业或用户群体所专用.从×××用户角度看来,使用×××与传统专网没有区别.×××作为私有专网,一方面与底层承载网络之间保持资源独立性,即在一般情况下,×××资源不会被承载网络中的其它×××或非该×××用户的网络成员所使用 ;
另一方面,×××提供足够安全性,确保×××内部信息不受外部的侵扰 .
只需要通过软件配置就可以增加,删除×××用户,无需改动硬件设施.这使得×××的应用具有很大灵活性 .
×××不是一种简单的高层业务.该业务建立专网用户之间的网络互联,包括建立×××内部的网络拓扑,路由计算,成员的加入与退出等,因此×××技术就比各种普通的点对点的应用机制要复杂得多 .
⑵ ×××基本组网应用
以某企业为例,通过×××建立的企业内部网如下图所示 :
×××组网示意图
从上图可以看出,企业内部资源享用者通过PSTN/ISDN网或局域网就可以连入本地ISP的POP(Point of Presence)服务器,从而访问公司内部资源.而利用传统的WAN组建技术,相互之间要有专线相连才可以达到同样的目的.虚拟网组成后,远端用户和外地客户甚至不必拥有本地ISP的上网权限就可以访问企业内部资源,这对于流动性很大的出差员工和分布广泛的客户来说是很有意义的 .
3 gre协议简介
GRE(Generic Routing Encapsulation) 即通用路由封装协议是对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输.GRE是×××(Virtual Private Network )的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术 .
⑴ GRE的Tunnel(隧道)工作原理
一个报文要想在Tunnel中传输,必须要经过加封装与解封装两个过程 :
a) 加封装过程
如下图,连接Novell group1的接口收到IPX数据报后首先交由IPX协议处理,IPX协议检查IPX报头中的目的地址域来确定如何路由此包 .
GRE典型组网图
b) 封装好的报文的形式如下图所示 :
封装好的Tunnel报文格式
c) 解封装的过程
解封装过程和加封装的过程相反.从Tunnel接口收到的IP报文,通过检查目的地址,发现目的地就是此路由器时,剥掉IP报头,再交给gre协议处理后(进行检验密钥,检查校验和或报文的序列号等),剥掉GRE报头后,再交由IPX协议象对待一般数据报一样对此数据报进行处理.系统收到一个需要封装和路由的数据报,称之为净荷(Payload),这个净荷首先被加上GRE封装,成为GRE报文;再被封装在IP报文中,这样就可完全由IP层负责此报文的向前传输(Forwarded).这个负责向前传输的IP协议被称为传递(Delivery)协议或传输(Transport)协议 .
⑵ GRE应用范围 :
① 多协议本地网通过单一协议骨干网传输
② 扩大包含步跳数受限协议(如IPX)的网络的工作范围 .
③ 将一些不能连续的子网连接起来,组建 ×××.
其中,以第一种应用为主 .
4 基于GRE,以IP封装IPX原理及实现
⑴ 协议封装
一个封装在IP Tunnel中的IPX传输报文的格式如下 :
⑵ IP承载IPX的GRE应用组网图
⑶ GRE配置
GRE 的基本配置包括 :
创建虚拟Tunnel接口
配置Tunnel接口的源端地址
配置Tunnel接口的目的地址
配置Tunnel接口的网络地址
⑷ IP承载IPX配置实例:(以笔者曾经的证券公司与其办事处联网的配置为例,为了保证用户数据安全,地址分配为虚设 )
① 配置路由器 RouterA:
# 激活 IPX.
[RouterA] ipx enable node a.a.a
# 配置Ethernet0接口IP地址,IPX地址 .
[RouterA] interface ethernet 0
[RouterA-Ethernet0] ip address 10.1.1 .1 255.255.255.0
[RouterA-Ethernet0] ipx network 1e
# 配置Serial0接口IP地址 .
[RouterA] interface serial 0
[RouterA-Serial0] ip address 192.10.1.1 255.255.255.0
# 创建虚拟Tunnel接口,并配置IP地址,源端地址,目的端地址 .
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ip address 10.1.2.1 255.255.255.0
[RouterA-Tunnel0] ipx network 1f
[RouterA-Tunnel0] source 192.10.1.1
[RouterA-Tunnel0] destination 202.18.3.2
# 配置到Novell Group2的静态路由 .
[RouterA] ipx route 31 1f.b.b.b tick 2000 hop 15
② 配置路由器 RouterB:
# 激活 IPX.
[RouterB] ipx enable node b.b.b
# 配置Ethernet0接口IP地址,IPX地址 .
[RouterB] interface ethernet 0
[RouterB-Ethernet0] ip address 10.1.3.1 255.255.255.0
[RouterB-Ethernet0] ipx network 31
# 配置Serial0接口IP地址 .
[RouterB] interface serial 0
[RouterB-Serial0] ip address 202.18.3.2 255.255.255.0
# 创建虚拟Tunnel接口,并配置IP地址,源端地址,目的端地址 .
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ip address 10.1.2.2 255.255.255.0
[RouterB-Tunnel0] ipx network 1f
[RouterB-Tunnel0] source 202.18.3.2
[RouterB-Tunnel0] destination 192.10.1.1
# 配置到Novell Group1的静态路由 .
[RouterB] ipx route 1e 1f.a.a.a tick 30000 hop 15
该网络运行状况和用户反映良好,能满足用户对速率,服务质量和安全方面的要求.需要说明的是:由于路由其厂商的不同,具体命令格式会有所区别 .
⑸ 为了提高网络性能,可以进行GRE的高级配置,包括 :
配置Tunnel接口的识别关键字
配置Tunnel接口使用校验和校验
配置Tunnel接口进行数据报文序列号同步
配置Tunnel接口快速转发功能
5 结束语
通过高性价比的×××应用,使在远端用户,驻外机构,合作伙伴,供应商与公司总部之间建立可靠的安全连接,有效满足高速需求,同时保证数据传输的安全性.这一优势对于实现电子商务或金融网络与通讯网络的融合将有特别重要的意义.
关键词 GRE ××× IPX 隧道 封装
引言
随着企业和公司的不断发展壮大,员工出差日趋频繁,驻外机构及客户群分布日益分散,合作伙伴日益增多,越来越多的现代企业迫切需要利用公共Internet资源来进行促销,销售,售后服务,培训,合作及其它咨询活动 .
×××(Virtual Private Network,虚拟私有网)是近年来随着Internet的广泛应用而迅速发展起来的一种新技术,实现在公用网络上构建私人专用网络."虚拟"主要指这种网络是一种逻辑上的网络 .
另外,由于企业的分支机构相互间的网络基础设施互不兼容的问题随着×××的应用而突显出来,GRE(通用路由封装协议)的应用优势由此产生 .
2 ×××特点及基本应用
⑴ ×××的特点
××× 有别于传统网络,它并不实际存在,而是利用现有公共网络,通过资源配置而成的虚拟网络,是一种逻辑上的网络 .
×××只为特定的企业或用户群体所专用.从×××用户角度看来,使用×××与传统专网没有区别.×××作为私有专网,一方面与底层承载网络之间保持资源独立性,即在一般情况下,×××资源不会被承载网络中的其它×××或非该×××用户的网络成员所使用 ;
另一方面,×××提供足够安全性,确保×××内部信息不受外部的侵扰 .
只需要通过软件配置就可以增加,删除×××用户,无需改动硬件设施.这使得×××的应用具有很大灵活性 .
×××不是一种简单的高层业务.该业务建立专网用户之间的网络互联,包括建立×××内部的网络拓扑,路由计算,成员的加入与退出等,因此×××技术就比各种普通的点对点的应用机制要复杂得多 .
⑵ ×××基本组网应用
以某企业为例,通过×××建立的企业内部网如下图所示 :
×××组网示意图
从上图可以看出,企业内部资源享用者通过PSTN/ISDN网或局域网就可以连入本地ISP的POP(Point of Presence)服务器,从而访问公司内部资源.而利用传统的WAN组建技术,相互之间要有专线相连才可以达到同样的目的.虚拟网组成后,远端用户和外地客户甚至不必拥有本地ISP的上网权限就可以访问企业内部资源,这对于流动性很大的出差员工和分布广泛的客户来说是很有意义的 .
3 gre协议简介
GRE(Generic Routing Encapsulation) 即通用路由封装协议是对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输.GRE是×××(Virtual Private Network )的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术 .
⑴ GRE的Tunnel(隧道)工作原理
一个报文要想在Tunnel中传输,必须要经过加封装与解封装两个过程 :
a) 加封装过程
如下图,连接Novell group1的接口收到IPX数据报后首先交由IPX协议处理,IPX协议检查IPX报头中的目的地址域来确定如何路由此包 .
GRE典型组网图
b) 封装好的报文的形式如下图所示 :
封装好的Tunnel报文格式
c) 解封装的过程
解封装过程和加封装的过程相反.从Tunnel接口收到的IP报文,通过检查目的地址,发现目的地就是此路由器时,剥掉IP报头,再交给gre协议处理后(进行检验密钥,检查校验和或报文的序列号等),剥掉GRE报头后,再交由IPX协议象对待一般数据报一样对此数据报进行处理.系统收到一个需要封装和路由的数据报,称之为净荷(Payload),这个净荷首先被加上GRE封装,成为GRE报文;再被封装在IP报文中,这样就可完全由IP层负责此报文的向前传输(Forwarded).这个负责向前传输的IP协议被称为传递(Delivery)协议或传输(Transport)协议 .
⑵ GRE应用范围 :
① 多协议本地网通过单一协议骨干网传输
② 扩大包含步跳数受限协议(如IPX)的网络的工作范围 .
③ 将一些不能连续的子网连接起来,组建 ×××.
其中,以第一种应用为主 .
4 基于GRE,以IP封装IPX原理及实现
⑴ 协议封装
一个封装在IP Tunnel中的IPX传输报文的格式如下 :
⑵ IP承载IPX的GRE应用组网图
⑶ GRE配置
GRE 的基本配置包括 :
创建虚拟Tunnel接口
配置Tunnel接口的源端地址
配置Tunnel接口的目的地址
配置Tunnel接口的网络地址
⑷ IP承载IPX配置实例:(以笔者曾经的证券公司与其办事处联网的配置为例,为了保证用户数据安全,地址分配为虚设 )
① 配置路由器 RouterA:
# 激活 IPX.
[RouterA] ipx enable node a.a.a
# 配置Ethernet0接口IP地址,IPX地址 .
[RouterA] interface ethernet 0
[RouterA-Ethernet0] ip address 10.1.1 .1 255.255.255.0
[RouterA-Ethernet0] ipx network 1e
# 配置Serial0接口IP地址 .
[RouterA] interface serial 0
[RouterA-Serial0] ip address 192.10.1.1 255.255.255.0
# 创建虚拟Tunnel接口,并配置IP地址,源端地址,目的端地址 .
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ip address 10.1.2.1 255.255.255.0
[RouterA-Tunnel0] ipx network 1f
[RouterA-Tunnel0] source 192.10.1.1
[RouterA-Tunnel0] destination 202.18.3.2
# 配置到Novell Group2的静态路由 .
[RouterA] ipx route 31 1f.b.b.b tick 2000 hop 15
② 配置路由器 RouterB:
# 激活 IPX.
[RouterB] ipx enable node b.b.b
# 配置Ethernet0接口IP地址,IPX地址 .
[RouterB] interface ethernet 0
[RouterB-Ethernet0] ip address 10.1.3.1 255.255.255.0
[RouterB-Ethernet0] ipx network 31
# 配置Serial0接口IP地址 .
[RouterB] interface serial 0
[RouterB-Serial0] ip address 202.18.3.2 255.255.255.0
# 创建虚拟Tunnel接口,并配置IP地址,源端地址,目的端地址 .
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ip address 10.1.2.2 255.255.255.0
[RouterB-Tunnel0] ipx network 1f
[RouterB-Tunnel0] source 202.18.3.2
[RouterB-Tunnel0] destination 192.10.1.1
# 配置到Novell Group1的静态路由 .
[RouterB] ipx route 1e 1f.a.a.a tick 30000 hop 15
该网络运行状况和用户反映良好,能满足用户对速率,服务质量和安全方面的要求.需要说明的是:由于路由其厂商的不同,具体命令格式会有所区别 .
⑸ 为了提高网络性能,可以进行GRE的高级配置,包括 :
配置Tunnel接口的识别关键字
配置Tunnel接口使用校验和校验
配置Tunnel接口进行数据报文序列号同步
配置Tunnel接口快速转发功能
5 结束语
通过高性价比的×××应用,使在远端用户,驻外机构,合作伙伴,供应商与公司总部之间建立可靠的安全连接,有效满足高速需求,同时保证数据传输的安全性.这一优势对于实现电子商务或金融网络与通讯网络的融合将有特别重要的意义.
MPLS(multi-protocol label switching)
MPLS(Multi-Propocol Label Switching)即多协议标记交换。
MPLS属于第三代网络架构,是新一代的IP高速骨干网络交换标准,由IETF(Internet Engineering Task Force,因特网工程任务组)所提出,由Cisco、ASCEND、3Com等网络设备大厂所主导。
MPLS是集成式的IP Over ATM技术,即在Frame Relay及ATM Switch上结合路由功能,数据包通过虚拟电路来传送,只须在OSI第二层(数据链结层)执行硬件式交换(取代第三层(网络层)软件式 routing),它整合了IP选径与第二层标记交换为单一的系统,因此可以解决Internet路由的问题,使数据包传送的延迟时间减短,增加网络传输的速度,更适合多媒体讯息的传送。因此,MPLS最大技术特色为可以指定数据包传送的先后顺序。MPLS使用标记交换(Label Switching),网络路由器只需要判别标记后即可进行转送处理。
MPLS的运作原理是提供每个IP数据包一个标记,并由此决定数据包的路径以及优先级。与MPLS兼容的路由器(Router),在将数据包转送到其路径前,仅读取数据包标记,无须读取每个数据包的IP地址以及标头(因此网络速度便会加快),然后将所传送的数据包置于Frame Relay或ATM的虚拟电路上,并迅速将数据包传送至终点的路由器,进而减少数据包的延迟,同时由Frame Relay及ATM交换器所提供的QoS(Quality of Service)对所传送的数据包加以分级,因而大幅提升网络服务品质提供更多样化的服务。
MPLS属于第三代网络架构,是新一代的IP高速骨干网络交换标准,由IETF(Internet Engineering Task Force,因特网工程任务组)所提出,由Cisco、ASCEND、3Com等网络设备大厂所主导。
MPLS是集成式的IP Over ATM技术,即在Frame Relay及ATM Switch上结合路由功能,数据包通过虚拟电路来传送,只须在OSI第二层(数据链结层)执行硬件式交换(取代第三层(网络层)软件式 routing),它整合了IP选径与第二层标记交换为单一的系统,因此可以解决Internet路由的问题,使数据包传送的延迟时间减短,增加网络传输的速度,更适合多媒体讯息的传送。因此,MPLS最大技术特色为可以指定数据包传送的先后顺序。MPLS使用标记交换(Label Switching),网络路由器只需要判别标记后即可进行转送处理。
MPLS的运作原理是提供每个IP数据包一个标记,并由此决定数据包的路径以及优先级。与MPLS兼容的路由器(Router),在将数据包转送到其路径前,仅读取数据包标记,无须读取每个数据包的IP地址以及标头(因此网络速度便会加快),然后将所传送的数据包置于Frame Relay或ATM的虚拟电路上,并迅速将数据包传送至终点的路由器,进而减少数据包的延迟,同时由Frame Relay及ATM交换器所提供的QoS(Quality of Service)对所传送的数据包加以分级,因而大幅提升网络服务品质提供更多样化的服务。
MPLS基本配置
mpls基本配置中必须的配置项包括:
配置mpls lsr id
使能mpls,并进入mpls视图
mpls基本配置中可选的配置项包括:
配置拓扑驱动建立lsp的建立策略
配置lsp的建立策略
配置静态 lsp
2.2.1 配置 mpls lsr id
在配置其他mpls命令之前,必须首先为lsr配置id。lsr id一般采用ip地址的格式,并且要保证域内唯一。
缺省情况下未指定lsr id。
2.2.2 进入mpls视图
配置拓扑驱动建立lsp的建立策略
配置lsp的建立策略
配置静态 lsp
2.2.1 配置 mpls lsr id
在配置其他mpls命令之前,必须首先为lsr配置id。lsr id一般采用ip地址的格式,并且要保证域内唯一。
缺省情况下未指定lsr id。
2.2.2 进入mpls视图
在系统视图下,首次键入mpls命令用来全局使能mpls功能,并进入mpls视图。以后在系统视图下再键入mpls命令则进入mpls视图。
在vlan接口视图下,mpls命令用来使能vlan接口的mpls能力。
缺省情况下未使能mpls功能。
2.2.3 配置拓扑驱动建立lsp的建立策略
在vlan接口视图下,mpls命令用来使能vlan接口的mpls能力。
缺省情况下未使能mpls功能。
2.2.3 配置拓扑驱动建立lsp的建立策略
配置拓扑驱动建立lsp的建立策略,指定过滤策略为all和ip-prefix策略。
2.2.4 配置lsp的建立策略
在收到label mapping事件时,采用ip地址前缀过滤策略来控制接受标签绑定过程
缺省情况下,所有目的地址的标签通告到所有ldp对等体
2.2.5 配置静态 lsp
可以手工设置某lsr为一条lsp上的一个节点,并可以对该lsp上承载的数据流进行限制。根据在mpls域中的不同位置,lsr有三种节点情况:入节点(ingress)、中间节点(transit)、出节点(egress)。
必须对指定lsp沿途的lsr均作了相应配置,这条lsp才能正常工作。
2.2.4 配置lsp的建立策略
在收到label mapping事件时,采用ip地址前缀过滤策略来控制接受标签绑定过程
缺省情况下,所有目的地址的标签通告到所有ldp对等体
2.2.5 配置静态 lsp
可以手工设置某lsr为一条lsp上的一个节点,并可以对该lsp上承载的数据流进行限制。根据在mpls域中的不同位置,lsr有三种节点情况:入节点(ingress)、中间节点(transit)、出节点(egress)。
必须对指定lsp沿途的lsr均作了相应配置,这条lsp才能正常工作。
Pescara
Current configuration:
Current configuration:
version 12.2
hostname Pescara
ip cef
!--- Customer A commands
ip vrf Customer_A
!--- Enables the ××× routing and forwarding (VRF) routing table
!--- This command can be used in global or
!--- router configuration mode
rd 100:110
!--- Route distinguisher creates routing and forwarding
!--- tables for a VRF
route-target export 100:1000
!--- Creates lists of import and export route-target extended
!--- communies for the specified VRF
route-target import 100:1000
ip vrf Customer_A
!--- Enables the ××× routing and forwarding (VRF) routing table
!--- This command can be used in global or
!--- router configuration mode
rd 100:110
!--- Route distinguisher creates routing and forwarding
!--- tables for a VRF
route-target export 100:1000
!--- Creates lists of import and export route-target extended
!--- communies for the specified VRF
route-target import 100:1000
!--- Customer B commands
ip vrf Customer_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
ip vrf Customer_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
interface Looack0
ip address 10.10.10 .4 255.255.255.255
ip router isis
!--- Customer A commands
interface Looack101
ip vrf forwarding Customer_A
!--- Associates a VRF instance wh an interface or subinterface
ip address 200.0.4.1 255.255.255.0
!--- Looack101 and 102 use the same IP address, 200.0.4.1.
!--- This is allowed because they belong to two
!--- different customers' VRFs
no ip directed-broadcast
ip address 10.10.10 .4 255.255.255.255
ip router isis
!--- Customer A commands
interface Looack101
ip vrf forwarding Customer_A
!--- Associates a VRF instance wh an interface or subinterface
ip address 200.0.4.1 255.255.255.0
!--- Looack101 and 102 use the same IP address, 200.0.4.1.
!--- This is allowed because they belong to two
!--- different customers' VRFs
no ip directed-broadcast
!--- Customer B commands
interface Loock102
ip vrf forwarding Customer_B
ip address 200.0.4.1 255.255.255.0
!--- Looack101 and 102 use the same IP address, 200.0.4.1.
!--- This is allowed because they belong to two
!--- different customers' VRFs
no ip directed-broadcast
interface Loock102
ip vrf forwarding Customer_B
ip address 200.0.4.1 255.255.255.0
!--- Looack101 and 102 use the same IP address, 200.0.4.1.
!--- This is allowed because they belong to two
!--- different customers' VRFs
no ip directed-broadcast
interface Serial2/0
no ip address
no ip directed-broadcast
encapsulation frame-relay
no fair-queue
interface Serial2/0.1 point-to-point
description link to Pauillac
bandwidth 512
ip address 10.1.1 .14 255.255.255.252
no ip directed-broadcast
ip router isis
tag-sw ip
frame-relay interface-dlci 401
!
router isis
net 49.0001.0000. 0000.0004.00
is-type level-1
!
router bgp 100
bgp log-neighbor-changes
!--- Enables logging of BGP neighbor resets
neighbor 10.10.10.6 remote-as 100
!--- Adds an entry to the BGP or multiprotocol BGP neighbor table
neighbor 10.10.10.6 update-source Looack0
!--- Enables BGP sessions to use a specific operational
!--- interface for TCP connections
!--- Customer A and B commands
address-family ***v4
!--- To enter address family configuration mode
!--- for configuring routing sessions, such as BGP,
!--- that use standard ××× version 4 address prefixes
neighbor 10.10.10.6 activate
neighbor 10.10.10.6 send-communy both
! Sends the communy attribute to a BGP neighbor
ex-address-family
!--- Customer B commands
address-family ipv4 vrf Customer_B
!--- To enter address family configuration mode
!--- for configuring routing sessions, such as BGP,
!--- that use standard ××× version 4 address prefixes
redistribute connected
no auto-summary
no synchronization
exit-address-family
!--- Customer A commands
address-family ipv4 vrf Customer_A
redistribute connected
no auto-summary
no synchronization
exit-address-family
ip classless
end
Pesaro
Current configuration:
version 12.1
hostname Pesaro
!--- Customer A commands
ip vrf Customer_A
rd 100:110
route-target export 100:1000
route-target import 100:1000
!--- Customer B commands
ip vrf Customer_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
ip cef
interface Loopback0
ip address 10.10.10.6 255.255.255.255
ip router isis
!--- Customer A commands
interface Loopback101
ip vrf forwarding Customer_A
ip address 200.0.6.1 255.255.255.0
!--- Customer B commands
interface Looitack102
ip vrf forwarding Customer_B
ip address 200.0.6.1 255.255.255.0
!--- Customer A commands
interface Looitack111
ip vrf forwarding Customer_A
ip address 200.1.6.1 255.255.255.0
interface Serial0/0
no ip address
encapsulation frame-relay
no ip mroute-cache
random-detect
interface Serial0/0.1 point-to-point
description link to Pomerol
bandwidth 512
ip address 10.1.1.22 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 603
router isis
net 49.0001.0000. 0000.0006.00
is-type level-1
router bgp 100
neighbor 10.10.10.4 remote-as 100
neighbor 10.10.10.4 update-source Looitack0
!--- Customer B commands
address-family ipv4 vrf Customer_B
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
!--- Customer A commands
address-family ipv4 vrf Customer_A
redistribute connected
no auto-summary
no synchronization
exit-address-family
!--- Customer A and B commands
address-family ***v4
neighbor 10.10.10.4 activate
neighbor 10.10.10.4 send-community both
exit-address-family
ip classless !
end
Pomerol
Current configuration: !
version 12.0
hostname Pomerol
ip cef !
interface Loopback0
ip address 10.10.10.3 255.255.255.255
ip router isis
interface Serial0/1
no ip address
no ip directed-broadcast
encapsulation frame-relay
random-detect
interface Serial0/1.1 point-to-point
description link to Pauillac
ip address 10.1.1.6 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switching mtu 1520
tag-switng ip
frame-relay interface-dlci 301
interface Serial0/1.2 point-to-point
description link to Pulligny
ip address 10.1.1.9 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switng ip
frame-relay interface-dlci 303
interface Serial0/1.3 point-to-point
description link to Pesaro
ip address 10.1.1.21 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switing ip
frame-relay interface-dlci 306
router isis
net 49.0001.0000. 0000.0003.00
is-type level-1
ip classless !
end
Pulligny
Current configuration:
version 12.1
hostname Pulligny
ip cef
interface LooPBack0
ip address 10.10.10.2 255.255.255.255
interface Serial0/1
no ip address
encapsulation frame-relay
random-detect
interface Serial0/1.1 point-to-point
description link to Pauillac
ip address 10.1.1.2 255.255.255.252
ip router isis
tag-switing ip
frame-relay interface-dlci 201
interface Serial0/1.2 point-to-point
description link to Pomerol
ip address 10.1.1.10 255.255.255.252
ip router isis
tag-switing ip
frame-relay interface-dlci 203
router isis
passive-interface Loopbk0
net 49.0001.0000. 0000.0002.00
is-type level-1
ip classless
end
Pauillac
version 12.1
hostname pauillac
ip cef
interface Loopbck0
ip address 10.10.10.1 255.255.255.255
ip router isis
interface Serial0/0
no ip address
encapsulation frame-relay
no ip mroute-cache
tag-switching ip
no fair-queue
interface Serial0/0.1 point-to-point
description link to Pomerol
bandwith 512
ip address 10.1.1.1 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 102
interface Serial0/0.2 point-to-point
description link to Pulligny ip address 10.1.1.5 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 103
interface Serial0/0.3 point-to-point
description link to Pescara
bandwidth 512
ip address 10.1.1.13 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 104
router isis
net 49.0001.0000. 0000.0001.00
is-type level-1
ip classless
end
no ip address
no ip directed-broadcast
encapsulation frame-relay
no fair-queue
interface Serial2/0.1 point-to-point
description link to Pauillac
bandwidth 512
ip address 10.1.1 .14 255.255.255.252
no ip directed-broadcast
ip router isis
tag-sw ip
frame-relay interface-dlci 401
!
router isis
net 49.0001.0000. 0000.0004.00
is-type level-1
!
router bgp 100
bgp log-neighbor-changes
!--- Enables logging of BGP neighbor resets
neighbor 10.10.10.6 remote-as 100
!--- Adds an entry to the BGP or multiprotocol BGP neighbor table
neighbor 10.10.10.6 update-source Looack0
!--- Enables BGP sessions to use a specific operational
!--- interface for TCP connections
!--- Customer A and B commands
address-family ***v4
!--- To enter address family configuration mode
!--- for configuring routing sessions, such as BGP,
!--- that use standard ××× version 4 address prefixes
neighbor 10.10.10.6 activate
neighbor 10.10.10.6 send-communy both
! Sends the communy attribute to a BGP neighbor
ex-address-family
!--- Customer B commands
address-family ipv4 vrf Customer_B
!--- To enter address family configuration mode
!--- for configuring routing sessions, such as BGP,
!--- that use standard ××× version 4 address prefixes
redistribute connected
no auto-summary
no synchronization
exit-address-family
!--- Customer A commands
address-family ipv4 vrf Customer_A
redistribute connected
no auto-summary
no synchronization
exit-address-family
ip classless
end
Pesaro
Current configuration:
version 12.1
hostname Pesaro
!--- Customer A commands
ip vrf Customer_A
rd 100:110
route-target export 100:1000
route-target import 100:1000
!--- Customer B commands
ip vrf Customer_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
ip cef
interface Loopback0
ip address 10.10.10.6 255.255.255.255
ip router isis
!--- Customer A commands
interface Loopback101
ip vrf forwarding Customer_A
ip address 200.0.6.1 255.255.255.0
!--- Customer B commands
interface Looitack102
ip vrf forwarding Customer_B
ip address 200.0.6.1 255.255.255.0
!--- Customer A commands
interface Looitack111
ip vrf forwarding Customer_A
ip address 200.1.6.1 255.255.255.0
interface Serial0/0
no ip address
encapsulation frame-relay
no ip mroute-cache
random-detect
interface Serial0/0.1 point-to-point
description link to Pomerol
bandwidth 512
ip address 10.1.1.22 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 603
router isis
net 49.0001.0000. 0000.0006.00
is-type level-1
router bgp 100
neighbor 10.10.10.4 remote-as 100
neighbor 10.10.10.4 update-source Looitack0
!--- Customer B commands
address-family ipv4 vrf Customer_B
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
!--- Customer A commands
address-family ipv4 vrf Customer_A
redistribute connected
no auto-summary
no synchronization
exit-address-family
!--- Customer A and B commands
address-family ***v4
neighbor 10.10.10.4 activate
neighbor 10.10.10.4 send-community both
exit-address-family
ip classless !
end
Pomerol
Current configuration: !
version 12.0
hostname Pomerol
ip cef !
interface Loopback0
ip address 10.10.10.3 255.255.255.255
ip router isis
interface Serial0/1
no ip address
no ip directed-broadcast
encapsulation frame-relay
random-detect
interface Serial0/1.1 point-to-point
description link to Pauillac
ip address 10.1.1.6 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switching mtu 1520
tag-switng ip
frame-relay interface-dlci 301
interface Serial0/1.2 point-to-point
description link to Pulligny
ip address 10.1.1.9 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switng ip
frame-relay interface-dlci 303
interface Serial0/1.3 point-to-point
description link to Pesaro
ip address 10.1.1.21 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switing ip
frame-relay interface-dlci 306
router isis
net 49.0001.0000. 0000.0003.00
is-type level-1
ip classless !
end
Pulligny
Current configuration:
version 12.1
hostname Pulligny
ip cef
interface LooPBack0
ip address 10.10.10.2 255.255.255.255
interface Serial0/1
no ip address
encapsulation frame-relay
random-detect
interface Serial0/1.1 point-to-point
description link to Pauillac
ip address 10.1.1.2 255.255.255.252
ip router isis
tag-switing ip
frame-relay interface-dlci 201
interface Serial0/1.2 point-to-point
description link to Pomerol
ip address 10.1.1.10 255.255.255.252
ip router isis
tag-switing ip
frame-relay interface-dlci 203
router isis
passive-interface Loopbk0
net 49.0001.0000. 0000.0002.00
is-type level-1
ip classless
end
Pauillac
version 12.1
hostname pauillac
ip cef
interface Loopbck0
ip address 10.10.10.1 255.255.255.255
ip router isis
interface Serial0/0
no ip address
encapsulation frame-relay
no ip mroute-cache
tag-switching ip
no fair-queue
interface Serial0/0.1 point-to-point
description link to Pomerol
bandwith 512
ip address 10.1.1.1 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 102
interface Serial0/0.2 point-to-point
description link to Pulligny ip address 10.1.1.5 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 103
interface Serial0/0.3 point-to-point
description link to Pescara
bandwidth 512
ip address 10.1.1.13 255.255.255.252
ip router isis
tag-switching ip
frame-relay interface-dlci 104
router isis
net 49.0001.0000. 0000.0001.00
is-type level-1
ip classless
end