CISCO路由器VPN讲解课件_第1页
CISCO路由器VPN讲解课件_第2页
CISCO路由器VPN讲解课件_第3页
CISCO路由器VPN讲解课件_第4页
CISCO路由器VPN讲解课件_第5页
已阅读5页,还剩166页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于CISCO路由器的

IPSECVPN和BGP/MPLSVPN目录VPN简介IPSecVPNBGP/MPLSVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置BGP/MPLSVPN的工作原理BGP/MPLSVPN的配置示例VPN背景总公司租用专线我们有很多分公司,如果用租用专线的方式把他们和总公司连起来,需要花很多钱想节约成本的话,可以用VPN来连接分公司分公司分公司隧道机制IPVPN可以理解为:通过隧道技术在公众IP/MPLS网络上仿真一条点到点的专线。隧道是利用一种协议来传输另外一种协议的技术,共涉及三种协议,包括:乘客协议、隧道协议和承载协议。被封装的原始IP包新增加的IP头IPSec头乘客协议隧道协议承载协议原始IP包经过IPSec封装后隧道带来的好处隧道保证了VPN中分组的封装方式及使用的地址与承载网络的封装方式及使用地址无关

Internet被封装的原始IP包新增加的IP头IPSec头私网地址公网地址中心站点分支机构Internet根据这个地址路由可以使用私网地址,感觉双方是用专用通道连接起来的,而不是Internet隧道按隧道类型对VPN分类隧道协议如下:第二层隧道协议,如L2TP第三层隧道协议,如IPSec介于第二层和第三层之间的隧道协议,如MPLSVPNL2TP的典型应用--VPDNL2TP连接PPP连接用户发起PPP连接到接入服务器接入服务器封装用户的PPP会话到L2TP隧道,L2TP隧道穿过公共IP网络,终止于电信VPDN机房的LNS用户的PPPsession经企业内部的认证服务器认证通过后即可访问企业内部网络资源IPSecIPSec只能工作在IP层,要求乘客协议和承载协议都是IP协议被封装的原始IP包新增加的IP头IPSec头必须是IP协议必须是IP协议IPSec可以对被封装的数据包进行加密和摘要等,以进一步提高数据传输的安全性MPLSVPN的基本工作模式在入口边缘路由器为每个包加上MPLS标签,核心路由器根据标签值进行转发,出口边缘路由器再去掉标签,恢复原来的IP包。MPLS网P1P2PE1PE2CE1CE210.1.1.1MPLS标签10.1.1.110.1.1.1三种VPN的比较L2TPIPSecMPLSVPN隧道协议类型第二层第三层第二层和第三层之间是否支持数据加密不支持支持不支持对设备的要求只要求边缘设备支持L2TP只要求边缘设备支持IPSec要求边缘设备和核心设备都支持MPLS目录VPN简介IPSecVPNBGP/MPLSVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置BGP/MPLSVPN的工作原理BGP/MPLSVPN的配置示例IPSec概述IPSec是一种开放标准的框架结构,特定的通信方之间在IP层通过加密和数据摘要(hash)等手段,来保证数据包在Internet网上传输时的私密性(confidentiality)、完整性(dataintegrity)和真实性(originauthentication)。IPSec只能工作在IP层,要求乘客协议和承载协议都是IP协议被封装的原始IP包新增加的IP头IPSec头必须是IP协议必须是IP协议对称加密如果加密密钥与解密密钥相同,就称为对称加密由于对称加密的运算速度快,所以IPSec使用对称加密算法来加密数据对数据进行hash运算来保证完整性完整性:数据没有被非法篡改通过对数据进行hash运算,产生类似于指纹的数据摘要,以保证数据的完整性土豆两块钱一斤Hash4ehIDx67NMop9土豆两块钱一斤4ehIDx67NMop9土豆三块钱一斤4ehIDx67NMop9我偷改数据Hash2fwex67N32rfee3两者不一致代表数据已被篡改对数据和密钥一起进行hash运算攻击者篡改数据后,可以根据修改后的数据生成新的摘要,以此掩盖自己的攻击行为。通过把数据和密钥一起进行hash运算,可以有效抵御上述攻击。土豆两块钱一斤Hashfefe23fgrNMop7土豆两块钱一斤fefe23fgrNMop7土豆三块钱一斤2fwex67N32rfee3我同时改数据和摘要两者还是不一致Hashfergergr23frewfghDH算法的基本原理RouterARouterB生成一个整数p生成一个整数q把p发送到对端p把q发送到对端q根据p、q生成g根据p、q生成g生成密钥Xa生成密钥Xb把Ya=g^Xa发送到对端把Yb=g^Xb发送到对端YaYbKey=Yb^Xa=g^(Xb*Xa)Key=Ya^Xb=g^(Xa*Xb)最后得到的对称密钥双方没有直接传递密钥通过身份认证保证数据的真实性真实性:数据确实是由特定的对端发出通过身份认证可以保证数据的真实性。常用的身份认证方式包括:Pre-sharedkey,预共享密钥RSASignature,数字签名预共享密钥预共享密钥,是指通信双方在配置时手工输入相同的密钥。Hash_L+

