GRE隧道

GRE隧道在两个远程网络之间模拟出直连链路,GRE需要完成多次封装,总共有3次。GRE中的IP数据包总共有3个IP地址。隧道传递数据包的过程分为3步:

1,接收原始IP数据包当做乘客协议,原始IP数据包包头的IP地址为私有IP地址

2,将原始IP数据包封装进GRE协议,GRE协议称为封装协议,封装的包头IP地址为虚拟直连链路两端的IP地址

3,将整个GRE数据包当做数据,在外层封装公网IP包头,也就是隧道的起源和终点,从而路由到隧道终点


GRE隧道只支持路由器,不支持集中器和PIX以及ASA

GRE支持的协议有IP,DECNET,IPX,Appletalk

GRE可分为point-to-point GRE和multipoint GRE(mGRE)两种

p2p GRE只能在两台路由器之间建立

mGRE也可以在两台以上的路由器之间建立


数据包格式:

公网IP GRE包头 私有IP数据包

GRE会在原始IP数据包之外,额外多封装24字节或28字节,具体视GRE模式而定


配置GRE步骤:

1,创建虚拟链路(隧道)接口,号码任意

2,配置虚拟链路(隧道)接口地址

3,定义虚拟链路(隧道)的源和目的,因为数据包最终要在公网中传递,所以该地址就是在公网中指导路由器转发数据包的可路由公网IP,也就是建立隧道两端路由器的真实公网IP

4,指定到达对方的私网的路由的下一跳为隧道接口

ip route 0.0.0.0 0.0.0.0 tun 1


GRE隧道接口状态down的检测机制:

1,没有去往隧道终点地址的路由

2,去往隧道终点地址的路由指向了隧道接口自己

3,隧道起源地址的接口状态为down


GRE隧道是完全静止的,每个隧道端点都不会与对端有任何交流数据包,每个端点都不保留对端的信息和状态,所以最终结果造成无论对端是否可达或接口已经down,本端都无法知道line protocol应该是up还是down。为了解决上述问题,引入了GRE keepalive机制。两端互发keepalive消息,在指定的时间内没有接收到消息就认为对方down了。默认设置时GRE keepalive默认为10s发一个,连续3个包没有回应,便认为对端已经失效。

GRE keepalive只支持p2p GRE隧道


配置GRE keepalive

int tun 1

keepalive 5 3 keepalive间隔为5秒,总共发送3次。三次没收到,就认为接口down了






对称加密算法(私钥算法)

DES:DES(40BIT)、DES(56BIT)、3DES(3*56BIT)

AES:AES128、AES192、AES256

非对称加密算法(公钥算法)

RSA


HMAC(hashed message authentication code) hash算法,保证数据的完整性,避免出现篡改现象

md5 128bit

sha-1 160bit




为IPSEC服务的总共有三个协议:IKE、ESP、AH

IKE是个混合协议,其中包含Oakley和ISKAMP中的部分SKEME协议,所以IKE也可以写成ISAKMP/Oakley,它是针对秘钥安全的,是用来保证秘钥的安全传输、交换以及存储,主要是对秘钥进行操作,并不对用户的实际数据进行操作

ESP和AH主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的


IPSEC既可以为隧道提供数据保护功能,也可以自己单独作为隧道协议使用


认证机制:

IKE会在×××对等体之间采用认证机制,可以确保会话是来自真正的对等体而不是攻击者。认证方式有三种

1,pre-shared keys(PSK)

最简单,由管理员事先在双方定义好的密码,认证时,只有双方密码匹配后,才能继续后续工作

2,public key infrastructure(pki) using x.509 digital certificates

使用第三方证书做认证,叫做CA,里面包含名字、序列号,有效期以及其他参数

3,RSA encrypted nonce


秘钥算法:

IKE使用DH算法在×××对等体之间建立安全的秘钥用来加密数据。有三种秘钥长度可选:

1,group 1 秘钥长度为768bit

2,group 2 秘钥长度为1024bit

3,group 5 秘钥长度为1536bit


SA(Security Association)

IPSEC的所有会话都是在通道中传输的,包括协商秘钥,传递用户数据,这样的通道称为SA,SA并不是隧道,而是一组规则,类似是对等体之间必须遵守的一份合同。

在密钥的安全上,由IKE负责,而数据的安全,则由IPSEC负责。两个SA如下

