在IPsecVPN范畴的VPN中,有多种形式的VPN,各形式的VPN因为架构和使用环境的不同而不同,但在IPsecVPN范畴内的各VPN中,都是以IPsec为基础的,在本小节中要讲到的是IPsecVPN之LAN-to-LANVPN,有时也被称为Site-to-SiteVPN,该形式的VPN是IPsecVPN中最简单的VPN,但并不代表该形式的VPN是最常用的。

在配置IPsecVPN范畴的VPN时,无论配置哪种形式,基本上需要如下几个重要步骤:

配置IKE(ISAKMP)策略

定义认证标识

配置IPsectransform

定义感兴趣流量

创建cryptomap

将cryptomap应用于接口

其中每步的具体内容为:

配置IKEISAKMP)策略

定义IKE PhaseOne中的一些策略,包括加密算法(Encryption),Hash算法(HMAC),密钥算法(Diffie-Hellman),认证方式(Authentication)等等

定义认证标识

无论前面定义了何种认证方式,都需要添加认证信息,如密码、数字证书等等。

配置IPsectransform

也就是定义PhaseTwo中一些加密算法以及HMAC算法,此transformset就是定义了VPN流量中的数据包是受到怎样的保护。

定义感兴趣流量

定义哪些流量需要通过VPN来传输,通过IPsec来保护;匹配流量的方法为定义ACL,建议使用ExtendedACL来匹配指定的流量,ACL中被permit匹配的的流量表示加密,而被deny匹配的流量则表示不加密。

注:在配置ACL定义感兴趣流量时需要格外注意的是ACL中不要使用any来表示源或者目标,否则会出问题。

创建cryptomap

将之前定义的ACL,加密数据发往的对端,以及IPsectransform结合在cryptomap中。

cryptomap应用于接口

cryptomap配置后,是不会生效的,必须将cryptomap应用到接口上,目前还没有听说cryptomap对接口类型有任何要求,也就是正常接口都可以应用,当然必须是三层可路由接口。

因为目前Cisco产品中能够配置VPN的设备有许多,而目前较流行的设备有Router(路由器),PIX(防火墙),ASA(防火墙)

实验拓扑图如下:

1.配置基础网络环境

1)配置R1

r1(config)#intf0/0

r1(config-if)#ip add12.1.1.1 255.255.255.0

r1(config-if)#nosh

r1(config-if)#exit

r1(config)#intf0/1

r1(config-if)#ip add10.1.1.1 255.255.255.0

r1(config-if)#nosh

r1(config-if)#exit

r1(config)#ip route0.0.0.0 0.0.0.0 12.1.1.2

说明:配置R1的接口地址,并写默认路由指向Internet(路由器R2),地址12.1.1.2。

2)配置R2

r2(config)#intf0/0

r2(config-if)#ip add12.1.1.2 255.255.255.0

r2(config-if)#nosh

r2(config-if)#exit

r2(config)#intf0/1

r2(config-if)#ip add23.1.1.2 255.255.255.0

r2(config-if)#nosh

r2(config-if)#exit

说明:配置R2的接口地址,因为R2模拟Internet,R2只需要有公网路由12.1.1.0和23.1.1.0即可,所以R2不需要写任何路由,也不允许写任何路由。

3)配置R3

r3(config)#intf0/0

r3(config-if)#ip add192.168.1.3 255.255.255.0

r3(config-if)#nosh

r3(config-if)#exit

r3(config)#intf0/1

r3(config-if)#ip add23.1.1.3 255.255.255.0

r3(config-if)#nosh

r3(config-if)#exit

r3(config)#ip route0.0.0.0 0.0.0.0 23.1.1.2

说明:配置R3的接口地址,并写默认路由指向Internet(路由器R2),地址23.1.1.2。

3.配置LAN-to-LANVPN

1)在R1上配置IKEISAKMP)策略:

r1(config)#crypto isakmppolicy 1    //定义第一阶段poliy策略,本地意义,默认已经有策略了,这是里自定义

r1(config-isakmp)#encryption3des   //加密方式为3des

r1(config-isakmp)#hashsha         //hash算法为sha