路由器名等本地Hash共享密钥远端生成的Hash_LHash=+对端路由器名Internet共享密钥接收到的Hash_L数字签名认证+IDInformation加密Hash_I解密Hash_I私钥公钥本地远端Hash=+身份信息Hash对称密钥数字签名+身份信息Hash12数字证书+Internet对称密钥数字签名数字证书IPSec框架结构ESPAHDES3DESAESMD5SHADH1DH2IPSec框架可选择的算法IPSec安全协议加密数据摘要对称密钥交换IPSec封装模式IPSec支持两种封装模式:传输模式和隧道模式隧道模式:增加新的IP头,通常用于私网与私网之间通过公网进行通信。IP头数据原始IP包IP头数据新IP头AHhashIP头数据ESP头hashESPtrailerESPauthESP加密hashAH头新IP头IPSec与NATAH模式无法与NAT一起运行AH对包括IP地址在内的整个IP包进行hash运算,而NAT会改变IP地址,从而破坏AH的hash值。IP头数据AH头hashhashNAT:我要修改源/目的IP地址AH:不行!我对IP地址也进行了hashIPSec与NATESP模式下:只进行地址映射时,ESP可与它一起工作。进行端口映射时,需要修改端口,而ESP已经对端口号进行了加密和/或hash,所以将无法进行。IP头数据ESP头ESPtrailerESPauth加密TCP/UDP端口NAT:端口号被加密了,没法改,真郁闷IPSec与NATESP模式下:启用IPSecNAT穿越后,会在ESP头前增加一个UDP头,就可以进行端口映射。IP头数据ESP头ESPtrailerESPauth加密TCP/UDP端口NAT:可以改端口号了,太棒了新UDP头目录VPN简介IPSecVPNBGP/MPLSVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置BGP/MPLSVPN的工作原理BGP/MPLSVPN的配置示例对上一节的回顾IPSec协议框架包括加密、hash、对称密钥交换、安全协议等四个部分,这些部分都可以采用多种算法来实现。问题1:要成功建立IPSecVPN,两端路由器必须采用相同的加密算法、hash算法和安全协议等,但IPSec协议中并没有描述双方应如何协商这些参数。问题2:IPSec协议中没有定义通信双方如何进行身份认证,路由器有可能会和一个假冒的对端建立IPSecVPN。端到端IPSecVPN的工作原理需要保护的流量流经路由器,触发路由器启动相关的协商过程。启动IKE(Internetkeyexchange)阶段1,对通信双方进行身份认证,并在两端之间建立一条安全的通道。启动IKE阶段2,在上述安全通道上协商IPSec参数。按协商好的IPSec参数对数据流进行加密、hash等保护。HostAHostBRouterARouterB什么是端到端的VPN?IKE阶段1HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段1协商建立IKE安全通道所使用的参数协商建立IKE安全通道所使用的参数IKE阶段1协商建立IKE安全通道所使用的参数,包括:加密算法Hash算法DH算法身份认证方法存活时间IKE阶段1Policy10DESMD5DH1Pre-sharelifetimePolicy15DESMD5DH1Pre-sharelifetimeRouterARouterBhostAhostBPolicy203DESSHADH1Pre-sharelifetimePolicy253DESSHADH2Pre-sharelifetime双方找到相同的策略集上述IKE参数组合成集合,称为IKEpolicy。IKE协商就是要在通信双方之间找到相同的policy。IKE阶段1HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段1协商建立IKE安全通道所使用的参数交换对称密钥双方身份认证建立IKE安全通道协商建立IKE安全通道所使用的参数交换对称密钥双方身份认证建立IKE安全通道IKE阶段2HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段2协商IPSec安全参数协商IPSec安全参数IKE阶段2双方协商IPSec安全参数,称为变换集transformset,包括:加密算法Hash算法安全协议封装模式存活时间Transform10DESMD5ESPTunnellifetimeTransform203DESSHAESPTunnellifetimeIKE与IPSec安全参数的比较加密算法Hash算法存活时间DH算法身份认证安全协议封装模式IKEIPSecIKE阶段2HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段2协商IPSec安全参数建立IPSecSA协商IPSec安全参数建立IPSecSAIPSecSAIPSecSA(安全关联,SecurityAssociation):SA由SPD(securitypolicydatabase)和SAD(SAdatabase)组成。两端成功协商IPSec参数加密算法hash算法封装模式lifetime安全协议SPD加密SPIHash封装模式lifetimeSAD目的IP地址SPI安全协议IPSecSAIPSecSA(安全关联,SecurityAssociation):SPI(SecurityParameterIndex),由IKE自动分配发送数据包时,会把SPI插入到IPSec头中接收到数据包后,根据SPI值查找SAD和SPD,从而获知解密数据包所需的加解密算法、hash算法等。一个SA只记录单向的参数,所以一个IPSec连接会有两个IPSecSA。IPSecSAIPSecSA(安全关联,SecurityAssociation):使用SPI可以标识路由器与不同对象之间的连接。BANK192.168.2.1SPI–12ESP/3DES/SHAtunnel28800192.168.12.1