ISAKMP Security Association(ike/isakmp sa)

IPSEC Secrutity Association(ipsec sa)

每个sa都有lifetime,过期后sa便无效,lifetime使用time(second)和volume limit(byte count)来衡量,取双方数值最小的一方。在要过期前120s,会自动重建另一条SA,避免活动的SA过期后无法传输数据,这样就能实现平滑过渡

IKE SA的lifetime默认为86400s,默认没有volume limit。保护密钥。为安全协商IPSEC SA服务的

IPSEC SA的lifetime默认为3600s,默认limit为4608000kbytes。直接为用户数据流服务。每个IPSEC对等体都有一对IPSEC SA,一个是去往远程目的地的,而另一个是从远程回来的,也就是一进一出,都存放在本地SA Database中。


IKE SA和IPSEC SA其实都是由IKE建立起来的,所以IKE的整个运行过程分成两个阶段:

1,IKE Phase One

主要工作是建立IKE SA(ISAKMP SA),以及为IPSEC SA服务的,IKE SA的协商阶段称为main mode,ike也需要保护自己的流量安全(非用户流量),ike sa之间也需要协商出一套安全策略:

1,认证方式:psk/pki/rsa,默认为pki

2,加密算法:des/3des/aes128/aes192/aes256,默认为des

3,HASH算法:sha-1/md5,默认为sha-1

4,密钥算法:g1/g2/g5,默认为g1

5,lifetime

6,NAT穿越:默认开启

2,IKE Phase Two

建立IPSEC SA,其建立过程称为快速模式。IPSEC SA才是真正为用户数据服务,也需要协商出一套安全策略:

1,加密算法:des/3des/aes128/aes192/aes256,默认为des

2,HASH算法:sha-1/md5,默认为sha-1

3,lifetime:

4,IPSEC MODE:传输模式和隧道模式



IPSEC MODE决定IPSEC是使用数据保护功能配合其他隧道协议,还是自己独立实现隧道来完成×××功能

1,隧道模式(默认模式):跟GRE的工作模式类似,封装格式如下

新IP包头 IPSEC包头 原始IP包头 数据

IPSEC包头的大小共32字节。

2,传输模式:只有安全功能而没有隧道功能,封装格式如下:

原始IP包头 IPSEC包头 数据

传输模式下的IPSEC应该配合p2p GRE over IPSEC来使用



ESP:封装数据包格式如下:

传输模式:

原始IP包头 ESP包头 数据 ESP包尾 ESP认证

隧道模式:

新IP包头 ESP包头 原始IP包头 数据 ESP包尾 ESP认证

ESP支持认证和加密数据

ESP包头使用IP协议号50来标识。


AH:封装数据包格式如下:

传输模式:

原始IP包头 AH 数据

隧道模式:

新IP包头 AH 原始IP包头 数据

AH只支持认证,不支持加密数据

AH包头使用IP协议号51来标识


Trasform Set

是一组算法集合,通过它来定义使用怎样的算法来封装数据包


Crypto Map

是思科中配置IPsec的组件,执行两个主要功能:

1,选择需要加密处理的数据

2,定义数据加密的策略以及数据发往的对端

Crypto Map中的策略是分组存放的,以序号区分,如果一个Crypto map有多个策略组,则最低号码的组优先;一个接口只能应用一个crypto map


Crypto Map还分为静态map和动态map

当数据发往对端固定的时候是静态的;当隧道的终点是不固定的时候是动态map


隧道分离:只在远程vpn时才会考虑



IPSEC LAN-TO-LAN ×××

配置步骤:

1,配置IKE(ISKAMP)策略

2,定义认证标识

3,配置IPSEC Transform

4,定义感兴趣流量

5,创建crypto map

6,将crypto map应用于接口


定义感兴趣流量时,源和目的不能为任意

IPSEC 流量不能穿越NAT,需要在NAT里面把源地址或者目的地址排除




IPSEC Dynamic LAN-TO-LAN ×××(Dy×××)

当有多个×××邻居时,可以使用此模式降低工作难度。

通配符认证配置方法和dynamic map,就可以不管有多少个××× peer,只需要配置一次认证密码与一个dynamic map就能实现。

Hub端:能够接受任何地址链接的设备,地址固定

Spoke端:Hub设备对端,普通vpn配置

Dy×××只能由spoke端向Hub端发流量来初始化SA建立

配置步骤:

配置Hub端:

