视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
思科路由器配置VPN思路
2025-09-29 10:46:52 责编:小OO
文档
IKE协商可以和TCP的三次握手来类比,只不过IKE协商要比TCP的三次握手要复杂一些,IKE协商采用的UDP报文格式,默认端口是500,在主模式下,一个正常的IKE协商过程需要经过9个报文的来回,才最终建立起通信双方所需要的IPSec SA,然后双方利用该SA就可以对数据流进行加密和解密。下面结合简单描述一下协商的过程。

假设A和B进行通信,A作为发起方,A发送的第一个报文内容是本地所支持的IKE的策略(即下面所提到的Policy),该policy的内容有加密算法、hash算法、D-H组、认证方式、SA的生存时间等5个元素。这5个元素里面值得注意的是认证方式,目前采用的主要认证方式有预共享和数字证书。在简单的VPN应用中,一般采用预共享方式来认证身份。在本文的配置中也是以预共享为例来说明的。可以配置多个策略,对端只要有一个与其相同,对端就可以采用该policy,并在第二个报文中将该policy发送回来,表明采用该policy为后续的通信进行保护。第三和第四个报文是进行D-H交换的D-H公开值,这与具体的配置影响不大。在完成上面四个报文交换后,利用D-H算法,A和B就可以协商出一个公共的秘密,后续的密钥都是从该秘密衍生出来的。第五和第六个报文是身份验证过程,前面已经提高后,有两种身份验证方式——预共享和数字证书,在这里,A将其身份信息和一些其他信息发送给B,B接受到后,对A的身份进行验证,同时B将自己的身份信息也发送给A进行验证。采用预共享验证方式的时候,需要配置预共享密钥,标识身份有两种方式,其一是IP地址,其二是主机名(hostname)。在一般的配置中,可以选用IP地址来标识身份。完成前面六个报文交换的过程,就是完成IKE第一阶段的协商过程。如果打开调试信息,会看到IKE SA Establish(IKE SA已经建立),也称作主模式已经完成。

IKE的第二阶段是快速模式协商的过程。该模式中的三个报文主要是协商IPSec SA,利用第一阶段所协商出来的公共的秘密,可以为该三个报文进行加密。在配置中,主要涉及到数据流、变换集合以及对完美前向保护(PFS)的支持。在很多时候,会发现IKE SA已经建立成功,但是IPSec SA无法建立起来,这时最有可能的原因是数据流是否匹配(A所要保护的数据流是否和B所保护的数据流相对应)、变换集合是否一致以及pfs配置是否一致。

二、 IKE、IPSec配置基本步骤

1.配置IKE 策略(policy)

policy就是上图中的IKE策略。Policy里面的内容有hash算法、加密算法、D-H组、生存时间。可以配置多个policy,只要对端有一个相同的,双方就可以采用该policy,不过要主要policy中的认证方式,因为认证方

式的不同会影响后续的配置不同。一般采用预共享(preshare)。在目前的安全路由器和VPN3020上的实现上都有默认的配置选项,也就是说如果你新增加一条策略后,即使什么都不配置,退出后,也会有默认值的。

2.配置预共享密钥(preshare)

在配置预共享密钥的时候,需要选择是IP地址还是Hostname来标识该密钥,如果对端是IP地址标识身份,就采用IP地址来标识密钥;如果对端是Hostname来标识身份,则采用hostname来标识密钥。

3.配置本端标识(localid)

本端标识有IP地址和Hostname,在安全路由器上,默认的是用IP地址来标识。即不配置本端标识,就表示是用IP地址来标识。

以上三个步骤就完成IKE的配置,以下是IPSec的配置:

4.配置数据流(access-list)

很容易理解,部署任何VPN都需要对数据流所,不可能对所有的数据流都进行加密(any to any)。配置好数据流后,在加密映射(map)中引用该数据流。

5.配置变换集合(transform-set)

变换集合是某个对等方能接受的一组IPSec协议和密码学算法。双方只要一致即可。注意,在VPN3020和带加密模块的安全路由器上支持国密办的SSP02算法。

6.配置加密映射(map)

为IPSec创建的加密映射条目使得用于建立IPSec安全联盟的各个部件协调工作,它包括以下部分:

l 所要保护的数据流(引用步骤4所配置的数据流)

l 对端的IP地址(这个是必须的,除非是动态加密映射,见本文后面的章节)

l 对所要保护的数据流采用什么加密算法和采用什么安全协议(引用步骤5所配置的变换集合)

l 是否需要支持PFS(双方要一致)

l SA的生存时间(是可选的,不配置的话有默认值)

7.应用(激活)加密映射

在安全路由器上是将该加密映射应用到接口上去,而在VPN3020上是激活(active)该map。

三、 动态加密映射技术

目前,安全路由器系列和VPN系列均支持动态加密映射。什么是动态加密映射?动态加密映射所应用的环境是什么呢?我们可以从以下的一个案例中来说明动态加密映射的概念。如下图:

在上图的网络拓扑中,MP803接入Internet的并不是宽带接入(固定IP地址),而是在通过电信ADSL拨号来获取到IP地址,不是固定的IP地址。这时候,对于上端MP2600A来说,就存在问题了,回想一下前面所描述的配置步骤,在步骤六中配置加密映射的时候,需要配置对端的peer IP地址,这时候怎么办呢?或许您想到——那我每次拨号获取到IP地址后,再在两端来配置IPSec——这种解决办法是OK的,只要客户或者您自己容忍每次MP803重新拨号后,您重新去更改配置。显然,这样方法充其量只能用

来测试的。