SPI–39ESP/DES/MD5tunnel28800InternetIPSecSAIPSecSA(安全关联,SecurityAssociation):达到lifetime以后,原有的IPSecSA就会被删除如果正在传输数据,系统会在原SA超时之前自动协商建立新的SA,从而保证数据的传输不会因此而中断。SA示例端到端IPSecVPN的配置流程配置IPSec前的准备工作配置IKE参数配置IPSec参数测试并验证IPSec是否正常工作端到端IPSecVPN的配置步骤1配置IPSec前的准备工作确认在配置IPSec之前,网络是通的。确认AH流量(IP协议号为50)、ESP流量(IP协议号为51)和ISAKMP流量(UDP的端口500)不会被ACL所阻塞。配置IPSec前的准备工作在RouterA上ping路由器RouterBRouterA上要有到site2的路由,RouterB上有到site1的路由有必要的情况下,在路由器中添加类似以下的ACL条目:RouterA#showaccess-listsaccess-list102permitahphost172.30.2.2host172.30.1.2access-list102permitesphost172.30.2.2host172.30.1.2access-list102permitudphost172.30.2.2host172.30.1.2eqisakmpE0/1172.30.1.2Site1Site2E0/1172.30.2.2AB10.0.1.310.0.2.3InternetRouterARouterB端到端IPSecVPN的配置步骤2配置IKE参数启用IKE创建IKE策略集policy配置IKE身份认证的相关参数验证IKE配置启用IKERouterA(config)#nocryptoisakmpenableRouterA(config)#cryptoisakmpenablerouter(config)#[no]cryptoisakmpenable默认情况下,IKE处于开启状态IKE在全局模式下对所有端口启用对于不希望使用IKE的端口,可以用ACL屏蔽UDP的500端口,达到阻断IKE的目的创建IKE策略cryptoisakmppolicypriorityrouter(config)#RouterA(config)#cryptoisakmppolicy110RouterA(config-isakmp)#encryptiondesRouterA(config-isakmp)#hashmd5RouterA(config-isakmp)#group1RouterA(config-isakmp)#authenticationpre-shareRouterA(config-isakmp)#lifetime86400Authentication---身份认证方式Encryption---加密算法Group---DH算法组Hash---摘要算法Lifetime---IKE生存期IKE策略集的取值<86400秒86400秒IKESA生存期DHGroup2DHGroup1密钥交换算法Rsa-sigPre-share身份认证方式SHA-1MD5摘要算法3DESDES加密算法更安全的取值安全的取值参数(56bit密钥)(3次DES运算)(128bit密钥)(160bit密钥)(768bit密钥)(1024bit密钥)(共享密钥)(数字签名)IKE策略集的优先级cryptoisakmppolicy100

hashmd5

authentication

pre-sharecryptoisakmppolicy200authenticationrsa-sig

hashshacryptoisakmppolicy300authenticationpre-sharehashmd5RouterA(config)#RouterB(config)#cryptoisakmppolicy100hashmd5authenticationpre-sharecryptoisakmppolicy200authenticationrsa-sighashshacryptoisakmppolicy300authenticationrsa-sighashmd5Priority表示策略集的优先级,该值越小表示优先级越高路由器将首先比较优先级最高的策略集是否匹配,因此本例中虽然三个策略集都匹配,但路由器只会采用policy100建议把最安全的策略集设为最高优先级使用共享密钥进行身份认证RouterA(config)#cryptoisakmpkeycisco1234address172.30.2.2router(config)#cryptoisakmpkeykeystringaddresspeer-addresscryptoisakmpkeykeystringhostnamehostnamerouter(config)#共享密钥Cisco1234Site1Site2172.30.2.2AB10.0.1.310.0.2.3InternetRouterARouterB两端路由器使用的共享密钥必须相同可以用IP地址或

主机名来指定对端验证IKE配置RouterA#showcryptoisakmppolicyProtectionsuiteofpriority110encryptionalgorithm:DES-DataEncryptionStandard(56bitkeys).hashalgorithm:MessageDigest5authenticationmethod:Pre-SharedKeyDiffie-Hellmangroup:#1(768bit)lifetime:86400seconds,novolumelimitDefaultprotectionsuiteencryptionalgorithm:DES-DataEncryptionStandard(56bitkeys).hashalgorithm:SecureHashStandardauthenticationmethod:Rivest-Shamir-AdlemanSignatureDiffie-Hellmangroup:#1(768bit)lifetime:86400seconds,novolumelimitshowcryptoisakmppolicy

router#显示已配置的和缺省的策略集端到端IPSecVPN的配置步骤3配置IPSec参数配置IPSec变换集用ACL定义需要IPSec保护的流量创建cryptomap把cryptomap应用到路由器的端口上配置IPSec变换集cryptoipsectransform-settransform-set-name

transform1[transform2[transform3]]router(cfg-crypto-trans)#router(config)#RouterA(config)#cryptoipsectransform-setmineesp-desRouterA(cfg-crypto-trans)#modetunnel每个变换集中可以包含AH变换、ESP变换和封装模式(隧道模式或传输模式)每个变换集中最多可以有一个AH变换和两个ESP变换IOS支持的变换RouterA(config)#cryptoipsectransform-set transform-set-name?ah-md5-hmacAH-HMAC-MD5transformah-sha-hmacAH-HMAC-SHAtransformesp-3desESPtransformusing3DES(EDE)cipher(168 bits)esp-desESPtransformusingDEScipher(56bits)esp-md5-hmacESPtransformusingHMAC-MD5authesp-sha-hmacESPtransformusingHMAC-SHAauthesp-nullESPtransformw/ocipher用ACL定义需要IPSec保护的流量access-listaccess-list-number[dynamicdynamic-name