1,配置IKE策略

crypto isakmp policy 1

encry 3des

hash md5

group 2

auth pre-share

2,在Hub端配置通配符认证方法

crypto keyring abc

pre-shared-key address 0.0.0.0 0.0.0.0 key cisco123

crypto isakmp profile ppp

keyring abc

match identity address 0.0.0.0

3,Hub端配置transform set

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

4,Hub端定义dynamic map

crypto dynamic-map dymap 5

set transform-set cisco

set isakmp-profile ppp

5,Hub端创建crypto map

crypto map mymap 10 ipsec-isakmp dynamic dymap

6,将crypto map应用于接口

int s0/0

crypto map mymap






p2p GRE over IPSEC

IPSEC建立的隧道不能用于传递动态路由协议信息,原因如下:

1,IPSEC建立的隧道是逻辑隧道,并不是真正的隧道,没有点对点连接的功能

2,IPSEC建立的隧道只支持IP单播,不支持组播

只使用IPSEC的数据保护功能,而使用其他隧道技术,这样就可以实现×××间的动态路由协议

工作在隧道模式,数据包会增加20字节。两种模式在p2p GRE over IPSEC模式都可以,但是传输模式有点问题,所以还是使用隧道模式


单独建立p2p GRE隧道时,当双方的IP地址都无法确定时,是无法建立隧道的

至少一端为静态IP地址。

双方都为静态IP时,称为static p2p GRE over IPsec

一方静态一方动态时,称为Dynamic p2p GRE over IPsec。此时必须由动态发起隧道建立信息

一般情况下,动态端会配置一个私有的loopback地址,定义为本端的GRE源点


静态p2p GRE over IPsec下,需要配置static map

动态p2p GRE over IPsec下,静态端配置dynamic map,动态端配置static map


定义的感兴趣流量是双方用来建立GRE隧道的公网IP地址,并且协议为GRE,而不是内网网段,内网网段是要靠路由协议传递的。内网流量不受物理接口的NAT影响,但是受到GRE接口NAT的影响


static p2p GRE over IPsec配置步骤:

1,配置路由器基础路由

2,配置p2p GRE隧道

int tun 1

ip add 1.1.1.1 255.255.255.0

tunn sou 12.1.1.1

tunn des 23.1.1.3

3,配置普通LAN-TO-LAN ×××参数

crypto isakmp policy 10

hash md5

g 2

authen pre

crypto isakmp key 0 cisco address 23.1.1.3

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

access-list 100 permit gre host 12.1.1.1 host 23.1.1.3 感兴趣流是公网IP的gre协议

crypto map cisco 1 ipsec-isakmp

set peer 23.1.1.3

set transform-set cisco

match address 100

4,接口下应用crypto map

int s0/0

crypto map cisco

5,在通信点配置动态路由协议

router eigrp 1

no auto

network 1.1.1.1 0.0.0.0

network 10.1.1.1 0.0.0.0

只有在p2p GRE over IPsec的情况下,IPSEC Mode的工作模式才能是传输模式


Dynamic p2p GRE over IPsec配置步骤:

1,配置基础路由。动态端要配置一个loopback地址,作为隧道的通信点

2,配置静态端的隧道

int tun 1

ip add 1.1.1.1 255.255.255.0

tunn sour 12.1.1.1

tunn desti 3.3.3.3

ip route 3.3.3.3 255.255.255.255 12.1.1.2


int tun 1

ip add 1.1.1.3 255.255.255.0

tunn sour loop 0

tunn desti 12.1.1.1

3,动态端配置Dynamic lan-to-lan vpn

crypto isakmp policy 1

hash md5

group 2

authen pre

en 3des

crypto isakmp key 0 cisco address 0.0.0.0 0.0.0.0

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

crypto dynamic-map ddd 10

set transform-set cisco

crypto map mymap 10 ipsec-isakmp dynamic ddd

crypto map mymap local-address s0/0

int s0/0

crypto map mymap

4,静态端配置普通 lan-to-lan vpn

crypto isakmp policy 1

hash md5

group 2

authen pre

en 3des

crypto isakmp key 0 cisco address 12.1.1.1

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

access-list 100 permit gre host 3.3.3.3 host 12.1.1.1

crypto map cisco 1 ipsec-isakmp

set peer 12.1.1.1

set transform-set cisco

match address 100

crypto map cisco local-address s0/0