r1(config-isakmp)#authenticationpre-share  //认证方式为Pre-SharedKeys

r1(config-isakmp)#group2    //密钥算法(Diffie-Hellman)为group2

r1(config-isakmp)#exit

说明:定义了ISAKMP policy1,加密方式为3des,hash算法为sha,认证方式为Pre-Shared Keys(PSK),密钥算法(Diffie-Hellman)为group2。

2)在R1上定义认证标识:

r1(config)#crypto isakmpkey 0 cisco123 address 23.1.1.3 //定义域共享秘钥,对方的ip地址

3)在R1上配置IPsectransform:

r1(config)#crypto ipsectransform-set ccie esp-3des esp-sha-hmac //定义第二阶段的策略,也是默认就存在的,定义加密方式和哈希

r1(cfg-crypto-trans)#exit

说明:配置了transform-set为ccie,其中数据封装使用esp加3des加密,并且使用esp结合sha做hash计算,默认的IPsecmode为tunnel。

4)在R1上定义感兴趣流量:

r1(config)#access-list100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 //定义感兴趣流,用扩展acl来定义,在另一边路由器上配置的源和目的必须颠倒,其他什么都要一样才行

说明:这里需要被IPsec保护传输的流量为上海公司至北京公司的流量,即10.1.1.0/24发往192.168.1.0/24的流量,切记不可使用any来表示地址。

5)在R1上创建cryptomap:

r1(config)#crypto mapl2l(这个代表名字也是自定义的) 1ipsec-isakmp   //系列号只具有本地意义,关联兴趣流

r1(config-crypto-map)#setpeer 23.1.1.3

r1(config-crypto-map)#settransform-set ccie

r1(config-crypto-map)#matchaddress 100

r1(config-crypto-map)#exit

说明:在R1上配置cryptomap为l2l,序号为1,即第1组策略,其中指定加密

数据发往的对端为23.1.1.3,即和23.1.1.3建立IPsec隧道,调用的IPsectransform为ccie,并且指定ACL100中的流量为被保护的流量。

6)在R1上将cryptomap应用于接口:

r1(config)#intf0/0

r1(config-if)#crypto mapl2l

r1(config-if)#exit

r1(config)#

说明:将cryptomap应用在去往北京公司的接口F0/0上。

7)使用相同方式配置R3LAN-to-LANVPN:

r3(config)#crypto isakmppolicy 1

r3(config-isakmp)#encryption3des

r3(config-isakmp)#hashsha

r3(config-isakmp)#authenticationpre-share

r3(config-isakmp)#group2

r3(config-isakmp)#exit

r3(config)#crypto isakmpkey 0 cisco123 address 12.1.1.1

r3(config)#crypto ipsectransform-set ccie esp-3des esp-sha-hmac

r3(cfg-crypto-trans)#exit

r3(config)#access-list100 permit ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255

r3(config)#crypto mapl2l 1 ipsec-isakmp

r3(config-crypto-map)#setpeer 12.1.1.1

r3(config-crypto-map)#settransform-set ccie

r3(config-crypto-map)#matchaddress 100

r3(config-crypto-map)#exit

r3(config)#

r3(config)#intf0/1

r3(config-if)#crypto mapl2l

r3(config-if)#

说明:R3与R1的IKE和IPsec策略必须保持一致。

c2#ping192.168.1.4

Sending 5, 100-byte ICMPEchos to 192.168.1.4, timeout is 2 seconds:

.!!!!

Success rate is 80percent (4/5), round-trip min/avg/max = 64/125/212 ms

说明:上海公司c2向北京公司c1发送的5个数据包,有4个成功穿越了Internet,说明该流量激活了IKESA,并且在双方应该成功建立了IPsec隧道,所以才实现了VPN的功能。

这是因为nat比vpn的优先级高,因此数据包的ip头部的ip首先被nat的感兴趣流匹配,进行地址转换,转换后就不匹配vpn感兴趣流,就不会被加密,撞击map,因为有缺省路由,从接口发送至互联网。所以互联网收到之后查看数据包,目的为私网地址,直接丢弃,因此不通