[timeoutminutes]]{deny|permit}protocolsourcesource-wildcarddestinationdestination-wildcard[precedenceprecedence][tostos][log]router(config)#RouterA(config)#access-list110permittcp10.0.1.00.0.0.25510.0.2.00.0.0.255Site1Site2AB10.0.1.310.0.2.3InternetRouterARouterB10.0.1.010.0.2.0加密定义哪些流量需要IPSec保护Permit=要保护/deny=不用保护两端路由器要配置对称的ACLRouterA(config)#access-list110permittcp 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255RouterB(config)#access-list101permittcp

10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255E0/1172.30.1.2Site1Site2E0/1172.30.2.2AB10.0.1.310.0.2.3InternetRouterARouterBCryptomap的主要配置参数需要IPSec保护的流量的ACLVPN对端的IP地址使用的IPSec变换集协商建立IPSecSA的方式(手工或通过IKE)IPSecSA的存活期创建cryptomapcryptomapmap-nameseq-numipsec-manualcryptomapmap-nameseq-numipsec-isakmp

[dynamicdynamic-map-name]router(config)#Site1Site2AB10.0.1.310.0.2.3InternetRouterARouterBRouterA(config)#cryptomapmymap110ipsec-isakmpSite3B10.0.3.3RouterC每个路由器端口只能应用一个cryptomap当一个端口有多个VPN对端时,就使用seq-num来区分Cryptomap配置示例RouterA(config)#cryptomapmymap110ipsec-isakmpRouterA(config-crypto-map)#matchaddress110RouterA(config-crypto-map)#setpeer172.30.2.2RouterA(config-crypto-map)#setpeer172.30.3.2RouterA(config-crypto-map)#setpfsgroup1RouterA(config-crypto-map)#settransform-setmineRouterA(config-crypto-map)#setsecurity-associationlifetime86400Site1Site2172.30.2.2AB10.0.1.310.0.2.3RouterARouterB172.30.3.2BRouterCInternet可配置多个vpn对端进行冗余应用cryptomap到路由器端口上RouterA(config)#interfaceethernet0/1RouterA(config-if)#cryptomapmymapE0/1172.30.1.2Site1Site2E0/1172.30.2.2AB10.0.1.310.0.2.3InternetRouterARouterBmymaprouter(config-if)#cryptomapmap-name在出口上应用cryptomap端到端IPSecVPN的配置步骤4测试并验证IPSec是否正常工作_1显示IKE策略

showcryptoisakmppolicy显示IPSec变换集

showcryptoipsectransform-set显示cryptomaps

showcryptomap端到端IPSecVPN的配置步骤4测试并验证IPSec是否正常工作_2显示IPSecSA的状态

showcryptoipsecsadebugIPSec事件

debugcryptoipsecdebugISAKMP事件

debugcryptoisakmp端到端IPSecVPN的配置示例RouterA#showruncryptoisakmppolicy110hashmd5authenticationpre-sharecryptoisakmpkeycisco1234address172.30.2.2!cryptoipsectransform-setmineesp-des!cryptomapmymap10ipsec-isakmpsetpeer172.30.2.2settransform-setminematchaddress110!interfaceEthernet0/1ipaddress172.30.1.2255.255.255.0noipdirected-broadcastcryptomapmymap!access-list110permittcp10.0.1.00.0.0.25510.0.2.00.0.0.255E0/1172.30.1.2Site1Site2E0/1172.30.2.2AB10.0.1.310.0.2.3InternetRouterARouterBRouterB#showruncryptoisakmppolicy110hashmd5authenticationpre-sharecryptoisakmpkeycisco1234address172.30.1.2!cryptoipsectransform-setmineesp-des!cryptomapmymap10ipsec-isakmpsetpeer172.30.1.2settransform-setminematchaddress101!interfaceEthernet0/1ipaddress172.30.2.2255.255.255.0noipdirected-broadcastcryptomapmymap!access-list101permittcp10.0.2.00.0.0.25510.0.1.00.0.0.255目录VPN简介IPSecVPNBGP/MPLSVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置BGP/MPLSVPN的工作原理BGP/MPLSVPN的配置示例EasyVPN的特点EasyVPNRemoteEasyVPNServer端到端模式下,两端路由器都要进行较复杂的配置EasyVPN模式下,Remote只需要进行简单的配置,其余大部分参数由Server端直接推送给它EasyVPN模式常用于用户的远程接入Remote可以是ciscovpnclient,server端可以是路由器,其IOS要求高于或等于12.2(8)T流程1--client向server发送IKEpolicyRemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServerPolicy1,Policy2,Policy3EasyVPN由client触发ciscovpnclient中内置了多个IKEpolicyclient触发EasyVPN后,会把内置的IKEpolicy全部发送到server端流程2--server找到匹配的policyserver把client发送来的IKEpolicy与自己的policy相比较找到匹配值后成功建立IKESARemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServerPolicy1检查后发现policy1匹配流程3--server要client输入用户/口令RemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServerUsername/passwordAAAcheckingUsername/passwordchallenge如果配置了扩展认证Xauth,server端将要求client端发送用户名/口令进行身份认证配置Xauth将获得更高的安全性,因此建议server端配置Xauth流程4--server向client推送参数RemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServerClient请求配置参数Server推送配置参数身份认证通过后,client将向server请求其余的配置参数Server向client推送的参数至少要包含分配给client的IP地址流程5--server进行反向路由注入RemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServer创建RRI静态路由Server进行反向路由注入(ReverseRouteInjeciton,RRI),为刚分配的client端IP地址产生一条静态路由,以便正确地路由发送给client端的数据包流程6--建立IPSecSARemotePCwithEasyRemoteVPNClient3.xIOSrouter12.2(8)T