int s0/0

crypto map cisco

5,配置动态路由协议

router eigrp 1

no au

network 1.1.1.1 0.0.0.0

network 15.1.1.1 0.0.0.0


router eigrp 1

no au

network 1.1.1.3 0.0.0.0

network 34.1.1.3 0.0.0.0







DM vpn:总部和不断增加的分支之间建立IPSEC ×××,且之间运行动态路由协议

结合了dynamic p2p gre over ipsec和dynamic lan-to-lan ipsec。需要以下两个技术实现

1,mGRE

Hub端只需要始终保持一个mGRE接口

所有Hub和所有spoke的IP地址必须在同网段

不需要配置ACL来定义感兴趣流量

2,NHRP(Next Hop Resolution Protocol)

强制规定spoke必须主动向Hub告知自己的真实IP地址,这样就可以使HUB轻松获得所有spoke的真实IP地址,从而正常建立mGRE中的所有GRE,最终实现DM×××。在NHRP中,是以client和server的模式工作的,hub端是server,spoke端是client,在hub端维护着一个拥有所有client的数据库。nhrp规定client在启动后就必须马上向server告知自己的物理接口真实IP地址。

当一个spoke要和其他的spoke之间通信时,两者之间建立tunnel,这样的通信称为spoke-to-spoke,也称为临时隧道,有超时时间。过了这个时间隧道自动拆除。

Hub和spoke之间的通信称为Hub-to-spoke,并且是永久的。

当一个spoke和其他spoke通信时,需要向hub端查询目标spoke的真实公网IP,然后源spoke向目标spoke触发一个dynamic ipsec tunnel,当目标收到相关数据时,以同样的方法查询源spoke的真实公网IP

协议和协议之间通告的路由器的下一跳地址都为mGRE的接口地址


只有当spoke也选择mGRE模式下,才能建立spoke-to-spoke tunnel


配置案例:

1,配置基础路由

2,Hub端配置DM×××

crypto isakmp policy 1

en 3des

hash md5

g 2

auth pre

crypto isakmp key 0 cisco address 0.0.0.0

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

crypto ipsec profile cisco

set transform-set cisco

int tun 1

bandwidth 1000 为高层协议改变带宽值,只影响路由协议的metric值计算。默认为9

ip address 100.1.1.1 255.255.255.0 配置GRE接口地址

ip mtu 1400 将MTU改为1400,如果不改,下一跳路由器将会对数据包分片并重新封装

ip nhrp authentication cisco 设置认证密码,同一个mGRE中所有点的密码必须一致

ip nhrp map multicast dynamic 自动将spoke的地址加入组播映射中,否则与spoke之间使用组播的路由协议不能正常运行

ip nhrp network-id 1 配置网络标识号,等于是启用NHRP,同一个mGRE中所有点的号码必须一致

no ip split-horizon eigrp 1 关闭eigrp水平分割,否则从一个spoke的EIGRP学习到的路由不能发给另外一个spoke

tunn source f0/0

tunn mode gre multipoint 定义GRE接口的类型为mGRE,Hub上的类型必须为mGRE

tunnel key 10000 定义tunnel接口ID,此步可选,但是同一个mGRE中所有的号码必须一致

tunnel protection ipsec profile Cisco 将ipsec profile关联到mGRE接口,用于保护mGRE接口的流量

3,spoke端配置DM×××

crypto isakmp policy 1

en 3des

group 2

hash md5

auth pre

crypto isakmp key 0 cisco address 0.0.0.0

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

crypto ipsec profile cisco

set transform-set cisco

int tun 1

bandwidth 1000

ip addres 100.1.1.3 255.255.255.0

ip mtu 1400

ip nhrp authentication cisco

ip nhrp map 100.1.1.1 12.1.1.1 将Hub的GRE接口地址和公网IP地址静态映射绑定

ip nhrp map multicast 12.1.1.1 开启能向Hub发送组播的功能,从而开启动态路由协议的功能

ip nhrp network-id 1

ip nhrp nhs 100.1.1.1 将hub路由器指定为NHRP Server

tunnel source f0/0

tunnel mode gre multipoint 定义接口类型为mGRE

tunnel key 10000

tunnel protection ipsec profile cisco 将ipsec profile关联到mGRE接口

4,查看NHRP映射情况

show ip nhrp brief

show ip nhrp

5,Hub端配置EIGRP

