Diffie-Hellman:Diffie-Hellman是一种简化在非安全网络上交换秘密密钥的公开密钥加密算法。算法是以Diffie和Hellman命名的,他们在1977年出版了第一个公开密钥加密的公开搜索。它的主要目的是简化在不安全网络上交换秘密会话密钥的过程。
Hash信息验证码HMAC(Hash message authentication codes):HMAC可以用来验证接收消息和发送消息的完全一致性(完整性)。
数字签名:数字签名标准(Digital Signature Standard,DSS)是国家标准技术研究所开发的数字签名算法。数字签名(Digital Signature,DS)是一种用使用者的私有密钥加密的Hash值。它可以像正常签名一样用于认证,但它也可以用做与签名相关的信息完整性的认证。
认证授权(CA)是一个记录了所有认证的第三方。使用CA,用户可以有一个认证的集中贮藏处,它允许用户获得其他用户的公开密钥并认证那些用户。它提供了一个记录用户和设备公开密钥的集中存放点。它还提供了认证授权,当用户从CA中获得用户A的公开密钥时,密钥确实是用户A的而不是其他人的。
OAKLEY密钥决定协议:Hilarie Orman提出的"OAKLEY密钥决定协议",Oakley和SKEME各自定义了一种建立已认证密钥交换的方法,包括载荷的结构、所承载载荷信息、处理它们的顺序以及如何使用它们。Oakley描述了一系列的密钥交换模式,提供密钥交换和刷新功能。
SKEME:Secure Key Exchange Mechanism
Hugo Krawczik提出的"安全密钥交换机制(SKEME)"SKEME描述了通用密钥交换技术,提供匿名性、防抵赖和快速刷新。
互连网安全联盟及密钥管理协议:
IKE考虑了IPSec使用的所有算法交换秘密密钥的复杂性。通过将密钥管理函数替代普通的密钥管理协议,简化了将新的算法添加进IPSec协议栈的过程。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
Kerberos V5身份验证:
Kerberos V5是用于处理用户和系统身份的身份验证的Internet标准安全协议,是在Windows 2000 Server域中进行身份验证的主要安全协议。使用Kerberos V5,通过网络线路所发送的密码将经过加密而不作为纯文本进行发送。Kerberos V5协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。
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协议头都被认证或由加密算法进行保护
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 ip 10.2.2.0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 115 deny ip 10.2.2.0 0.0.0.255 any
access-list 120 deny ip 10.2.2.0 0.0.0.255 10.1.1.0 0.0.0.255
access-list 120 permit ip 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 ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 115 deny ip 10.1.1.0 0.0.0.255 any
access-list 120 deny ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 120 permit ip 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
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
(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 使用加密、数据完整性、源发鉴别以及拒绝重演分组来保护和认证网络层对等端之间的IP分组
IPSec对于构建内因网、外因网以及远程用户接入×××来说非常有用处
IPSec支持以下标准
--Internet协议的安全体系结构
--IKE(Internet密钥交换)
--DES(数据加密标准)
--MD5
--SHA
--AH(Authentication Header,认证首部)数据认证和反重演(anti-reply)服务
--ESP(Encapsulation Security Payload,封装安全净荷)数据隐私、数据验证以及反重演(anti-reply)服务
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
关键词 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属于第三代网络架构,是新一代的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)对所传送的数据包加以分级,因而大幅提升网络服务品质提供更多样化的服务。
配置拓扑驱动建立lsp的建立策略
配置lsp的建立策略
配置静态lsp
2.2.1 配置mpls lsr id
在配置其他mpls命令之前,必须首先为lsr配置id。lsr id一般采用ip地址的格式,并且要保证域内唯一。
缺省情况下未指定lsr id。
2.2.2 进入mpls视图
在vlan接口视图下,mpls命令用来使能vlan接口的mpls能力。
缺省情况下未使能mpls功能。
2.2.3 配置拓扑驱动建立lsp的建立策略
2.2.4 配置lsp的建立策略
在收到label mapping事件时,采用ip地址前缀过滤策略来控制接受标签绑定过程
缺省情况下,所有目的地址的标签通告到所有ldp对等体
2.2.5 配置静态lsp
可以手工设置某lsr为一条lsp上的一个节点,并可以对该lsp上承载的数据流进行限制。根据在mpls域中的不同位置,lsr有三种节点情况:入节点(ingress)、中间节点(transit)、出节点(egress)。
必须对指定lsp沿途的lsr均作了相应配置,这条lsp才能正常工作。
Current configuration:
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_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
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
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
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
!--- 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
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