EasyVPNServer建立IPSecSAVPNtunnelClient收到配置参数,双方建立IPSecSAEasyVPN在server端的配置步骤vpngate1创建IKE策略集,该策略集至少要能与vpnclient的一个内置策略集相匹配,以便在server和client之间建立IKESA定义要推送给client的组属性,其中包含分配给client的地址池、pre-sharekey等定义IPSec变换集(只用于client触发建立IPSecSA时,如果是server触发建立IPSecSA就不需要使用)启用DPD死亡对端检测配置Xauth扩展认证把cryptomap应用到路由器端口上创建IKE策略集vpngate1(config)#cryptoisakmpenablevpngate1(config)#cryptoisakmppolicy1vpngate1(config-isakmp)#authenpre-sharevpngate1(config-isakmp)#encryption3desvpngate1(config-isakmp)#group2vpngate1(config-isakmp)#exitAuthen:PresharedkeysEncryption:3-DESDiffie-Hellman:Group2Othersettings:DefaultPolicy1vpngate1Ciscovpnclient内置的部分策略集DESMD5DH2Pre-share3DESMD5DH2Pre-share3DESSHADH2Pre-sharevpngate1定义分配给client的地址池router(config)#iplocalpool{default|pool-name

low-ip-address[high-ip-address]}vpngate1(config)#iplocalpoolremote-pool10.0.1.10010.0.1.150vpngate1Remoteclientremote-pool10.0.1.100to10.0.1.150Pool地址池中的地址将分配给client端定义推送给client的组属性router(config)#cryptoisakmpclientconfigurationgroup{group-name|default}vpngate1(config)#cryptoisakmpclientconfigurationgroupvpngroup1vpngate1(config-isakmp-group)#keymyvpnkeyvpngate1(config-isakmp-group)#poolremote-poolKey:myvpnkeyPoolname:remote-poolGroup:vpngroup1vpngate1Remoteclient可定义多个组,每个组使用自己的pre-sharekey和地址池配置组属性的查询模式router(config)#aaaauthorizationnetworkgroup-namelocalgroupradiusvpngate1(config)#aaanew-modelvpngate1(config)#aaaauthorizationnetwork

vpn-remote-accesslocalvpngate1Remoteclientvpn-remote-accessGrouprouter(config)#aaanew-model定义查询模式vpn-remote-access,表明是在路由器本地查询把组属性查询模式与cryptomap关联router(config)#cryptomapmap-nameisakmpauthorizationlistlist-namevpngate1(config)#cryptomapdynmapisakmpauthorizationlistvpn-remote-accessvpngate1Remoteclientvpn-remote-accessGroup配置路由器响应client的IP地址申请router(config)#cryptomapmap-nameclientconfigurationaddress{initiate|respond}vpngate1(config)#cryptomapdynmapclientconfigurationaddressrespondvpngate1Remoteclient创建IPSec变换集router(config)#cryptoipsectransform-settransform-set-name

transform1[transform2[transform3]]vpngate1(config)#cryptoipsectransform-setvpntransformesp-3desesp-sha-hmacvpngate1(cfg-crypto-trans)#exitvpntransformTransformsetnamevpngate1Remoteclient创建动态cryptomaprouter(config)#cryptodynamic-mapdynamic-map-name

dynamic-seq-numvpngate1(config)#cryptodynamic-mapmaptemplate1vpngate1(config-crypto-map)#settransform-setvpntransformvpngate1(config-crypto-map)#reverseroutevpngate1(config-crypto-map)#exitmaptemplate1Cryptomapname/sequence#vpngate1动态cryptomap与静态cryptomap静态cryptomap中要配置保护流量的ACL等EasyVPN模式下client的地址是变化的,定义保护流量的ACL比较困难,所以不适宜直接使用静态cryptomap动态cryptomap中不需要配置全部参数,缺少的参数可以在后续动态地配置把动态map与静态map相关联router(config)#cryptomapmap-name

seq-numipsec-isakmpdynamicdynamic-map-namevpngate1(config)#cryptomapdynmap1

ipsec-isakmpdynamicmaptemplatevpngate1Remoteclientdynmap1Cryptomapname/sequence#启用IKE的DPD死亡对端检测vpngate1router(config)#cryptoisakmpkeepalivesecsretries