router eigrp 1

no au

network 1.1.1.1 0.0.0.0

network 100.1.1.1 0.0.0.0

6,在Hub端配置mGRE接口上改变EIGRP下一跳规则

int tun 1

no ip next-hop-self eigrp 1 让spoke跟spoke之间直接通信

7,当设备之间运行的是ospf协议的时候,要修改tunnel接口的ospf类型,默认是点到点的,改成点到多点

int tun 1

ip os network point-to-multipoint

8,ospf下无法实现spoke-and-spoke tunnel的通信方式






IPSEC ××× Feature

IPSEC DEAD PEER DETECTION(IPSEC DPD)

就是在IPSEC中用来检测IKE peer状态的

因为IKE SA的lifetime默认是86400s,ipsec sa的lifetime默认是3600s,建立ipsec vpn的双方之间是没有hello包的,如果其中一个peer出现故障失去连接,vpn peer的另一方是无法检测的,只有超时才会删除与对端的连接。IPSEC DPD就是为了解决这种问题的


两种模式:

1,Periodic(周期性的)

每隔固定时间发送一个hello包,超时没有收到的话,就会认为对方失效,从而删除与对方的SA

配置hello时间间隔和retry时间、次数,默认分别是10s、2s、5次。即到了10s没有收到hello包,就不会再等10s,而是在retry的时间2s后再次向对方发送hello包,默认连续5个

2,on-demand(按需的)

不会定期发送hello,而是根据流量来的,只有要发数据时,才发送hello去查询邻居状态,如果没有数据要发送,就不会发送hello,所以在没有数据要发时,即使邻居失效了,本地也是不知道的,除非SA的lifetime超时


先配置IPSEC DPD,才能应用crypto map到接口;先配置crypto map到接口再配置ipsec dpd是不会生效的

ipsec dpd在peer双方都要配置

crypto isakmp keepalive 10 2 periodic|on-demand



IPSEC SA IDLE Timer

当对等体之间没有流量时,删除空闲的IPSEC SA,以来保护系统资源

如果IPSEC SA被删除了,那么IKE SA也照样会删除

IPSEC SA idle timer可以在全局下配置,也可以在crypto map下配置

先配置IPSEC SA IDLE TIMER,才能应用crypto map到接口

IPSEC SA idle timer不需要在peer双方都配置,单方配置也可以

crypto ipsec security-association idle-time 60



IPSEC PREFERRED PEER

网络冗余性,会设计一个场点两个×××路由器,使用两个路由器和对方建立vpn连接。但是有时希望只和对方某台建立×××连接,只有当主的挂了,才会用备的。主要由两个部件组成:

1,Default peer

和多台路由器建立×××连接时,其中优先被使用的那台称为Default peer,其他都是备用;只有主down了,才会启用备的。是在crypto map的时候,通过set peer来指定的。其中default peer必须是第一个指定。

crypto map cisco 1 ipsec-isakmp

set peer 100.1.1.2 default

set peer 100.1.1.3

2,IPsec DPD

检测default peer的连通性。idle-timer配置可选,如果要配置必须在crypto map下配置,不能在globally下配置,如果globally下已经有了配置,那么crypto map下的值必须和globally的不同,否则不生效



Reverse route injection(RRI)

RRI是为需要通过IPSEC隧道来加密传输的流量自动创建下一跳指向相应××× peer的静态路由

RRI自动创建的静态路由可以重分布进任何动态路由协议后向邻居传递

静态crypto map是根据ACL定义的流量来自动创建静态路由的;而动态crypto map是根据在建立IPSEC SA后,根据IPSEC SA中指示的需要被保护的流量来自动创建静态路由

在crypto map下输入命令reverse-route。

静态路由的下一跳是crypto map中指定的peer,只要peer或ACL没有了,路由也就没有了,但是IPSEC SA不影响静态路由。在使用ACL定义感兴趣流时,不得出现any字样

动态crypto map的静态路由时根据ipsec sa自动创建的,如果IPSEC SA没有了,那么自动创建的静态路由就没有了



IPSEC ××× High Availability

×××对等体备份,preferred peer可以实现功能,但是需要每个路由器都有独自的IP地址

××× HA实现的方法是将在一个场点部署的多台×××路由器通过HSRP虚拟成同一个地址,然后多台×××路由器中HSRP角色为Active的路由器以HSRP虚拟IP地址为源负责与对端建立IPSEC连接。需要两个功能组件:

1,Reverse Route Injection(RRI)

2,HSRP

3,IPSEC DPD

实现××× HA的多台路由器的外网接口必须通过交换机或Hub相连,且IP地址都在同网段

在配置HSRP时,接口上需要定义HSRP name,当该name或接口地址改变时,所应用的crypto map也要重新应用;另外路由器的优先级保持一致,Active的角色依靠IP地址大小来选择

在多台×××路由器之间配置HSRP组时,应该Track自己的内网接口

HSRP必须在路由器的外网接口上配置,但内网口不一定要配置


配置案例:

HA一端:

crypto isakmp policy 1

 encr 3des

 hash md5

 authentication pre-share

 group 2  

crypto isakmp key cisco address 100.1.1.1

crypto isakmp keepalive 10 periodic

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

crypto map cisco 1 ipsec-isakmp 

 set peer 100.1.1.1

 set transform-set cisco 

 match address 100

 reverse-route static

interface FastEthernet0/0

 ip address 100.1.1.2 255.255.255.0

 duplex auto

 speed auto

 standby 1 ip 100.1.1.10

 standby 1 preempt

 standby 1 name cisco

 standby 1 track FastEthernet1/0

 crypto map cisco redundancy cisco 

access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255

router ospf 1

 log-adjacency-changes

 redistribute static subnets

 network 30.1.1.2 0.0.0.0 area 0



Stateful Failover for IPsec

××× HA实现的时候是冷备,此功能可以实现热备,主备的信息同步。当主路由器宕机了,备路由器有完全相同的IPSEC会话信息,可以直接连接对端×××,实现无缝切换。需要以下两个组件:

1,Stateful Switchover(SSO)

SSO的功能就是在主备路由器之间共享IPSEC会话信息(包括IKE SA和IPSEC SA)

2,HSRP

HSRP要内外网都要添加一个HSRP组,并且在任何一个接口不可用时,同时让出两组HSRP的Active角色

Stateful Failover只是共享IKE和IPSEC的状态信息,而不是共享双方配置信息,所以并不会将一方的配置自动复制到另一方去。

当主路由器出现故障停止工作时,在让出HSRP角色后,会自动重启

配置SSO的时候也必须配置RRI

交换机路由器的接口上开stp协议

不支持idle timer,支持DPD

不支持PKI认证,支持PSK认证


配置案例:

HSRP一端配置:

crypto isakmp policy 1

 encr 3des

 hash md5

 authentication pre-share

 group 2

crypto isakmp key cisco address 100.1.1.1

crypto ipsec transform-set cisco esp-3des esp-md5-hmac

crypto map cisco 1 ipsec-isakmp 

 set peer 100.1.1.1

 set transform-set cisco 

 match address 100

 reverse-route static

配置stateful failover for ipsec

redundancy inter-device 进入inter-device配置模式

scheme standby HA-out 指定redundancy方式,目前只有standby

exit

ipc zone default 进入IPC zone configuration mode

association 1

protocol sctp 配置stream control transmission protocol为通讯协议

local-port 5000 指定本地端口(必须和对方的目的端口一致)

local-ip 100.1.1.2 指定本地IP(必须是接口真实IP,且和对方的目的IP保持一致)

exit

remote-port 5000 指定目标端口(必须和对方的源端口一致)

remote-ip 100.1.1.3 指定目标IP(必须是接口真实IP,且和对方的源IP保持一致)

exit

crypto map cisco redundancy replay-interval inbound 1000 outbound 10000

int f0/0 配置外网HSRP

standby 1 ip 100.1.1.10

standby 1 preempt

standby 1 name HA-out

standby 1 track f1/0

crypto map cisco redundancy HA-out stateful 开启SSO

standby delay reload 120 定义重启参数

int f1/0 配置内网HSRP

standby 2 ip 30.1.1.10

standby 2 preempt

standby 2 name HA-in

standby 2 track f0/0

standby delay reload 120

HSRP另外一端也是同样配置,只不过换了IP地址

show redundancy states 查看当前的SSO状态

show crypto ha 查看更多SSO信息



NAT-T

NAT-T在phase 1时就开始探测网络路径中是否存在NAT,检测的方法是发送测试数据包,数据包对地址做hash,如果收到的数据包的hash没变化,就认为路径中没有NAT,如果有NAT,双方就会执行NAT-T。测试时发送的包称为NAT descovery(NAT-D),源地址和端口与目标地址和端口是分开的,如果有多个,那么数据包就有多个包

