思科路由器ipsec lan-to-lan综合案例详解
在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应用于接口
其中每步的具体内容为:
配置IKE(ISAKMP)策略
定义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上配置IKE(ISAKMP)策略:
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)使用相同方式配置R3的LAN-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综合案例详解相关推荐
- java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网
资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...
- 思科ccie网络工程师必看网络安全技术详解-ielab实验室
思科ccie网络工程师必看网络安全技术详解-ielab实验室,网络安全威胁是指网络系统所面临的,由已经发生的或潜在的安全事件对某一资源的保密性.完整性.可用性或合法使用所造成的威胁.能够在不同程度.不 ...
- python代码案例详解-我用Python抓取了7000 多本电子书案例详解
安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...
- python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...
- java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...
- 《微信小程序:开发入门及案例详解》—— 3.4 小结
本节书摘来自华章出版社<微信小程序:开发入门及案例详解>一 书中的第3章,第3.4节,作者李骏 边思,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 小 ...
- 代码检查规则:Python语言案例详解
在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...
- 代码检查规则:Java语言案例详解
本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...
- python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...
上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一. 案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...
最新文章
- 中文问好_直击/泷泽秀明秘访台!Hey! Say! JUMP也来了 亲切秀中文问好
- ospf 环回口的路由条目_路由策略之重分发示例分析
- “吸才”的字节跳动和“散才”的好未来
- 为什么中国企业海外营销都选择Facebook?
- C++用new来创建对象和非new来创建对象的区别
- 移动app抓包工具——fiddler抓包指南
- html的空心箭头,CSS实现空心三角指示箭头
- 如何利用github打造博客专属域名
- 爬虫:爬取豆果网和美食网的菜单
- 神奇相机将照片变文字 超大相册搜图无压力
- android 蓝牙hf编程,基于Android蓝牙Inband ring功能实现.doc
- 根据简化真值表绘制电路
- LuoguP1710 地铁涨价
- LCD背光驱动 --Backlight
- 最快速的OpenCV安装教程
- 正则表达式——简单校验字符串
- WPSPPT放视频怎么把播放条隐藏_抖音被降权了怎么办,如何补救提升权重?
- c语言stdlib和math区别,c 语言中,stdio 和stdlib有什么区别?各代表什么意思?
- 学习笔记之Object.getPrototypeOf()方法
- 利用cookie收取Hotmail信件