vpngate1(config)#cryptoisakmpkeepalive20101)DPDSend:Areyouthere?2)DPDReply:YesIamhere.2)DPDReply:YesIamhere.Secs:发送DPD消息的时间间隔,取值范围是10-3600秒Retries:DPD失败后隔多长时间重发,取值范围是2-60秒启用AAA登录认证router(config)#aaaauthenticationloginlist-namemethod1[method2…]vpngate1(config)#aaaauthenticationloginvpnuserslocalvpngate1(config)#usernameuser1passwordpass1vpngate1(config)#usernameuser2passwordpass2vpngate1RemoteclientvpnusersVPNusergroup定义扩展认证Xauth的超时时间router(config)#cryptoisakmpxauthtimeoutsecondsvpngate1(config)#cryptoisakmpxauthtimeout20vpngate1RemoteclientvpnusersVPNusergroup20seconds把Xauth认证方式与cryptomap关联router(config)#cryptomapmap-nameclientauthenticationlistlist-namevpngate1(config)#cryptomapdynmapclientauthenticationlistvpnusersvpngate1RemoteclientvpnusersVPNusergroupdynmap1Cryptomapname把cryptomap应用到路由器的端口vpngate1(config)#interfaceethernet0/1vpngate1(config-if)#cryptomapdynmapvpngate1(config-if)#exitdynmap1Cryptomapnamevpngate1Remotecliente0/1EasyVPN在client端的配置步骤1点击“new”创建一个新条目EasyVPN在client端的配置步骤2设置EasyVPNserver的IP地址EasyVPN在client端的配置步骤3设置组名和对应的pre-sharekeyXauth扩展认证如果设置了Xauth扩展认证,在连接的过程中会提示输入用户名/口令连接成功后的状态信息目录VPN简介IPSecVPNBGP/MPLSVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置BGP/MPLSVPN的工作原理BGP/MPLSVPN的配置示例VPN中的角色CECECECEPEPEPP运营商网络用户网络用户网络CE(CustomEdgeRouter),用户边缘路由器,直接与运营商网络相连PE(ProviderEdgeRouter),运营商边缘路由器,与CE相连,主要负责VPN业务的接入。P(ProviderRouter):运营商核心路由器,主要完成路由和快速转发功能。对IPSecVPN的回顾CECECECEPEPEPPIPSec隧道在CE与CE之间建立,需要用户自己创建并维护VPNIPSecVPN的创建以及相关用户路由的配置等都需要手工完成扩展不方便,如果用户VPN网络中新增一个节点,需要完成以下工作:1.在这个新增结点上建立与所有已存在的N个结点的隧道及相关的路由;2.对于已存在的N个结点,需要在每个结点上都建立一个与新增结点之间的隧道及相关的路由。VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.0IPSecVPNtunnelVPN_A10.4.0.0BGP/MPLSVPN要达到的目标CECECECEPEPEPP隧道在PE与PE之间建立,用户不需要自己维护VPN把VPN隧道的部署及路由发布变为动态实现VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.0VPNtunnel要解决的主要问题CECECECEPEPEPP提供一种动态建立的隧道技术解决不同VPN共享相同地址空间的问题VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.0MPLSBGPVPNtunnel动态隧道----MPLSMPLS与动态隧道MPLS(MultiProtocollabelSwitch,多协议标签交换)是根据标签对数据包进行转发,因此在三层数据包中可以使用私有地址,从而形成了一种天然的隧道。MPLS标签的分发可以通过LDP等协议动态完成,所以MPLS能够提供动态的隧道。三层包头MPLS标签二层包头MPLS包头结构MPLS包头通常有32Bit:20Bit用作标签(Label)3个Bit的EXP,协议中没有明确,通常用作COS1个Bit的S,用于标识是否是栈底,表明MPLS的标签可以嵌套。理论上,标记栈可以无限嵌套,从而提供无限的业务支持能力。8个Bit的TTL2层头部MPLS头部IP头部数据标签EXPSTTL32Bit020232432MPLS标签的生成1R1R2R3R4172.16.1/24路由器发现有直连路由时就会向外发送标签172.16.1/24Label20In20MPLS标签的生成2R1R2R3R4172.16.1/24路由器发现自己有直连路由时就会向外发送标签收到下游到某条路由的标签并且该路由生效(也就是说,在本地已经存在该条路由,并且路由的下一跳和标签的下一跳相同)时会发送标签。172.16.1/24Label20In20172.16.1/24In20out20172.16.1/24In30out20Label30Label40Label50172.16.1/24out30MPLS标签生成的要点R1R2R3R4172.16.1/24运行MPLS的路由器中必须同时运行普通路由协议通过标签形成的路经,与查找路由表形成的路径是相同的In标签是由本地路由器发给其他路由器的,Out标签是由其他路由器发给自己的。172.16.1/24Label20In20172.16.1/24In20out20172.16.1/24In30out20Label30Label40Label50172.16.1/24out30MPLS数据包转发R1R2R3R4172.16.1/24172.16.1/24In20172.16.1/24In30out20172.16.1/24out30172.16.1.21302172.16.1.2303172.16.1.2204172.16.1.2205172.16.1.26172.16.1.2MPLS的优化1R1R2R3R4172.16.1/24172.16.1/24In20172.16.1/24In30out20172.16.1/24out30172.16.1.21302172.16.1.2303172.16.1.2204172.16.1.2205172.16.1.26172.16.1.2最后一跳路由器收到数据包后,并不需要进行标签转发,所做的只是去掉标签,然后送交IP层。最好在倒数第二跳路由器就去掉标签,直接把IP报文发送给最后一跳路由器。问题:路由器怎么知道自己是倒数第二跳?MPLS的优化2R1R2R3R4172.16.1/24172.16.1/24In3172.16.1/24In30out3172.16.1/24out30172.16.1.21302172.16.1.2303172.16.1.24172.16.1.25172.16.1.2最后一跳路由器向倒数第二跳分配一个特殊的标签3。路由器查看标签转发表,如果发现out标签是3,就认为自己是倒数第二跳路由器。标签分配方式(优化前)标签分配方式(优化后)转发方式(优化前)转发方式(优化后)倒数第一跳随机分配分配特定的标签3标签弹出,IP路由转发IP路由转发倒数第二跳随机分配随机分配标签交换标签弹出地址冲突----BGP地址冲突的细分CECECECEPEPEPP本地路由冲突问题,即在同一台PE上如何区分不同VPN的相同路由。(PE发时)路由在网络中的传播问题,即在PE上接收到来自不同VPN的两条相同路由时,如何进行辨别(PE收时)数据包的转发问题,即使成功解决了路由表的冲突,但在PE接收到一个IP数据包时,怎么知道该发给那个VPN?因为IP数据包头中唯一可用的信息就是目的地址,而很多VPN中都可能存在这个地址。VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.0解决本地路由冲突的思路CECEPE在PE上同时维护多张相互独立路由表一张全局路由表(公网路由表)为每个VPN建立一个路由表由于每个VPN使用自己独立的路由表,因此可以有效地解决本地路由冲突。VPN_AVPN_B10.1.0.010.1.0.0GlobalRoutingTableVRFforVPN-AVRFforVPN-BVPNRoutingTableIGP&/orBGPVRFVRF(VPNRouting&ForwardingInstance,VPN路由转发实例)可以看作虚拟的路由器,该虚拟路由器包括以下元素:一张独立的路由表,从而包括了独立的地址空间;一组归属于这个VRF的路由器接口的集合;一组只用于本VRF的路由协议。问题:VRF实现了不同VPN之间路由的隔离,这并不够,如何实现VRF之间的路由发布和交互呢?RT(Routetarget)PE2PE1Vrf1:exportredimportredVrf2:exportyellowimportyellowVrf3:exportredimportredVrf4:exportyellowimportyellowVPN-AVPN-BRT的本质是每个VRF表达自己的路由取舍及喜好的方式,分为两部分:exporttarget,表示发出路由的属性importtarget,表示愿意接收什么路由RT的灵活应用每个VRF中都可以配置多个exporttarget和importtarget属性,接收时采用“或”操作,从而实现灵活的VPN访问控制总结:VRF作用:1、问题:如何在PE之间传递各VRF中的路由以及相应的RT?BGP的引入解决办法:使用BGP路由协议BGP简介AS100AS200AS300BGP是外部路由协议,用在自治系统AS之间传递路由信息,属于增强型的距离矢量路由协议。BGP邻居分为两类:IBGP(同一个AS内的邻居)和EBGP(不同AS间的邻居)BGP邻居之间通过TCP协议相连,因此可以在不直接相连的路由器间交换路由信息用BGP传递VPN路由的好处CECECECEPEPEPPVPN路由信息可以直接在PE之间传递,所以P路由器中不会包含任何VPN路由信息。VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.0BGP连接BGP报文的种类Open:用于建立BGP邻居关系,是BGP路由器之间的初始握手信息Keepalive:定期检测BGP邻居是否存活Update:发送路由更新信息Notification:检测到差错时发送该报文Update报文的格式不可达路由长度(2byte)不可达路由withdrawnroutes(变长)路由属性长度(2byte)路由属性(变长)可达路由信息NLRI(变长)不可达路由中不携带路由属性,可达路由同时携带路由属性一个update报文中可以携带多条不可达路由信息,可携带多条具有相同路由属性的可达路由信息常见的路由属性OriginAs-pathNext-hopCommunity:团体属性,可用来对入路由和出路由进行过滤。Community:20:101Community:20:102只接收Community为20:102的路由R1R2R3RT的表示可以用扩展的community来表示RT,type字段为0x0002或者0x0102时是RT。Type(0x0002)