当phase1发现存在NAT之后,phase 2才会考虑是否采用NAT-T。NAT-T是自动开启的。NAT-T是将IPSEC的数据包当做数据再次封装在UDP中再进行传输的。

使用端口号UDP 4500来协商NAT-T,而源端口则使用下一个可用更高的端口,如4501

1,IPSEC是不能穿越PAT,而静态地址NAT映射是可以的

2,NAT-T只能让ESP穿越PAT,而AH封装却不行

no crypto ipsec nat-transparency udp-encapsulation 关闭NAT-T









Ez×××不支持的IPSEC策略如下:

1,DH Group1

2,AH封装协议

3,传输模式

Ez××× Server为了区分分配出去的IP地址分别对应哪个Ez××× Client,它会自动产生一条/32位的静态路由指向对应的Ez××× Client,这个功能称为RRI。

隧道分离是在Ez××× Server端配置的,是通过ACL匹配相当的流量,并应用到crypto map,静态和动态map都可以

Initial Contact的功能是在Easy vpn server收到client新的连接请求时,会删除与该EZ ×××client旧连接而接受新连接请求,默认是开启的。

IKE Phase One的认证,在easy sever端必须通过AAA的方式来定义,但不一定使用AAA服务器。如果client和server组没有匹配,那么会与默认的ISAKMP组匹配,但默认的也需要配置。一个ISAKMP组中所有的用户分配到的策略都是相同的,这称为Group-Based Policy Control。

有些时候需要为不同的用户分配不同的策略,即使他们处于同一个组,这样的机制称为user-based policy control。优先级高于group-based policy control。

每个用户同时登陆的会话数以及每个组中可以同时发起的会话数是可以限制的,可以通过AAA服务器或者通过IOS命令行实现


配置案例:

server端:

aaa new-model 配置AAA认证

aaa authentication login cisco local group radius

aaa authorization network cisco1 local group radius

username cisco password 0 cisco123

crypto isakmp policy 1 配置IKE策略

 encr 3des

 hash md5

 authentication pre-share

 group 2

ip local pool net10 10.1.1.1 10.1.1.200 配置client连接上来后分配的地址池

crypto isakmp client configuration group cisco 配置用户组策略

 key cisco123

 dns 114.114.114.114

 domain cisco.com

 pool net10

crypto ipsec transform-set cisco esp-3des esp-md5-hmac 配置IPSEC transform

crypto dynamic-map maymap 1 定义crypto map

 set transform-set cisco 

 reverse-route

crypto map ezvpn client authentication list cisco 关联认证信息

crypto map ezvpn isakmp authorization list cisco1

crypto map ezvpn client configuration address respond

crypto map ezvpn 1 ipsec-isakmp dynamic maymap 

interface FastEthernet0/0 应用到接口

 ip address 12.1.1.1 255.255.255.0

 duplex auto

 speed auto

 crypto map ezvpn


no ip local pool net10 10.1.1.1 10.1.1.200 配置隧道分离

ip local pool net10 100.1.1.1 100.1.1.200

access-list 100 permit ip 10.1.1.0 0.0.0.255 any ACL的源就是需要和client通信的源。

access-list 100 permit ip host 4.4.4.4 any ACL的目标必须为any,或者可以使用标准ACL

crypto isakmp client configuration group cisco

acl 100

在ezvpn server上,NAT对ezvpn的影响和其他vpn一样,所以如果需要配置NAT时,请使用正常方法将需要走×××隧道的流量和到ezvpn client(自动分配地址池)的地址段从NAT感兴趣流中移除





SSL ×××分为三种模式:

1,Clientless

只提供访问WEB资源

2,Thin-Clinet

在Clientless基础上扩展到可以使用TCP连接,安装applet插件

3,Full-Tunnel Client

全访问,需要安装ActiveX插件


1,隧道分离

2,RRI功能

3,配置地址池,但是地址段必须和路由器上的一个直连接口地址在同网段

配置案例:

在总部配置SSL vpn

将vpn client 模块上传到路由器。dir查看目录

webvpn install svc disk0:sslclient-win-1.1.0.154.pkg 安装ssl vpn client模块

ip local pool cisco 100.1.1.100 100.1.1.200 配置自动分配给用户的地址池