4)删除R1上的NAT

r1(config)#access-list 1deny 10.1.1.0 0.0.0.255

r1(config)#access-list 1permit any

r1#cle ip nattranslation *

说明:因为被NAT转换的流量不再是合法的IPsec流量,所以我们将需要被IPsec保护的从上海发往北京的流量,即10.1.1.0/24发往192.168.1.0/24的流量不被NAT转换。

5)再次从上海公司c2向北京公司c1发送流量:

c2#ping192.168.1.4

Type escape sequence toabort.

Sending 5, 100-byte ICMPEchos to 192.168.1.4, timeout is 2 seconds:

!!!!!

说明:不被NAT转换的流量和之前一样再次通过IPsecVPN隧道穿越了Internet。

注意:内网有多少网段,感兴趣流就要建立多少条。

 

问题来了,因为ipsecvpn和nat是冲突的,然而在现实企业中有的电脑是即需要上外网又需要访问公司vpn内网,解决方案如下:在nat的感兴趣流配置中,deny掉通信点与通信点直接的流量,让匹配上这个流量不进行地址转换,具体命令见下篇博文中,持续讲解asa防火墙上的vpn。

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1858614

思科路由器ipsec lan-to-lan综合案例详解相关推荐

  1. java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网

    资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...

  2. 思科ccie网络工程师必看网络安全技术详解-ielab实验室

    思科ccie网络工程师必看网络安全技术详解-ielab实验室,网络安全威胁是指网络系统所面临的,由已经发生的或潜在的安全事件对某一资源的保密性.完整性.可用性或合法使用所造成的威胁.能够在不同程度.不 ...

  3. python代码案例详解-我用Python抓取了7000 多本电子书案例详解

    安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...

  4. python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类

    第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...

  5. java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解

    本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...

  6. 《微信小程序:开发入门及案例详解》—— 3.4 小结

    本节书摘来自华章出版社<微信小程序:开发入门及案例详解>一 书中的第3章,第3.4节,作者李骏 边思,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 小 ...

  7. 代码检查规则:Python语言案例详解

    在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...

  8. 代码检查规则:Java语言案例详解

    本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...

  9. python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

最新文章

  1. 中文问好_直击/泷泽秀明秘访台!Hey! Say! JUMP也来了 亲切秀中文问好
  2. ospf 环回口的路由条目_路由策略之重分发示例分析
  3. “吸才”的字节跳动和“散才”的好未来
  4. 为什么中国企业海外营销都选择Facebook?
  5. C++用new来创建对象和非new来创建对象的区别
  6. 移动app抓包工具——fiddler抓包指南
  7. html的空心箭头,CSS实现空心三角指示箭头
  8. 如何利用github打造博客专属域名
  9. 爬虫:爬取豆果网和美食网的菜单
  10. 神奇相机将照片变文字 超大相册搜图无压力
  11. android 蓝牙hf编程,基于Android蓝牙Inband ring功能实现.doc
  12. 根据简化真值表绘制电路
  13. LuoguP1710 地铁涨价
  14. LCD背光驱动 --Backlight
  15. 最快速的OpenCV安装教程
  16. 正则表达式——简单校验字符串
  17. WPSPPT放视频怎么把播放条隐藏_抖音被降权了怎么办,如何补救提升权重?
  18. c语言stdlib和math区别,c 语言中,stdio 和stdlib有什么区别?各代表什么意思?
  19. 学习笔记之Object.getPrototypeOf()方法
  20. 利用cookie收取Hotmail信件

热门文章

  1. 怎么让英文单词的首字母大写?
  2. vue3的unplugin-auto-import自动引入
  3. 膜拜大佬!mysql数据库基础教程课后答案
  4. 减小VMware虚拟机虚拟磁盘大小
  5. btcwallet 区块链钱包编译错误
  6. 瞄准500亿元规模 湖北打造国家级大数据产业基地
  7. 成都InfoComm China 2018高峰会议 开拓新商机、扩建商业网络的专业学习平台
  8. 一道Android题目逆向动态调试
  9. JAVA程序员面试宝典3
  10. 模电之放大原理以及偏置电路