AS#(16bit)Value(32bit)Type(0x0102)IPaddress(32bit)Value(16bit)可见RT有两种表示方法:AS:nn和ipaddress:nn。通常建议使用AS:nn表示法路由传播的冲突问题CECECECEPEPE

RT属于BGP的路由属性,而在BGP的不可达路由信息中不包含路由属性。所以在收到来自不同vpn、具有相同网段的不可达路由信息时,路由器将无法根据RT来分辨。VPN_AVPN_AVPN_BVPN_B10.1.0.010.1.0.010.3.0.010.3.0.010.3.0.0/1610.3.0.0/16问题:RT能否解决路由传播的冲突问题?RD(RouteDistinguisher)每个VRF中分别配置一个标识,称为RD。在PE发布VRF中的路由信息时,会在地址前面加上RD,以便接收方PE区分来自不同VRF的路由信息。RD的长度为8个字节,格式与RT相似。在IPv4地址前加上RD之后,就称为VPN-IPv4地址族。RD的本质通常建议为一个VPN中的VRF都配置相同的RD,不同的VPN配置不同的RD。事实上分配RD只需遵循以下原则:保证存在相同地址的两个VRF的RD不同。RD并不会影响不同VRF之间的路由选择以及VPN的形成,这些事情由RT完成。PE与CE之间传递的是IPv4路由,PE与PE之间传递的是VPN-IPv4路由。数据包转发的冲突问题解决本地路由和路由传播的冲突问题后,如果一个PE的两个VRF中同时存在10.1.0.0/16的路由,当接收到一个目的地址为10.1.0.1的数据包时,PE如何知道该把这个数据包发给与哪个VRF相连的CE?既然路由发布时已经携带了RD,能否在发送数据包时也在地址前面加上RD呢?理论上可以,但是RD太长,会导致转发效率的降低,所以只需要一个短小、定长的标记即可。由于公网的隧道已经由MPLS来提供,而且MPLS支持多层标签的嵌套,因此这个标记可定义成MPLS标签的格式。对BGP的要求要求支持VPN-IPv4路由,而原有的BGP只支持IPv4路由。要求路由信息中包含私网MPLS标签。BGP的多协议扩展----MP-BGPBGP增加了两个扩展属性MP_REACH_NLRI和MP_UNREACH_NLRI。使用了这两种属性的BGP称为MP-BGPAddress-family:指明使用了VPN-IPV4地址族Next-hop:路由的下一跳地址Label:24bit,与MPLS标签一样,但没有TTL字段Prefix:64bit的RD+IP前缀MP_REACH_NLRI的结构BGP/MPLSVPN的关键流程CE与PE之间交换路由CECEPEPE维护独立的路由表,包括公网和VRF路由表:公网路由表:包含全部PE和P路由器之间的路由,由骨干网IGP产生VRF路由表:包含本VPN内的路由信息。PE和CE通过标准的EBGP、OSPF、RIP或者静态路由交换VRF路由信息VPN_AVPN_B10.1.0.010.1.0.0PE私网路由公网路由VRF路由注入MP-iBGPCE向PE发送的是标准IPv4路由,PE接收到路由后会进行以下操作:加上RD(RD为手工配置),变为一条VPN-IPv4路由更改下一跳属性为本PE的Loopback地址加上私网标签(随机自动生成,无需配置)加上RT属性(RT需手工配置)发给所有的PE邻居