动态加密映射就是用来解决这类问题的。顾名思义,动态加密映射,就是说,在配置加密映射的时候,不需要配置对端的peer IP地址。目前,安全路由器和VPN系列都支持动态加密映射,但由于两者实现上的差异,导致他们在配置动态加密映射的时候存在一些不同,在后文的实际配置案例中会讲到。

四、 NAT穿越略述

NAT穿越是指在两台VPN网关之间的还存在NAT设备,从原理来说,NAT和IPSec存在一定的矛盾。主要体现两点:NAT更改了IP数据包的IP源地址或者目的地址,这与IPSec协议中的AH认证头协议存在不可调和的矛盾,因此如果IPSec报文需要穿越NAT设备的话,在配置变换集合的时候就不能选用AH协议(目前,由于ESP协议也提供验证功能,AH使用很少);第二点是NAT设备的端口地址转换是针对TCP/UDP/ICMP等协议。对于ESP协议,没有相应的处理机制。具体详细资料请查看IETF的草案。此外,NAT穿越目前还没有国际标准,公司在国内率先实现了NAT穿越功能。目前,公司的安全路由器、VPN3020等都已经实现了NAT穿越。

NAT穿越对于路由器和VPN3020上的配置没有任何的改变。目前,公司的北京办和总部的互联的两台路由器建立隧道就是穿越了NAT。

五、 实际配置案例

案例1:路由器与路由器互通

网络拓扑如图所示:

网络拓扑1

需求:两台MP2600路由器,都有固定的公网IP地址,现在需要构建VPN,保护在两台路由器后面的网络。使PC1能够访问到PC2。

规划:使用IKE自动协商密钥,policy的参数设置,加密算法为des、验证算法为sha方式为预共享、D-H组为group 1;身份标识为IP地址,以IP地址作来标识预共享密钥;变换集合参数设置,隧道模式为tunnel、协议-算法为esp-des、esp-md5;不启用pfs;在配置注意,避免配置所要保护的数据流为any到any。首先是在实际使用过程中,不会有这样的需求,其次,这样会让很多本来不需要加密的通信无法通信。

具体配置脚本:

=======================================================

MP2600A

=======================================================

MP2600A#sh running-config

Building Configuration...done

Current configuration...

version 2.24.8

hostname MP2600A

enable password [WOWWWNXSX encrypt

no service password-encrypt

no service enhanced-secure

ip tcp timestamp

//步骤4:配置访问列表,定义所要保护的数据流。

ip access-list extended 1001

permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

exit

//步骤5:配置变换集合,定义数据加密所使用的算法和安全协议

crypto ipsec transform-set tr1 esp-des esp-md5-hmac

mode tunnel

exit

//步骤六:配置加密映射,将各种组件

联系在一起

crypto map map1 1 ipsec-isakmp

match address 1001 //引用步骤4所配置的数据流

set peer 2.2.2.2

set transform-set tr1 //引用步骤5所配置的变化集合

set security-association lifetime seconds 28800

set security-association lifetime kilobytes 4608000

exit

interface loopback0

exit

interface fastethernet0

ip address 1.1.1.3 255.255.255.0

//步骤七:将加密映射应用到接口上去.

crypto map map1

exit

interface ethernet0

ip address 192.168.1.1 255.255.255.0

exit

ip route 0.0.0.0 0.0.0.0 1.1.1.1

//步骤1:配置IKE的policy

crypto isakmp policy 1

encryption des

hash sha

authentication pre-share

group 1

lifetime 800

exit

//步骤2:配置预共享密钥,此处配置的是对端VPN网关的IP地址.

crypto isakmp key maipu address 2.2.2.2

=======================================================

MP2600B

=======================================================

MP2600B#sh running-config

Building Configuration...done

Current configuration...

version 2.24.8

hostname MP2600B

user faint password 0 faint

enable password [WOWWWNXSX encrypt

no service password-encrypt

no service enhanced-secure

ip tcp timestamp

//该数据流与MP2600A的数据流相对应。

ip access-list extended 1001

permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

exit

crypto ipsec transform-set tr1 esp-des esp-md5-hmac

mode tunnel

exit

crypto map map1 1 ipsec-isakmp

match address 1001

set peer 1.1.1.3

set transform-set tr1

set security-association lifetime seconds 28800

set security-association lifetime kilobytes 4608000

exit

interface loopback0

exit

interface fastethernet0

ip address 2.2.2.2 255.255.255.0

crypto map map1

exit

interface ethernet0

ip address 192.168.2.1 255.255.255.0

exit

interface serial0

physical-layer sync

encapsulation hdlc

exit

interface serial2

physical-layer sync

encapsulation hdlc

exit

ip route 0.0.0.0 0.0.0.0 2.2.2.1

//与MP2600A的policy至少有一个相同

crypto isakmp policy 1

encryption des

hash sha

authentication pre-share

group 1

lifetime 800

exit

crypto isakmp key maipu address 1.1.1.3

路由器上的调试命令:

如果是telnet登录到路由器上,执行ter monitor命令。然后打开调试开关

debug crypto isakmp normal就能够看到IKE的协商过程和调试信息,从调试信息中可以获取到协商到那个阶段,由于那些问题而协商失败。

以下是两端成功的协商信息。

注意:如果中途协商失败,两端需要执行clear crypto sa命令来清除当前SA的状态以便于重新协商。

几个与IPSec相关的show命令:

show crypto isakmp policy:查看路由器上已经配置了那些policy;

show crypt

o isakmp connection :查看路由器上已经存在的isakmp 连接数;

show crypto isakmp identity:查看路由器上的身份标识方式;

show crypto ipsec sa;查看路由器上已经存在的IPSec SA;该命令比较重要,有时候通过该命令来判断IPSec SA是否已经建立成功。

Show crypto ipsec transform-set:查看路由器上已经配置的变换集合下载本文

显示全文
专题