int loo 100

ip add 100.1.1.1 255.255.255.0 为地址池网段创建loopback

webvpn gateway cisco 配置SSL ×××参数.定义标识名字

ip add 12.1.1.1 port 443 开启的地址、端口

inservice

exit

webvpn context cisco 定义其他参数,以及组策略

gateway cisco domain cisco

inservice

policy group mygroup 定义用户组策略

svc split include 10.1.1.0 255.255.255.0 配置隧道分离.include表示需要走隧道的流量

svc split include 4.4.4.4 255.255.255.255

functions svc-enabled

svc address-pool cisco 定义地址池

exit

default-group-policy mygroup

exit

username cisco password cisco 定义用来认证的账号

show webvpn session context all 查看总部的SSL ×××信息

show webvpn session user cisco context cisco

总部如果配置了NAT,需要配置目的地址排除

access-list 111 deny ip host 12.1.1.1 host 23.1.1.3 路由器上是排除双方的公网地址

access-list 111 permit ip any any

int f0/0

ip nat outside

int f1/0

ip nat inside

ip nat inside source list 111 int f0/0 overload





PPTP

PPTP的server端不支持向客户端推送隧道分离消息,需要在client端配置

pptp vpn的数据包是ppp格式封装的,并且实现隧道功能的协议是二层协议PPTP,所以PPTP ×××的隧道是在二层实现的。PPTP ×××的加密协议是MPPE协议,使用的是RC4算法(40/128bit),双方加解密长度必须是一样的。

PPTP使用TCP端口号1723,源端口是随机的,并且扩展了GRE来封装数据

MPPE两种模式:

1,stateful(工作性能好,但不稳定,数据容易丢包)

2,stateless(工作性能不好,但很稳定,数据不丢包)

若双方都不指定,则为stateless;如果一方指定stateful,则工作在stateful模式

如果PPTP和MPPE结合使用,最多支持500条隧道会话,如果单独使用,可以支持2000条

当PPTP结婚MPPE实现PPTP ×××时,client必须是Windows系统,并且在Windows中必须使用MS-CHAP认证。

远程服务强认证,只支持RADIUS而不支持TACACS

在配置PPTTP时,必须创建Virtual Template接口,当用户认证成功之后,会自动为该用户创建virtual-access接口

配置MPPE时,可以指定40/128bit,也可以配置为auto自协商;但是否加密需要看配置,模式passive表示不加密,如果对方需要加密,本端则启用加密,而Required则是必须加密,否则拒绝连接

配置案例:

1,ip local pool cisco 100.1.1.100 100.1.1.200 创建自动分配给用户的地址池

2,interface virtual-template 1 创建virtual template接口,并指定参数

ip unnumbered f0/0

peer default ip address pool cisco

ppp encrypt mppe auto

ppp authentication pap chap ms-chap

3,vpdn enable 开启vpdn功能

vpdn-group 1

accept-dialin 接收远端呼叫

protocol pptp 指定协议为PPTP

4,username Cisco password Cisco 定义本地用户数据库

5,配置隧道分离是

拨号-属性-网络-TCP/IP4-高级-去掉在远程网络上使用默认网关

6,查看状态show vpdn 

×××地址池必须跟内网资源在同一个网段

同样如果有NAT,需要做NAT地址排除。移除的是Server的外网口到任意地址的流量



L2TP ×××

跟PPTP功能类似,L2TP ×××的隧道也是在二层实现的,主要有以下特性:

1,L2F(Layer 2 Forwarding)

2,PPTP

上面的两个只是实现隧道而已,使用IPSEC来保护数据,称为L2TP over IPsec

L2TP使用UDP端口1701

配置L2TP over IPsec时,IPsec应该配置为传输模式

配置案例:

1,ip local pool cisco 10.1.1.100 10.1.1.200 配置地址池

2,interface virtual-template 1 创建virtual-template接口,并指定参数

ip unnumbered f0/0

peer default ip address pool cisco

ppp authentication chap ms-chap

exit

3,vpdn enable 开启VPDN功能

vpdn-group 1

accept-dialin

protocol l2tp

virtual-template 1

no l2tp tunnel authentication

4,username cisco password cisco 定义本地用户数据库

同样也是要配置隧道分离,跟PPTP一样配置

不同设备,有可能不一样的NAT配置

防火墙还要配置IPSEC