MP-iBGPBGP,OSPF,RIPv2updatefor149.27.2.0/24,NH=CE-1VPN-v4update:

RD:1:27:149.27.2.0/24,Next-hop=PE-1

RT=VPN-A,Label=(28)CE1CE2PE1PE2149.27.2.0/24MP-iBGP路由注入VRFPE接收到MP-iBGP路由后,首先剥离RD成为IPv4路由,然后根据本地VRF的importRT属性把路由加入到相应的VRF中,私网标签保留,留做转发时使用。通过本VRF的路由协议引入上述路由并转发给相应的CE。

MP-iBGPBGP,OSPF,RIPv2updatefor149.27.2.0/24,NH=CE-1VPN-v4update:

RD:1:27:149.27.2.0/24,Next-hop=PE-1

RT=VPN-A,Label=(28)CE1CE2PE1PE2149.27.2.0/24BGP,OSPF,RIPv2updatefor149.27.2.0/24,NH=PE-2分配PE之间的公网标签PE和P路由器通过骨干网IGP学习到BGP邻居下一跳的地址通过运行LDP协议,分配标签,建立标签转发通道标签栈用于报文转发,外层标签用来指示如何到达BGP下一跳,内层标签表示报文属于哪个VRFMPLS节点转发是基于外层标签,而不管内层标签是多少Prouter

InLabelFECOutLabel-197.26.15.1/32-InLabelFECOutLabel41

197.26.15.1/32

3

InLabelFECOutLabel

-

197.26.15.1/3241Uselabel3fordestination197.26.15.1/32Uselabel41fordestination197.26.15.1/32VPN-v4update:

RD:1:27:149.27.2.0/24,NH=197.26.15.1

RT=VPN-A,Label=(28)PE-1CE1149.27.2.0/24CE2数据包转发-从CE到入口PECE将报文发给与其相连的VRF接口。PE在本VRF的路由表中进行查找,得到该路由的公网下一跳地址(即对端PE的Loopback地址)和私网标签。将该报文封装一层私网标签后,在公网的标签转发表中查找下一跳地址,再封装一层公网标签,然后交给MPLS转发。Prouter

InLabelFECOutLabel

-

197.26.15.1/3241PE-1CE1149.27.2.0/24CE2149.27.2.27VPN-AVRF

149.27.2.0/24,NH=197.26.15.1

Label=(28)2841149.27.2.27入口PE->出口PE->CE该报文在公网上沿着LSP转发,并根据途径的每一台设备的标签转发表进行标签交换。在倒数第二跳处,将外层的公网标签弹出,交给目的PE。PE根据内层的私网标签判断该报文的出接口和下一跳。去掉私网标签后,请报文转发给相应的VRF中的CE。ProuterPE-1CE1149.27.2.0/24CE2149.27.2.27VPN-AVRF

149.27.2.0/24,NH=197.26.15.1

Label=(28)2841149.27.2.2728149.27.2.27InLabelFECOutLabel41

197.26.15.1/32

3InLabelFECOutL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论