首页资源分类嵌入式开发其它 > 同辉 VPN完整版

同辉 VPN完整版

已有 451617个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:同辉VPN完整版

    分    享:

    文档简介

    51CTO下载-同辉 VPN完整版

    文档预览

    VPN完整版 目录 简述...................................................................................................................................................3 隧道技术(Tunnel) ........................................................................................................................ 5 GRE(Generic Routing Encapsulation)...........................................................................................8 概述...........................................................................................................................................8 配置GRE .................................................................................................................................. 11 GRE keepalive..........................................................................................................................27 配置GRE keepalive..................................................................................................................28 加密技术.........................................................................................................................................41 加密算法.................................................................................................................................41 HMAC(Hashed Message Authentication Code) .................................................................44 IPsec(IP Security) .......................................................................................................................45 概述.........................................................................................................................................45 IKE(Internet Key Exchange)................................................................................................47 SA(Security Association) ............................................................................................50 IKE Phase One .................................................................................................................52 IKE Phase Two..................................................................................................................53 IPsec Mode..............................................................................................................................54 ESP(Encapsulating Security Protocol) ................................................................................58 AH(Authentication Header) ...............................................................................................60 Transform Set ..........................................................................................................................62 Crypto Map .............................................................................................................................62 隧道分离(Split Tunneling).................................................................................................63 IPsec LAN-to-LAN VPN(LAN-to-LAN VPN)..................................................................................63 概述.........................................................................................................................................63 Router-to-Router LAN-to-LAN VPN .........................................................................................66 Router-to-PIX LAN-to-LAN VPN...............................................................................................93 Router-to-ASA LAN-to-LAN VPN............................................................................................116 IPsec Dynamic LAN-to-LAN VPN(DyVPN) ................................................................................138 概述.......................................................................................................................................138 Router-to-Router Dynamic LAN-to-LAN VPN ........................................................................141 Router-to-PIX Dynamic LAN-to-LAN VPN..............................................................................180 Router-to-ASA Dynamic LAN-to-LAN VPN.............................................................................182 Point-to-Point (p2p) GRE over IPsec..............................................................................................185 第 1 页共 844 页 概述.......................................................................................................................................185 Static p2p GRE over IPsec......................................................................................................189 Dynamic p2p GRE over IPsec.................................................................................................230 Dynamic Multipoint VPN(DMVPN)..........................................................................................256 概述.......................................................................................................................................256 multipoint GRE (mGRE).........................................................................................................257 Next Hop Resolution Protocol (NHRP) ..................................................................................260 配置DMVPN .......................................................................................................................... 267 IPsec VPN Feature .........................................................................................................................320 IPsec Dead Peer Detection(IPsec DPD) ............................................................................320 IPsec SA Idle Timer................................................................................................................351 IPsec Preferred Peer..............................................................................................................373 Reverse route injection (RRI).................................................................................................393 IPsec VPN High Availability....................................................................................................410 Stateful Failover for IPsec......................................................................................................445 NAT Traversal(NAT-T)........................................................................................................484 Easy VPN(EzVPN) .....................................................................................................................520 概述.......................................................................................................................................520 EzVPN over Router ................................................................................................................525 EzVPN over PIX......................................................................................................................562 EzVPN over ASA.....................................................................................................................587 SSL VPN(WebVPN) ...................................................................................................................615 概述.......................................................................................................................................615 SSL VPN over Router .............................................................................................................619 SSL VPN over ASA..................................................................................................................661 PPTP VPN.......................................................................................................................................695 概述.......................................................................................................................................695 PPTP VPN over Router...........................................................................................................697 PPTP VPN over PIX ................................................................................................................739 L2TP VPN.......................................................................................................................................760 概述.......................................................................................................................................760 L2TP VPN over Router ...........................................................................................................762 L2TP over IPsec on PIX ..........................................................................................................788 L2TP over IPsec on ASA .........................................................................................................817 第 2 页共 844 页 友情提示: ★本文旨在努力使用最简单明了的语言与实验向您解述当前最常用的几乎所 有类型的 VPN,通读本文,您将熟练掌握几乎所有类型 VPN 的理论与配置! ★本文旨在成为您学习 VPN 的最佳教材、最佳笔记、最佳实验手册! 简述 当不同的远程网络通过 Internet 连接时,比如上海和北京的两个分公司通过 Internet 连接时,网络之间的互访将会出现一些局限性,如下拓朴所示: 在上图中,由于上海和北京的两个分公司内部网络分别使用了私有 IP 网段 10.1.1.0 和 192.168.1.0,而私有 IP 网段是不能传递到 Internet 上进行路由的,所以 两个分公司无法直接通过私网地址 10.1.1.0 和 192.168.1.0 互访,如 R2 无法直接通 过访问私网地址 192.168.1.4 来访问 R4。在正常情况下,上图中两个分公司要互访, 可以在连接 Internet 的边界路由器上配置 NAT 来将私网地址转换为公网地址,从而 实现两个私有网络的互访。 但是在某些特殊需求下,两个分公司需要直接通过对方私有地址来访问对方网 第 3 页共 844 页 络,而不希望通过 NAT 映射后的地址来访问,比如银行的业务系统,某银行在全国 都有分行,而所有的分行都需要访问总行的业务主机系统,但这些业务主机地址并 不希望被 NAT 转换成公网地址,因为银行的主机不可能愿意暴露在公网之中,所以 分行都需要直接通过私网地址访问总行业务主机;在此类需求的网络环境中,我们 就必须要解决跨越 Internet 的网络与网络之间直接通过私有地址互访的问题。 请再看如下拓朴的网络环境: 在上图的网络环境中,上海与北京两个分公司网络通过路由器直接互连,虽然 两个公司的网络都是私有网段,但是两个网络是直连的,比如上海分公司的数据从 本地路由器发出后,数据包直接就丢到了北京分公司的路由器,中间并没有经过任 何第三方网络和设备,所以两个分公司直接通过对方私有地址互访没有任何问题。 由上图环境可知,只要两个网络直接互连而不经过任何第三方网络,那么互连 的网络之间可以通过真实地址互访,而无论其真实地址是公网还是私网。例如上海 与北京这样的远距离网络要直连从而实现直接通过私有地址互访,要在公司之间自 行铺设网络电缆或光纤是完全不可能的,可以选择的替代方法就是向 ISP 申请租用 线路,这样的租用线路称为专线,专线是 ISP 直接将两个公司连接起来的线路,完 全是公司与公司的路由器直连,用户不会感觉到 Internet 的存在,所以通过租用 ISP 专线连接的网络之间可以直接通过对方私有地址进行互访。至于 ISP 的专线是如何 实现的,您不必担忧,通常是使用二层技术实现的,但是专线的租用价格是相当昂 贵的,有时是根据距离和带宽收费的,所以在某些时候,在公司之间通过租用 ISP 专线连接的成本可能无法承受,因此,人们尝试着使用网络技术让跨越 Internet 的 第 4 页共 844 页 网络模拟出专线连接的效果,这种技术,就是隧道技术(Tunnel),也是当前很常见 的 VPN(Virtual Private Network)技术,本文将全力解述 VPN 技术,需要强烈说明, 如果不能实现隧道功能的 VPN,不能称为 VPN。 隧道技术(Tunnel) 由于在某些环境下,通过 Internet 连接的远程网络之间,双方需要直接使用对 方私有 IP 地址来互访,而私有 IP 网段是不能传递到 Internet 上进行路由的,在数据 包封装为私有 IP 发到 Internet 之后,由于 Internet 的路由器没有私有 IP 网段,所以 最终数据包将全部被丢弃而不能到达真正目的地。如下图: 上图中,上海分公司要访问北京分公司的 R4,如果通过将数据包目的 IP 封装 为 192.168.1.4,该数据包到达 Internet 后是会被丢弃的,因为 Internet 没有 192.168.1.0 的路由,所以数据包也就不可能到达北京分公司的路由器;从图中我们不难发现, 除非数据包的目的 IP 为 200.1.1.1,才能到达北京分公司的路由器,否则别无它法, 所以上海公司发出去的数据包的目标 IP 只有封装为 200.1.1.1 才能到达北京分公司 的路由器 R3,既然如此,我们就思考着想办法将数据包原来的私有 IP 地址先隐藏 起来,在外部封装上公网 IP,等数据包通过公网 IP 被路由到该 IP 的路由器后,再 第 5 页共 844 页 由该路由器剥除数据包外层的公网 IP,从而发现数据包的私有 IP 后,再通过私有 IP 将数据包发到真正的目的地。可以肯定,完成数据包封装与解封装的路由器必须既 能与 Internet 直接通信,也能与私有网络通信。在上图中,上海分公司的 R2 要想直 接通过私有 IP 地址 192.168.1.4 与北京分公司的 R4 通信,在数据包的目标 IP 封装为 192.168.1.4 发到路由器 R1 之后,R1 就必须将整个数据包当成数据,然后在该数据 包的外层再次将北京分公司路由器 R3 的公网 IP 地址 200.1.1.1 写上,然后发到 Internet,Internet 根据数据包的公网 IP 地址 200.1.1.1 将数据包路由到 R3,然后 R3 将数据包的公网 IP 剥除后,看见私有 IP 地址 192.168.1.4,然后再根据该地址将数 据包发到 R4,最终实现了上海分公司通过私有 IP 地址 192.168.1.4 访问北京分公司 网络的功能。 上个例子中,通过在目标 IP 为私有 IP 的数据包外面封装公网 IP,从而实现远 程网络之间使用私有 IP 通信的技术,称为隧道技术,由此可见,在隧道中传递的数 据包至少包含着两个 IP 包头(两个 IP 地址),最外面的 IP 地址肯定是公网 IP,以用 作在 Internet 中路由该数据包,里面的 IP 应该是私有 IP,就是目标主机的真实 IP。 通过隧道连接的两个远程网络就如同直连,隧道达到的效果,就是网络直连的效果。 隧道就像一辆汽车,原本为私有 IP 的数据包就像是乘客,路途中只看汽车不看乘客, 只要汽车能去哪个地方,汽车里的乘客就可以被送到哪个地方,在行驶过程中,车 内的乘客不受干扰。被隧道再次封装公网 IP 的数据包协议称为乘客协议(Passenger protocol),不是所有类型协议的数据包能被隧道封装,所以对于隧道来说,乘客协 议(Passenger protocol)是有范围限制的,但本文只谈 IP 协议。隧道中传输的数据 包格式如下图: 第 6 页共 844 页 就隧道技术有多种实现方式,也就存在多种隧道协议,隧道可以实现远程网络 之间通过私有 IP 地址互访,隧道技术,就是 VPN 技术,要实现 VPN,就是 实现隧道, 不能实现隧道,就不叫 VPN。下文将全力解述最有用的隧道技术与 VPN 技术。 隧道协议目前共有: GRE(Generic Routing Encapsulation) IP Security (IPsec) Secure Sockets Layer/Transport Layer Security (SSL/TLS) VPN (WebVPN) Point-to-Point Tunneling Protocol (PPTP) Layer Two Tunneling Protocol (L2TP) 第 7 页共 844 页 GRE(Generic Routing Encapsulation) 概述 GRE 是一种最传统的隧道协议,其根本功能就是要实现隧道功能,通过隧道连 接的两个远程网络就如同直连,GRE 在两个远程网络之间模拟出直连链路,从而使 网络间达到直连的效果,为此,GRE 需要完成多次封装,总共有 3 次,换句话说, 就是在 GRE 隧道中传输的数据包都有 3 个包头,因为我们只谈 IP 协议,所以 GRE 中的 IP 数据包是一层套一层,总共有 3 个 IP 地址。GRE 在实现隧道时,需要创建虚 拟直连链路,GRE 实现的虚拟直连链路可以认为是隧道,隧道是模拟链路,所以隧 道两端也有 IP 地址,但隧道需要在公网中找到起点和终点,所以隧道的源和终点分 别都以公网 IP 地址结尾,该链路是通过 GRE 协议来完成的,隧道传递数据包的过程 分为 3 步: 1.接收原始 IP 数据包当作乘客协议,原始 IP 数据包包头的 IP 地址为私有 IP 地 址。 2.将原始 IP 数据包封装进 GRE 协议,GRE 协议称为封装协议(Encapsulation Protocol),封装的包头 IP 地址为虚拟直连链路两端的 IP 地址。 3.将整个 GRE 数据包当作数据,在外层封装公网 IP 包头,也就是隧道的起源和 终点,从而路由到隧道终点。 GRE 隧道中传输的数据包格式如下: 第 8 页共 844 页 注: ★其中公网 IP 包头部分也称为传输协议(Transport Protocol) ★GRE 会在原始 IP 数据包之外,额外多封装 24 字节或 28 字节,具体视 GRE 模 式而定。 以下图为例,解释 GRE 传输数据过程: 第 9 页共 844 页 www.china-ccie.com GRE 要在远程路由器之间创建虚拟直连链路,也就是隧道(Tunnel),如果没有 该隧道,GRE 不能完成隧道功能,隧道是 GRE 最基本的功能,也是 GRE 所有功能; 上图环境中,当上海分公司 R2 将数据包 IP 地址封装为 192.168.1.4 发往北京分公司 的 R4 时,GRE 操作过程如下: 1.假设 R1 与 R3 的 GRE 虚拟直连链路(隧道)已经建立,隧道链路两端的地址 分别为 1.1.1.1 和 2.2.2.2,隧道两端的起源和终点分别为 100.1.1.1 和 200.1.1.1。 2.R1 收到目标 IP 为 192.168.1.4 的数据包后,将原始数据包当作乘客数据包封 装进 GRE 协议中,并且添加 GRE 包头,包头中源 IP 为隧道本端地址 1.1.1.1,包头 中目标 IP 为隧道对端地址 1.1.1.2,从而完成 GRE 数据包的封装。 3.在封装了 GRE 隧道地址的数据包外面封装 GRE 隧道起源 IP 地址,该 IP 地址 为公网地址,即源 IP 为 100.1.1.1,目标 IP 为隧道终点 200.1.1.1,最后将数据包发 出去。 封装后的数据包如下: 第 10 页共 844 页 数据包被发到 Internet 之后,所有路由器只根据数据包最外面的公网 IP 进行转 发,也就是只根据公网目标 IP 地址 200.1.1.1 来转发,直到数据包到达公网 IP 的真 正目的地后,即到达 R3(IP:200.1.1.1)之后,公网 IP 包头才会被剥开,当 R3 剥 开数据包的公网 IP 包头后,发现 GRE 包头,发现目标 IP 为 1.1.1.2,从而得知自己 就是 GRE 隧道的终点,所以继续将 GRE 包头剥开,最后发现目标 IP 地址为 192.168.1.4,然后将数据包发往 192.168.1.4(路由器 R4)。 通过以上 GRE 过程,上海分公司 R2 直接通过私有 IP 地址 192.168.1.4,最终成 功与北京分公司 R4 通信。 配置 GRE 第 11 页共 844 页 在远程路由器之间配置 GRE,总共分为三步: 1.创建虚拟链路(隧道)接口,号码任意,两端可不相同。 2.配置虚拟链路(隧道)接口地址,该地址是在 GRE 包头中被封装的地址。 3.定义虚拟链路(隧道)的源和目的,因为数据包最终要在公网中传递,所以 该地址就是在公网中指导路由器转发数据包的可路由公网 IP,也是建立隧道两端路 由器的真实公网 IP。 注: ★GRE Tunnel 只支持路由器,不支持集中器和 PIX 以及 ASA。 ★GRE 支持的协议有 IP ,Decnet,IPX,Appletalk。 ★GRE 可分为 point-to-point GRE 和 multipoint GRE(mGRE)两种。 ★point-to-point GRE 只能在两台路由器之间建立。 ★multipoint GRE(mGRE)也可以在两台以上的路由器之间建立。 ★point-to-point GRE 支持 IP 单播,组播,以及 IGP 动态路由协议和非 IP 协议。 ★multipoint GRE(mGRE)只支持单播,组播以及动态 IGP 路由协议,不支持非 IP 协议。 本小节只讨论 point-to-point GRE,而 multipoint GRE(mGRE)将在后续内容中讨 论。 GRE 隧道接口没有 OSI 一层协议做检测,只要本端源地址有效,并且隧道终点地 第 12 页共 844 页 址有路由可达,那么 GRE 隧道接口就会 up,而无论隧道对端是否已经配置隧道接口; 如果 GRE 隧道的接口状态要 down,只要达到如下 3 个情况中任意一个即可: 1.没有去往隧道终点地址的路由。 2.去往隧道终点地址的路由指向了隧道接口自己。 3.隧道起源地址的接口状态为 down。 以下图为例,配置 GRE 说明:图中 Internet 使用路由器 R5 来模拟。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 第 13 页共 844 页 r1(config-if)#ip address 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config)#int F0/1 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.5 说明:配置 R1 的接口地址,并写默认路由指向 Internet(路由器 R5),地址 100.1.1.5。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 10.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R2 的接口地址,并写默认路由指向 R1。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 200.1.1.1 255.255.255.0 第 14 页共 844 页 r3(config-if)#no sh r3(config)#int f0/1 r3(config-if)#ip address 192.168.1.3 255.255.255.0 r3(config-if)#no sh r3(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.5 说明:配置 R3 的接口地址,并写默认路由指向 Internet(路由器 R5),地址 200.1.1.5。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 说明:配置 R4 的接口地址,并写默认路由指向 R3。 (5)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 100.1.1.5 255.255.255.0 第 15 页共 844 页 r5(config-if)#no sh r5(config)#int f0/0 r5(config-if)#ip add 200.1.1.5 255.255.255.0 r5(config-if)#no sh 说明:配置 R5 的接口地址,因为 R5 模拟 Internet,R5 只需要有公网路由 100.1.1.0 和 200.1.1.0 即可,所以 R5 不需要写任何路由,也不允许写任何路由。 2.测试基础网络环境 (1)查看 R5 的路由表: r5#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B – BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 16 页共 844 页 Gateway of last resort is not set 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/1 C 200.1.1.0/24 is directly connected, FastEthernet0/0 r5# 说明:因为 R5 为 Internet 路由器,所以 R5 只有公网路由,没有用户的私网路由, 也不应该有用户的私网路由。 (2)测试上海分公司路由器 R1 到北京分公司路由器 R3 的连通性: r1#ping 200.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 200.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/106/288 ms r1# 说明:因为双方路由器都接入 Internet,所以使用公网地址 100.1.1.1 和 200.1.1.1 是可以正常通信的。 (3)测试上海分公司 R2 直接使用私有地址 192.168.1.4 到北京分公司 R4 的连 通性: 第 17 页共 844 页 r2#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r2# 说明:因为 Internet 中的路由器只有公网路由,没有用户的私有网段,所以上海 分公司 R2 直接使用私有地址 192.168.1.4 与北京分公司 R4 无法通信。 (4)跟踪上海分公司 R2 到北京分公司的路径信息: r2#traceroute 192.168.1.4 Type escape sequence to abort. Tracing the route to 192.168.1.4 1 10.1.1.1 104 msec 100 msec 80 msec 2*** 3*** 4 r2# 说明:从结果中可以看出,由于 Internet 没有用户的私有网段,所以数据包出了 第 18 页共 844 页 公司路由器后,到达 Internet 就被丢弃了。 3.在上海分公司与北京分公司之间配置 GRE 隧道 (1)在上海分公司路由器 R1 上配置连接到北京分公司路由器 R3 的 GRE 隧道: r1(config)#interface tunnel 1 r1(config-if)#ip address 1.1.1.1 255.255.255.0 r1(config-if)#tunnel source 100.1.1.1 r1(config-if)#tunnel destination 200.1.1.1 r1(config-if)#exit 说明:在 R1 上创建 GRE 虚拟链路(隧道)接口,号码为 1,两端号码可不相同; 隧道接口地址为 1.1.1.1/24,隧道的起源为 100.1.1.1,隧道的终点为 200.1.1.1。 (2)查看 R1 当前的隧道接口状态: r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.1/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 100.1.1.1, destination 200.1.1.1 第 19 页共 844 页 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input never, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r1# 第 20 页共 844 页 说明:可以看出,在 R1 创建 GRE 隧道之后,隧道接口状态便已经 up,这是因为 默认情况下,GRE 隧道接口没有 OSI 一层协议做检测,只要本端源地址有效,并且 隧道终点地址有路由可达,那么 GRE 隧道接口就会 up,而无论隧道对端是否已经配 置隧道接口。 (3)在北京分公司路由器 R3 上配置连接到上海分公司路由器 R1 的 GRE 隧道: r3(config)#interface tunnel 3 r3(config-if)#ip address 1.1.1.2 255.255.255.0 r3(config-if)#tunnel source 200.1.1.1 r3(config-if)#tunnel destination 100.1.1.1 r3(config-if)#exit 说明:在 R3 上创建 GRE 虚拟链路(隧道)接口,号码为 3,两端号码可不相同; 隧道接口地址为 1.1.1.2/24,隧道的起源为 200.1.1.1,隧道的终点为 100.1.1.1。 (4)查看 R3 当前的隧道接口状态: r3#show interfaces tunnel 3 Tunnel3 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.2/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set 第 21 页共 844 页 Keepalive not set Tunnel source 200.1.1.1, destination 100.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input never, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 第 22 页共 844 页 www.china-ccie.com 0 output buffer failures, 0 output buffers swapped out r3# 说明:R3 上 GRE 隧道状态也已经 up。 4.测试 GRE 隧道 (1)测试 R1 与 R3 之间的 GRE 隧道连通性: r1#ping 1.1.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/96/196 ms r1# 说明:因为 R1 与 R3 双方 GRE 隧道已经成功建立,并且状态都为 up,所以隧道 连通性正常。 (2)再次测试上海分公司 R2 直接使用私有地址 192.168.1.4 到北京分公司 R4 的连通性: r2#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: 第 23 页共 844 页 www.china-ccie.com ..... Success rate is 0 percent (0/5) r2# 说明:上海分公司的路由器 R1 在收到去往 192.168.1.4 后,因为默认路由从真实 接口 F0/1 出去,结果数据包被发到 Internet 中的路由器 R5,由于 Internet 路由器 R5 只有公网路由,没有用户的私有网段,所以上海分公司 R2 直接使用私有地址 192.168.1.4 与北京分公司 R4 无法通信,如下是 R1 路由表: r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.5 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnets 第 24 页共 844 页 C 1.1.1.0 is directly connected, Tunnel1 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 100.1.1.5 r1# www.china-ccie.com 要解决此问题,必须让流量从 GRE 隧道中传输。 (3)在创建 GRE 隧道的路由器双方将去往对方私有网段的数据包引入 GRE 隧 道中传输: R1: r1(config)#ip route 192.168.1.0 255.255.255.0 tunnel 1 R3: r3(config)#ip route 10.1.1.0 255.255.255.0 tunnel 3 (4)再次测试上海分公司 R2 直接使用私有地址 192.168.1.4 到北京分公司 R4 的连通性: 第 25 页共 844 页 r2#ping 192.168.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/80/240 ms r2# 说明:上海分公司的路由器 R1 在收到去往 192.168.1.4 后,因为路由 192.168.1.0 已经指向 GRE 隧道,对方同样也已经回指向 GRE 隧道,所以上海分公司 R2 直接使 用私有地址 192.168.1.4 与北京分公司 R4 通信正常。 (5)再次跟踪上海分公司 R2 到北京分公司的路径信息: r2#traceroute 192.168.1.4 Type escape sequence to abort. Tracing the route to 192.168.1.4 1 10.1.1.1 108 msec 52 msec 16 msec 2 1.1.1.2 112 msec 48 msec 12 msec 3 192.168.1.4 132 msec * 96 msec 第 26 页共 844 页 www.china-ccie.com r2# 说明:可以看见,上海与北京分公司私有网段之间的流量已经在隧道中传输,所 以通信正常。 GRE keepalive 在上一小节中我们提到,GRE 隧道接口没有 OSI 一层协议做检测,只要本端源 地址有效,并且隧道终点地址有路由可达,那么 GRE 隧道接口就会 up,而无论隧道 对端是否已经配置隧道接口;如果 GRE 隧道的接口状态要 down,只要达到如下 3 个情况中任意一个即可: 1.没有去往隧道终点地址的路由。 2.去往隧道终点地址的路由指向了隧道接口自己。 3.隧道起源地址的接口状态为 down。 基于上述原因,所以在上一小节的实验中,在上海分公司路由器 R1 上配置连接 到北京分公司路由器 R3 的 GRE 隧道之后,虽然北京分公司路由器 R3 并没有配置隧 道,但 R1 上的 GRE 隧道接口状态已经变成了 up。由于 GRE 隧道是完全静态的,每 个隧道端点都不会与对端有任何交流数据包,每个端点都不保留对端的信息和状 态,所以最终结果造成无论对端是否可达或接口已经 down,本端都无法知道本端 line protocol 应该是 up 还是 down,从而无法使双方的隧道接口状态保持双方一致。 为了解决上述问题,使双方的隧道接口状态保持双方一致,引用了类似 OSPF 或 EIGRP 等路由协议之间建立邻居的机制,路由协议在邻居之间通过定期交换 hello 包, 当超过一定时间没有收到对方的 hello 包,便认为邻居已失效,从而断开与对方的 邻居关系;GRE 隧道也可以采用在隧道双方交换 hello 包的机制来使双方接口状态保 持一致,这种机制称为 GRE keepalive,隧道之间定期向对端发送 keepalive,在超过 指定的时间没有收到对端的回应,便认为对端已失效,从而将本端的 line protocol 第 27 页共 844 页 状态变为 down。 www.china-ccie.com 默认配置时,GRE keepalive 默认为 10 秒发一个,连续 3 个包没有回应,即 30 秒之后,便认为对端已失效,从而将本端的 line protocol 状态变为 down。在配置 GRE keepalive 时,即使隧道对端不支持 GRE keepalive,照样可以收到回应,并且即 使双方的发送间隔不一致,也能正常工作。 注: ★GRE keepalive 只支持 point-to-point GRE tunnel,虽然可以在 multipoint GRE (mGRE)配置,但不生效。 ★当 GRE tunnel 配置了 tunnel protection ipsec profile 时,GRE keepalive 也不生效。 配置 GRE keepalive 说明:延续上一小节的实验环境,继续测试 GRE keepalive。 1.检测当前 GRE 隧道状态 (1)查看 R1 当前的隧道接口状态: r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.1/24 第 28 页共 844 页 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, www.china-ccie.com reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 100.1.1.1, destination 200.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 01:16:00, output 01:12:27, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 54 packets input, 6476 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 第 29 页共 844 页 www.china-ccie.com 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 70 packets output, 8248 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r1# 说明:隧道接口地址为 1.1.1.1/24,隧道的起源为 100.1.1.1,隧道的终点为 200.1.1.1,因为源地址 100.1.1.1 所在的接口为正常状态,并且也有去往隧道终点 200.1.1.1 的路由,所以隧道状态为 up。 (2)清除去往隧道终点 200.1.1.1 的路由: r1(config)#no ip route 0.0.0.0 0.0.0.0 100.1.1.5 r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 30 页共 844 页 Gateway of last resort is not set www.china-ccie.com 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/0 r1# 说明:R1 上已经没有了去往隧道终点 200.1.1.1 的路由。 (3)查看 R1 上清除去往隧道终点 200.1.1.1 的路由后,隧道接口的状态: r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is down Hardware is Tunnel Internet address is 1.1.1.1/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 100.1.1.1, destination 200.1.1.1 Tunnel protocol/transport GRE/IP 第 31 页共 844 页 Key disabled, sequencing disabled www.china-ccie.com Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 01:19:18, output 01:15:45, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 54 packets input, 6476 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 70 packets output, 8248 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r1# 说明:R1 上没有了去往隧道终点 200.1.1.1 的路由后,隧道接口状态变为 down。 第 32 页共 844 页 www.china-ccie.com 2.配置 GRE keepalive (1)恢复 R1 上去往隧道终点 200.1.1.1 的路由后,再查看隧道接口状态: r1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.5 r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.1/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 100.1.1.1, destination 200.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled 第 33 页共 844 页 Tunnel transmit bandwidth 8000 (kbps) www.china-ccie.com Tunnel receive bandwidth 8000 (kbps) Last input 01:19:57, output 01:16:23, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 54 packets input, 6476 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 70 packets output, 8248 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r1# 说明:恢复 R1 上去往隧道终点 200.1.1.1 的路由后,隧道接口状态变成 up。 (2)在 R1 的隧道接口上配置 GRE keepalive: r1(config)#int tunnel 1 r1(config-if)#keepalive 5 3 第 34 页共 844 页 www.china-ccie.com 说明:配置了 keepalive 的发送间隔为 5 秒,连续 3 个包,即 15 秒没有收到回应 但认为对端失效,默认配置参数为 10 秒,连续 3 个包,即 30 秒没有收到回应但认 为对端失效。 (3)中断对端路由器 R3 的 GRE 隧道接口,观察 R1 本端的隧道接口状态: 中断 R3 隧道接口: r3(config)#int tunnel 3 r3(config-if)#shutdown R1 上弹出 log: r1# *Mar 1 01:59:44.419: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down r1# R1 当前隧道接口状态: r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is down Hardware is Tunnel Internet address is 1.1.1.1/24 第 35 页共 844 页 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, www.china-ccie.com reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive set (5 sec), retries 3 Tunnel source 100.1.1.1, destination 200.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:04:48, output 00:00:03, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 2 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 67 packets input, 8088 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 第 36 页共 844 页 www.china-ccie.com 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 105 packets output, 10992 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r1# 说明:当对端隧道接口中断后,R1 在本端弹出的 log 显示隧道接口已变为 down, 并查看当前隧道接口确定为 down 状态。 (4)恢复 R3 的隧道接口,并开启 GRE keepalive: r3(config)#int tunnel 3 r3(config-if)#no shutdown r3(config-if)#keepalive 说明:R3 隧道接口上配置了默认的 GRE keepalive 参数。 (5)再次查看 R1 的隧道接口状态: r1#show interfaces tunnel 1 Tunnel1 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.1/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set 第 37 页共 844 页 Keepalive set (5 sec), retries 3 www.china-ccie.com Tunnel source 100.1.1.1, destination 200.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:06:01, output 00:00:01, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 2 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 71 packets input, 8280 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 120 packets output, 11712 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 第 38 页共 844 页 www.china-ccie.com 0 output buffer failures, 0 output buffers swapped out r1# 说明:由于对端路由器 R3 的隧道接口已经 up,所以本端隧道接口状态也变为 up;接口参数显示了 Keepalive 发送间隔为 5 秒,连续 3 个包,即 15 秒没有收到回 应但认为对端失效。 (6)查看 R3 路由器上的 GRE 隧道状态: r3#show interfaces tunnel 3 Tunnel3 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.2/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive set (10 sec), retries 3 Tunnel source 200.1.1.1, destination 100.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) 第 39 页共 844 页 Tunnel receive bandwidth 8000 (kbps) www.china-ccie.com Last input 00:06:21, output 00:00:00, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 111 packets input, 11280 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 74 packets output, 8424 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out r3# 说明:因为接口配置了默认参数,所以发送间隔 10 秒,连续 3 个包,即 30 秒没 有收到回应但认为对端失效,虽然双方时间间隔不一致,但不影响正常工作。 第 40 页共 844 页 加密技术 www.china-ccie.com 加密算法 当不同的远程网络通过 Internet 连接时,网络之间直接通过私有地址进行互访只 是需求之一,除此之外,还有个非常重要的需求,那就是数据安全。所以在穿越 Internet 的远程网络之间只实现隧道传输还不够,还必须让数据包加密传输,以保 证数据在 Internet 传输时的安全性。 基于上述原因,在远程网络之间布置的 VPN 除了实现隧道功能之外,还必须在 隧道中实现对数据的加密,隧道与加密是 VPN 不得不同时实现的功能,两者缺一不 可,否则就不算是完整的 VPN。 目前,加密算法多种多样,加密算法分为加密和解密两个过程: 加密是指将明文(直接能看懂的)数据换算成密文(直接无法看懂的)数据。 解密是对加密的反运算,将密文数据转变为明文数据。 加密的算法非常多,曾经最古老,最常用,也是最能让人理解的就是替换法, 例如: 发送一串文字 ABCDEF,要将这些文字变成密文,就将 A 替换为 C,将 B 替换为 D,将 C 替换为 E,将 D 替换为 F,将 E 替换为 G,将 F 替换为 H,最后 ABCDEF 就 使用 CDEFGH 来表示,而 ABCDEF 才是明文,是真正的内容,而 CDEFGH 就是加密后 的密文,并不是真正的内容;从加密过程中可以看出,明文“ABCDEF”通过将每个 字母替换成后面第二个字母的方法被加密成了“CDEFGH”,在这里,将每个字母替 换成后面第二个字母的方法可以称为加密方法,也称为加密算法,当内容被加密之 后,接收者还必须先将密文解密,才能看懂内容,这里就将密文“CDEFGH”的每个 字母替换成前面第二个字母,便得到明文“ABCDEF”。 第 41 页共 844 页 www.china-ccie.com 从上面加密与解密的整个过程中可以发现,对数据进行加密需要使用加密算法, 上例中使用的加密算法是字母替换法,即将每个字母替换成其它字母的方法,知道 数据使用什么算法去加密并没关系,一个人知道数据的加密算法,并不能将密文转 变为明文,要对密文进行解密,不仅要知道加密算法,同时还必须知道加密的密钥, 也就是密码,在上例中,将每个字母替换成后面第二个字母就是密钥(密码),如 果别人只是知道我们使用的加密算法是字母替换法,但他不知道每个字母具体被替 换成了哪个字母,是没办法将密文还原的,所以对数据加密的算法可以被公开,但 是加密的密钥一定要保密不能被窃取,否则密文也就变得不安全了,因此,如何保 证密钥的安全是相当重要的。 上面在对数据进行解密时使用的密钥和加密使用的密钥是完全相同的,这种加 密算法称为对称加密算法,也叫做私钥算法,上面加密时是将字母替换为后面第二 个字母,解密时就将字母替换为前面第二个即可,只要被人知道这第二个字母的关 系,就能破解数据,所以只要密钥一旦泄露,数据就会被窃取。为了寻求更安全的 加密算法,开发出了与对称加密算法相反的加密算法,称为非对称加密算法,也叫 做公钥算法,其原理与对称加密算法不同的是解密时使用的密钥和加密时使用的密 钥不同,就是在将明文加密时使用一个密钥,这个密钥俗称公钥,但是在对密文解 密时,必须使用另外一个密钥,这个密钥俗称私钥,公钥只能用于加密,不能解密, 必须有私钥才能解密。 在对称加密算法中,因为解密时使用的密钥和加密时使用是同一个密钥,所以 对于密钥的保护必须格外小心,只要密钥在交换或协商时被人窃取,数据就会被破 解,显然双方必须使用绝对安全的方法来交换密钥。 而在非对称加密算法中,因为解密时使用的密钥和加密时使用的密钥不同,任 何拥有公钥的人,都可以对数据进行加密,但只有拥有私钥的人,才能对密文解密, 所以公钥可以被公开,可以被任何人知道,只知道公钥只能加密,却不能解密,所 以只要保证私钥掌握在自己手中不传递不外泄,就不会有问题;双方在需要加密传 输时,各自都把自己的公钥发出去,让对方通过该公钥将数据加密后发给自己,这 样就能使任何人都能向自己发送加密数据,但只有自己才能对数据解密。 第 42 页共 844 页 当前涉及到的各种加密算法有: www.china-ccie.com 对称加密算法(私钥算法) DES(Data Encryption Standard) DES 加密共有三种形式,分为 DES(40-bit 长度加密),DES(56-bit 长度加密)以 及 3DES(3 倍的 56-bit 长度加密,即 168-bit 长度加密);由于 3DES 加密长度够长, 安全性够高,所以推荐使用 3DES。 AES(Advanced Encryption Standard) AES 加密共有三种形式,分为 AES 128(128-bit 长度加密),AES 192(192-bit 长 度加密)以及 AES 256(256-bit 长度加密);由于 AES 256 加密长度够长,安全性够 高,所以推荐使用 AES 256。 非对称加密算法(公钥算法) RSA RSA 公钥加密算法的名字是发明者的人名:Rivest, Shamir and Adleman,该算法 的长度位数不定,由人手工定义。 在硬件方面,当采用公钥加密算法时,速度明显慢于私钥加密算法,虽然使用 公钥加密算法似乎更安全,但通常都使用私钥加密算法,而使用私钥加密算法的重 点就是要保证密钥的安全传递与交换,所以该工作就由公钥加密算法来完成,最后 的过程就是先使用公钥加密算法业安全的交换私钥算法的密钥后,然后再使用私钥 第 43 页共 844 页 www.china-ccie.com 算法对数据进行加密,这样既保证了私钥算法的密钥安全,同时又获得了数据加密 的速度,两者兼得。 HMAC(Hashed Message Authentication Code) 当数据在传输过程中,如果被劫持后修改了数据,通常数据接收者很难发现数 据是否在中途被篡改;在正常的数据传输中大家都应该知道,每个数据包都会在后 面写上一个对数据计算后的校验和(Checksum),当数据计算出校验和之后,接收 者在收到数据后也需要对数据进行校验和计算,如果发现自己计算的校验和与数据 包附带的校验和不同,便认为数据发生了偏移或错误,因此将数据包丢弃或要求重 传。在需要保证数据安全防止中途被篡改时,也引用了校验和的思想,数据在发送 之前先计算出相应的 Hash 值,当接收者收到数据后也要对数据计算 Hash 值,如果 发现自己计算的 Hash 值与数据附带的值不匹配,便认为数据在传输过程中遭到了 篡改,从而拒绝不正确的数据包。 在这里,Hash 算法和校验和算法基本上是相同的,Hash 算法的特征在于任何大 小的数据计算出的 Hash 值的长度都是一样的,任何数据通过 Hash 计算后,得到的 Hash 值都是固定长度的,哪怕几个字的数据,或者是几 GByte 的数据,计算出的 Hash 值的长度都是相同的,所以如果仅仅是根据 Hash 值,是无法推算出数据内容 的,只靠 Hash 值无法将数据内容还原。基于以上 Hash 的特征,所以 Hash 多用于 认证,认证对等体双方在相互认证时,只需要交换密码的 Hash 值即可,而无需交 换密码,从而防止了密码被窃取,但仅仅是窃取 Hash 值,也无法推算出密码是多 少。 目前 Hash 算法有: MD5(Message Digest 5) 将任何数据通过计算后输出 128-bit 长度的 Hash 值。 SHA-1(Secure Hash Algorithm 1) 160-bit digest 第 44 页共 844 页 www.china-ccie.com 将任何数据通过计算后输出 160-bit 长度的 Hash 值。 从上可以看出,SHA-1 拥有着比 MD5 更高的安全性。 IPsec(IP Security) 概述 在实施 VPN 时,除了实现隧道功能以外,还要实现数据安全,两者缺一不可; 在隧道方面,之前所讲到的 GRE 就是最常用的隧道技术,而在数据安全方面,其实 就是要让数据加密传输,至于如何对数据进行加密传输,有一个使用最广泛,且最 经典的技术方案,这就是 IPsec(IP Security),IPsec 最突出,也是最主要的功能就是 保证 VPN 数据的安全传输。 IPsec 定义了使用什么样的方法来管理相互之间的认证,以及使用什么样的方法 来保护数据,IPsec 只是定义了一些方法,而 IPsec 本身并不是一个协议,就像 OSI (Open System Interconnect)参考模型一样,OSI 并不是一个协议,OSI 只是一个框 架,一个模型,OSI 里面包含着多个协议,如 TCP,UDP,IP,ICMP 等等;IPsec 中 同样也包含着为之服务的各种协议去实现 IPsec 要完成的各个功能,只有这样,IPsec 才能起到作用。 IPsec 能够起到的功能有: 数据源认证(Data origin authentication) 保护数据完整性(Data integrity) 第 45 页共 844 页 保证数据私密性(Data confidentiality) 防止中间人攻击(Man-in-the-Middle) 防止数据被重放(Anti-Replay) www.china-ccie.com 数据源认证保证数据是从真正的发送者发来的,而不是来自于第三方攻击者。 保护数据完整性是保证数据不会被攻击者改动。 保证数据私密性是保证数据不会被攻击者读取。 防止中间人攻击是防止数据被中间人截获。 防止数据被重放也可以认为是防止数据被读取和改动。 为 IPsec 服务的总共有三个协议: IKE(Internet Key Exchange) ESP(Encapsulating Security Protocol) AH(Authentication Header) 虽然总共是三个协议,但分为两类: IKE 是个混合协议,其中包含部分 Oakley 协议以及内置在 ISAKMP(Internet Security Association and Key Management Protocol 协议中的部分 SKEME 协议,所以 IKE 也可 写为 ISAKMP/Oakley,它是针对密钥安全的,是用来保证密钥的安全传输、交换以 及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作。 第 46 页共 844 页 www.china-ccie.com ESP(Encapsulating Security Protocol)和 AH(Authentication Header)主要工作是 如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的。 因为 在实施 VPN 时,除了实现隧道功能以外,还要实现数据安全,两者缺一不 可;在之前我的提到的隧道技术中,只能实现隧道而不能实现安全,而 IPSec 则可 以为隧道提供数据保护功能,从而构建一个完整的 VPN 体系。IPsec 除了能够为隧 道提供数据保护来实现 VPN 之外,IPsec 还可以自己单独作为隧道协议来提供隧道 的建立,如果 IPsec 自己单独作为隧道协议来使用,那么 IPsec 就不需要借助任何其 它隧道协议就能独立实现 VPN 功能;IPsec 到底是只使用数据保护功能再配合其它 隧道协议,还是自己独立实现隧道来完成 VPN 功能,可以由配置者自己决定。 注: ★IPSec 目前只支持 IPv4 Unicast(IPv4 单播),不支持其它任何协议。 IKE(Internet Key Exchange) 由于公钥加密算法的速度明显慢于私钥加密算法,IPsec 在保护数据时选择了使 用私钥加密算法,而使用私钥加密算法的重点就是要保证密钥的安全传递与交换, 所以如何保证密钥的安全,成了头等工作;之前我们曾说过使用公钥加密算法来保 证私钥算法的密钥安全传递与交换,但是事情并非想象的那么简单,即使使用公钥 加密算法来保证密钥的安全交换,仍然存在以下问题: 例如 A 和 B 需要加密交换数据,C 要窃取他们的数据,过程如下: ★A 和 B 首先要确定双方的加密算法以及要使用的密钥,可想而知,这个密钥绝 不能被 C 知道; 第 47 页共 844 页 www.china-ccie.com ★当 A 发消息告诉 B 自己要使用密钥 123,不巧这个消息被 C 截获,C 就可以冒 充 B 同意使用密钥 123 和 A 交换数据; ★当 B 发消息告诉 A 自己要使用密钥 456,不巧这个消息被 C 截获,C 就可以冒 充 A 同意使用密钥 456 和 B 交换数据; ★在 A 将数据使用密钥 123 加密后发给 B 时,在 C 收到后,使用密钥 123 将数 据解密,截获数据后,然后再将数据使用密钥 456 加密后发给 B; ★其实数据早就被 C 截获了,而 B 还以为数据是 A 发来的,以为数据是安全的。 从上面,我们可以看出,在 A 和 B 的密钥协商与交换的过程中,他们都以为自 己在和对方交流,而面对被监听和冒充,他们无法分辨,所以,在密钥的交换过程 中,必须在双方有认证机制,以防止被冒充;并且更多的问题是,即使双方发出的 数据附带 Hash 值,同样也不能保证数据不被篡改,单纯靠比对数据的 Hash 值是否 相同,根本无法确定数据是否被篡改过,因为攻击者既然改动过数据,人家当然也 知道把 Hash 值再改一下,最后接收者将收到的数据计算出 Hash 值后,发现 Hash 值与数据附带的值是相同的,也就无法知道数据是否被篡改过,您觉得呢? 由于以上普通的密钥交换方式存在着许多问题与弱点,所以 IKE(Internet Key Exchange)将努力构架一个完善的方案体系,以保证 VPN 之间的密钥与数据的安全。 认证(Authentication) IKE 会在 VPN 对等体之间采用认证机制(Authentication),认证可以有效确保会 话是来自于真正的对等体而不是攻击者,因为如果最开始本身就是在和一个攻击者 或黑客进行会话和协商,那么后面的所有工作都是白废,所以保证只和合法的对等 体会话是非常重要的;IKE 的认证方式有三种: Pre-Shared Keys (PSK) Public Key Infrastructure (PKI) using X.509 Digital Certificates 第 48 页共 844 页 RSA encrypted nonce www.china-ccie.com 其中 Pre-Shared Keys (PSK)是最简单的,使用由管理员事先在双方定义好的密码, 认证时,只有双方密码匹配之后,后续的工作才能继续;配置时通常可以包含 IP 地 址,子网以及掩码,也可以指定为任意地址来代替固定地址,适用于 IP 地址不固定 的环境。 PKI 是使用第三方证书做认证,叫做 Certificate Authority (CA),,里面包含名字、 序列号,有效期以及其它可以用来确认身份的参数;证书也可以被取消。 注: ★RSA encrypted nonce 我们不做介绍,包括在后续配置与示例中,我们只涉及 Pre-Shared Keys (PSK)。 密钥算法(Diffie-Hellman) 虽然 IKE 使用了认证来保证会话一定是来自合法的对等体,但是单靠认证也无 法保证密钥的安全,因为数据还是有可能被第三者截获,所以 IKE 还必须有一套机 制来保证密钥的安全,因为只要密钥泄露,就全玩完了。在密钥方面,IKE 使用了 称为 Diffie-Hellman 的算法在 VPN 对等体之间建立安全的密钥用来加密数据, Diffie-Hellman 使用了极为复杂的数学算法,最后将在 VPN 对等体之间计算出只有它 们自己才知道的密钥,即使他们的会话被第三者监控,也无法推算出密钥,本文不 对 Diffie-Hellman 的详细计算过程做介绍,因为这也不是本文的最终目的。 Diffie-Hellman 算 法 目前 有 3 种 密钥长度 可选,所 以在配 置时, 需要定 义 Diffie-Hellman 的密钥长度,分别有如下选择: 第 49 页共 844 页 Group 1 密钥长度为 768 bit,也是默认的密钥长度; www.china-ccie.com Group 2 密钥长度为 1024 bit; Group 5 密钥长度为 1536 bit。 注: ★用于数据加密的密钥的值是靠算法计算出来的,是不能由管理员定义和修改 的。 SA(Security Association) IPsec 的所有会话都是在通道中传输的,包括协商密钥,传递用户数据;这样的 通道称为 SA(Security Association),SA 并不是隧道,而是一组规则,就好比是需要 会话的对等体之间必须遵守的一份合同。SA 中的规则能够保证所有数据的安全传 递,因此 SA 中包含了之前提到的保证数据和密钥安全时必不可少的认证、加密等 安全策略,这些需要用到的技术,都要在 SA 中定义。 因为 VPN 之间传输的数据需要加密才能保证安全,并且加密时所用到的密钥要 第 50 页共 844 页 www.china-ccie.com 更加安全,所以对待密钥,我们也需要付出巨大的努力。在密钥的安全上,由 IKE 负责,而数据的安全,则由 IPsec 负责,虽然是这么说,但需要注意,IKE 也是 IPsec 不可分割的一部分,IKE 不是独立存在的。 SA 并不是只有一个,由于密钥安全和数据安全我们是分开对待的,所以 SA 有两 个,分别是定义了如何保护密钥和如何保护数据,这两个 SA 就是: ISAKMP Security Association(IKE SA) IPsec Security Association(IPsec SA) 每个 SA 都有 lifetime,过期 后 SA 便无效,lifetime 使用 time (second) 和 volume limit (byte count)来衡量,在建立 SA 时就会协商出来,双方会比对,最终取值小的一方; 通常是时间先过期,在要过期最后 120 秒之前,会自动重建另一条 SA,避免活动的 SA 到期后无法传输数据,这样就能实现平滑过渡,以丢最少的包。 注:IKE SA 等同于 ISAKMP SA。 IKE SA IKE SA 要保护的对象是与密钥有关的,IKE 并不直接关心用户数据,并且 IKE SA 是为安全协商 IPsec SA 服务的。 IKE SA 的 lifetime 默认为 86,400 seconds,即一天,默认没有 volume limit。 IPsec SA 第 51 页共 844 页 www.china-ccie.com 用户的数据流量真正是在 IPsec SA 上传递的,而不是在 IKE SA;IPsec SA 直接为 用户数据流服务,IPsec SA 中的所有安全策略都是为了用户数据流的安全。 每个 IPsec 对等体都有一对 IPsec SA,一个是去往远程目的地的,而另一个是从 远程回来的,也就是一进一出,都存放在本地 SA Database 中。 IPsec SA 的 lifetime 默认为 3600 seconds,即 1 小时;默认 volume limit 为 4,608,000 Kbytes,即 4.608 Gbyte。 因为 SA 有两个,分为 IKE SA 和 IPsec SA,两个 SA 分别定义了如何保护密钥以及 如何保护数据,其实这两个 SA 都是由 IKE 建立起来的,所以将 IKE 的整个运行过程 分成了两个 Phase(阶段),即 : IKE Phase One IKE Phase Two IKE Phase One IKE Phase One 的主要工作就是建立 IKE SA(ISAKMP SA),IKE SA 的服务对象并不 是用户数据,而是密钥流量,以及为 IPsec SA 服务的;IKE SA 的协商阶段被称为 main mode(主模式),IKE 也是需要保护自己的流量安全的(这些流量并非用户流量), 所以 IKE SA 之间也需要协商出一整套安全策略,否则后续的密钥和 IPsec SA 的建立 就不能得到安全保证;IKE SA 之间需要协商的套安全策略包括: 认证方式(Authentication) 共总有 Pre-Shared Keys (PSK),Public Key Infrastructure (PKI),RSA encrypted nonce, 默认为 PKI。 第 52 页共 844 页 加密算法(Encryption) www.china-ccie.com 总共有 DES,3DES,AES 128,AES 192,AES 256,默认为 DES。 Hash 算法(HMAC) 总共有 SHA-1,MD5,默认为 SHA-1。 密钥算法(Diffie-Hellman) Groups 1 (768 bit),Group 2(1024 bit),Group 5(1536 bit),默认为 Groups 1 (768 bit)。 Lifetime 随用户定义,默认为 86,400 seconds,但没有 volume limit。 NAT 穿越(NAT Traversal) 默认为开启状态,无须手工配置。(NAT Traversal 将在后面介绍) IKE Phase Two IKE Phase Two 的目的是要建立 IPsec SA,由于 IKE SA 的服务对象并不是用户数据, 而是密钥流量,以及为 IPsec SA 服务的,IKE SA 是为 IPsec SA 做准备的,所以如果没 有 IKE SA,就不会有 IPsec SA;IPsec SA 是基于 IKE SA 来建立的,建立 IPsec SA 的过 程称为 快速模式(quick mode)。IPsec SA 才是真正为用户数据服务的,用户的所有 流量都是在 IPsec SA 中传输的,用户流量靠 IPsec SA 来保护,IPsec SA 同样也需要协 商出一整套安全策略,其中包括: 第 53 页共 844 页 www.china-ccie.com 加密算法(Encryption) 总共有 DES,3DES,AES 128,AES 192,AES 256,默认为 DES。 Hash 算法(HMAC) 总共有 SHA-1,MD5,默认为 SHA-1。 Lifetime 随用户定义,默认为 3600 seconds,即 1 小时;默认 volume limit 为 4,608,000 Kbytes,即 4.608 Gbyte。 IPsec Mode 共有 Tunnel mode 和 Transport mode,默认为 Tunnel mode。 从上可以看出,IPsec SA 中没有协商认证方式(Authentication)和密钥算法 (Diffie-Hellman),因为 IKE SA 时已经认证过了,所以后面已经不需要再认证;并且 密钥是在 IKE SA 完成的,所以在 IPsec SA 中也就谈不了密钥算法了,但也可以强制 再算。 IPsec Mode 因为 在实施 VPN 时,除了实现隧道功能以外,还要实现数据安全,两者缺一不 第 54 页共 844 页 www.china-ccie.com 可;在之前我的提到的隧道技术中,只能实现隧道而不能实现安全,而 IPSec 则可 以为隧道提供数据保护功能,从而构建一个完整的 VPN 体系。IPsec 除了能够为隧 道提供数据保护来实现 VPN 之外,IPsec 还可以自己单独作为隧道协议来提供隧道 的建立,如果 IPsec 自己单独作为隧道协议来使用,那么 IPsec 就不需要借助任何其 它隧道协议就能独立实现 VPN 功能;IPsec 到底是只使用数据保护功能再配合其它 隧道协议,还是自己独立实现隧道来完成 VPN 功能,完全由 IPsec Mode 来控制。 IPsec Mode 分两种: Tunnel mode Transport mode Tunnel mode(默认模式) 通过 Internet 连接的远程网络之间,当双方需要直接使用对方私有 IP 地址来互 访时,因为私有 IP 网段是不能传递到 Internet 上进行路由的,所以目标地址是私有 IP 的数据包到达 Internet 后是会被丢弃的,要使地址是私有 IP 的数据包在 Internet 上传递,数据包的包头就必须带有公网 IP;在之前,我们详细介绍过最常用的隧道 协议 GRE 的工作原理,其根本功能就是要实现隧道功能,通过隧道连接的两个远程 网络就如同直连,因为隧道将数据包原来的私有 IP 地址先隐藏起来,在外部封装上 公网 IP,等数据包通过公网 IP 被路由到该 IP 的路由器后,再由该路由器剥除数据 包外层的公网 IP,从而发现数据包的私有 IP 后,再通过私有 IP 将数据包发到真正 的目的地,为此,GRE 需要完成多次封装,总共有 3 次,换句话说,就是在 GRE 隧 道中传输的数据包都有 3 个包头,GRE 中的 IP 数据包是一层套一层,总共有 3 个 IP 地址。 IPsec 中的 Tunnel mode 就拥有着与 GRE 相同的隧道功能,那就是将数据包原来 的私有 IP 地址先隐藏起来,在外部封装上公网 IP,等数据包通过公网 IP 被路由到 该 IP 的路由器后,再由该路由器剥除数据包外层的公网 IP,从而发现数据包的私有 第 55 页共 844 页 www.china-ccie.com IP 后,再通过私有 IP 将数据包发到真正的目的地,所以,IPsec 的 Tunnel mode 也会 对原始数据包封装多个 IP 包头, 当 IPsec 工作在 Tunnel mode 时,数据包的封装过程如下: 从图中可以看出,当 IPsec 工作在 Tunnel mode 时,整个原始数据包都会被加密, 包括数据部分和包头部分,正因为该封装形式隐藏了原始的 IP 包头,导致了原始 IP 包头不可见,那么路由器就无法对该数据包进行路由,所以需要添加一个新的 IP 包头来正常路由,通常是加密设备自己的 IP 地址被加到新 IP 包头中,这个地址也 可在 IOS 中定义;并且我们可以确定这个 IP 地址一定是在传输网(通常指公网 Internet)中可以被路由的。至少为什么同时出现 3 个包头,理论同 GRE 隧道的原理, 因为要实现隧道功能,此部分的理论可以参见之前 GRE 隧道部分。 IPsec 包头的大小共 32 字节,而普通 IP 包头大小为 20 字节,所以可以看出,原 始 IP 数据包经过 Tunnel 模式的 IPsec 封装之后,会多出大约 52 字节大小的包头。 当原始数据包被 Tunnel 模式的 IPsec 封装时,这种封装方式被认为更安全,因为 原始数据包的所有内容,包括数据部分,以及真正的源 IP 和目的 IP 都被加密了, 所以更安全。 第 56 页共 844 页 www.china-ccie.com Transport mode IPsec 除了作为安全协议来为隧道提供数据保护之外,也可以自己单独作为隧道 协议来提供隧道的建立,如果 IPsec 自己单独作为隧道协议来使用,那么 IPsec 就不 需要借助任何其它隧道协议就能独立实现 VPN 功能;这些都是由 IPsec Mode 来控制 的,如果 IPsec 要自己独立实现隧道来完成 VPN 功能,就需要工作在 Tunnel mode, Tunnel 模式的 IPsec 不仅实现了隧道功能,也保留了数据安全,实现了完整的 VPN 功能。如果 IPsec 不需要实现隧道功能,而只需要实现保护数据的安全功能,就只 要工作在 Transport mode 即可,因为 Transport 模式的 IPsec 只有安全功能而没有隧 道功能,所以还要再配合其它隧道协议,最终实现完整的 VPN 功能。 当 IPsec 工作在 Transport mode 时,数据包的封装过程如下: 从图中可以看出,当 IPsec 工作在 Transport mode 时,IPsec 包头是添加在原始 IP 包头与上层协议(如传输层)之间的,所以原始 IP 包头在传输过程中还是可见的, 同样也容易被分析。因为没有新 IP 包头被加入,所以没有多少增加的字节。由于数 据包被 Transport 模式的 IPsec 封装时,原始 IP 包头在最外面,路由过程中是根据原 始 IP 包头来路由的,所以当通过 Internet 连接的远程网络之间需要直接使用对方私 有 IP 地址来互访时,此封装不可行,因为 Transport mode 没有实现隧道功能,所以 如果要实现 VPN 功能,Transport 模式的 IPsec 就应该配合 p2p GRE over IPsec 来使用。 第 57 页共 844 页 (后续将会介绍 p2p GRE over IPsec) www.china-ccie.com ESP(Encapsulating Security Protocol) 为 IPsec 服务的协议总共有三个:IKE(Internet Key Exchange),ESP(Encapsulating Security Protocol)以及 AH(Authentication Header),其中 IKE 是针对密钥安全的, 是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户 的实际数据进行操作,如果要保护用户数据,需要靠 ESP(Encapsulating Security Protocol)和(Authentication Header),ESP 和 AH 主要工作是如何保护数据安全, 也就是如何加密数据,是直接对用户数据进行操作的,IPsec 对用户数据的保护,靠 ESP 和 AH 的封装。 ESP 对用户数据包的封装过程如下: 第 58 页共 844 页 www.china-ccie.com ESP 包头中使用 IP 协议号 50 来标识,意为 IP 协议号为 50 的数据包都被当作 ESP 数据包来处理;从上图中也可以看出,即使是封装 ESP,也分为两种情况,因为 IPsec 本身分为两种模式,所以在进行安全封装数据包时,不同的模式,也会有不同的封 装格式。 从图中还可以看出,原始数据包经过 ESP 封装之后,只是数据被加密了,而原始 的 IP 包头是没有改变的,虽然是这样,但也会使用其它方式,如 HMAC 来保证数据 的安全性,其中包括: 第 59 页共 844 页 保护数据完整性(Data integrity) 防止中间人攻击(Man-in-the-Middle) 防止数据被重放(Anti-Replay) 同样也提供数据认证(Data authentication) www.china-ccie.com AH(Authentication Header) AH 对用户数据包的封装过程如下: 第 60 页共 844 页 www.china-ccie.com AH 包头中使用 IP 协议号 51 来标识,从图中可以发现,原始数据包经过 AH 封装 之后,并没有被加密,这是因为 AH 封装并不使用常规的方法去加密数据部分,而 是采用隐藏数据的方法,也就是相当于加一个防改写的封条给数据,很显然,这简 直就是掩耳盗铃,如果数据机密要求高,千万不要单独使用 AH 封装。 ESP 和 AH 结合 在一个 IPsec Security Association (SA)中可以同时使用 ESP 和 AH,而 ESP 拥有和 AH 相同的认证功能,以及数据保护方法,所以只使用 ESP 就是最理想的。 第 61 页共 844 页 Transform Set www.china-ccie.com Transform set 是一组算法集合,通过它来定义使用怎样的算法来封装数据包, 比如之前所说的 ESP 封装,AH 封装都需要通过 Transform set 来定义,还可以定义其 它一些加密算法以及 HMAC 算法;通过定义 transform set,就可以让用户来选择保 护数据的强度,因此 transform set 就是定义了数据包是受到怎样的保护。 Crypto Map Crypto map 是思科的 IOS 中配置 IPsec 的组件,执行两个主要功能: 选择需要加密处理的数据; 定义数据加密的策略以及数据发往的对端。 选择需要加密处理的数据就是定义什么样的流量需要被保护,因为也许用户并 不是需要所有的数据都被保护,所以需要先匹配指定的流量才行; 定义数据加密的策略以及数据发往的对端,也就相当于定义数据的目的地,有 时,这也表示隧道的终点。 其实 Crypto map 除了以上两个功能以外,还包含其它一些功能,如定义 IPsec 的 Mode;Crypto map 中的策略是分组存放的,以序号区分,如果一个 Crypto map 有多个策略组,则最低号码的组优先;当配置完 Crypto map 后,需要应用到接口上 才能生效,并且一个接口只能应用一个 Crypto map。 Crypto map 还分为静态 map(static map)和动态 map(dynamic map),如果需 要简单的区分它们,就是数据发往的对端是否固定,如果是动态 map,那么对端是 不固定的,在存在隧道的时候,也就表示隧道的终点是不固定的,但源始终是自己。 第 62 页共 844 页 www.china-ccie.com 隧道分离(Split Tunneling) Split Tunneling 只在远程 VPN(remote VPN)时才有,因为当远程 VPN 用户的 VPN 隧道建立之后,该用户的所有流量都将被发送到隧道之上,这样一来,原本用户正 常的用户,比如发往 Internet 的流量也被发到隧道上,结果就会造成远程 VPN 用户 与 Internet 失去连接;为了让用户需要走 VPN 隧道的流量才被发送到隧道上,而其 它流量,还是从原来的接口发送而不被 IPsec 封装,所以需要将用户的流量分为两 类,从而区分对待,这就是隧道分离(Split Tunneling);其实 Split Tunneling 和非远 程 VPN 有某些相同之处,非远程 VPN 也有定义感兴趣流量的功能,这个功能就是指 定什么样的流量通过 VPN 传输,什么样的流量正常传输;在最终的结果是,这两个 功能在配置上是一样的。 IPsec LAN-to-LAN VPN(LAN-to-LAN VPN) 概述 在 IPsec VPN 范畴的 VPN 中,有多种形式的 VPN,各形式的 VPN 因为架构和使用 环境的不同而不同,但在 IPsec VPN 范畴内的各 VPN 中,都是以 IPsec 为基础的,在 本小节中要讲到的是 IPsec VPN 之 LAN-to-LAN VPN,有时也被称为 Site-to-Site VPN, 该形式的 VPN 是 IPsec VPN 中最简单的 VPN,但并不代表该形式的 VPN 是最常用的。 在配置 IPsec VPN 范畴的 VPN 时,无论配置哪种形式,基本上需要如下几个重要 步骤: 第 63 页共 844 页 配置 IKE(ISAKMP)策略 定义认证标识 配置 IPsec transform 定义感兴趣流量 创建 crypto map 将 crypto map 应用于接口 www.china-ccie.com 其中每步的具体内容为: 配置 IKE(ISAKMP)策略 定义 IKE Phase One 中的一些策略,包括加密算法(Encryption),Hash 算法 (HMAC),密钥算法(Diffie-Hellman),认证方式(Authentication)等等,每项的 具体信息请参考前文内容。 定义认证标识 无论前面定义了何种认证方式,都需要添加认证信息,如密码、数字证书等等。 配置 IPsec transform 第 64 页共 844 页 www.china-ccie.com 也就是定义 Phase Two 中一些加密算法以及 HMAC 算法,此 transform set 就是定 义了 VPN 流量中的数据包是受到怎样的保护。 定义感兴趣流量 定义哪些流量需要通过 VPN 来传输,通过 IPsec 来保护;匹配流量的方法为定义 ACL,建议使用 Extended ACL 来匹配指定的流量,ACL 中被 permit 匹配的的流量表 示加密,而被 deny 匹配的流量则表示不加密。 注:在配置 ACL 定义感兴趣流量时需要格外注意的是 ACL 中不要使用 any 来表示 源或者目标,否则会出问题。 创建 crypto map 将之前定义的 ACL,加密数据发往的对端,以及 IPsec transform 结合在 crypto map 中。 将 crypto map 应用于接口 crypto map 配置后,是不会生效的,必须将 crypto map 应用到接口上,目前还 没有听说 crypto map 对接口类型有任何要求,也就是正常接口都可以应用,当然必 须是三层可路由接口。 因为目前 Cisco 产品中能够配置 VPN 的设备有许多,而目前较流行的设备有 Router(路由器),PIX(防火墙),ASA(防火墙),所以我们在讲解各 VPN 配置时, 会基于各种设备类型来配置,这些设备也许并不支持所有类型的 VPN,但我们尽量 将各 VPN 所支持的每个设备都进行配置举例。 第 65 页共 844 页 Router-to-Router LAN-to-LAN VPN www.china-ccie.com 在 本 小 节 , 我 们 在 Router 与 Router 之 间 配 置 LAN-to-LAN VPN , 即 配 置 Router-to-Router LAN-to-LAN VPN。 配置 Router-to-Router LAN-to-LAN VPN 说明:我们下面需要以上图的环境来演示 LAN-to-LAN VPN 的效果,其中两个远 程公司的网络上海和北京,如 R5 与 R4 之间需要直接使用私有地址来互访,比如 R5 通过直接访问地址 192.168.1.4 来访问 R4,而 R2 则相当于 Internet 路由器,R2 只负 责让 R1 与 R3 能够通信,R2 不会配置任何路由,R2 不允许拥有上海与北京公司内 部的路由 10.1.1.0 与 192.168.1.0,在配置完 LAN-to-LAN VPN 之后,最终上海与北京 两个网络之间通过 VPN 隧道来穿越没有路由的 R2 来进行通信,实现在私网与私网 之间穿越公网的通信。 1.配置基础网络环境 第 66 页共 844 页 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 第 67 页共 844 页 r2(config-if)#ip add 23.1.1.2 255.255.255.0 www.china-ccie.com r2(config-if)#no sh r2(config-if)#exit 说明:配置 R2 的接口地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 192.168.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2。 (4)配置 R4: 第 68 页共 844 页 r4(config)#int f0/0 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit www.china-ccie.com r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 说明:配置 R4 的接口地址,并写默认路由指向北京公司出口路由器 R3。 (5)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 2.测试基础网络环境 (1)测试 R1 到 R3 的连通性: r1#ping 23.1.1.3 第 69 页共 844 页 Type escape sequence to abort. www.china-ccie.com Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/98/152 ms r1# 说明:因为 R1 与 R3 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1 和 R3 都是可达的,所以 R1 与 R3 通信正常。 (2)测试 R1 到 R4 的连通性: r1#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通信,所以 R1 无法访问北京公司的私有网段 192.168.1.0。 (3)测试 R5 到 R4 的连通性: r5#ping 192.168.1.4 第 70 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通 信,所以上海和北京公司无法通过私有地址互访。 (4)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets 第 71 页共 844 页 C 23.1.1.0 is directly connected, FastEthernet0/1 www.china-ccie.com 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 3.配置 LAN-to-LAN VPN (1)在 R1 上配置 IKE(ISAKMP)策略: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit 说明:定义了 ISAKMP policy 1,加密方式为 3des,hash 算法为 sha,认证方式为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)在 R1 上定义认证标识: r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3 第 72 页共 844 页 www.china-ccie.com 说明:因为之前定义的认证方式为 Pre-Shared Keys (PSK),所以需要定义认证密码, 这里定义与 peer 23.1.1.3 的认证密码为 cisco123,并且双方密码必须一致,否则无 法建立 IKE SA,其中 0 表示密码在 running-config 中显示为明文。 (3)在 R1 上配置 IPsec transform: r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit 说明:配置了 transform-set 为 ccie,其中数据封装使用 esp 加 3des 加密,并且 使用 esp 结合 sha 做 hash 计算,默认的 IPsec mode 为 tunnel。 (4)在 R1 上定义感兴趣流量: r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 说明:这里需要被 IPsec 保护传输的流量为上海公司至北京公司的流量,即 10.1.1.0/24 发往 192.168.1.0/24 的流量,切记不可使用 any 来表示地址。 (5)在 R1 上创建 crypto map: r1(config)#crypto map l2l 1 ipsec-isakmp r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit 说明:在 R1 上配置 crypto map 为 l2l,序号为 1,即第 1 组策略,其中指定加密 第 73 页共 844 页 www.china-ccie.com 数据发往的对端为 23.1.1.3,即和 23.1.1.3 建立 IPsec 隧道,调用的 IPsec transform 为 ccie,并且指定 ACL 100 中的流量为被保护的流量。 (6)在 R1 上将 crypto map 应用于接口: r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)#exit r1(config)# *Mar 1 00:21:45.171: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config)# 说明:将 crypto map 应用在去往北京公司的接口 F0/0 上。 (7)使用相同方式配置 R3 的 LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 第 74 页共 844 页 www.china-ccie.com r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)#crypto map l2l 1 ipsec-isakmp r3(config-crypto-map)#set peer 12.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/1 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:32:58.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 说明:R3 与 R1 的 IKE 和 IPsec 策略必须保持一致。 4.测试 VPN (1)在 R1 上查看 IKE(ISAKMP)策略: 第 75 页共 844 页 Global IKE policy www.china-ccie.com Protection suite of priority 1 encryption algorithm: Three key triple DES hash algorithm: Secure Hash Standard authentication method: Pre-Shared Key Diffie-Hellman group: #2 (1024 bit) lifetime: 86400 seconds, no volume limit Default protection suite encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Secure Hash Standard authentication method: Rivest-Shamir-Adleman Signature Diffie-Hellman group: #1 (768 bit) lifetime: 86400 seconds, no volume limit r1# 说明:上面列出了 IKE(ISAKMP)策略中默认的加密算法(Encryption),Hash 算 法(HMAC),密钥算法(Diffie-Hellman),认证方式(Authentication),以及我们配 置的参数。 (2)查看 Phase One 时的认证密码: r1#show crypto isakmp key Keyring Hostname/Address Preshared Key 第 76 页共 844 页 www.china-ccie.com default 23.1.1.3 cisco123 r1# 说明:可以看出我们配置的与 peer 23.1.1.3 之间的认证密码是 csico123。 (3)查看 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r1# 说明:虽然在 R1 与 R3 之间已经配置足够的 VPN 命令 ,但 IKE SA 仍然没有建立, 这是因为,在没有用户流量的传输来初始化的情况下,IKE SA 通常是无法自动建立 的。 (4)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers r1# r1# 第 77 页共 844 页 说明:可以看见目前没有任何 IKE SA peer。 (5)查看 R1 上的 IPsec Transform: r1#show crypto ipsec transform-set Transform set ccie: { esp-3des esp-sha-hmac } will negotiate = { Tunnel, }, www.china-ccie.com r1# 说明:IPsec Transform 显示了数据封装使用 esp 加 3des 加密,并且使用 esp 结合 sha 做 hash 计算,默认配置时没有指定 IPsec mode,所以默认的 mode 和预期一样 是 tunnel。 (6)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) 第 78 页共 844 页 www.china-ccie.com remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: 第 79 页共 844 页 outbound ah sas: www.china-ccie.com outbound pcp sas: r1# 说明:可以看见当前 R1 上 IPsec SA 的信息,但目前的 SA 并非活动状态,并且 SA 显示了正确的数据信息,即从本地 10.1.1.0/24 发往 192.168.1.0/24 的。 (7)查看 R1 上的 IPsec SA 的 Lifetime: r1#show crypto ipsec security-association Security association lifetime: 4608000 kilobytes/3600 seconds r1# 说明:默认的 IPsec SA 的 Lifetime 为 3600 seconds,即 1 小时;默认 volume limit 为 4,608,000 Kbytes,即 4.608 Gbyte。 (8)查看 R1 上的 crypto map: r1#show crypto map Crypto Map "l2l" 1 ipsec-isakmp Peer = 23.1.1.3 Extended IP access list 100 第 80 页共 844 页 www.china-ccie.com access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 Current peer: 23.1.1.3 Security association lifetime: 4608000 kilobytes/3600 seconds PFS (Y/N): N Transform sets={ ccie, } Interfaces using crypto map l2l: FastEthernet0/0 r1# 说明: crypto map 显示了指定加密数据发往的对端为 23.1.1.3,即和 23.1.1.3 建 立 IPsec 隧道,调用的 IPsec transform 为 ccie,并且指定 ACL 100 中的流量为被保护 的流量。 (9)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: 第 81 页共 844 页 www.china-ccie.com .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 64/125/212 ms r5# 说明:上海公司 R5 向北京公司 R4 发送的 5 个数据包,有 4 个成功穿越了 Internet, 说明该流量激活了 IKE SA,并且在双方应该成功建立了 IPsec 隧道,所以才实现了 VPN 的功能。 (10)再次查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.3 r1# 说明:R1 已经成功与 R3 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地源 地址为 12.1.1.1,目标为 23.1.1.3,目标端口号为 500。 (11)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 23.1.1.3 12.1.1.1 QM_IDLE 1001 0 ACTIVE 第 82 页共 844 页 IPv6 Crypto ISAKMP SA www.china-ccie.com r1# 说明:IKE SA 已经成功建立,R1 本地源地址为 12.1.1.1,目标为 23.1.1.3,并且 为激活状态,如为(delete)状态,则不可用。 (12)再次查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 #pkts compressed: 0, #pkts decompressed: 0 第 83 页共 844 页 #pkts not compressed: 0, #pkts compr. failed: 0 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x84D01C7D(2228231293) inbound esp sas: spi: 0xEB838CF1(3951267057) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4537199/3427) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 84 页共 844 页 www.china-ccie.com outbound esp sas: spi: 0x84D01C7D(2228231293) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4537199/3425) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:IPsec SA 中显示了之前通了的 4 个包成功被 IPsec 加密,并且可以看出该 SA 为 Active 状态,特别要注意的是,目前的 IPsec mode 工作在 Tunnel 模式。 (13)查看上海公司向北京公司发送数据包的路径走向: r5#traceroute 192.168.1.4 第 85 页共 844 页 Type escape sequence to abort. Tracing the route to 192.168.1.4 www.china-ccie.com 1 10.1.1.1 116 msec 120 msec 28 msec 2*** 3 192.168.1.4 392 msec * 312 msec r5# 说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只 有一跳,就到达了目的地,说明中间的多跳已经被隧道取代为一跳了。 5.调试 VPN 中的感兴趣流量 (1)在 R1 上将 ACL 定义的感兴趣流量改为任意流量,即 any: r1(config)#no access-list 100 r1(config)#access-list 100 permit ip any any (2)查看 R1 上的 crypto map: r1#show crypto map Crypto Map "l2l" 1 ipsec-isakmp Peer = 23.1.1.3 Extended IP access list 100 access-list 100 permit ip any any 第 86 页共 844 页 Current peer: 23.1.1.3 www.china-ccie.com Security association lifetime: 4608000 kilobytes/3600 seconds PFS (Y/N): N Transform sets={ ccie, } Interfaces using crypto map l2l: FastEthernet0/0 r1# 说明:显示了被 IPsec 保护的流量为 ACL 100 中的流量,即任意流量。 (3)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) 第 87 页共 844 页 www.china-ccie.com local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0) remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: 第 88 页共 844 页 outbound esp sas: www.china-ccie.com outbound ah sas: outbound pcp sas: r1# 说明:目前 IPsec SA 中也显示被保护的流量为任意,理论上是会出错的。 (4)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:这次上海公司 R5 向北京公司 R4 发送的数据包没能激活了 IKE SA,所以需 要将定义感兴趣流量中 ACL 中的 any 替换为具体网段。(注:即使改为 access-list 100 permit ip 10.1.1.0 0.0.0.255 any,也是没有用的,所以源和目的都不能使用 any 来表 示。) (5)修改感兴趣流量的 ACL: 第 89 页共 844 页 r1(config)#no access-list 100 www.china-ccie.com r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 说明:将感兴趣流量改为从本地 10.1.1.0/24 发往 192.168.1.0/24 的。 (6)再次从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/132/312 ms r5# 说明:替换掉感兴趣流量 ACL 中的 any 后,VPN 一切恢复正常,所以在配置 ACL 定义感兴趣流量时需要格外注意的是 ACL 中不要使用 any 来表示源或者目标,否则 会出问题。 6.测试 NAT 对 LAN-to-LAN VPN 的影响: (1)在 R1 上配置 NAT: r1(config)#interface f0/1 r1(config-if)#ip nat inside r1(config-if)#exit 第 90 页共 844 页 r1(config)#int f0/0 r1(config-if)#ip nat outside www.china-ccie.com r1(config)#access-list 1 permit any r1(config)#ip nat inside source list 1 interface f0/0 overload 说明:在上海公司路由器 R1 上开启 NAT,内网接口 F0/1 为 inside,外网接口 F0/0 为 outside,并且将所有内网流量通过 NAT 将源 IP 转换为外网接口 F0/0 的地址。 (2)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r5# 说明:和预期一样,IPsec 流量是不能穿越 NAT 的。 (3)查看 NAT 转换信息: r1#sh ip nat translations Pro Inside global Inside local Outside local Outside global 第 91 页共 844 页 icmp 12.1.1.1:15 10.1.1.5:15 www.china-ccie.com 192.168.1.4:15 192.168.1.4:15 icmp 12.1.1.1:16 10.1.1.5:16 192.168.1.4:16 192.168.1.4:16 icmp 12.1.1.1:17 10.1.1.5:17 192.168.1.4:17 192.168.1.4:17 r1# 说明:转换表中显示刚才的流量被 NAT 转换,但流量却不再被 IPsec 认同。 (4)删除 R1 上的 NAT: r1(config)#access-list 1 deny 10.1.1.0 0.0.0.255 r1(config)#access-list 1 permit any r1#cle ip nat translation * r1# r1# r1#sh ip nat translations 说明:因为被 NAT 转换的流量不再是合法的 IPsec 流量,所以我们将需要被 IPsec 保护的从上海发往北京的流量,即 10.1.1.0/24 发往 192.168.1.0/24 的流量不被 NAT 转换。 (5)再次从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. 第 92 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/145/248 ms r5# 说明:不被 NAT 转换的流量和之前一样再次通过 IPsec VPN 隧道穿越了 Internet。 Router-to-PIX LAN-to-LAN VPN 在上一小节中,我们介绍了 Router 与 Router 之间配置 LAN-to-LAN VPN,即 Router-to-Router LAN-to-LAN VPN;在本小节中,我们来介绍 Router 与 PIX 之间配置 LAN-to-LAN VPN,即 Router-to-PIX LAN-to-LAN VPN 配置 Router-to-PIX LAN-to-LAN VPN 第 93 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 LAN-to-LAN VPN 的效果,其中两个远 程公司的网络上海和北京,如 R5 与 R4 之间需要直接使用私有地址来互访,比如 R5 通过直接访问地址 192.168.1.4 来访问 R4,而 R2 则相当于 Internet 路由器,R2 只负 责让 R1 与 PIX 能够通信,R2 不会配置任何路由,R2 不允许拥有上海与北京公司内 部的路由 10.1.1.0 与 192.168.1.0,在配置完 LAN-to-LAN VPN 之后,最终上海与北京 两个网络之间通过 VPN 隧道来穿越没有路由的 R2 来进行通信,实现在私网与私网 之间穿越公网的通信。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#int f0/1 第 94 页共 844 页 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 说明:配置 R2 的接口地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R4: r4(config)#int f0/0 第 95 页共 844 页 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit www.china-ccie.com r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 说明:配置 R4 的接口地址,并写默认路由指向北京公司出口 PIX。 (4)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 (5)配置 PIX: pixfirewall(config)# int e0 pixfirewall(config-if)# ip add 192.168.1.3 255.255.255.0 pixfirewall(config-if)# no shu 第 96 页共 844 页 pixfirewall(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. pixfirewall(config-if)# exit www.china-ccie.com pixfirewall(config)# int e1 pixfirewall(config-if)# ip add 23.1.1.3 255.255.255.0 pixfirewall(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. pixfirewall(config-if)# exit pixfirewall(config)# route outside 0 0 23.1.1.2 说明:配置 PIX 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2。 2.测试基础网络环境 (1)测试 R1 到 PIX 的连通性: r1#ping 23.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds: !!!!! 第 97 页共 844 页 www.china-ccie.com Success rate is 100 percent (5/5), round-trip min/avg/max = 20/38/60 ms r1# 说明:因为 R1 与 PIX 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1 和 PIX 都是可达的,所以 R1 与 PIX 通信正常。 (2)测试 R1 到 R4 的连通性: r1#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 PIX 的通信,所以 R1 无法访问北京公司的私有网段 192.168.1.0。 (3)测试 R5 到 R4 的连通性: r5#ping 192.168.1.4 Type escape sequence to abort. 第 98 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 PIX 的通 信,所以上海和北京公司无法通过私有地址互访。 (4)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 第 99 页共 844 页 12.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 PIX 能够通信即可。 3.配置 LAN-to-LAN VPN (1)在 PIX 上配置 IKE(ISAKMP)策略: pixfirewall(config)# crypto isakmp policy 1 pixfirewall(config-isakmp-policy)# encryption 3des pixfirewall(config-isakmp-policy)# hash sha pixfirewall(config-isakmp-policy)# authentication pre-share pixfirewall(config-isakmp-policy)# group 2 pixfirewall(config-isakmp-policy)# exit 说明:定义了 ISAKMP policy 1,加密方式为 3des,hash 算法为 sha,认证方式为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)在 PIX 上定义认证标识: pixfirewall(config)# tunnel-group 12.1.1.1 type ipsec-l2l pixfirewall(config)# tunnel-group 12.1.1.1 ipsec-attributes pixfirewall(config-tunnel-ipsec)# pre-shared-key cisco123 第 100 页共 844 页 pixfirewall(config-tunnel-ipsec)# exit www.china-ccie.com 说明:因为之前定义的认证方式为 Pre-Shared Keys (PSK),所以需要定义认证密码, 这里定义与 peer 12.1.1.1,即与 R1 的认证密码为 cisco123,并且双方密码必须一致, 否则无法建立 IKE SA。 (3)在 PIX 上配置 IPsec transform: pixfirewall(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac 说明:配置了 transform-set 为 ccie,其中数据封装使用 esp 加 3des 加密,并且 使用 esp 结合 sha 做 hash 计算。 (4)在 PIX 上定义感兴趣流量: pixfirewall(config)# access-list vpn permit ip permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 说明:这里需要被 IPsec 保护传输的流量为北京公司至上海公司的流量,即 192.168.1.0/24 发往 10.1.1.0/24 的流量,切记不可使用 any 来表示地址。 (5)在 PIX 上创建 crypto map: pixfirewall(config)# crypto map l2l 1 match address vpn pixfirewall(config)# crypto map l2l 1 set peer 12.1.1.1 pixfirewall(config)# crypto map l2l 1 set transform-set ccie 说明:在 PIX 上配置 crypto map 为 l2l,序号为 1,即第 1 组策略,其中指定加密 数据发往的对端为 12.1.1.1,即和 12.1.1.1 建立 IPsec 隧道,调用的 IPsec transform 为 ccie,并且指定 ACL vpn 中的流量为被保护的流量。 第 101 页共 844 页 www.china-ccie.com (6)在 PIX 上将 crypto map 和 ISAKMP 策略应用于接口 outside 接口 E1: pixfirewall(config)# crypto map l2l interface outside pixfirewall(config)# crypto isakmp enable outside 说明:将 crypto map 和 ISAKMP 策略应用在去往上海公司的接口 E1 上。 (7)使用相同方式配置 R1 的 LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3 r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 第 102 页共 844 页 r1(config)#crypto map l2l 1 ipsec-isakmp r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit www.china-ccie.com r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)#exit r1(config)# *Mar 1 00:21:45.171: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config)# 说明:R1 与 PIX 的 IKE 和 IPsec 策略必须保持一致。 4.测试 VPN (1)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 第 103 页共 844 页 Type escape sequence to abort. www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/91/224 ms r5# 说明:上海公司 R5 向北京公司 R4 发送的 5 个数据包,有 5 个成功穿越了 Internet, 说明该流量激活了 IKE SA,并且在双方应该成功建立了 IPsec 隧道,所以才实现了 VPN 的功能。需要注意的是,如果没有触发流量成功,请到对端发送流量触发。 (2)再从北京公司 R4 向上海公司 R5 发送流量: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/101/188 ms r4# 说明:由于双方 VPN 配置正确且相同,所以 VPN 隧道已经成功转发双方的流量。 (3)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers 第 104 页共 844 页 Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 www.china-ccie.com Phase1 id: 23.1.1.3 r1# r1# 说明:R1 已经成功与 PIX 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地源 地址为 12.1.1.1,目标为 23.1.1.3,目标端口号为 500。 (4)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1002 0 ACTIVE IPv6 Crypto ISAKMP SA 说明:R1 已经成功与 PIX 建立 IKE SA。 (5)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa 第 105 页共 844 页 interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 85, #pkts encrypt: 85, #pkts digest: 85 #pkts decaps: 57, #pkts decrypt: 57, #pkts verify: 57 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 20, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x364B657F(910910847) inbound esp sas: spi: 0x416B8271(1097564785) 第 106 页共 844 页 transform: esp-3des esp-sha-hmac , www.china-ccie.com in use settings ={Tunnel, } conn id: 3, flow_id: SW:3, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4383510/3351) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x364B657F(910910847) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 4, flow_id: SW:4, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4383510/3350) IV size: 8 bytes replay detection support: Y Status: ACTIVE 第 107 页共 844 页 outbound ah sas: www.china-ccie.com outbound pcp sas: r1# 说明:IPsec SA 中显示了之前通了的包成功被 IPsec 加密,并且可以看出该 SA 为 Active 状态,特别要注意的是,目前的 IPsec mode 工作在 Tunnel 模式。 (6)查看上海公司向北京公司发送数据包的路径走向: r5#traceroute 192.168.1.4 Type escape sequence to abort. Tracing the route to 192.168.1.4 1 10.1.1.1 92 msec 64 msec 48 msec 2 192.168.1.4 588 msec 532 msec * r5# 说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只 有一跳,就到达了目的地,说明中间的多跳已经被隧道取代为一跳了。 (7)查看 PIX 上 IKE SA 的 peer: 第 108 页共 844 页 pixfirewall# sh crypto isakmp sa www.china-ccie.com Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 12.1.1.1 Type : L2L Role : initiator Rekey : no State : MM_ACTIVE pixfirewall# pixfirewall# 说明:PIX 上也看到已经成功与 R1 建立 IKE peer,说明 IKE SA 也应该成功建立。 (8)查看 PIX 上的激活的隧道数: pixfirewall# sh crypto isakmp stats Global IKE Statistics Active Tunnels: 1 Previous Tunnels: 2 In Octets: 7196 In Packets: 60 第 109 页共 844 页 In Drop Packets: 11 In Notifys: 36 In P2 Exchanges: 5 In P2 Exchange Invalids: 0 In P2 Exchange Rejects: 0 In P2 Sa Delete Requests: 0 Out Octets: 6316 Out Packets: 55 Out Drop Packets: 0 Out Notifys: 68 Out P2 Exchanges: 1 Out P2 Exchange Invalids: 0 Out P2 Exchange Rejects: 0 Out P2 Sa Delete Requests: 2 Initiator Tunnels: 1 Initiator Fails: 0 Responder Fails: 0 System Capacity Fails: 0 Auth Fails: 0 Decrypt Fails: 0 Hash Valid Fails: 0 第 110 页共 844 页 www.china-ccie.com No Sa Fails: 0 www.china-ccie.com pixfirewall# 说明:如果已经与一方成功建立 IKE SA,那么在这里就需要看到至少 1 个活动隧 道(Active Tunnels)。 (9)查看 PIX 上的 IPsec SA: pixfirewall# show crypto ipsec sa interface: outside Crypto map tag: l2l, seq num: 1, local addr: 23.1.1.3 access-list vpn permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer: 12.1.1.1 #pkts encaps: 52, #pkts encrypt: 52, #pkts digest: 52 #pkts decaps: 56, #pkts decrypt: 56, #pkts verify: 56 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 52, #pkts comp failed: 0, #pkts decomp failed: 0 #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 第 111 页共 844 页 #send errors: 0, #recv errors: 0 www.china-ccie.com local crypto endpt.: 23.1.1.3, remote crypto endpt.: 12.1.1.1 path mtu 1500, ipsec overhead 58, media mtu 1500 current outbound spi: 416B8271 inbound esp sas: spi: 0x364B657F (910910847) transform: esp-3des esp-sha-hmac none in use settings ={L2L, Tunnel, } slot: 0, conn_id: 8192, crypto-map: l2l sa timing: remaining key lifetime (kB/sec): (4274996/3176) IV size: 8 bytes replay detection support: Y outbound esp sas: spi: 0x416B8271 (1097564785) transform: esp-3des esp-sha-hmac none in use settings ={L2L, Tunnel, } slot: 0, conn_id: 8192, crypto-map: l2l sa timing: remaining key lifetime (kB/sec): (4274996/3176) 第 112 页共 844 页 IV size: 8 bytes replay detection support: Y www.china-ccie.com pixfirewall# 说明:IPsec SA 中显示了之前通了的包成功被 IPsec 加密,并且可以看出该 SA 为 Active 状态,同样,目前的 IPsec mode 工作在 Tunnel 模式。 5.测试 NAT 对 LAN-to-LAN VPN 的影响: (1)在 PIX 上配置 NAT: pixfirewall(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool pixfirewall(config)# nat (inside) 1 0.0.0.0 0.0.0.0 说明:在北京公司防火墙 PIX 上开启 NAT,并且将所有内网流量通过 NAT 将源 IP 转换为外网接口 E1(即 outside 口)的地址。 (2)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... 第 113 页共 844 页 Success rate is 0 percent (0/5) www.china-ccie.com r5# 说明:和预期一样,IPsec 流量是不能穿越 NAT 的。 (3)从北京公司 R4 向上海公司 R5 发送流量: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r4# 说明:北京公司到上海公司的流量也不能穿越 NAT。 (4)配置 PIX 使北京公司到上海公司的流量绕过 NAT: pixfirewall(config)#access-list nonat extended permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 pixfirewall(config)#nat (inside) 0 access-list nonat 说明:在 NAT 进程 0 的流量则不被 NAT 转换,所以北京公司到上海公司的流量 不被 NAT 转换。 (5)再次从北京公司 R4 向上海公司 R5 发送流量: r4#ping 10.1.1.5 第 114 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/89/200 ms r4# 说明:因为配置了北京公司到上海公司的流量不被 NAT 转换,所以北京公司到 上海公司的流量再次通过 IPsec VPN 隧道穿越了 Internet。 (6)再次从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/100/200 ms r5# 说明:同上原因,上海公司到北京公司的流量再次通过 IPsec VPN 隧道穿越了 Internet。 第 115 页共 844 页 www.china-ccie.com Router-to-ASA LAN-to-LAN VPN 在前面的小节中,我们介绍了 Router 与 Router 之间配置 LAN-to-LAN VPN,以及 Router 与 PIX 之间配置 LAN-to-LAN VPN;在本小节中,我们来介绍 Router 与 ASA 之 间配置 LAN-to-LAN VPN,即 Router-to-ASA LAN-to-LAN VPN 说明:我们下面需要以上图的环境来演示 LAN-to-LAN VPN 的效果,其中两个远 程公司的网络上海和北京,如 R5 与 R4 之间需要直接使用私有地址来互访,比如 R5 通过直接访问地址 192.168.1.4 来访问 R4,而 R2 则相当于 Internet 路由器,R2 只负 责让 R1 与 ASA 能够通信,R2 不会配置任何路由,R2 不允许拥有上海与北京公司内 部的路由 10.1.1.0 与 192.168.1.0,在配置完 LAN-to-LAN VPN 之后,最终上海与北京 两个网络之间通过 VPN 隧道来穿越没有路由的 R2 来进行通信,实现在私网与私网 之间穿越公网的通信。 1.配置基础网络环境 (1)配置 R1: 第 116 页共 844 页 r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 第 117 页共 844 页 r2(config-if)#no sh www.china-ccie.com r2(config-if)#exit 说明:配置 R2 的接口地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R4: r4(config)#int f0/0 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 说明:配置 R4 的接口地址,并写默认路由指向北京公司出口 ASA。 (4)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 第 118 页共 844 页 www.china-ccie.com 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 (5)配置 ASA: ciscoasa(config)# int e0/0 ciscoasa(config-if)# ip add 192.168.1.3 255.255.255.0 ciscoasa(config-if)# no shut ciscoasa(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. ciscoasa(config-if)# exit ciscoasa(config)# int e0/1 ciscoasa(config-if)# ip add 23.1.1.3 255.255.255.0 ciscoasa(config-if)# no shut ciscoasa(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. ciscoasa(config-if)# ciscoasa(config-if)# route outside 0 0 23.1.1.2 说明:配置 ASA 的接口地址,并写默认路由指向 Internet(路由器 R2),地址 23.1.1.2。 2.测试基础网络环境 (1)测试 R1 到 ASA 的连通性: 第 119 页共 844 页 r1#ping 23.1.1.3 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/44/80 ms r1# 说明:因为 R1 与 ASA 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1 和 ASA 都是可达的,所以 R1 与 ASA 通信正常。 (2)测试 R1 到 R4 的连通性: r1#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 ASA 的通信,所以 R1 无法访问北京公司的私有网段 192.168.1.0。 第 120 页共 844 页 (3)测试 R5 到 R4 的连通性: r5#ping 192.168.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 ASA 的 通信,所以上海和北京公司无法通过私有地址互访。 (4)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 121 页共 844 页 Gateway of last resort is not set www.china-ccie.com 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 ASA 能够通信即可。 3.配置 LAN-to-LAN VPN (1)在 ASA 上配置 IKE(ISAKMP)策略: ciscoasa(config)# crypto isakmp policy 1 ciscoasa(config-isakmp-policy)# encryption 3des ciscoasa(config-isakmp-policy)# hash sha ciscoasa(config-isakmp-policy)# authentication pre-share ciscoasa(config-isakmp-policy)# group 2 ciscoasa(config-isakmp-policy)# exit 说明:定义了 ISAKMP policy 1,加密方式为 3des,hash 算法为 sha,认证方式为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 第 122 页共 844 页 (2)在 ASA 上定义认证标识: www.china-ccie.com ciscoasa(config)# tunnel-group 12.1.1.1 type ipsec-l2l ciscoasa(config)# tunnel-group 12.1.1.1 ipsec-attributes ciscoasa(config-tunnel-ipsec)# pre-shared-key cisco123 ciscoasa(config-tunnel-ipsec)# exit 说明:因为之前定义的认证方式为 Pre-Shared Keys (PSK),所以需要定义认证密码, 这里定义与 peer 12.1.1.1,即与 R1 的认证密码为 cisco123,并且双方密码必须一致, 否则无法建立 IKE SA。 (3)在 ASA 上配置 IPsec transform: ciscoasa(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac 说明:配置了 transform-set 为 ccie,其中数据封装使用 esp 加 3des 加密,并且 使用 esp 结合 sha 做 hash 计算。 (4)在 ASA 上定义感兴趣流量: ciscoasa(config)# access-list vpn permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 说明:这里需要被 IPsec 保护传输的流量为北京公司至上海公司的流量,即 192.168.1.0/24 发往 10.1.1.0/24 的流量,切记不可使用 any 来表示地址。 (5)在 ASA 上创建 crypto map: ciscoasa(config)# crypto map l2l 1 match address vpn 第 123 页共 844 页 ciscoasa(config)# crypto map l2l 1 set peer 12.1.1.1 www.china-ccie.com ciscoasa(config)# crypto map l2l 1 set transform-set ccie 说明:在 ASA 上配置 crypto map 为 l2l,序号为 1,即第 1 组策略,其中指定加 密数据发往的对端为 12.1.1.1,即和 12.1.1.1 建立 IPsec 隧道,调用的 IPsec transform 为 ccie,并且指定 ACL vpn 中的流量为被保护的流量。 (6)在 ASA 上将 crypto map 和 ISAKMP 策略应用于接口 outside 接口 E0/1: ciscoasa(config)# crypto map l2l interface outside ciscoasa(config)# crypto isakmp enable outside 说明:将 crypto map 和 ISAKMP 策略应用在去往上海公司的接口 E1 上。 (7)使用相同方式配置 R1 的 LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3 r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac 第 124 页共 844 页 r1(cfg-crypto-trans)#exit www.china-ccie.com r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 r1(config)#crypto map l2l 1 ipsec-isakmp r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)#exit r1(config)# *Mar 1 00:21:45.171: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config)# 说明:R1 与 PIX 的 IKE 和 IPsec 策略必须保持一致。 第 125 页共 844 页 4.测试 VPN (1)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/96/160 ms r5# 说明:上海公司 R5 向北京公司 R4 发送的 5 个数据包,有 5 个成功穿越了 Internet, 说明该流量激活了 IKE SA,并且在双方应该成功建立了 IPsec 隧道,所以才实现了 VPN 的功能。需要注意的是,如果没有触发流量成功,请到对端发送流量触发。 (2)再从北京公司 R4 向上海公司 R5 发送流量: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 48/103/148 ms r4# 说明:由于双方 VPN 配置正确且相同,所以 VPN 隧道已经成功转发双方的流量。 第 126 页共 844 页 www.china-ccie.com (3)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.3 r1# r1# 说明:R1 已经成功与 ASA 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地 源地址为 12.1.1.1,目标为 23.1.1.3,目标端口号为 500。 (4)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1002 0 ACTIVE IPv6 Crypto ISAKMP SA 说明:R1 已经成功与 ASA 建立 IKE SA。 第 127 页共 844 页 (5)查看 R1 上的 IPsec SA: www.china-ccie.com r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 922, #pkts encrypt: 922, #pkts digest: 922 #pkts decaps: 906, #pkts decrypt: 906, #pkts verify: 906 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 12, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 第 128 页共 844 页 current outbound spi: 0x1E66BA90(510048912) www.china-ccie.com inbound esp sas: spi: 0xF04751E8(4031205864) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 5, flow_id: SW:5, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4564889/3556) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x1E66BA90(510048912) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 6, flow_id: SW:6, crypto map: l2l 第 129 页共 844 页 www.china-ccie.com sa timing: remaining key lifetime (k/sec): (4564889/3555) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:IPsec SA 中显示了之前通了的包成功被 IPsec 加密,并且可以看出该 SA 为 Active 状态,特别要注意的是,目前的 IPsec mode 工作在 Tunnel 模式。 (6)查看上海公司向北京公司发送数据包的路径走向: r5#traceroute 192.168.1.4 Type escape sequence to abort. Tracing the route to 192.168.1.4 1 10.1.1.1 124 msec 68 msec 48 msec 2 192.168.1.4 304 msec 480 msec * r5# 第 130 页共 844 页 www.china-ccie.com 说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只 有一跳,就到达了目的地,说明中间的多跳已经被隧道取代为一跳了。 (7)查看 ASA 上 IKE SA 的 peer: ciscoasa# show crypto isakmp sa Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 12.1.1.1 Type : L2L Role : initiator Rekey : no State : MM_ACTIVE ciscoasa# 说明:ASA 上也看到已经成功与 R1 建立 IKE peer,说明 IKE SA 也应该成功建立。 (8)查看 ASA 上的激活的隧道数: ciscoasa# show crypto isakmp stats Global IKE Statistics 第 131 页共 844 页 Active Tunnels: 1 Previous Tunnels: 2 In Octets: 5012 In Packets: 34 In Drop Packets: 5 In Notifys: 10 In P2 Exchanges: 10 In P2 Exchange Invalids: 0 In P2 Exchange Rejects: 0 In P2 Sa Delete Requests: 1 Out Octets: 3648 Out Packets: 24 Out Drop Packets: 0 Out Notifys: 16 Out P2 Exchanges: 1 Out P2 Exchange Invalids: 0 Out P2 Exchange Rejects: 0 Out P2 Sa Delete Requests: 1 Initiator Tunnels: 1 Initiator Fails: 0 Responder Fails: 0 第 132 页共 844 页 www.china-ccie.com System Capacity Fails: 0 Auth Fails: 0 Decrypt Fails: 0 Hash Valid Fails: 0 No Sa Fails: 0 ciscoasa# www.china-ccie.com 说明:如果已经与一方成功建立 IKE SA,那么在这里就需要看到至少 1 个活动隧 道(Active Tunnels)。 (9)查看 ASA 上的 IPsec SA: ciscoasa# show crypto ipsec sa interface: outside Crypto map tag: l2l, seq num: 1, local addr: 23.1.1.3 access-list vpn permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer: 12.1.1.1 #pkts encaps: 6, #pkts encrypt: 6, #pkts digest: 6 第 133 页共 844 页 #pkts decaps: 7, #pkts decrypt: 7, #pkts verify: 7 www.china-ccie.com #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 6, #pkts comp failed: 0, #pkts decomp failed: 0 #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 #send errors: 0, #recv errors: 0 local crypto endpt.: 23.1.1.3, remote crypto endpt.: 12.1.1.1 path mtu 1500, ipsec overhead 58, media mtu 1500 current outbound spi: F04751E8 inbound esp sas: spi: 0x1E66BA90 (510048912) transform: esp-3des esp-sha-hmac none in use settings ={L2L, Tunnel, } slot: 0, conn_id: 8192, crypto-map: l2l sa timing: remaining key lifetime (kB/sec): (4274999/3502) IV size: 8 bytes replay detection support: Y outbound esp sas: 第 134 页共 844 页 spi: 0xF04751E8 (4031205864) www.china-ccie.com transform: esp-3des esp-sha-hmac none in use settings ={L2L, Tunnel, } slot: 0, conn_id: 8192, crypto-map: l2l sa timing: remaining key lifetime (kB/sec): (4274999/3502) IV size: 8 bytes replay detection support: Y ciscoasa# 说明:IPsec SA 中显示了之前通了的包成功被 IPsec 加密,并且可以看出该 SA 为 Active 状态,同样,目前的 IPsec mode 工作在 Tunnel 模式。 5.测试 NAT 对 LAN-to-LAN VPN 的影响: (1)在 ASA 上配置 NAT: ciscoasa(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0 说明:在北京公司防火墙 ASA 上开启 NAT,并且将所有内网流量通过 NAT 将源 IP 转换为外网接口 E0/1(即 outside 口)的地址。 (2)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 第 135 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:和预期一样,IPsec 流量是不能穿越 NAT 的。 (3)从北京公司 R4 向上海公司 R5 发送流量: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r4# 说明:北京公司到上海公司的流量也不能穿越 NAT。 (4)配置 ASA 使北京公司到上海公司的流量绕过 NAT: ciscoasa(config)#access-list nonat extended permit ip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0 第 136 页共 844 页 ciscoasa(config)# nat (inside) 0 access-list nonat www.china-ccie.com ciscoasa(config)# 说明:在 NAT 进程 0 的流量则不被 NAT 转换,所以北京公司到上海公司的流量 不被 NAT 转换。 (5)再次从北京公司 R4 向上海公司 R5 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/93/232 ms r5# 说明:因为配置了北京公司到上海公司的流量不被 NAT 转换,所以北京公司到 上海公司的流量再次通过 IPsec VPN 隧道穿越了 Internet。 (6)再次从上海公司 R5 向北京公司 R4 发送流量: r4#ping 10.1.1.5 Type escape sequence to abort. 第 137 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/140/232 ms r4# 说明:同上原因,上海公司到北京公司的流量再次通过 IPsec VPN 隧道穿越了 Internet。 IPsec Dynamic LAN-to-LAN VPN(DyVPN) 概述 在普通 LAN-to-LAN VPN 中,我们在配置 ISAKMP Phase one 的身份认证时,需要 指定对方 peer 的密码,我们不难发现,这个密码是基于 peer 邻居指定的,也就是 需要为每一个 peer 定义一个密码,不仅如此,在我们定义 crypto map 时,同样也 需要指定 peer 的地址,以此来定义加密数据发往的对端,结果就是需要为每一个 VPN 邻居输入一组相应配置,随着 VPN 邻居的增加,这样的重复配置就会随之增加, 试想一下,假如有个大型公司有 1000 家分公司,这 1000 家分公司都要和总公司通 过 VPN 通信,那么就需要让总公司的 VPN 设备和 1000 个邻居建立 VPN,这样一来, 虽然每家分公司只要配置好对总公司的 VPN 配置,但是总公司的设备却需要为每个 分公司配置一组配置,最终就需要配置总共 1000 组 VPN 配置,这是一件多么恐怖 的工作;并且这台总公司 VPN 设备会变的难以管理,不可维护,所以普通 LAN-to-LAN VPN 要用在拥有多个分公司的环境下,是不可取的。并且如果 VPN 双方有任何一方 的 IP 地址事先不知道或地址不固定,也不能建立 VPN。 第 138 页共 844 页 www.china-ccie.com 我们可以仔细分析一下,造成上述问题的原因是,普通 LAN-to-LAN VPN 需要为 每个 peer 指定认证密码,所以 peer 的增加,就意味着配置的增加,因为每个 peer 的认证密码都是需要事先定义好的,如果我们可以使用一条命令为多个 peer 指定认 证密码,这就可以让配置简化,所以就考虑使用像配置 ACL 的方法一样去定义与密 码相对应的 peer,只要被该 ACL 匹配到的 peer,都使用该认证密码,比如 10.1.1.0 0.0.0.255 就能够匹配 10.1.1.1 至 10.1.1.254 范围内的所有地址,这种配置认证的方 法称为使用通配符的配置方法,可以通过定义 peer 的地址范围来配置密码,就可以 实现密码多用的功能,在 peer 数量众多的情况下,明显可以减少工作量。令人高兴 的是,如果要和多少个 peer 建立 VPN,甚至连 peer 的地址范围会是多少都不知道 的情况下,也没有关系,我们可以将通配符写成 0.0.0.0 0.0.0.0,这就表示任意地址, 这样的结果就是不管 peer 是谁,我们定义的认证密码都对它生效,这样一来,不管 是要和一千个 peer 建 VPN,还是要和一万个 peer 建 VPN 都没关系,因为我们的只 需要使用一条命令来定义密码,即可接受任何地址的连接。 通配符认证配置方法是通过配置 IPsec profile 来实现的, 第一个被引入的 IOS 版本是 12.2(15)T,但最好在 12.3(3) ,12.3(2)T 或之后的,才能成功,之前的版本 都有 Bug。 之前我们提到过,不仅需要为每个 peer 定义认证密码外,还需要为每个 peer 定义 crypto map,在每个 crypto map 中,指定相应的 peer,为每个 peer 定义认证 密码的工作已经通过使用通配符的配置方法解决了工作量,但为每个 peer 定义 crypto map 仍然是个恐怖的工作,所以我们也必须想办法配置一次 crypto map 能够 让多个 peer 使用,这样一个 crypto map 为多个 peer 使用的模式,称为 dynamic map (动态 map),dynamic map 不再单独定义每个 peer 地址,而采用定义 0.0.0.0 来表 示任意地址,即该 dynamic map 为任何 peer 使用,这样一来,就是无论有多少个 peer,无论 peer 是谁,都使用 dynamic map 去应对。 通过结合使用通配符认证配置方法与 dynamic map,就可以不管有多少个 VPN peer,我们只需要配置 1 次认证密码与 1 个 dynamic map 就能实现,而且即使 VPN peer 的数量不停增加也没关系,因为我们的 VPN 配置可以接受任意地址的连接,所 以无论和多少个 VPN peer 连接,我们的配置始终保持不变,这样的 VPN,我们称为 IPsec Dynamic LAN-to-LAN VPN(DyVPN),当 Dynamic LAN-to-LAN VPN 应用在大型公 司时,而无论该公司有多少家分公司要和总公司连接 VPN,而无论新开的分公司地 址是多少,总公司的 VPN 配置始终保持不变,这使得即使分公司的 IP 地址是预先 不知道的,比如通过拨入 ADSL 获得的动态 IP 地址,总公司统统接受他们的 VPN 连 接请求。 Dynamic LAN-to-LAN VPN 能够接受任何地址连接的设备,我们称为 Hub 端,对端 称为 spoke 端,可见 Hub 端就应用了通配符认证配置方法与 dynamic map,但 spoke 第 139 页共 844 页 www.china-ccie.com 端的配置与普通 LAN-to-LAN VPN 配置方法一样,没有任何区别;虽然说 Dynamic LAN-to-LAN VPN 的 Hub 端可以接受任何 spoke 端的 VPN 连接,这只是表示 spoke 端 的 IP 地址可以是任意地址,但是因为 spoke 端的配置与普通 LAN-to-LAN VPN 配置方 法一样,需要事先指定 peer 的地址,所以 Hub 端的 IP 地址是必须固定的,否则两 端的 IP 地址都不固定或不知道,那就谈不上建立任何形式的 VPN。 配置 Dynamic LAN-to-LAN VPN 时,有两个注意点,即 Hub 端需要使用通配符认 证配置方法和 dynamic map 技术,其它配置部分与配置需求和普通 LAN-to-LAN VPN 一样。 虽然是 Dynamic LAN-to-LAN VPN,但工作原理和普通 IPsec VPN 一样,也需要在 双方建立 SA,需要知道什么样的流量需要被加密传输,对于 spoke 路由器,是肯定 知道什么样的流量需要加密的,因为它的配置和普通 LAN-to-LAN VPN 完全一样,而 对于 Hub 端,因为它能够与任何路由器建立 VPN,也就是会和什么样的网络通信, 发往哪里的数量需要加密,哪个网络的流量该发往哪个 peer,这对于 Hub 来说是不 知道的,所以在 Hub 端,无法事先确定发往每个 peer 的流量,所以也就无法对于 每个 peer 形成相应的 SA,但无论是 Hub 还是 spoke,SA 终究是要确定的,这就需 要在 spoke 端去初始化。所以,在 Dynamic LAN-to-LAN VPN 环境下,只能先由 spoke 端向 Hub 端发流量来使 Hub 端形成相应 SA,在 spoke 端没有向 Hub 端发流量之前, Hub 端是没有 SA 的,并且 Hub 端是不能靠自己发流量来初始化 SA 的建立的。 所有的 spoke router 连接到同 hub 时,可以是相同的配置,唯一不同的可能就是 ACL 匹配的流量了。 注: ★Dynamic LAN-to-LAN VPN 的 Hub 端 IP 地址必须是 spoke 事先知道的 IP 地址, 所以应该为固定 IP。 ★Dynamic LAN-to-LAN VPN 的 spoke 端 IP 地址可以是任意地址,如 ADSL 通过 DHCP 获得的 IP 地址。 ★Dynamic LAN-to-LAN VPN 同时支持 Router,PIX 防火墙,ASA 防火墙。 第 140 页共 844 页 www.china-ccie.com ★只能先由 spoke 端向 Hub 端发流量来使 Hub 端形成相应 SA,在 spoke 端没有 向 Hub 端发流量之前,Hub 端是没有 SA 的,并且 Hub 端是不能靠自己发流量来初 始化 SA 的建立的。 ★所有的 spoke router 连接到相同 hub 时,可以是相同的 VPN 配置,唯一不同的 可能就是 ACL 匹配的感兴趣流量不同。 Router-to-Router Dynamic LAN-to-LAN VPN 在本小节,我们在 Router 与 Router 之间配置 Dynamic LAN-to-LAN VPN,即配置 Router-to-Router Dynamic LAN-to-LAN VPN。 配置 Router-to-Router Dynamic LAN-to-LAN VPN 第 141 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 Dynamic LAN-to-LAN VPN 的效果,在图 中,有上海、北京和广州共三个公司的网络,上海要同时和北京与广州的网络实现 VPN 通信,其中北京路由器 R3 的 IP 地址是预先知道的,即 23.1.1.3,这样上海便能 与北京轻松实现 VPN,而广州的路由器 R4 的 IP 地址是通过 DHCP 获得的,事先无 法知道 IP 是多少,在这样的情况下,我们通过配置 Dynamic LAN-to-LAN VPN 来使上 海公司的路由器接受任何公司的 VPN 连接,而不管其 IP 地址是多少。 注:在上图中,即使 VPN 场点增加,在上海路由器 R1 上,不需要更改任何配置, 都能接受对方的 VPN 连接。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 第 142 页共 844 页 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 24.1.1.2 255.255.255.0 r2(config-if)#no sh 第 143 页共 844 页 r2(config-if)#exit www.china-ccie.com r2(config)#int s1/0 r2(config-if)#encapsulation frame-relay r2(config-if)#no frame-relay inverse-arp r2(config-if)#no arp frame-relay r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#frame-relay map ip 23.1.1.3 203 broadcast r2(config-if)#exit r2(config)#service dhcp r2(config)#ip dhcp pool net24 r2(dhcp-config)#network 24.1.1.0 255.255.255.0 r2(dhcp-config)#default-router 24.1.1.2 r2(dhcp-config)#exit r2(config)#ip dhcp excluded-address 24.1.1.2 说明:配置 R2 的接口地址,并且在 R2 上配置 DHCP,向广州路由器 R4 提供动 态 IP 地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0、23.1.1.0 和 24.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: 第 144 页共 844 页 r3(config)#int s1/0 www.china-ccie.com r3(config-if)#encapsulation frame-relay r3(config-if)#no frame-relay inverse-arp r3(config-if)#no arp frame-relay r3(config-if)#no sh r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#frame-relay map ip 23.1.1.2 302 broadcast r3(config-if)#exit r3(config)#int f0/0 r3(config-if)#ip add 192.168.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2。 (4)配置 R4: r4(config)#int f0/0 r4(config-if)#ip add 172.16.1.4 255.255.255.0 第 145 页共 844 页 r4(config-if)#no sh r4(config-if)#exit www.china-ccie.com r4(config)#int f0/1 r4(config-if)#ip address dhcp r4(config-if)#no shutdown r4(config-if 说明:在 R4 上配置内网网段 172.16.1.0/24,并且在连 Internet 的接口 F0/1 上开 启 DHCP 动态获得地址,所以 F0/1 上的 IP 地址是多少,事先是不知道的。 (5)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 2.测试基础网络环境 (1)查看广州路由器 R4 的 IP 地址情况: r4#sh ip int brief 第 146 页共 844 页 Interface IP-Address OK? Method Status www.china-ccie.com Protocol FastEthernet0/0 172.16.1.4 YES manual up up FastEthernet0/1 24.1.1.1 YES DHCP up up Serial1/0 unassigned YES unset administratively down down Serial1/1 unassigned YES unset administratively down down Serial1/2 unassigned YES unset administratively down down Serial1/3 unassigned YES unset administratively down down r4# 说明:广州路由器 R4 除了内网网段 172.16.1.0/24 之外,外网接口 F0/1 的地址 24.1.1.1 是 DHCP 动态获得的。 (2)查看 R4 的路由表: r4#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 24.1.1.2 to network 0.0.0.0 第 147 页共 844 页 www.china-ccie.com 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, FastEthernet0/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [254/0] via 24.1.1.2 R 说明:R4 将所有未知路由丢向 Internet(R2)。 (3)测试 R1 到 R3 和 R4 的连通性: r1#ping 23.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/101/136 ms r1# r1# r1#ping 24.1.1.1 Type escape sequence to abort. 第 148 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 24.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/78/152 ms r1# 说明:因为 R1、R3 和 R4 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1、 R3 和 R4 都是可达的,所以 R1 与 R3 和 R4 通信正常。 (4)测试 R1 到北京内网和广州内网的连通性: r1#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# r1# r1#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) 第 149 页共 844 页 www.china-ccie.com r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0、 23.1.1.0 和 24.1.1.0,只能保证 R1 与 R3 和 R4 的通信,所以 R1 无法访问北京公司和 广州公司的私有网段 192.168.1.0 与 172.16.1.0。 (5)测试 R5 到北京内网和广州内网的连通性: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0、23.1.1.0 和 24.1.10,只能保证 R1 与 R3 和 R4 的通信,所以上海到北京公司和广州公司无法通过私有地址互访。 第 150 页共 844 页 www.china-ccie.com (6)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, Serial1/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 第 151 页共 844 页 www.china-ccie.com 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 和 R4 能够通信即可。 3.配置 Dynamic LAN-to-LAN VPN (1)在 R1 上配置 IKE(ISAKMP)策略: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit 说明:定义了 ISAKMP policy 1,加密方式为 3des,hash 算法为 sha,认证方式为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)在 R1 上配置通配符认证方法: r1(config)#crypto keyring abc r1(conf-keyring)#pre-shared-key address 0.0.0.0 0.0.0.0 key cisco123 r1(conf-keyring)#exit r1(config)#crypto isakmp profile ppp % A profile is deemed incomplete until it has match identity statements r1(conf-isa-prof)#keyring abc 第 152 页共 844 页 r1(conf-isa-prof)#match identity address 0.0.0.0 www.china-ccie.com r1(conf-isa-prof)#exit 说明:配置了名为 ppp 的 IPsec profile,并定义任何 IP 地址的认证密码为 cisco123。 (3)在 R1 上配置 IPsec transform: r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit 说明:配置了 transform-set 为 ccie,其中数据封装使用 esp 加 3des 加密,并且 使用 esp 结合 sha 做 hash 计算,默认的 IPsec mode 为 tunnel。 (4)在 R1 上定义 dynamic map: r1(config)#crypto dynamic-map dymap 5 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#set isakmp-profile ppp r1(config-crypto-map)#exit 说明:定义了名为 dymap 的 dynamic map,并调用名为 ppp 的 IPsec profile 和名 为 ccie 的 transform-set。 (5)在 R1 上创建 crypto map: r1(config)#crypto map mymap 10 ipsec-isakmp dynamic dymap 说明:定义了名为 mymap 的 Crypto-map ,与常规的 Crypto-map 不一样,这里 的 Crypto-map 只需要与之前的 dynamic crypto map.关联即可,并且配置到这里就结 束了,可以看出,Hub 端是不需要定义感兴趣流量的。 第 153 页共 844 页 www.china-ccie.com (6)在 R1 上将 crypto map 应用于接口: r1(config)#int f0/0 r1(config-if)#crypto map mymap r1(config-if)# *Mar 1 00:42:19.807: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit 说明:将 crypto map 应用在出接口 F0/0 上。 (7)使用常规 LAN-to-LAN VPN 的方式配置 R3: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit 第 154 页共 844 页 www.china-ccie.com r3(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)#crypto map l2l 1 ipsec-isakmp r3(config-crypto-map)#set peer 12.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int s1/0 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:32:58.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 说明:R3 上只需要配置常规的 LAN-to-LAN VPN 即可。 4.测试 VPN (1)从 Hub 端(上海公司路由器 R5)向 spoke 端(北京公司 192.168.1.0)发 送流量: r5#ping 192.168.1.3 第 155 页共 844 页 Type escape sequence to abort. www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:Dynamic LAN-to-LAN VPN 中,Hub 端是不能事先向 spoke 端发起流量来触 发自己的 SA 建立的,所以上海到北京的流量不能通过,Hub 端的 SA 只能由 spoke 端发送流量来触发。 (2)从 spoke 端(北京公司 192.168.1.0)向 Hub 端(上海公司路由器 R5)发 送流量: r3#ping 10.1.1.5 source 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: Packet sent with a source address of 192.168.1.3 .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 104/143/212 ms r3# 说明:spoke 端(北京公司 192.168.1.0)向 Hub 端发送的流量成功穿越 VPN。 第 156 页共 844 页 www.china-ccie.com (3)再次从 Hub 端(上海公司路由器 R5)向 spoke 端(北京公司 192.168.1.0) 发送流量: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/189/344 ms r5# 说明:当从 spoke 端向 Hub 端发送流量初始化后,Hub 端到 Spoke 端的流量才能 正常通过 VPN。 (4)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.3 r1# 说明:R1 已经成功与 R3 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地源 地址为 12.1.1.1,目标为 23.1.1.3,目标端口号为 500。 (5)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa r1#show crypto isakmp sa 第 157 页共 844 页 IPv4 Crypto ISAKMP SA www.china-ccie.com dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:IKE SA 已经成功建立,R1 本地源地址为 12.1.1.1,目标为 23.1.1.3,并且 为激活状态,如为(delete)状态,则不可用。 (6)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: mymap, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={} #pkts encaps: 9, #pkts encrypt: 9, #pkts digest: 9 第 158 页共 844 页 #pkts decaps: 9, #pkts decrypt: 9, #pkts verify: 9 www.china-ccie.com #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x491B6C29(1226533929) inbound esp sas: spi: 0x51A991F7(1370067447) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4483425/3495) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: 第 159 页共 844 页 inbound pcp sas: www.china-ccie.com outbound esp sas: spi: 0x491B6C29(1226533929) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4483425/3494) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:R1 上已经建立从本端 10.1.1.0/24 发往 spoke 端 192.168.1.0/24 的 SA。 (7)查看 R1 的 dynamic map 相关参数: r1#show crypto dynamic-map 第 160 页共 844 页 Crypto Map Template"dymap" 5 www.china-ccie.com ISAKMP Profile: ppp No matching address list set. Security association lifetime: 4608000 kilobytes/3600 seconds PFS (Y/N): N Transform sets={ ccie, } r1# 说明:可以参考之前的实验分析当前的参数信息与作用。 (8)查看 R3 上 IKE SA 的 peer: r3#show crypto isakmp peers Peer: 12.1.1.1 Port: 500 Local: 23.1.1.3 Phase1 id: 12.1.1.1 r3# 说明:R3 也与 R1 成功建立 IKE peer。 (9)查看 R3 上的 IKE SA(ISAKMP SA): r3#show crypto isakmp sa 第 161 页共 844 页 IPv4 Crypto ISAKMP SA www.china-ccie.com dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r3# 说明:R3 也与 R1 成功建立 IKE SA。 (10)查看 R3 上的 IPsec SA: r3#show crypto ipsec sa interface: Serial1/0 Crypto map tag: l2l, local addr 23.1.1.3 protected vrf: (none) local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 12.1.1.1 port 500 PERMIT, flags={origin_is_acl,} 第 162 页共 844 页 #pkts encaps: 9, #pkts encrypt: 9, #pkts digest: 9 www.china-ccie.com #pkts decaps: 9, #pkts decrypt: 9, #pkts verify: 9 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 23.1.1.3, remote crypto endpt.: 12.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb Serial1/0 current outbound spi: 0x51A991F7(1370067447) inbound esp sas: spi: 0x491B6C29(1226533929) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4584630/3398) IV size: 8 bytes replay detection support: Y Status: ACTIVE 第 163 页共 844 页 inbound ah sas: www.china-ccie.com inbound pcp sas: outbound esp sas: spi: 0x51A991F7(1370067447) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4584630/3397) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r3# 说明:R3 上的 SA 表示从本端 192.168.1.0/24 发往 Hub 端 10.1.1.0/24 的流量被加 密。 第 164 页共 844 页 5.配置广州公司路由器 R4 的 VPN 信息: www.china-ccie.com (1)使用常规 LAN-to-LAN VPN 的方式配置广州公司路由器 R4: r4(config)#crypto isakmp policy 1 r4(config-isakmp)#encryption 3des r4(config-isakmp)#hash sha r4(config-isakmp)#authentication pre-share r4(config-isakmp)#group 2 r4(config-isakmp)#exit r4(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 r4(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r4(cfg-crypto-trans)#exit r4(config)#access-list 100 permit ip 172.16.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r4(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r4(config-crypto-map)#set peer 12.1.1.1 r4(config-crypto-map)#set transform-set ccie r4(config-crypto-map)#match address 100 r4(config-crypto-map)# r4(config-crypto-map)#exit r4(config)#int f0/1 第 165 页共 844 页 r4(config-if)#crypto map l2l www.china-ccie.com r4(config-if)#exit r4(config)# *Mar 1 01:01:24.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r4(config)# 说明:可以看出,spoke 路由器 R3 与 spoke 路由器 R4 唯一不同的配置就是定义 感兴趣流量,其它参数完全一致。 (2)从 Hub 端(上海公司路由器 R5)向 spoke 端(广州公司 172.16.1.0)发送 流量: r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:和预计一样,Hub 端是不能事先向 spoke 端发起流量来触发自己的 SA 建 立的,所以上海公司向广州公司发送的流量不能通过。 (3)从 spoke 端(广州公司 172.16.1.0)向 Hub 端(上海公司路由器 R5)发送 流量: r4#ping 10.1.1.5 source 172.16.1.4 第 166 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: Packet sent with a source address of 172.16.1.4 .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 100/167/300 ms r4# 说明:spoke 端(广州公司 172.16.1.0)向 Hub 端发送的流量成功穿越 VPN。 (4)再次从 Hub 端(上海公司路由器 R5)向 spoke 端(广州公司 172.16.1.0) 发送流量: r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/132/216 ms r5# 说明:当从 spoke 端向 Hub 端发送流量初始化后,Hub 端到 Spoke 端的流量才能 正常通过 VPN。 (5)查看 R1 上 IKE 的 peer 与 IKE SA: 第 167 页共 844 页 r1#sh crypto isakmp peers www.china-ccie.com Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.3 Peer: 24.1.1.1 Port: 500 Local: 12.1.1.1 Phase1 id: 24.1.1.1 r1# r1#sh crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 24.1.1.1 QM_IDLE 1002 0 ACTIVE 12.1.1.1 23.1.1.3 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:上海公司已经成功建立成广州公司之前的 IKE SA。 (6)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa 第 168 页共 844 页 interface: FastEthernet0/0 Crypto map tag: mymap, local addr 12.1.1.1 www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 500 PERMIT, flags={} #pkts encaps: 9, #pkts encrypt: 9, #pkts digest: 9 #pkts decaps: 9, #pkts decrypt: 9, #pkts verify: 9 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x491B6C29(1226533929) inbound esp sas: 第 169 页共 844 页 spi: 0x51A991F7(1370067447) www.china-ccie.com transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4483425/3012) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x491B6C29(1226533929) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4483425/3009) IV size: 8 bytes replay detection support: Y 第 170 页共 844 页 Status: ACTIVE www.china-ccie.com outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (172.16.1.0/255.255.255.0/0/0) current_peer 24.1.1.1 port 500 PERMIT, flags={} #pkts encaps: 9, #pkts encrypt: 9, #pkts digest: 9 #pkts decaps: 9, #pkts decrypt: 9, #pkts verify: 9 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 24.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xD79E6F39(3617484601) 第 171 页共 844 页 www.china-ccie.com inbound esp sas: spi: 0x378CAB62(931965794) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 3, flow_id: SW:3, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4469278/3541) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xD79E6F39(3617484601) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 4, flow_id: SW:4, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4469278/3540) 第 172 页共 844 页 IV size: 8 bytes replay detection support: Y Status: ACTIVE www.china-ccie.com outbound ah sas: outbound pcp sas: r1# 说明:当 Hub 端与多个 spoke 端建立 VPN 之后,也应该有与多个 spoke 对应的 SA 来 保 证 通 信 , 所 以 当 前 Hub 端 路 由 器 R1 不 仅 可 以 看 到 发 往 北 京 公 司 192.168.1.0/24 的 SA,同时还能看见发往广州公司 172.16.1.0/24 的 SA。 (7)查看广州路由器 R4 上 IKE peer 和 IKE SA: r4#show crypto isakmp peers Peer: 12.1.1.1 Port: 500 Local: 24.1.1.1 Phase1 id: 12.1.1.1 r4# r4#show crypto isakmp sa r4#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 24.1.1.1 QM_IDLE 1001 0 ACTIVE 第 173 页共 844 页 IPv6 Crypto ISAKMP SA www.china-ccie.com r4# 说明:R4 也与 R1 成功建立 IKE SA。 (8)查看 R4 上的 IPsec SA: r4#show crypto ipsec sa interface: FastEthernet0/1 Crypto map tag: l2l, local addr 24.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (172.16.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 12.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 9, #pkts encrypt: 9, #pkts digest: 9 #pkts decaps: 9, #pkts decrypt: 9, #pkts verify: 9 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 第 174 页共 844 页 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 24.1.1.1, remote crypto endpt.: 12.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1 current outbound spi: 0x378CAB62(931965794) inbound esp sas: spi: 0xD79E6F39(3617484601) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4410663/3507) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 175 页共 844 页 outbound esp sas: www.china-ccie.com spi: 0x378CAB62(931965794) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4410663/3507) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r4# 说明:spoke 端 R4 上的 SA 表示从本端 172.16.1.0/24 发往 Hub 端 10.1.1.0/24 的流 量被加密。 6.测试 NAT 对 Dynamic LAN-to-LAN VPN 的影响: 说明:其实,Dynamic LAN-to-LAN VPN 和普通 LAN-to-LAN VPN 都受到同样的 NAT 影响。 (1)在 R4 上配置 NAT: r4(config)#int f0/0 第 176 页共 844 页 r4(config-if)#ip nat inside r4(config-if)#exit r4(config)#int f0/1 r4(config-if)#ip nat outside r4(config-if)#exit r4(config)# www.china-ccie.com r4(config)#access-list 110 permit ip any any r4(config)#ip nat inside source list 110 interface f0/1 overload (2)测试 Hub 端 R1 发往北京公司(没有 NAT)和广州公司(有 NAT)的流量 情况: 北京: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 144/178/236 ms r5# 第 177 页共 844 页 广州: r5#ping 172.16.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:和预期一样,IPsec 流量不能到达配置了 NAT 的广州网络。 (3)查看广州路由器上的 NAT 转换情况: r4#show ip nat translations Pro Inside global Inside local Outside local Outside global udp 24.1.1.1:500 24.1.1.1:500 12.1.1.1:500 12.1.1.1:500 icmp 24.1.1.1:13 172.16.1.4:13 10.1.1.5:13 10.1.1.5:13 r4# 说明:可以看见,广州公司 172.16.1.4 去往上海公司 10.1.1.5 的流量被 NAT 转换 了,所以最后没能通过 IPsec。 (4)配置 R4 使广州公司到上海公司的流量绕过 NAT: r4(config)#no access-list 110 r4(config)#access-list 110 deny ip 172.16.1.0 0.0.0.255 10.1.1.0 0.0.0.255 第 178 页共 844 页 r4(config)#access-list 110 permit ip any any www.china-ccie.com r4(config)#exit r4#clear ip nat translation * r4# 说明:配置使广州公司流量 172.16.1.0/24 发往上海公司 10.1.1.0/24 的流量不被 NAT 转换。注,因为 NAT 转换正生效,所以清除一下 NAT 转换状态,否则也可能最 后不通。 (5)再次从上海向北京公司和广州公司发送流量: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 88/163/332 ms r5# r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: !!!!! 第 179 页共 844 页 www.china-ccie.com Success rate is 100 percent (5/5), round-trip min/avg/max = 108/160/208 ms r5# 说明:没有了 NAT,上海公司到北京公司和广州公司的流量再次通过 IPsec VPN 隧道穿越了 Internet,所以在 IPsec VPN 中,保证让需要被 IPsec 保护的流量不要被 NAT 转换,否则会出现意外。 Router-to-PIX Dynamic LAN-to-LAN VPN 在本小节,我们在 Router 与 PIX 之间配置 Dynamic LAN-to-LAN VPN,即配置 Router-to-PIX Dynamic LAN-to-LAN VPN。 配置 Router-to-PIX Dynamic LAN-to-LAN VPN 第 180 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 Dynamic LAN-to-LAN VPN 的效果,在图 中,有上海、北京和广州共三个公司的网络,上海要同时和北京与广州的网络实现 VPN 通信,其中北京路由器 R3 的 IP 地址是预先知道的,即 23.1.1.3,这样上海便能 与北京轻松实现 VPN,而广州的路由器 R4 的 IP 地址是通过 DHCP 获得的,事先无 法知道 IP 是多少,在这样的情况下,我们通过配置 Dynamic LAN-to-LAN VPN 来使上 海公司的 PIX 防火墙接受任何公司的 VPN 连接,而不管其 IP 地址是多少。 注:在上图中,即使 VPN 场点增加,在上海 PIX 防火墙上,不需要更改任何配置, 都能接受对方的 VPN 连接。 由于在 PIX 模拟器上无法完整模拟 Router-to-PIX Dynamic LAN-to-LAN VPN,所以 这里只给出 PIX 上 Dynamic LAN-to-LAN VPN 的配置,其它所有过程同 Router-to-Router Dynamic LAN-to-LAN VPN 一样,只不过这里的 PIX 防火墙代替了上海 R1 路由器的配 置。 PIX 上 Dynamic LAN-to-LAN VPN 的配置: 第 181 页共 844 页 www.china-ccie.com pixfirewall(config)# crypto isakmp policy 1 pixfirewall(config-isakmp-policy)# encryption 3des pixfirewall(config-isakmp-policy)# hash sha pixfirewall(config-isakmp-policy)# authentication pre-share pixfirewall(config-isakmp-policy)# group 2 pixfirewall(config-isakmp-policy)# exit pixfirewall(config)# pixfirewall(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac pixfirewall(config)# crypto dynamic-map dymap 1 set transform-set ccie pixfirewall(config)# crypto dynamic-map dymap 1 set reverse-route pixfirewall(config)# crypto map mymap 10 ipsec-isakmp dynamic dymap pixfirewall(config)# crypto map mymap interface outside pixfirewall(config)# isakmp enable outside pixfirewall(config)# isakmp key cisco123 address 0.0.0.0 netmask 0.0.0.0 在这里提供思科文档中心在 PIX 上配置 Dynamic LAN-to-LAN VPN 示例的原文链 接: http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_configuratio n_example091 86a00807ea936.shtml Router-to-ASA Dynamic LAN-to-LAN VPN 在本小节,我们在 Router 与 ASA 之间配置 Dynamic LAN-to-LAN VPN,即配置 Router-to-ASA Dynamic LAN-to-LAN VPN。 配置 Router-to-ASA Dynamic LAN-to-LAN VPN 第 182 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 Dynamic LAN-to-LAN VPN 的效果,在图中, 有上海、北京和广州共三个公司的网络,上海要同时和北京与广州的网络实现 VPN 通信,其中北京路由器 R3 的 IP 地址是预先知道的,即 23.1.1.3,这样上海便能与北 京轻松实现 VPN,而广州的路由器 R4 的 IP 地址是通过 DHCP 获得的,事先无法知 道 IP 是多少,在这样的情况下,我们通过配置 Dynamic LAN-to-LAN VPN 来使上海公 司的 ASA 防火墙接受任何公司的 VPN 连接,而不管其 IP 地址是多少。 注:在上图中,即使 VPN 场点增加,在上海 ASA 防火墙上,不需要更改任何配置, 都能接受对方的 VPN 连接。 由于在 ASA 模拟器上无法完整模拟 Router-to-ASA Dynamic LAN-to-LAN VPN,所以这 里 只 给 出 Router-to-ASA Dynamic LAN-to-LAN VPN 的 配 置 , 其 它 所 有 过 程 同 Router-to-Router Dynamic LAN-to-LAN VPN 一样,只不过这里的 ASA 防火墙代替了上 海 R1 路由器的配置。 重点说明:PIX 与 ASA 的 Dynamic LAN-to-LAN VPN 配置完全相同。 第 183 页共 844 页 www.china-ccie.com Router-to-ASA Dynamic LAN-to-LAN VPN 的配置: ciscoasa(config)# crypto isakmp policy 1 ciscoasa(config-isakmp-policy)# encryption 3des ciscoasa(config-isakmp-policy)# hash sha ciscoasa(config-isakmp-policy)# authentication pre-share ciscoasa(config-isakmp-policy)# group 2 ciscoasa(config-isakmp-policy)# exit ciscoasa(config)# ciscoasa(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac ciscoasa(config)# crypto dynamic-map dymap 1 set transform-set ccie ciscoasa(config)# crypto dynamic-map dymap 1 set reverse-route ciscoasa(config)# crypto map mymap 10 ipsec-isakmp dynamic dymap ciscoasa(config)# crypto map mymap interface outside ciscoasa(config)# isakmp enable outside ciscoasa(config)# isakmp key cisco123 address 0.0.0.0 netmask 0.0.0.0 ciscoasa(config)# 在这里提供思科文档中心在 ASA 上配置 Dynamic LAN-to-LAN VPN 示例的原文链接: http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_configuratio n_example091 86a00807ea936.shtml 第 184 页共 844 页 Point-to-Point (p2p) GRE over IPsec 概述 www.china-ccie.com 在如上图所示的网络环境中,当上海和北京两个公司都拥有复杂结构的网络时, 两端的网段可能希望能依靠某些动态路由协议来动态分发与传递,但即使在两端通 过穿越 Internet 建立 IPsec LAN-to-LAN VPN 之后,两个网络之间却还是不能启用动态 路由协议来交换路由信息,而只能通过 ACL 来匹配感兴趣流量指定去向对端的每一 个网段;虽然 IPsec LAN-to-LAN VPN 能够在两端穿越 Internet 来建立隧道,但 IPsec 建立的隧道却不能用于传递动态路由协议信息,原因有如下两个: 1.IPsec 建立的隧道是逻辑隧道,并不是真正的隧道,没有点对点连接的功能, 换句话说,就是 IPsec 隧道两端的地址是原本的公网地址,这两个地址不可能在同 一网段,而对于两端不同网段 IP 地址的路由器之间,不太可能建立动态路由协议邻 居关系,如建立 OSPF 邻居或 EIGRP 邻居是办不到的。 2.IPsec 建立的隧道在设计时就只支持 IP 单播,并且也不支持组播,所以 IGP 动态路由协议的流量不可能穿越 IPsec 隧道,并且也不支持非 IP 协议的流量。 第 185 页共 844 页 www.china-ccie.com 基于上述原因,在使用 IPsec 建立 VPN 的两地网络之间,使用动态路由协议分发 和传递路由信息变得难以实现,但是,这并不表示绝对不能实现,因为我们前面详 细介绍过 IPsec 分为两种工作模式:Tunnel mode 和 Transport mode,当工作在 Tunnel mode 时,表示 IPsec 不仅实现数据保护功能,同时还自己实现隧道功能,从而实现 完整的 VPN 功能,这就是 IPsec 能在自己独立工作而不依靠其它任何技术时能够实 现的两个功能,但正时因为 IPsec 自己的隧道功能的局限性才使得不能运行动态路 由协议;除上述之外,我们可以只使用 IPsec 的数据保护功能,继而引入其它隧道 技术而不使用 IPsec 自身的隧道功能,这样就有办法避免 IPsec 自己隧道功能的局限 性,从而利用其它隧道技术的能力在 VPN 之间实现动态路由协议的目的,如果只需 要使用 IPsec 的数据保护功能而不使用其自身的隧道功能,这就要求 IPsec 工作在 Transport mode。 如果最后选择工作在 Tunnel mode,那么数据包就会再额外增加 20 字节,其实 在 p2p GRE over IPsec 下,IPsec 的两个模式都是可以的,网络都可以正常通信,但 Transport mode 有时会有一些技术局限性,所以在 p2p GRE over IPsec 时,都还是保 持使用 Tunnel mode。 当我们将 IPsec 配置在 Transport mode 时,这就丢失了隧道功能,也就不能完成 VPN 功能,所以 Transport mode 下的 IPsec 需要引入其它隧道协议来配合完成隧道 功能,这时我们就完全可以寻找一个能够传递 IP 组播与动态路由信息的隧道协议, 可选的隧道协议有 GRE 或 VTI,很明显,我们青睐于 GRE 隧道协议,它完全能够满 足我们的要求,不仅能够在配合 IPsec 使用时即能保护数据之外,还能够为我们提 供 IP 组播与动态路由协议的传递功能,这样的使用称为 p2p GRE over IPsec,使用了 GRE 隧道协议之后,之前的网络就可以演变为如下情况: 第 186 页共 844 页 www.china-ccie.com 上图使用 GRE 之后的效果是大家应该熟悉和了解的,GRE 在穿越 Internet 后建 立了可用于传递 IP 组播与动态路由协议的隧道,并且应该注意到,GRE 隧道两端的 IP 地址还是同网段的,所以这就更保证了 IGP 动态路由协议的稳定运行。 在此还需要说明的是,网络中点到点(Point-to-Point)的链路,通常只能有两个 端点,只能有两个设备互联,包括在路由协议中,任何一方只能看到一个邻居,点 到点链路上的设备只能和其它一台设备通信,不能和两台以上设备通信。在前面介 绍的 GRE 隧道中,大家应该还记得,GRE 两端的设备要建立隧道,必须要有一个事 先被对方知道的并且在前端网络(通常是 Internet)上是可路由的固定 IP 地址,双 方需要通过对方的可路由 IP 地址来找到对方从而建立 GRE 隧道,请试想一下,如果 要建立 GRE 隧道的设备双方连固定 IP 地址都没有,换句话说就是连对方的 IP 地址 都不知道,还能建立 GRE 隧道吗?答案当然是非常难,因为你连对方的 IP 地址都不 知道,也就意味着你根本不知道需要和谁建立 GRE 隧道,所以在 IP 地址不确定的双 方建立 GRE 隧道会有一定难度,但这并不是一个绝对不能解决的问题,解决的方法 会有,但需要看具体情况,如下: 如果是单独建立 p2p GRE 隧道,当双方的 IP 地址无法确定时(如通过 DHCP 获 得),这是不可能的。 如果建立的 p2p GRE 隧道运行在 IPsec 之上,也就是 p2p GRE over IPsec,那么可 以允许 IP 地址是动态的,但条件是必须有一方是固定的静态 IP,不能双方同时都为 动态无法确定的 IP。 当双方都为固定的静态 IP 时,建立的 p2p GRE over IPsec 称为 Static p2p GRE over IPsec,而如果一方静态 IP 一方动态 IP,这样的 p2p GRE over IPsec 称为 Dynamic p2p GRE over IPsec。 在 Dynamic p2p GRE over IPsec 的环境下,既然一方是静态 IP 而另一方是动态 IP, 那么又怎么能够建立 GRE 隧道呢?动态 IP 方可以轻松找到静态 IP 方从而将数据发 到对方,那么静态 IP 方又如何找到动态 IP 方呢?这个答案很简单,既然动态 IP 方 能够找到静态 IP 方,那么静态 IP 方就当然知道动态 IP 方在哪,这个前提就是先让 动态 IP 方向静态 IP 方发送数据,静态 IP 方根据动态 IP 方发来的数据的源 IP 地址, 马上就能发现对方的 IP 地址,所以在 Dynamic p2p GRE over IPsec 环境下,必须让动 态 IP 方先向静态 IP 方发送数据,否则 GRE 隧道是不可能建立的,那么后面的 VPN 也就不可能通了。我们的做法通常就是到动态 IP 方的设备上向静态 IP 方发送 ICMP 包或者其它数据包,发出的数据包首先会促发 ISAKMP 的协商数据包,当数据包发 向静态 IP 方时,那么静态 IP 方就根据动态 IP 方发来的 ISAKMP 的协商数据包的源 第 187 页共 844 页 IP 地址,从而知道对方的真正 IP 地址。 www.china-ccie.com 因为动态 IP 方没有固定的 IP 地址,所以在建立 p2p GRE 隧道时,难以确定自己 的源点地址,所以这时可以为该路由器单独创建一个 Loopback 地址,这个地址通常 可以是任意地址,但最好分配一个私有 IP 地址,然后将本端 GRE 的源点定义为该 Loopback 的地址,其实这个 IP 地址对于静态 IP 方来说是不可达的,但没关系,因 为最后数据的地址并不会使用这个地址,只是个形式而已,所以最终 p2p GRE over IPsec 照样能成功,对方动态方作为 GRE 源点的 Loopback 地址,静态方需要写条路 由指向自己的公网出口,这是需要做的,虽然从公网是不可达的。 在配置 p2p GRE over IPsec 时,和配置常规 LAN-to-LAN VPN 一样,还需要配置 Crypto map,因为 p2p GRE over IPsec 分为两种情况,所以在 Static p2p GRE over IPsec 下,需要配置 static map,而在 Dynamic p2p GRE over IPsec 下,则需要在静态 IP 方 配置 dynamic map,在动态 IP 方还是配置 static map;对于 p2p GRE over IPsec 下的 Crypto map 应用方法,根据 IOS 的不同,应用方法有所不同,在 IOS Release 12.2(13)T 之前的版本,Crypto map 必须同时应用于物理接口和 GRE 隧道接口下,在 IOS Release 12.2(13)T 以及之后的版本,Crypto map 只在物理接口下应用即可,不需要在 GRE 隧 道接口下应用了。 注: ★p2p GRE over IPsec 能够支持 IP 单播,IP 组播以及非 IP 协议的传递功能。 ★即使是 p2p GRE over IPsec 模式,但 IPsec 部分仍然是 LAN-to-LAN VPN,所以您 可以选择使用普通 LAN-to-LAN VPN 或 Dynamic LAN-to-LAN VPN(DyVPN),这取决与 你的分支场点的 IP 地址是固定的还是不可预知的,从而选择是配置 Static p2p GRE over IPsec 还是 Dynamic p2p GRE over IPsec。 ★在 Dynamic p2p GRE over IPsec 环境下,必须先从动态 IP 方向静态 IP 方发送数 据,否则 GRE 隧道无法建立,VPN 无法完成。 ★因为 GRE Tunnel 只支持路由器,不支持集中器和 PIX 以及 ASA,所以也就谈不 上在 PIX 和 ASA 上配置 p2p GRE over IPsec 了。 第 188 页共 844 页 www.china-ccie.com ★在 IOS Release 12.2(13)T 之前的版本,Crypto map 必须同时应用于物理接口和 GRE 隧道接口下。 ★在 IOS Release 12.2(13)T 以及之后的版本,Crypto map 只在物理接口下应用即 可,不需要在 GRE 隧道接口下应用了。 ★p2p GRE over IPsec 的 IPsec 部分和 LAN-to-LAN VPN 一样,但唯一的区别就是定 义的感兴趣流量,定义的感兴趣流量是双方用来建立 GRE 隧道的公网 IP 地址,并且 协议为 GRE,而不是内网网段,因为内网网段是要靠路由协议来传递的。 ★通过 p2p GRE over IPsec 通信的内网流量不会被物理接口的 NAT 影响,但会受 GRE 接口 NAT 的影响。 ★一方静态 IP 和一方动态 IP 之间建立 p2p GRE 接口时,如果不配置 p2p GRE over IPsec,那么 p2p GRE 接口是不能工作,毫无用处的。 Static p2p GRE over IPsec 在本小节,我们在 Router 与 Router 之间配置 Static p2p GRE over IPsec,因为 GRE Tunnel 只支持路由器,不支持集中器和 PIX 以及 ASA,所以也就谈不上在 PIX 和 ASA 上配置 p2p GRE over IPsec 了。 配置 Static p2p GRE over IPsec 第 189 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 Static p2p GRE over IPsec 的效果,在图 中,有上海和北京两个公司的网络,上海要和北京的网络实现 VPN 通信, 并且需 要通过动态路由协议 EIGRP 交换双方内网的网段信息,所以我们需要在两地路由器 之间建立 p2p GRE 隧道,然后再使用 IPsec 来保护隧道中的数据,这样即达到了路 由协议交换路由的目的,又让数据得到了保护,还实现了 VPN 功能,一举三得;因 为两地路由器连接 Internet 的接口都有固定公网 IP 地址,所以我们配置 Static p2p GRE over IPsec。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit 第 190 页共 844 页 r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 说明:配置 R2 的接口地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0、 23.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 第 191 页共 844 页 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 192.168.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2。 (4)配置 R4: r4(config)#int f0/0 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 第 192 页共 844 页 www.china-ccie.com 说明:配置 R4 的接口地址,并写默认路由指向北京公司出口路由器 R3。 (5)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 2.测试基础网络环境 (1)测试 R1 到 R3 的连通性: r1#ping 23.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 28/62/112 ms r1# 说明:因为 R1 与 R3 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1 和 R3 都是可达的,所以 R1 与 R3 通信正常。 第 193 页共 844 页 (2)测试 R1 到 R4 的连通性: r1#ping 192.168.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通信,所以 R1 无法访问北京公司的私有网段 192.168.1.0。 (3)测试 R5 到 R4 的连通性: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通 第 194 页共 844 页 信,所以上海和北京公司无法通过私有地址互访。 www.china-ccie.com (4)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 3.配置 Static p2p GRE over IPsec 第 195 页共 844 页 (1)在 R1 上配置终点为 R3 的 p2p GRE 隧道: www.china-ccie.com r1(config)#interface tunnel 1 r1(config-if)#ip address 1.1.1.1 255.255.255.0 r1(config-if)#tunnel source 12.1.1.1 r1(config-if)#tunnel destination 23.1.1.3 r1(config-if)#exit 说明:R1 到 R3 的 p2p GRE 隧道接口号为 1,隧道地址为 1.1.1.1,隧道的源点为 外网接口地址 12.1.1.1,隧道的终点为 R3 的外网接口地址 23.1.1.3,隧道起点和终 点地址在 Internet 上是可路由的。 (2)在 R3 上配置终点为 R1 的 p2p GRE 隧道: r3(config)#int tunnel 3 r3(config-if)#ip address 1.1.1.3 255.255.255.0 r3(config-if)#tunnel source 23.1.1.3 r3(config-if)#tunnel destination 12.1.1.1 r3(config-if)#exit 说明:R3 到 R1 的 p2p GRE 隧道接口号为 3,隧道地址为 1.1.1.3,隧道的源点为 外网接口地址 23.1.1.3,隧道的终点为 R1 的外网接口地址 12.1.1.1,隧道起点和终 点地址在 Internet 上是可路由的。 (3)在 R1 上配置普通 LAN-to-LAN VPN 参数: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des 第 196 页共 844 页 r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit www.china-ccie.com r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3 r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)#access-list 100 permit gre host 12.1.1.1 host 23.1.1.3 r1(config)#crypto map l2l 1 ipsec-isakmp r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit 说明:IPsec 部分和普通 LAN-to-LAN VPN 一样,但唯一的区别就是定义的感兴趣 流量,定义的感兴趣流量是双方用来建立 GRE 隧道的公网 IP 地址,并且协议为 GRE, 而不是内网网段,因为内网网段是要靠路由协议来传递的。 第 197 页共 844 页 (4)在 R1 上应用 crypto map: www.china-ccie.com 因为 R1 的 IOS 版本高于 12.2(13)T,如下: r1#sh version Cisco IOS Software, 2600 Software (C2691-ADVENTERPRISEK9_IVS-M), Version 12.4(9)T7, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2008 by Cisco Systems, Inc. Compiled Thu 10-Jan-08 16:20 by prod_rel_team ROM: ROMMON Emulation Microcode ROM: 2600 Software (C2691-ADVENTERPRISEK9_IVS-M), Version 12.4(9)T7, RELEASE SOFTWARE (fc3) r1 uptime is 18 minutes System returned to ROM by unknown reload cause - suspect boot_data[BOOT_COUNT] 0x0, BOOT_COUNT 0, BOOTDATA 19 System image file is "tftp://255.255.255.255/unknown" This product contains cryptographic features and is subject to United States and local country laws governing import, export, transfer and use. Delivery of Cisco cryptographic products does not imply 第 198 页共 844 页 www.china-ccie.com third-party authority to import, export, distribute or use encryption. Importers, exporters, distributors and users are responsible for compliance with U.S. and local country laws. By using this product you agree to comply with applicable laws and regulations. If you are unable to comply with U.S. and local laws, return this product immediately. A summary of U.S. laws governing Cisco cryptographic products may be found at: http://www.cisco.com/wwl/export/crypto/tool/stqrg.html If you require further assistance please contact us by sending email to export@cisco.com. Cisco 2691 (R7000) processor (revision 0.1) with 124928K/6144K bytes of memory. Processor board ID XXXXXXXXXXX R7000 CPU at 160MHz, Implementation 39, Rev 2.1, 256KB L2, 512KB L3 Cache 2 FastEthernet interfaces 4 Serial interfaces DRAM configuration is 64 bits wide with parity enabled. 55K bytes of NVRAM. 16384K bytes of ATA System CompactFlash (Read/Write) 第 199 页共 844 页 Configuration register is 0x2142 www.china-ccie.com r1# 所以 crypto map 只需要应用在物理接口下即可: r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)#exit r1(config)# *Mar 1 00:21:45.171: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config)# (5)同 R1 的方法配置 R3 的 IPsec 部分: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 第 200 页共 844 页 www.china-ccie.com r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)#access-list 100 permit gre host 23.1.1.3 host 12.1.1.1 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp r3(config-crypto-map)#set peer 12.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/1 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:32:58.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 说明:同 R1 的方法配置 R3 的 IPsec 部分。 第 201 页共 844 页 4 .测试 p2p GRE over IPsec (1)从 R1 向 R3 方发送流量激活隧道: r1#ping 1.1.1.3 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 200/227/260 ms r1# 说明:因为是 static p2p GRE over IPsec,流量在任何一方发起都可以,从结果中 可以看出,GRE 隧道目前正常。 (2)在 R1 上查看 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.3 r1# 说明:R1 已经成功与 R3 建立 IKE peer,说明 IKE SA 也应该成功建立,建立时 R1 本地源地址为 12.1.1.1,目标为 23.1.1.3,而不是 GRE 隧道的地址。 (3)在 R1 上查看 IKE SA(ISAKMP SA): 第 202 页共 844 页 r1#show crypto isakmp sa www.china-ccie.com IPv4 Crypto ISAKMP SA dst src state conn-id slot status 23.1.1.3 12.1.1.1 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:IKE SA 状态也正常。 (4)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) 第 203 页共 844 页 www.china-ccie.com remote ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/47/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xD3601778(3546290040) inbound esp sas: spi: 0x319BADC2(832286146) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4564467/3542) IV size: 8 bytes 第 204 页共 844 页 replay detection support: Y Status: ACTIVE www.china-ccie.com inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xD3601778(3546290040) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4564467/3537) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 第 205 页共 844 页 www.china-ccie.com 说明:IPsec SA 也显示为活动状态,并且加密的数据包就是我们指定的双方建立 GRE 时用到的公网地址。 (5)测试上海公司 10.1.1.0 到北京公司 192.168.1.0 的双方内网通信情况: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:因为目前的 IPsec 只加密了双方建立 GRE 时用到的公网地址,而不包含双 方内网地址,所以双方内网通信不成功,但这就是我们要使用动态协议的理由。 5.在双方配置动态路由协议 EIGRP (1)在 R1 上配置 EIGRP: r1(config)#router eigrp 1 r1(config-router)#no auto-summary r1(config-router)#network 1.1.1.1 0.0.0.0 r1(config-router)#network 10.1.1.1 0.0.0.0 r1(config-router)#exit 说明:在 R1 上配置 EIGRP,AS 号为 1,并且将内网网段 10.1.1.0 和 GRE 接口放 第 206 页共 844 页 www.china-ccie.com 进 EIGRP 进程,以便通过 GRE 隧道和北京公司建立 EIGRP 邻居,从而交换双方内网 网段信息。 (2)在 R3 上配置 EIGRP: r3(config)#router eigrp 1 r3(config-router)#no auto-summary r3(config-router)#network 1.1.1.3 0.0.0.0 r3(config-router)#network 192.168.1.3 0.0.0.0 r3(config-router)# 说明:在 R3 上配置 EIGRP,AS 号为 1,并且将内网网段 192.168.1.0 和 GRE 接口 放进 EIGRP 进程,以便通过 GRE 隧道和北京公司建立 EIGRP 邻居,从而交换双方内 网网段信息。 (3)在 R1 上查看 EIGRP 邻居: r1#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.3 Tu1 14 00:00:42 264 5000 0 4 r1# 说明:R1 已经通过 GRE 接口与 R3 正常建立 EIGRP 邻居。 第 207 页共 844 页 (4)在 R1 上查看路由表: www.china-ccie.com r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 D 192.168.1.0/24 [90/297246976] via 1.1.1.3, 00:00:39, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 第 208 页共 844 页 www.china-ccie.com 说明:R1 已经通过 EIGRP 正常学到北京公司的内网网段信息。 (5)查看 R3 上的 EIGRP 邻居和路由表信息: r3#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.1 Tu3 13 00:01:15 1320 5000 0 2 r3# r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 23.1.1.2 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnets 第 209 页共 844 页 C 1.1.1.0 is directly connected, Tunnel3 www.china-ccie.com 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/297246976] via 1.1.1.1, 00:01:16, Tunnel3 C 192.168.1.0/24 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 23.1.1.2 r3# 说明:R3 也已经通过 GRE 接口与 R1 正常建立了 EIGRP 邻居,并且也学到了上海 公司的内网网段信息。 (6)再次测试上海公司 10.1.1.0 到北京公司 192.168.1.0 的双方内网通信情况: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 28/118/220 ms r5# 说明:因为双方 EIGRP 邻居正常,路由正常,所以双方内网通信正常,达到了我 们最终的要求。 第 210 页共 844 页 www.china-ccie.com (7)查看上海公司向北京公司发送数据包的路径走向: r5#traceroute 192.168.1.4 Type escape sequence to abort. Tracing the route to 192.168.1.4 1 10.1.1.1 32 msec 96 msec 24 msec 2 1.1.1.3 192 msec 124 msec 168 msec 3 192.168.1.4 204 msec * 312 msec r5# 说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只 有一跳,从 GRE 隧道过去就到达了目的地,说明中间的多跳已经 GRE 隧道取代为一 跳了。 (8)测试北京公司 192.168.1.0 到上海公司 10.1.1.0 的双方内网通信情况: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/112/244 ms 第 211 页共 844 页 r4# 说明:双方内网通信正常,没有任何问题。 www.china-ccie.com 6.测试 NAT 对 p2p GRE over IPsec 的影响: (1)在 R1 上配置 NAT: r1(config)#interface f0/1 r1(config-if)#ip nat inside r1(config-if)#exit r1(config)#int f0/0 r1(config-if)#ip nat outside r1(config)#access-list 111 permit ip any any r1(config)#ip nat inside source list 111 interface f0/0 overload 说明:在上海公司路由器 R1 上开启 NAT,内网接口 F0/1 为 inside,外网接口 F0/0 为 outside,并且将所有内网流量通过 NAT 将源 IP 转换为外网接口 F0/0 的地址。 (2)从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. 第 212 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/133/240 ms r5# 说明:因为从上海公司到北京公司的流量都是从 GRE 隧道过去的而不是从物理 接口 F0/0 过去的,所以在 F0/0 上配置的 NAT 没有对上海公司到北京公司的流量产 生影响,所以最后流量正常到达北京。 (3)在 R2 和 R4 上开放 VTY 线路登录: r2(config)#line vty 0 15 r2(config-line)#no logi r2(config-line)#exit r2(config)# r4(config)#line vty 0 15 r4(config-line)#no log r4(config-line)#no logi r4(config-line)#no login r4(config-line)#exit (4)测试从上海公司 R5 到北京公司 R4 的流量以及源 IP 情况: 第 213 页共 844 页 r5#telnet 192.168.1.4 Trying 192.168.1.4 ... Open www.china-ccie.com r4> r4>who Line User Host(s) Idle Location 0 con 0 idle 00:00:11 * 66 vty 0 idle 00:00:00 10.1.1.5 Interface User Mode Idle Peer Address r4> 说明:上海公司 R5 到北京公司 R4 的流量的源 IP 地址还是 10.1.1.5,和原始 IP 一样不变,所以两个通过 p2p GRE over IPsec 通信的内网流量没有被物理接口的 NAT 影响。 (5)测试从上海公司 R5 到 R2 的流量以及源 IP 情况: r5#telnet 12.1.1.2 Trying 12.1.1.2 ... Open r2> r2>who 第 214 页共 844 页 Line User Host(s) Idle Location 0 con 0 idle 00:02:08 * 66 vty 0 idle 00:00:00 12.1.1.1 www.china-ccie.com Interface User Mode Idle Peer Address r2> 说明:上海公司 R5 到 R2 的流量的源 IP 是 12.1.1.1,说明 R5 到 R2 的流量的源 IP 被物理接口的 NAT 转换成了物理接口的 IP 地址。 (6)查 R1 上的 NAT 转换表,EIGRP 邻居以及路由表情况: r1#sh ip nat translations Pro Inside global Inside local Outside local Outside global tcp 12.1.1.1:64840 10.1.1.5:64840 12.1.1.2:23 12.1.1.2:23 r1# r1#sh ip eig neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.3 Tu1 14 00:06:44 308 5000 0 4 r1# 第 215 页共 844 页 www.china-ccie.com r1# r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 D 192.168.1.0/24 [90/297246976] via 1.1.1.3, 00:06:42, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 第 216 页共 844 页 www.china-ccie.com 说明:从以上输出可以看出,物理接口上开启的 NAT 没有对靠 p2p GRE over IPsec 通信的流量造成任何影响, (7)将 NAT 改为在 GRE 接口上开启: r1(config)#no ip nat inside source list 111 interface f0/0 overload r1(config)#int f0/0 r1(config-if)#no ip nat outside r1(config)#int tunnel 1 r1(config-if)#ip nat outside r1(config)#ip nat inside source list 111 interface tunnel 1 overload (8)在 GRE 接口上开启 NAT 后,再次从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 第 217 页共 844 页 www.china-ccie.com 说明:因为 GRE 接口上的 NAT 会对通过 p2p GRE over IPsec 通信的内网流量造成 影响,所以上海公司 R5 向北京公司 R4 发送流量失败。 (9)查看 R1 上的 EIGRP 邻居,路由表,以及 R3 上的 EIGRP 邻居: r1#sh ip eig neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.3 Tu1 11 00:01:17 1 5000 1 0 r1# r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 第 218 页共 844 页 www.china-ccie.com 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# R3: r3#sh ip eig neighbors IP-EIGRP neighbors for process 1 r3# 说明:虽然 R1 上还能看见 EIGRP 邻居,因为 EIGRP 邻居是单向的,你以为对方 是邻居,但对方不一定认为你是邻居,而且 R1 自己的路由表也没有了对方的内网 网段信息,从 R3 可以看到,因为对方 GRE 接口上的 NAT,所以和对方的 EIGRP 邻 居已经丢失。 (10)改变 NAT 的感兴趣流量,将通过 p2p GRE over IPsec 通信的内网流量绕过 NAT: r1(config)#no access-list 111 第 219 页共 844 页 r1(config)#access-list 111 deny ip host 1.1.1.1 any www.china-ccie.com r1(config)#access-list 111 deny ip 10.1.1.0 0.0.0.255 any r1(config)#access-list 111 permit ip any any 说明:定义的感兴趣流量必须排除本端 GRE 接口地址以及本端内网地址出去的 流量,但目的地址是多少,这个,本人也无法得知,谢谢。 (11)排除本端 GRE 接口地址以及本端内网地址出去的流量被 NAT 转换后,再 次从上海公司 R5 向北京公司 R4 发送流量: r5#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 168/218/320 ms r5# 说明:通过 p2p GRE over IPsec 通信的内网流量被 NAT 排除后,双方内网流量恢 复通信,也更加说明了通过 p2p GRE over IPsec 通信的内网流量虽然不会被物理接口 的 NAT 影响,但会受 GRE 接口 NAT 的影响。 7.测试 IPsec Mode 说明:IPsec 默认的 mode 是 Tunnel mode,这个应该是大家都不会有疑问的。 (1)测试将 R3 的 IPsec Mode 改为 transport mode: r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac 第 220 页共 844 页 r3(cfg-crypto-trans)#mode transport www.china-ccie.com 清除双方 SA: r3#clear crypto sa r3# 说明:改变 mode 后,清除双方 SA 以便重新连接。 (2)查看 R3 当前的 IPsec Mode: r3#sh crypto ipsec sa interface: FastEthernet0/1 Crypto map tag: l2l, local addr 23.1.1.3 protected vrf: (none) local ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) current_peer 12.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 275, #pkts encrypt: 275, #pkts digest: 275 #pkts decaps: 274, #pkts decrypt: 274, #pkts verify: 274 第 221 页共 844 页 #pkts compressed: 0, #pkts decompressed: 0 www.china-ccie.com #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 3, #recv errors 0 local crypto endpt.: 23.1.1.3, remote crypto endpt.: 12.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1 current outbound spi: 0xAC4D735E(2890756958) inbound esp sas: spi: 0x453ACED4(1161481940) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 5, flow_id: SW:5, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4435093/3563) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: 第 222 页共 844 页 inbound pcp sas: www.china-ccie.com outbound esp sas: spi: 0xAC4D735E(2890756958) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 6, flow_id: SW:6, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4435092/3563) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r3# 说明:虽然已经将 R3 的 IPsec Mode 改为 transport mode,但还是工作在 Tunnel mode,因为对方没有改,只有双方都改时,才会改变最终工作的 mode。 (3)测试双方内网的通信情况: r5#ping 192.168.1.4 第 223 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 128/216/308 ms r5# 说明:因为双方的工作 mode 还是一致的,所以双方内网的通信情况正常。 (4)再将 R1 的 IPsec Mode 改为 transport mode: r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#mode transport 清除双方 SA: r1#clear crypto sa r1# 说明:将 R1 的 IPsec Mode 也改为了 transport mode。 (5)再次查看 R1 和 R3 现在的 IPsec Mode: R1: r1#sh crypto ipsec sa 第 224 页共 844 页 interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/47/0) current_peer 23.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 1080, #pkts encrypt: 1080, #pkts digest: 1080 #pkts decaps: 1079, #pkts decrypt: 1079, #pkts verify: 1079 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 4, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xB08775D1(2961667537) inbound esp sas: 第 225 页共 844 页 spi: 0xCD9A6D66(3449449830) www.china-ccie.com transform: esp-3des esp-sha-hmac , in use settings ={Transport, } conn id: 11, flow_id: SW:11, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4380219/3470) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xB08775D1(2961667537) transform: esp-3des esp-sha-hmac , in use settings ={Transport, } conn id: 12, flow_id: SW:12, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4380219/3469) IV size: 8 bytes replay detection support: Y 第 226 页共 844 页 Status: ACTIVE www.china-ccie.com outbound ah sas: outbound pcp sas: r1# R3: r3#sh crypto ipsec sa interface: FastEthernet0/1 Crypto map tag: l2l, local addr 23.1.1.3 protected vrf: (none) local ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) current_peer 12.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 1231, #pkts encrypt: 1231, #pkts digest: 1231 #pkts decaps: 1231, #pkts decrypt: 1231, #pkts verify: 1231 #pkts compressed: 0, #pkts decompressed: 0 第 227 页共 844 页 #pkts not compressed: 0, #pkts compr. failed: 0 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 23.1.1.3, remote crypto endpt.: 12.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1 current outbound spi: 0xCD9A6D66(3449449830) inbound esp sas: spi: 0xB08775D1(2961667537) transform: esp-3des esp-sha-hmac , in use settings ={Transport, } conn id: 11, flow_id: SW:11, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4396862/3453) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 228 页共 844 页 www.china-ccie.com outbound esp sas: spi: 0xCD9A6D66(3449449830) transform: esp-3des esp-sha-hmac , in use settings ={Transport, } conn id: 12, flow_id: SW:12, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4396861/3453) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r3# 说明:将双方的 IPsec Mode 改为 transport mode 后,最终双方工作在了 transport mode,在此还需要强烈说明和提醒,只有在 p2p GRE over IPsec 的情况下,IPsec Mode 的工作模式才能是 transport mode,否则即使强制改变双方的 mode 为 transport mode,最终双方也会依然工作在 Tunnel mode。 (6)再次测试双方内网的通信情况: 第 229 页共 844 页 r5#ping 192.168.1.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/117/212 ms r5# 说明:虽然现在双方的 IPsec Mode 为 transport mode,但不影响流量,所以双方 内网的通信情况依然正常。 Dynamic p2p GRE over IPsec 在上一小节中,我们介绍了 Router 与 Router 之间配置 Static p2p GRE over IPsec, 在本小节中,我们来介绍 Router 与 Router 之间配置 Dynamic p2p GRE over IPsec。 配置 Dynamic p2p GRE over IPsec 第 230 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 Dynamic p2p GRE over IPsec 的效果,在 图中,有上海和北京两个公司的网络,上海要和北京的网络实现 VPN 通信, 并且 需要通过动态路由协议 EIGRP 交换双方内网的网段信息,所以我们需要在两地路由 器之间建立 p2p GRE 隧道,然后再使用 p2p GRE over IPsec 来保护隧道中的数据,但 是两地路由器中北京路由器连接 Internet 的接口没有固定公网 IP 地址,为 DHCP 动 态获得的 IP,这就给 GRE 隧道的建立带来了一定的麻烦,所以我们配置 Dynamic p2p GRE over IPsec 来解决其中的问题。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit 第 231 页共 844 页 r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#service dhcp r2(config)#ip dhcp pool net23 第 232 页共 844 页 r2(dhcp-config)#network 23.1.1.0 255.255.255.0 www.china-ccie.com r2(dhcp-config)#default-router 23.1.1.2 r2(dhcp-config)#exit r2(config)#ip dhcp excluded-address 23.1.1.2 说明:配置 R2 的接口地址,并且在 R2 上配置 DHCP,向北京路由器 R3 提供动 态 IP 地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 192.168.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip address dhcp r3(config-if)#no sh r3(config-if)#exit r3(config)#int loopback 0 第 233 页共 844 页 r3(config-if)#ip add 3.3.3.3 255.255.255.255 www.china-ccie.com r3(config-if)#exit 说明:在 R3 连 Internet 的接口 F0/1 上开启 DHCP 动态获得地址,所以 F0/1 上的 IP 地址是多少,事先是不知道的,并且创建一个 Loopback 0(地址 3.3.3.3/32)作为 本端 p2p GRE 隧道的源点地址。 (4)配置 R4: r4(config)#int f0/0 r4(config-if)#ip add 192.168.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3 说明:配置 R4 的接口地址,并写默认路由指向北京公司出口路由器 R3。 (5)配置 R5: r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 第 234 页共 844 页 www.china-ccie.com 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 2.测试基础网络环境 (1)查看广州路由器 R3 的 IP 地址情况: r3#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 192.168.1.3 YES manual up up FastEthernet0/1 23.1.1.1 YES DHCP up up Serial1/0 unassigned YES unset administratively down down Serial1/1 unassigned YES unset administratively down down Serial1/2 unassigned YES unset administratively down down Serial1/3 unassigned YES unset administratively down down Loopback0 3.3.3.3 YES manual up up r3# 说明:北京路由器 R3 除了内网网段 192.168.1.0/24 之外,外网接口 F0/1 的地址 23.1.1.1 是 DHCP 动态获得的。 (2)查看 R3 的路由表: r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 第 235 页共 844 页 E1 - OSPF external type 1, E2 - OSPF external type 2 www.china-ccie.com i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 23.1.1.2 to network 0.0.0.0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 C 192.168.1.0/24 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [254/0] via 23.1.1.2 r3# 说明:R4 将所有未知路由丢向 Internet(R2)。 (3)测试 R1 到 R3 的连通性: r1#ping 23.1.1.1 Type escape sequence to abort. 第 236 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 23.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/63/108 ms r1# 说明:因为 R1 和 R3 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1 和 R3 都是可达的,所以 R1 和 R3 通信正常。 (4)测试 R1 到北京内网的连通性: r1#ping 192.168.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通信,所以 R1 无法访问北京公司的私有网段 192.168.1.0。 (5)测试 R5 到 R4 的连通性: r5#ping 192.168.1.4 第 237 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R1 与 R3 的通 信,所以上海和北京公司无法通过私有地址互访。 (6)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets 第 238 页共 844 页 C 23.1.1.0 is directly connected, FastEthernet0/1 www.china-ccie.com 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 3.配置 Dynamic p2p GRE over IPsec (1)在 R1 上配置终点为 R3 的 p2p GRE 隧道: r1(config)#interface tunnel 1 r1(config-if)#ip address 1.1.1.1 255.255.255.0 r1(config-if)#tunnel source 12.1.1.1 r1(config-if)#tunnel destination 3.3.3.3 r1(config-if)#exit r1(config)#ip route 3.3.3.3 255.255.255.255 12.1.1.2 说明:R1 到 R3 的 p2p GRE 隧道接口号为 1,隧道地址为 1.1.1.1,隧道的源点为 外网接口地址 12.1.1.1,而隧道的终点为 R3 的 Loopback 0 接口地址 3.3.3.3,虽然隧 道终点地址在 Internet 上是不可路由的,但必须写静态路由将 3.3.3.3/32 指向自己的 Internet 出口,因为这是配置规则。 (2)在 R3 上配置终点为 R1 的 p2p GRE 隧道: 第 239 页共 844 页 r3(config)#int tunnel 3 www.china-ccie.com r3(config-if)#ip address 1.1.1.3 255.255.255.0 r3(config-if)#tunnel source loopback 0 r3(config-if)#tunnel destination 12.1.1.1 r3(config-if)#exit 说明:R3 到 R1 的 p2p GRE 隧道接口号为 3,隧道地址为 1.1.1.3,隧道的源点为 Loopback 0 接口地址 3.3.3.3,隧道的终点为 R1 的外网接口地址 12.1.1.1。 (3)在 R1 上查看当前 p2p GRE 隧道接口的状态与连通性: r1#sh ip int brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 12.1.1.1 YES manual up up FastEthernet0/1 10.1.1.1 YES manual up up Serial1/0 unassigned YES unset administratively down down Serial1/1 unassigned YES unset administratively down down Serial1/2 unassigned YES unset administratively down down Serial1/3 unassigned YES unset administratively down down Tunnel1 1.1.1.1 YES manual up up r1# r1#ping 1.1.1.3 Type escape sequence to abort. 第 240 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r1# 说明:当前 p2p GRE 隧道接口的状态正常,但不能使用,因为当一方静态 IP 和 一方动态 IP 之间建立 p2p GRE 接口时,如果不配置 p2p GRE over Ipse,那么 p2p GRE 接口是不能工作,毫无用处的。 (4)在 R1 上配置 Dynamic LAN-to-LAN VPN 参数: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)#crypto isakmp key 0 cisco123 address 0.0.0.0 0.0.0.0 r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)#crypto dynamic-map ddd 10 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#exit 第 241 页共 844 页 www.china-ccie.com r1(config)#crypto map mymap 10 ipsec-isakmp dynamic ddd r1(config)#crypto map mymap local-address fastEthernet 0/0 r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map mymap r1(config-if)#exit *Mar 1 00:32:44.307: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config)# 说明:静态 IP 方 R1 的配置和 Dynamic LAN-to-LAN VPN 稍微不同之处在于,多了 这样一条命令“crypto map mymap local-address fastEthernet 0/0”,因为本实验环境 使用的 IOS 版本高于 12.2(13)T,所以 Crypto map 只在物理接口下应用即可,不需要 在 GRE 隧道接口下应用。 (5)在 R3 上配置普通 LAN-to-LAN VPN 参数: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit 第 242 页共 844 页 www.china-ccie.com r3(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)#access-list 100 permit gre host 3.3.3.3 host 12.1.1.1 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp r3(config-crypto-map)#set peer 12.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)#crypto map l2l local-address f0/1 r3(config)#int f0/1 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:32:58.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 说明:动态 IP 方 R3 和配置和普通 LAN-to-LAN VPN 的稍微不同之处在于,多了这 样一条命令“crypto map l2l local-address f0/1”,因为本实验环境使用的 IOS 版本高 于 12.2(13)T,所以 Crypto map 只在物理接口下应用即可,不需要在 GRE 隧道接口 第 243 页共 844 页 下应用。 www.china-ccie.com (6)查看 R1 当前的 ISAKMP peer 和 ISAKMP SA: r1#show crypto isakmp peers r1# r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r1# 说明:当前 R1 还没有任何 ISAKMP peer 和 ISAKMP SA。 (7)从静态 IP 方 R1 向动态 IP 方 R3 方发送流量激活隧道: r1#ping 1.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds: 第 244 页共 844 页 ..... Success rate is 0 percent (0/5) r1# www.china-ccie.com r1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# 说明:无论如何发送流量,ISAKMP SA 都无法建立,因为在 Dynamic p2p GRE over IPsec 环境下,必须先从动态 IP 方向静态 IP 方发送数据,否则 GRE 隧道无法建立, VPN 无法完成。 (8)改从动态 IP 方 R3 方向静态 IP 方 R1 发送流量激活隧道: r3#ping 1.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 192/229/272 ms 第 245 页共 844 页 www.china-ccie.com r3# r3# 说明:从动态 IP 方向静态 IP 方发送数据后, GRE 隧道已经正常,ISAKMP 状态 和后续 IPsec 也应该变的正常。 (9)再次查看 R1 当前的 ISAKMP peer 和 ISAKMP SA: r1#show crypto isakmp peers Peer: 23.1.1.1 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.1 r1# r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.1 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:从动态 IP 方向静态 IP 方发送数据后, GRE 隧道已经正常,ISAKMP 状态 也变的正常。 (10)查看 R1 上的 IPsec SA 状态: 第 246 页共 844 页 r1#show crypto ipsec sa www.china-ccie.com interface: FastEthernet0/0 Crypto map tag: mymap, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (3.3.3.3/255.255.255.255/47/0) current_peer 23.1.1.1 port 500 PERMIT, flags={} #pkts encaps: 171, #pkts encrypt: 171, #pkts digest: 171 #pkts decaps: 159, #pkts decrypt: 159, #pkts verify: 159 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x4ACFBE5E(1255128670) 第 247 页共 844 页 www.china-ccie.com inbound esp sas: spi: 0x5CC1DC94(1556208788) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4533978/3409) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x4ACFBE5E(1255128670) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: mymap sa timing: remaining key lifetime (k/sec): (4533972/3407) 第 248 页共 844 页 IV size: 8 bytes replay detection support: Y Status: ACTIVE www.china-ccie.com outbound ah sas: outbound pcp sas: r1# 说明:R1 当前 IPsec SA 也显示为活动状态,并且加密的数据包就是我们指定的 从本端公网接口到 R3 的 Loopback 0。 (11)再次从静态 IP 方 R1 向动态 IP 方 R3 方发送流: r1#ping 1.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 192/208/236 ms r1# 说明:因为动态 IP 方 R3 向静态 IP 方发起过流量,所以 GRE 隧道已经被激活, 变的正常。 第 249 页共 844 页 www.china-ccie.com (12)测试 R1 到 R3 的 Loopback 0 的通信情况: r1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# r1# 说明:虽然 GRE 已经活动,但动态 IP 方 R3 的私有 IP 接口 Loopback 0 的地址是 始终都不可能通的。 4.在双方配置动态路由协议 EIGRP (1)在 R1 上配置 EIGRP: r1(config)#router eigrp 1 r1(config-router)#no auto-summary r1(config-router)#network 1.1.1.1 0.0.0.0 r1(config-router)#network 10.1.1.1 0.0.0.0 r1(config-router)#exit 说明:在 R1 上配置 EIGRP,AS 号为 1,并且将内网网段 10.1.1.0 和 GRE 接口放 进 EIGRP 进程,以便通过 GRE 隧道和北京公司建立 EIGRP 邻居,从而交换双方内网 第 250 页共 844 页 网段信息。 www.china-ccie.com (2)在 R3 上配置 EIGRP: r3(config)#router eigrp 1 r3(config-router)#no auto-summary r3(config-router)#network 1.1.1.3 0.0.0.0 r3(config-router)#network 192.168.1.3 0.0.0.0 r3(config-router)# 说明:在 R3 上配置 EIGRP,AS 号为 1,并且将内网网段 192.168.1.0 和 GRE 接口 放进 EIGRP 进程,以便通过 GRE 隧道和北京公司建立 EIGRP 邻居,从而交换双方内 网网段信息。 (3)在 R1 上查看 EIGRP 邻居和路由情况: r1#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.3 Tu1 10 00:01:02 348 5000 0 4 r1# r1#sh ip rou 第 251 页共 844 页 r1#sh ip route www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Tunnel1 3.0.0.0/32 is subnetted, 1 subnets S 3.3.3.3 [1/0] via 12.1.1.2 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 D 192.168.1.0/24 [90/297246976] via 1.1.1.3, 00:00:59, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 第 252 页共 844 页 www.china-ccie.com r1# 说明:R1 与 R3 正常建立 EIGRP 邻居,并且也通过 EIGRP 正常学到北京公司的内 网网段信息,说明目前 Dynamic p2p GRE over IPsec 是完全正常的。 (4)在 R3 上查看 EIGRP 邻居和路由情况: r3#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 1.1.1.1 Tu3 11 00:01:21 297 5000 0 2 r3# r3#sh ip rou r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 253 页共 844 页 Gateway of last resort is 23.1.1.2 to network 0.0.0.0 www.china-ccie.com 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Tunnel3 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/297246976] via 1.1.1.1, 00:01:23, Tunnel3 C 192.168.1.0/24 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [254/0] via 23.1.1.2 r3# 说明:R3 和 R1 一样,也正常和对方建立了,EIGRP 邻居,并且也通过 EIGRP 正 常学到了上海公司的内网网段信息,说明目前 Dynamic p2p GRE over IPsec 是完全正 常的。 (5)测试双方内网流量的通信情况: 上海到北京: r5#ping 192.168.1.4 Type escape sequence to abort. 第 254 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 28/140/288 ms r5# 北京到上海: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/144/404 ms r4# r4# 说明:因为我们配置的 Dynamic p2p GRE over IPsec 是完全正常的,所以上海与北 京双方的内网通信也是完全正常的。 5.测试 NAT 对 p2p GRE over IPsec 的影响: 说明:在上一个 Static p2p GRE over IPsec 的实验中,我们已经测试过了 NAT 对 p2p GRE over IPsec 的影响,Dynamic p2p GRE over IPsec 与 Static p2p GRE over IPsec 受 NAT 的影响是一样的,所以这里也就不再重复测试了,请大家参见上一个实验的 详细部分。 第 255 页共 844 页 www.china-ccie.com Dynamic Multipoint VPN(DMVPN) 概述 如果一个零售行业的大公司告诉你他们公司在公中国有上千家门店,并且新开 的门店还在不断增加,而这些门店的局域网需要和总公司的内网通信,现在让你帮 他们设计门店与总公司的 VPN 网络,并且希望总公司和门店之前能够使用动态路由 协议来交换双方的内网信息,您觉得您会怎么设计?从前面介绍过的 VPN 类型分析, 您觉得什么样的 VPN 可以应对这家公司的需求呢? 从这样的环境和需求中,我们可以整理得出以下一些信息: 因为总公司要和许许多多的门店建立 VPN,而且 VPN 的 peer 会不断增加,所以 为了方便配置,并且在新增门店时,不用对总公司路由器进行配置修改,这样就能 方便维护并且节省工作量,我们可以考虑 Dynamic LAN-to-LAN VPN,这样就能保证 在新开门店时,即使门店的 IP 地址是动态的不固定的地址,这时都不用更改总公司 VPN 路由器的配置,便能够接受任何门店的 VPN 连接。 虽然 Dynamic LAN-to-LAN VPN 满足了一些需求,能够在总公司 VPN 路由器拥有 大量 VPN peer 的环境下,将 VPN 变得易于维护和管理,但是对于在总公司与门店 的 VPN 之 间 运 行 动 态 路 由 协 议 来 交 换 双 方 内 网网 段 信 息 , 这 对 于 Dynamic LAN-to-LAN VPN 来说是办不到的,但有没有哪个类型的 VPN 能达到这个功能呢?很 显然,大家应该马上就会想到 Dynamic p2p GRE over IPsec,因为 Dynamic p2p GRE over IPsec 除了能够提供 IPsec 的数据保证功能之外,还能够在 VPN peer 之间运行动 态路由协议,不仅如此,就算各门店的 IP 地址是浮动不定的,也没关系,Dynamic p2p GRE over IPsec 照样能正常建立 VPN,看来 Dynamic p2p GRE over IPsec 能够满足该公 司的需求。但是在选择使用 Dynamic p2p GRE over IPsec 时,请不要忘记一个重点, 那就是它是工作在 p2p GRE 之上的,p2p GRE 隧道只能有两个点,也就是只能一对 一,是一台路由器对一台路由器的网络结构,但是这家零售公司的总公司要和上千 家的门店建立 VPN,如果使用 Dynamic p2p GRE over IPsec,那就需要在总公司 VPN 路由器上为每家门店都创建一个单独的 p2p GRE 隧道,最终需要在总公司 VPN 路由 器上创建上千条 p2p GRE 隧道,并且每新增一家门店,就得去总公司 VPN 路由器上 添加一次配置,相信这活你绝对不会去干,我也不会去干。 第 256 页共 844 页 www.china-ccie.com 从上面分析的结果来看,Dynamic LAN-to-LAN VPN 并不能完全满足该公司的需 求,而 Dynamic p2p GRE over IPsec 能够满足要求,但面对 Dynamic p2p GRE over IPsec 令人恐惧的配置量,不可能有人在这种环境下选择它,所以我们便试图寻找能够解 决问题的其它类型的 VPN。其实我们仔细回想一下,不难发现这里有一个情况: Dynamic p2p GRE over IPsec 能够满足该公司所有的需求,其中包括无论对方门店的 IP 地址是静态的还是动态的,总公司的 VPN 路由器都够和对方建立 VPN 连接,并且 Dynamic p2p GRE over IPsec 还能在 VPN peer 之间运行动态路由协议,而 Dynamic p2p GRE over IPsec 的唯一缺点就是在门店增加的时候,必须到总公司 VPN 路由器上增加 配置才能和新开门店建立 VPN 连接;但我们应该记得,Dynamic LAN-to-LAN VPN 就 能从总公司一台路由器和任意数量的门店建立 VPN 连接,也无论门店增加多少家, 总公司的 VPN 路由器都不需要添加和更改任何配置就能接受门店的 VPN 连接,便于 管理和维护;所以我们就设想,要是能够将 Dynamic LAN-to-LAN VPN 这种 Hub 上不 增加和更改任何配置就能接受任何 VPN 连接的功能移植到 Dynamic p2p GRE over IPsec 中,结合两类 VPN 的优势所在,那将是一个完善的结局,但令人高兴的是, 这样结合的 VPN 确实是存在的,这个我们苦苦找寻的 VPN 就是本节要讲解的 Dynamic Multipoint VPN(DMVPN)。 在 Cisco IOS 中,完成 DMVPN 的功能,需要靠以下两个技术来实现: multipoint GRE (mGRE) Next Hop Resolution Protocol (NHRP) 下面我们来详细介绍这两个技术的功能与用途: multipoint GRE (mGRE) 第 257 页共 844 页 www.china-ccie.com 因为 Dynamic p2p GRE over IPsec 是工作在 p2p GRE 之上的,p2p GRE 隧道只能有 两个点,也就是只能一对一,是一台路由器对一台路由器的网络结构,如果一台路 由器要和多台路由器通过 p2p GRE 通信,那就需要每个 peer 都创建一个单独的 p2p GRE 隧道,如下图所示: 上图就是个 p2p GRE 的例子,其中路由器 HUB 需要和多台路由器,如 R1、R2、 R3、X 通过 p2p GRE 通信,所以在路由器上就需要为每个 peer 单独创建一条 p2p GRE, 结果路由器 HUB 上创建了多条 p2p GRE 接口(Tunnel 1 为 R1,Tunnel 2 为 R2,Tunnel 3 为 R3,Tunnel X 为 X),如果 HUB 的 peer 还在不断增加,那么每增加一个 peer, 路由器 HUB 都要增加相应的 p2p GRE 接口配置,这确实是一个相当繁琐且繁重的工 作。 为了能够拥有像 Dynamic LAN-to-LAN VPN 那样,无论有多少个 peer 要和自己连 接,也无论 peer 增加多少个,HUB 上都不需要添加和更改任何配置,所以将 p2p GRE 扩展为 multipoint GRE (mGRE),mGRE 能够像 Dynamic LAN-to-LAN VPN 那样,无论要 和多少个 peer 建立连接,自己始终都保持只有一个接口,并且无论有多少个 peer 或者无论 peer 增加多少个,自己始终都不增加和更改任何配置就能保持和对方的 第 258 页共 844 页 GRE 连接,如下图: www.china-ccie.com 在上图的 mGRE 示例中,虽然路由器 HUB 需要和多台路由器,如 R1、R2、R3、 X 通过 GRE 通信,但因为 HUB 上配置了 mGRE 接口,所以 HUB 不再需要为每个 peer 单独创建一条 GRE 接口而始终保持一个 mGRE 接口即可。 在 mGRE 中,核心路由器称为 Hub,而分支路由器称为 spoke,在配置时,Hub 上必须将 GRE 接口类型指定为 multipoint GRE (mGRE),但 spoke 上无论是 multipoint GRE (mGRE)还是 p2p GRE 都不会有问题,但两者之间会有不同之处。 在 DMVPN 中,同样需要使用 IPsec 来保护数据的安全,所以在这里也需要配置 IKE(IPsec profile),在没有配置 IPsec profile 之前, mGRE 和 IPsec 隧道是不会起作 用的,DMVPN 并不会改变标准 IPsec VPN 隧道,但会改变他们的配置方式,就像 Dynamic LAN-to-LAN VPN 一样,因为根本不知道会和哪些 peer 的哪些网段要通信, 所以就无法事先确定 IPsec SA,那么在配置 DMVPN 时就不需要通过配置 ACL 来定义 感兴趣流量了,当然传统的 crypto map 中也不需要指定 peer address 这样的参数 了。 第 259 页共 844 页 www.china-ccie.com 虽然不再需要定义 ACL 和 peer address,便还是需要定义 transform set 的。 注: ★无论 mGRE 中 Hub 要和多少个 spoke 连接,所有 Hub 和所有 spoke 的 IP 地址 必须在同网段。 ★在 mGRE 中,Hub 的物理 IP 必须固定,Spoke 的物理 IP 可随意。 ★IPsec 不再需要通过配置 ACL 来定义感兴趣流量。 Next Hop Resolution Protocol (NHRP) 因为在 DMVPN 中,mGRE 需要具有 Dynamic LAN-to-LAN VPN 那样无论和多少个 peer 建立连接,自己始终都只需要一个接口的功能,并且无论有多少个 peer 或者 无论 peer 增加多少个,自己始终都不增加和更改任何配置就能保持和对方的 GRE 连接,这里就隐含了一个东西,是什么呢?那就是和 Hub 建立 mGRE 的 spoke,因 为 Hub 根本不知道会有哪些 spoke 和它建立连接,也不知道会增加多少个 spoke, 所以对于 Hub 来说,和它建立 GRE 的 spoke 的地址全部都算是未知的,mGRE 的 Hub 要和数个未知地址的 spoke 建立连接,那么如何获得对方的真实地址成了个问题。 大家应该还记得,在 Dynamic p2p GRE over IPsec 情况下,因为可以一方是静态 IP, 而另一方是动态 IP,双方要成功建立 GRE,必须都知道对方的真实 IP 地址(通常是 公网 IP 地址),那么静态 IP 方又是如何知道动态 IP 方的 IP 地址的呢,那就是先让 动态 IP 方向静态 IP 方发送数据,静态 IP 方根据动态 IP 方发来的数据的源 IP 地址, 马上就能发现对方的 IP 地址,通常就是动态 IP 方的设备上向静态 IP 方发送 ICMP 包或者其它数据包,发出的数据包首先会促发 ISAKMP 的协商数据包,当数据包发 向静态 IP 方时,那么静态 IP 方就根据动态 IP 方发来的 ISAKMP 的协商数据包的源 IP 地址,从而知道对方的真正 IP 地址,这个过程就能够让建立 GRE 的双方都能知道 对方的真实 IP 地址,从而成功建立 GRE。对于 mGRE,它利用了一个单独的协议去 单独解决 Hub 获得 spoke 真实 IP 地址的问题,这个协议就是 Next Hop Resolution Protocol (NHRP),因为只要动态 IP 地址方先向静态 IP 地址方发送数据,静态 IP 地址 方就能够知道动态 IP 地址方的地址是什么,所以 mGRE 的 Hub 就可以在 spoke 发给 自己的数据包中得知 spoke 的真实 IP 地址,根据这个原因,NHRP 就强制规定 spoke 必须主动向 Hub 告知自己的真实 IP 地址,这样就能使 HUB 轻松获得所有 spoke 的 真实 IP 地址,从而正常建立 mGRE 中的所有 GRE,最终实现 DMVPN。 第 260 页共 844 页 www.china-ccie.com 在 NHRP 中,是以 Client and Server 的模式工作的,mGRE 中的 Hub 就是 server, 而 spoke 则是 client,在 Hub(NHRP Server)上,维护着一个拥有所有 spoke(NHRP Client)物理接口真实 IP 地址的数据库,通过此数据库,就能使双方都能知道对方 的真实 IP 地址从而建立 GRE;NHRP 规定了 Client 在启动后就必须马上向 Server 告 知自己的物理接口真实 IP 地址, 所以 mGRE 在 NHRP 的大力协助下,Hub 在知道每个 spoke 的真实 IP 地址后, 方可建立 GRE 隧道,从而完成 DMVPN 功能。 在某些情况下,spoke 不仅仅只需要和 Hub 通信,可能还需要和其它 spoke 通 信,因为所有 spoke 和 Hub 都是通的,所以只要 spoke 将数据发送到 Hub,Hub 就 一定能代为转发给其它目标 spoke,但是我们不难发现,如果所有 spoke 之间的通 信流量都先发送到 Hub,然后再由 Hub 中转,这必定会给 Hub 造成强大的压力和负 担,但是我们仔细想一下,为什么 spoke 之间的通信流量都要先发到 Hub 呢?因为 spoke 与 spoke 之间就从来没有建立过 Tunnel,而 spoke 只是与 Hub 建立了 tunnel, 这才导致 spoke 与 spoke 的通信流量都必须通过 Hub 来中转,那么需要通信的 spoke 与 spoke 之间为什么不直接建立 Tunnel 从而直接通信呢?因为 spoke 与 spoke 双方 都并不知道对方的真实 IP 地址,所以无法建立 Tunnel,但是因为 Hub 维护着所有 spoke 的真实 IP 地址的数据库,所以 spoke 要获得想要和其它 spoke 通信的真实 IP 地址并不难,只要去问 Hub 要就可以了;因此,当一个 spoke 要和其它 spoke 通信 时,通常是 spoke 直接与其它目标 spoke 建立 Tunnel,当通信结束后,再将 Tunnel 拆除,这样的通信称为 spoke-to-spoke,这样的 spoke 与 spoke 之间建立的 Tunnel 称为 spoke-to-spoke tunnel,也称为临时 Tunnel,有超时时间,过了这个时间,临时 Tunnel 自动拆除;而 Hub 与 spoke 通信称为 hub-to-spoke,Hub 与 spoke 建立的 Tunnel 称为 hub-to-spoke tunnel,并且是永久的 Tunnel。 当一个 spoke 要和其它 spoke 通信时,要做的第一件事情就是向 Hub(NHRP Server) 查询目标 spoke 的真实公网 IP,当 Hub 返回目标 spoke 的真实 IP 之后,源 spoke 就 可以向目标 spoke 触发一个 dynamic ipsec tunnel,当目标 spoke 收到相关数据包之 后,也采用同样的方法向 Hub 查询源 spoke 的真实公网 IP,从而在双方直接建立 Tunnel。在这里,一个 spoke 又是如何确定它的数据的目标是去往其它 spoke 的呢? 答案是 Hub 会和 spoke 之间运行动态路由协议,Hub 也会将从一个 spoke 那里学来 的路由信息在不改变下一跳地址的情况下直接发给其它 spoke,所以当 spoke 发现 去往目标网段的下一跳地址不是 Hub,但却和 Hub 的地址在同一网段时,便确定这 是其它 spoke。 在 DMVPN 的 mGRE 上可运行的动态路由协议包括: EIGRP,OSPF,BGP,RIPv2,ODR 第 261 页共 844 页 www.china-ccie.com 协议和协议之间通告的路由的下一跳地址都为 mGRE 的接口地址。 注: ★spoke 可以通过 Hub 发送的路由更新中学习到 Hub 和 spoke 的私有网段信息。 ★GRE keepalive 是不支持 DMVPN 的。 ★要很好的运行 DMVPN,要求的 IOS 最低版本是: 12.4 mainline,12.4T 或 12.2(18)SXF。 ★DMVPN 也支持 Cisco 6500 和 Cisco 7600 的,但会有特殊要求,比如引擎版本。 spoke-to-spoke tunnel 的建立如下: 第 262 页共 844 页 www.china-ccie.com 在上图的 DMVPN 中,R1 和 R3 都与 HUB 运行动态路由协议,其中 R1 上有网段 192.168.1.0/24,且物理接口地址为 101.1.1.1,mGRE 接口地址为 10.1.1.1;R3 上有 网段 192.168.3.0/24,且物理接口地址为 103.1.1.1,mGRE 接口地址为 10.1.1.3;HUB 上有网段 192.168.10.0/24,且的物理接口地址为 110.1.1.1,mGRE 接口地址为 10.1.1.10;R1 收到的路由 192.168.1.0/24 的下一跳为 HUB 的 mGRE 接口地址 10.1.1.10,收到的路由 192.168.3.0/24 的下一跳为 R3 的 mGRE 接口地址 10.1.1.3,R1 的路由表中已经反映了该情况。当 R1 要与 R3 的直连网段 192.168.3.0/24 通信时, 情况如下: 第 263 页共 844 页 www.china-ccie.com R1 通过 192.168.3.0/24 的下一跳地址为 10.1.1.3 得知该地址与自己的 mGRE 接口 同网段,于是断定该目标网段为其它 spoke 上的网段,所以发送 NHRP 查询消息向 HUB 查询 10.1.1.3 的真实 IP 地址,情况如下: 第 264 页共 844 页 www.china-ccie.com 因为 HUB 为 NHRP Server,所以它的 NHRP 数据库中存放着 spoke R1 的 mGRE 接 口地址 10.1.1.1 对应的真实 IP 地址 101.1.1.1,以及 spoke R3 的 mGRE 接口地址 10.1.1.3 对应的真实 IP 地址 103.1.1.1,所以 HUB 将 10.1.1.3 对应的真实地址为 103.1.1.1 的信息回给 R1,情况如下: 第 265 页共 844 页 www.china-ccie.com 当 R1 从 HUB 返回的信息中得知 10.1.1.3 对应的真实地址为 103.1.1.1 之后,便向 103.1.1.1 发起 dynamic ipsec tunnel 请求,试图与 R3 建立 spoke-to-spoke tunnel,当 R3 收到该请求后,采取与 R1 相同的过程得到 R1 的真实 IP 地址,从而在双向完成 spoke-to-spoke tunnel 的建立,最终 R1 与 R3 的通信直接在 spoke-to-spoke tunnel 上 传递而不需要通过 HUB 中转。 注: ★Spoke 与 spoke 之间的通信是通过 HUB 中转(即 hub-and-spoke 形式),还是通 过创建 spoke-to-spoke tunnel 直接通信,取决于 spoke 的 GRE 隧道模式,只有 spoke 也选择 mGRE 模式才行,否则不能建立 spoke-to-spoke tunnel. ★mGRE 与 NHRP 的配置步骤和配置要点将在实验部分详细介绍,谢谢. 第 266 页共 844 页 配置 DMVPN www.china-ccie.com 说明:我们下面需要以上图的环境来演示 DMVPN 的效果,在图中,有上海、北 京和广州共三个公司的网络,上海要同时和北京与广州的网络实现 VPN 通信,其中 北京和广州的路由器的 IP 地址都是通过 DHCP 获得的,事先无法知道 IP 是多少,在 这样的情况下,我们通过配置 DMVPN(即 mGRE 配合 NHRP 并集成 IPsec)来使上 海公司的路由器接受任何公司的 VPN 连接,而不管其 IP 地址是多少,很明显,上 图中上海公司路由器 R1 为 Hub,而北京和广州的路由器都为 spoke。 注:在上图中,即使 VPN 场点增加,在上海路由器 R1(Hub)上,不需要更改 任何配置,都能接受对方的 VPN 连接。 第 267 页共 844 页 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no shut r1(config-if)#exit www.china-ccie.com r1(config)#int s1/0 r1(config-if)#encapsulation frame-relay r1(config-if)#no frame-relay inverse-arp r1(config-if)#no arp frame-relay r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#frame-relay map ip 12.1.1.2 102 broadcast r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 r1(config)# 说明:配置 R1 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 12.1.1.2。 (2)配置 R2: 第 268 页共 844 页 r2(config)#int f0/0 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit www.china-ccie.com r2(config)#int f0/1 r2(config-if)#ip address 24.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int s1/0 r2(config-if)#encapsulation frame-relay r2(config-if)#no frame-relay inverse-arp r2(config-if)#no arp frame-relay r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no shutdown r2(config-if)#frame-relay map ip 12.1.1.1 201 broadcast r2(config-if)#exit r2(config)#service dhcp 第 269 页共 844 页 r2(config)#ip dhcp pool net23 r2(dhcp-config)#network 23.1.1.0 255.255.255.0 r2(dhcp-config)#default-router 23.1.1.2 r2(dhcp-config)#exit www.china-ccie.com r2(config)#ip dhcp pool net24 r2(dhcp-config)#network 24.1.1.0 255.255.255.0 r2(dhcp-config)#default-router 24.1.1.2 r2(dhcp-config)#exit r2(config)#ip dhcp excluded-address 23.1.1.2 r2(config)#ip dhcp excluded-address 24.1.1.2 r2(config)# 说明:配置 R2 的接口地址,并且在 R2 上配置 DHCP,向北京和广州的路由器提 供动态 IP 地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0、23.1.1.0 和 24.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip address dhcp r3(config-if)#no shutdown r3(config-if)#exit 第 270 页共 844 页 www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip address 192.168.1.3 255.255.255.0 r3(config-if)#no shutdown r3(config-if)#exit 说明:在 R3 上配置内网网段 192.168.1.0/24,并且在连 Internet 的接口 F0/0 上开 启 DHCP 动态获得地址,所以 F0/0 上的 IP 地址是多少,事先是不知道的。 (4)配置 R4: r4(config)#int f0/0 r4(config-if)#ip address 172.16.1.4 255.255.255.0 r4(config-if)#no shutdown r4(config-if)#exit r4(config)#int f0/1 r4(config-if)#ip address dhcp r4(config-if)#no shutdown r4(config-if)#exit 说明:在 R4 上配置内网网段 172.16.1.0/24,并且在连 Internet 的接口 F0/1 上开 启 DHCP 动态获得地址,所以 F0/1 上的 IP 地址是多少,事先是不知道的。 (5)配置 R5: 第 271 页共 844 页 r5(config)#int f0/1 r5(config-if)#ip add 10.1.1.5 255.255.255.0 r5(config-if)#no sh r5(config-if)#exit www.china-ccie.com r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 说明:配置 R5 的接口地址,并写默认路由指向上海公司出口路由器 R1。 2.测试基础网络环境 (1)查看北京路由器 R3 的 IP 地址情况: r3#show ip int brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 23.1.1.1 YES DHCP up up FastEthernet0/1 192.168.1.3 YES manual up up Serial1/0 unassigned YES unset administratively down down Serial1/1 unassigned YES unset administratively down down Serial1/2 unassigned YES unset administratively down down Serial1/3 unassigned YES unset administratively down down r3# 说明:北京路由器 R3 除了内网网段 192.168.1.0/24 之外,外网接口 F0/0 的地址 23.1.1.1 是 DHCP 动态获得的。 第 272 页共 844 页 (2)查看北京路由器 R3 的路由表情况: www.china-ccie.com r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 23.1.1.2 to network 0.0.0.0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/0 C 192.168.1.0/24 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [254/0] via 23.1.1.2 r3# 说明:R3 将所有未知路由丢向 Internet(R2)。 (3)查看广州路由器 R4 的 IP 地址情况: 第 273 页共 844 页 r4#sh ip int brief www.china-ccie.com Interface IP-Address OK? Method Status Protocol FastEthernet0/0 172.16.1.4 YES manual up up FastEthernet0/1 24.1.1.3 YES DHCP up up Serial1/0 unassigned YES unset administratively down down Serial1/1 unassigned YES unset administratively down down Serial1/2 unassigned YES unset administratively down down Serial1/3 unassigned YES unset administratively down down r4# 说明:广州路由器 R4 除了内网网段 172.16.1.0/24 之外,外网接口 F0/1 的地址 24.1.1.3 是 DHCP 动态获得的。 (4)查看广州路由器 R4 的路由表情况: r4#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 274 页共 844 页 Gateway of last resort is 24.1.1.2 to network 0.0.0.0 www.china-ccie.com 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, FastEthernet0/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [254/0] via 24.1.1.2 r4# 说明:R4 将所有未知路由丢向 Internet(R2)。 (5)测试 R1 到 R3 和 R4 的连通性: r1#ping 23.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.1.1.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 36/110/176 ms r1# r1#ping 24.1.1.3 Type escape sequence to abort. 第 275 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 24.1.1.3, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 44/92/172 ms r1# 说明:因为 R1、R3 和 R4 都有默认路由指向 Internet(路由器 R2),而 R2 与 R1、 R3 和 R4 都是可达的,所以 R1 与 R3 和 R4 通信正常。 (6)测试 R1 到北京内网和广州内网的连通性: r1#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r1# r1#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: U.U.U 第 276 页共 844 页 Success rate is 0 percent (0/5) www.china-ccie.com r1# 说明:虽然 R1 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0、 23.1.1.0 和 24.1.1.0,只能保证 R1 与 R3 和 R4 的通信,所以 R1 无法访问北京公司和 广州公司的私有网段 192.168.1.0 与 172.16.1.0。 (7)测试 R5 到北京内网和广州内网的连通性:: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:同上理由,R2 只有公网路由 12.1.1.0、23.1.1.0 和 24.1.10,只能保证 R1 第 277 页共 844 页 www.china-ccie.com 与 R3 和 R4 的通信,所以上海到北京公司和广州公司无法通过私有地址互访。 3.配置 DM VPN (1)在 R1 上配置 DMVPN: 说明:R1 为 Hub 配置 IKE(ISAKMP)策略: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit 配置 PSK 认证密钥,必须使用通配符认证方法: r1(config)#crypto isakmp key 0 cisco123 address 0.0.0.0 配置 IPsec transform: r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit 第 278 页共 844 页 配置 IPsec profile: r1(config)#crypto ipsec profile cisco r1(ipsec-profile)#set transform-set ccie r1(ipsec-profile)#exit www.china-ccie.com 创建 Tunnel 接口 1,号码任意: r1(config)#int tunnel 1 为高层协议改变带宽值,只影响路由协议的 Metric 值计算,而并非 QOS,默认 带宽为 9: r1(config-if)#bandwidth 1000 配置 GRE 接口地址为 100.1.1.1/24: r1(config-if)#ip address 100.1.1.1 255.255.255.0 将 MTU 改为 1400,如果不改,下一跳路由器将会对数据包分片并重新封装: r1(config-if)#ip mtu 1400 设置认证密码,同一个 mGRE 中所有点(包括所有 Hub 和所有 spoke)的密码必 须一致: r1(config-if)#ip nhrp authentication ccie123 第 279 页共 844 页 www.china-ccie.com 自动将 spoke 的地址加入组播映射中,否则与 spoke 之间使用组播的路由协议不 能正常运行: r1(config-if)#ip nhrp map multicast dynamic 配置网络标识号,等于是启用 NHRP,同一个 mGRE 中所有点(包括所有 Hub 和 所有 spoke)的号码必须一致: r1(config-if)#ip nhrp network-id 1 关闭 EIGRP 水平分割,否则从一个 spoke 的 EIGRP 学习到的路由不能发给另一个 spoke: r1(config-if)#no ip split-horizon eigrp 1 定义 mGRE 的源地址为 S1/0 的地址,即源地址为 12.1.1.1: r1(config-if)#tunnel source s1/0 定义 GRE 接口的类型为 mGRE,Hub 上的类型必须为 mGRE: r1(config-if)#tunnel mode gre multipoint 定义 Tunnel 接口 ID,此步并不是必须的,如果定义,同一个 mGRE 中所有点(包 括所有 Hub 和所有 spoke)的号码必须一致: r1(config-if)#tunnel key 10000 第 280 页共 844 页 www.china-ccie.com 将 IPsec profile 关联到 mGRE 接口,用于保护 mGRE 接口的流量: r1(config-if)#tunnel protection ipsec profile cisco r1(config-if)#exit (2)在 R3 上配置 DMVPN: 说明:R3 为 spoke 配置 IKE(ISAKMP)策略: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit 配置 PSK 认证密钥,必须使用通配符认证方法: r1(config)#crypto isakmp key 0 cisco123 address 0.0.0.0 配置 IPsec transform: r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac 第 281 页共 844 页 r1(cfg-crypto-trans)#exit 配置 IPsec profile: r1(config)#crypto ipsec profile cisco r1(ipsec-profile)#set transform-set ccie r1(ipsec-profile)#exit www.china-ccie.com 创建 Tunnel 接口 3,号码任意: r3(config)#int tunnel 3 为高层协议改变带宽值,只影响路由协议的 Metric 值计算,而并非 QOS,默认 带宽为 9: r3(config-if)#bandwidth 1000 配置 GRE 接口地址为 100.1.1.3/24: r3(config-if)#ip address 100.1.1.3 255.255.255.0 将 MTU 改为 1400,如果不改,下一跳路由器将会对数据包分片并重新封装: r3(config-if)#ip mtu 1400 设置认证密码,同一个 mGRE 中所有点(包括所有 Hub 和所有 spoke)的密码必 第 282 页共 844 页 须一致: r3(config-if)#ip nhrp authentication ccie123 www.china-ccie.com 将 Hub 的 GRE 接口地址 100.1.1.1 和公网 IP 地址 12.1.1.1 静态映射绑定: r3(config-if)#ip nhrp map 100.1.1.1 12.1.1.1 开启能向 Hub 发送组播的功能,从而开启动态路由协议的功能: r3(config-if)#ip nhrp map multicast 12.1.1.1 配置网络标识号,等于是启用 NHRP,同一个 mGRE 中所有点(包括所有 Hub 和 所有 spoke)的号码必须一致: r3(config-if)#ip nhrp network-id 1 将 Hub 路由器指定为 NHRP Server: r3(config-if)#ip nhrp nhs 100.1.1.1 定义 mGRE 的源地址为 F0/0 的地址: r3(config-if)#tunnel source f0/0 定义 GRE 接口的类型为 mGRE,spoke 也可以选择直接指 Hub 的目标地址(即命 令 tunnel destination),如果需要使用 spoke-to-spoke tunnel 传递功能,必须配置为 mGRE,指目标地址只能工作在 hub-and-spoke tunnel: 第 283 页共 844 页 r3(config-if)#tunnel mode gre multipoint www.china-ccie.com 定义 Tunnel 接口 ID,此步并不是必须的,如果定义,同一个 mGRE 中所有点(包 括所有 Hub 和所有 spoke)的号码必须一致: r3(config-if)#tunnel key 10000 将 IPsec profile 关联到 mGRE 接口,用于保护 mGRE 接口的流量: r3(config-if)#tunnel protection ipsec profile cisco r3(config-if)#exit 4.测试 DMVPN (1)从 Hub 端 R1 向 spoke 端 R3 发送流量测试 mGRE 接口状况: r1#ping 100.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 188/222/264 ms r1# 说明:Hub 端 R1 的 mGRE 接口到 spoke 端 R3 的 mGRE 接口通信正常。 (2)查看 Hub 端 R1 的 NHRP 映射情况: 第 284 页共 844 页 www.china-ccie.com r1#show ip nhrp brief Target Via NBMA Mode Intfc Claimed 100.1.1.3/32 100.1.1.3 23.1.1.1 dynamic Tu1 < > r1# r1# r1#show ip nhrp 100.1.1.3/32 via 100.1.1.3, Tunnel1 created 00:02:05, expire 01:57:54 Type: dynamic, Flags: unique nat registered NBMA address: 23.1.1.1 r1# 说明:Hub 路由器 R1 上已经存在 spoke 路由器 R3 的 mGRE 接口地址 100.1.1.3 对应的公网地址 23.1.1.1 的映射,并且显示为动态映射的,即 spoke 自动注册的。 (3)查看 spoke 端 R3 的 NHRP 映射情况: r3#show ip nhrp 100.1.1.1/32 via 100.1.1.1, Tunnel3 created 00:10:03, never expire Type: static, Flags: nat used NBMA address: 12.1.1.1 r3# r3#show ip nhrp brie r3#show ip nhrp brief 第 285 页共 844 页 Target www.china-ccie.com Via NBMA Mode Intfc Claimed 100.1.1.1/32 100.1.1.1 12.1.1.1 static Tu3 < > r3# 说明:spoke 路由器 R3 上同样存在 Hub 路由器 R1 的 mGRE 接口地址 100.1.1.1 对应的公网地址 12.1.1.1 的映射,并且显示为静态映射的。 (4)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.1 Port: 500 Local: 12.1.1.1 Phase1 id: 23.1.1.1 r1# 说明:R1 已经成功与 R3 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地源 地址为 12.1.1.1,目标为 23.1.1.3,目标端口号为 500,建立 IKE 还是使用的公网 IP 地址。 (5)查看 R1 上 IKE SA 的 SA: r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.1 QM_IDLE 1014 0 ACTIVE 第 286 页共 844 页 IPv6 Crypto ISAKMP SA r1# 说明:IKE SA 已经成功建立。 www.china-ccie.com (6)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: Tunnel1 Crypto map tag: Tunnel1-head-0, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (23.1.1.1/255.255.255.255/47/0) current_peer 23.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 6, #pkts encrypt: 6, #pkts digest: 6 #pkts decaps: 7, #pkts decrypt: 7, #pkts verify: 7 #pkts compressed: 0, #pkts decompressed: 0 第 287 页共 844 页 #pkts not compressed: 0, #pkts compr. failed: 0 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb Serial1/0 current outbound spi: 0xD5A0B371(3584078705) inbound esp sas: spi: 0x9E89DA8C(2659834508) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 35, flow_id: SW:35, crypto map: Tunnel1-head-0 sa timing: remaining key lifetime (k/sec): (4422895/3576) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 288 页共 844 页 www.china-ccie.com outbound esp sas: spi: 0xD5A0B371(3584078705) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 36, flow_id: SW:36, crypto map: Tunnel1-head-0 sa timing: remaining key lifetime (k/sec): (4422895/3575) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:IPsec SA 中只包含公网 IP 地址相互的流量。 5.在上海与北京路由器之间基于 mGRE 配置动态路由协议 EIGRP,动态交换双方内 网信息: (1)在上海路由器 R1 上配置 EIGRP: 第 289 页共 844 页 r1(config)#router eigrp 1 www.china-ccie.com r1(config-router)#no auto-summary r1(config-router)#network 10.1.1.1 0.0.0.0 r1(config-router)#network 100.1.1.1 0.0.0.0 r1(config-router)#exi 说明:在 R1 上启动 EIGRP,AS 号 1,并将内网接口 10.1.1.1 和 mGRE 接口 100.1.1.1 都放入 EIGRP 进程。 (2)在北京路由器 R3 上配置 EIGRP: r3(config)#router eigrp 1 r3(config-router)#no auto-summary r3(config-router)#network 192.168.1.3 0.0.0.0 r3(config-router)#network 100.1.1.3 0.0.0.0 r3(config-router)#exit 说明:在 R3 上启动 EIGRP,AS 号 1,并将内网接口 192.168.1.3 和 mGRE 接口 100.1.1.3 都放入 EIGRP 进程。 (3)在上海路由器 R1 上查看 EIGRP 邻居与路由表情况: r1#show ip eigrp neighbors IP-EIGRP neighbors for process 1 第 290 页共 844 页 H Address www.china-ccie.com Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 100.1.1.3 Tu1 11 00:00:31 321 1926 0 2 r1# r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, Serial1/0 第 291 页共 844 页 www.china-ccie.com D 192.168.1.0/24 [90/15362560] via 100.1.1.3, 00:00:33, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:R1 已经与 R3 正常建立 EIGRP 邻居,并且正常收到北京内网 192.168.1.0/24 的路由。 (4)在北京路由器 R3 上查看 EIGRP 邻居与路由表情况: r3#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 100.1.1.1 Tu3 13 00:00:58 320 1920 0 3 r3# r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route 第 292 页共 844 页 o - ODR, P - periodic downloaded static route www.china-ccie.com Gateway of last resort is 23.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Tunnel3 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/15362560] via 100.1.1.1, 00:00:59, Tunnel3 C 192.168.1.0/24 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [254/0] via 23.1.1.2 r3# 说明:R3 已经与 R1 正常建立 EIGRP 邻居,并且正常收到上海内网 10.1.1.0 /24 的路由。 (5)测试上海路由器 R1 到北京内网 192.168.1.0/24 的通信情况: r1#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! 第 293 页共 844 页 www.china-ccie.com Success rate is 100 percent (5/5), round-trip min/avg/max = 196/239/300 ms r1# 说明:因为上海路由器 R1 到北京内网 192.168.1.0/24 的路由正常从 mGRE 接口出 去,所以通信也正常。 (6)测试上海内网路由器 R5 到北京内网 192.168.1.0/24 的通信情况: r5#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 100/188/312 ms r5# 说明:上海内网到北京内网通信正常。 (6)查看上海公司向北京公司发送数据包的路径走向: r5#traceroute 192.168.1.3 Type escape sequence to abort. Tracing the route to 192.168.1.3 第 294 页共 844 页 1 10.1.1.1 60 msec 76 msec 8 msec www.china-ccie.com 2 100.1.1.3 184 msec * 244 msec r5# 说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只 有一跳,因为直接从 GRE 隧道过去就到达了目的地,说明中间的多跳已经 GRE 隧道 取代为一跳了。 (7)测试上海内网路由器 R5 到广州内网 172.16.1.0/24 的通信情况: r5#ping 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r5# 说明:目前上海路由器与广州路由器毫无关联,所以上海内网到广州内网 172.16.1.0/24 的通信失败。 6.将广州路由器加入 DMVPN (1)使用类似于 spoke 路由器 R3 的配置方法来配置广州路由器 R4 的 DMVPN: 第 295 页共 844 页 www.china-ccie.com r4(config)#crypto isakmp policy 1 r4(config-isakmp)#encryption 3des r4(config-isakmp)#hash sha r4(config-isakmp)#authentication pre-share r4(config-isakmp)#group 2 r4(config-isakmp)#exit r4(config)#crypto isakmp key 0 cisco123 address 0.0.0.0 r43(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r4(cfg-crypto-trans)#exit r4(config)#crypto ipsec profile cisco r4(ipsec-profile)#set transform-set ccie r4(ipsec-profile)#exit r4(config)# r4(config)#int tunnel 4 r4(config-if)#bandwidth 1000 r4(config-if)#ip address 100.1.1.4 255.255.255.0 r4(config-if)#ip mtu 1400 第 296 页共 844 页 r4(config-if)#ip nhrp authentication ccie123 www.china-ccie.com r4(config-if)#ip nhrp map 100.1.1.1 12.1.1.1 r4(config-if)#ip nhrp map multicast 12.1.1.1 r4(config-if)#ip nhrp network-id 1 r4(config-if)#ip nhrp nhs 100.1.1.1 r4(config-if)#tunnel source f0/1 r4(config-if)#tunnel mode gre multipoint r4(config-if)#tunnel key 10000 r4(config-if)#tunnel protection ipsec profile cisco r4(config-if)#exit 说明:R4 上 DMVPN 的各参数请参考 R3 上的配置解释。 (2)从 spoke 端 R4 向 Hub 端 R1 发送流量测试 mGRE 接口状况: r4#ping 100.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 196/221/244 ms r4# 说明:spoke 端 R4 的 mGRE 接口到 Hub 端 R1 的 mGRE 接口通信正常。 第 297 页共 844 页 www.china-ccie.com (3)查看 Hub 端 R1 的 NHRP 映射情况: r1#show ip nhrp 100.1.1.3/32 via 100.1.1.3, Tunnel1 created 00:15:09, expire 01:44:50 Type: dynamic, Flags: unique nat registered NBMA address: 23.1.1.1 100.1.1.4/32 via 100.1.1.4, Tunnel1 created 00:01:49, expire 01:59:32 Type: dynamic, Flags: unique nat registered NBMA address: 24.1.1.3 r1# r1#show ip nhrp brief Target Via NBMA Mode Intfc Claimed 100.1.1.3/32 100.1.1.3 23.1.1.1 dynamic Tu1 < > 100.1.1.4/32 100.1.1.4 24.1.1.3 dynamic Tu1 < > r1# 说明:Hub 路由器 R1 上在已经有了对 R3 的 NHRP 映射之外,同时增加了对 spoke 路由器 R4 的 mGRE 接口地址 100.1.1.4 对应的公网地址 24.1.1.3 的映射,并且显示 为动态映射的,即是 spoke 路由器 R4 自动注册的。 (4)查看 spoke 端 R4 的 NHRP 映射情况: 第 298 页共 844 页 r4#show ip nhrp www.china-ccie.com 100.1.1.1/32 via 100.1.1.1, Tunnel4 created 00:04:20, never expire Type: static, Flags: nat used NBMA address: 12.1.1.1 r4# r4#show ip nhrp brie r4#show ip nhrp brief Target Via NBMA Mode Intfc Claimed 100.1.1.1/32 100.1.1.1 12.1.1.1 static Tu4 < > r4# 说明:spoke 路由器 R4 上同样存在 Hub 路由器 R1 的 mGRE 接口地址 100.1.1.1 对应的公网地址 12.1.1.1 的映射,并且显示为静态映射的。 (5)在广州路由器 R4 上启用 EIGRP: r4(config)#router eigrp 1 r4(config-router)#no auto-summary r4(config-router)#network 172.16.1.4 0.0.0.0 r4(config-router)#network 100.1.1.4 0.0.0.0 说明:在 R4 上启动 EIGRP,AS 号 1,并将内网接口 172.16.1.4 和 mGRE 接口 100.1.1.4 都放入 EIGRP 进程。 第 299 页共 844 页 www.china-ccie.com (6)在上海路由器 R1 上查看 EIGRP 邻居与路由表情况: r1#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 1 100.1.1.4 Tu1 12 00:00:40 323 2907 0 2 0 100.1.1.3 Tu1 12 00:12:33 333 1998 0 2 r1# r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Tunnel1 第 300 页共 844 页 172.16.0.0/24 is subnetted, 1 subnets www.china-ccie.com D 172.16.1.0 [90/15362560] via 100.1.1.4, 00:00:42, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, Serial1/0 D 192.168.1.0/24 [90/15362560] via 100.1.1.3, 00:12:35, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:R1 上不仅保持着北京的 EIGRP 邻居与内网网段,同时增加了广州路由器 的 EIGRP 邻居与广州内网网段。 (7)在广州路由器 R4 上查看 EIGRP 邻居与路由表情况: r4#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 100.1.1.1 Tu4 12 00:01:07 338 2028 0 6 r4# r4#sh ip route 第 301 页共 844 页 www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 24.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Tunnel4 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, FastEthernet0/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/15362560] via 100.1.1.1, 00:01:08, Tunnel4 D 192.168.1.0/24 [90/28162560] via 100.1.1.1, 00:01:08, Tunnel4 S* 0.0.0.0/0 [254/0] via 24.1.1.2 r4# 第 302 页共 844 页 www.china-ccie.com 说明:广州路由器 R4 已经与上海路由器 R1 成功建立 EIGRP 邻居,请注意路由表 中,现在广州到上海的网段 10.1.1.0/24 和到北京的网段 192.168.1.0/24 的下一跳地 址都为上海路由器的 mGRE 接口地址 100.1.1.1,所以这说明现在 spoke 与 spoke 之 间的通信仍然需要通过 Hub 路由器中转,即通信方式仍然为 hub-and-spoke tunnel 的形式。 ( 8 ) 测 试 广 内 网 172.16.1.0/24 到 上 海 内 网 10.1.1.0/24 和 到 北 京 内 网 192.168.1.0/24 的通信情况: r4#ping 10.1.1.5 source 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: Packet sent with a source address of 172.16.1.4 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 108/152/192 ms r4# r4#ping 192.168.1.3 source 172.16.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: 第 303 页共 844 页 Packet sent with a source address of 172.16.1.4 www.china-ccie.com !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 220/260/296 ms r4# 说明:因为动态路由协议 EIGRP 在全网间通告路由信息,所以所有网段之间通信 正常。 (9)查看广州内网到上海公司和北京公司数据包的路径走向: r4#traceroute 10.1.1.5 Type escape sequence to abort. Tracing the route to 10.1.1.5 1 100.1.1.1 216 msec 244 msec 276 msec 2 10.1.1.5 236 msec * 176 msec r4# r4#traceroute 192.168.1.3 Type escape sequence to abort. Tracing the route to 192.168.1.3 第 304 页共 844 页 1 100.1.1.1 332 msec 208 msec 188 msec www.china-ccie.com 2 100.1.1.3 308 msec * 336 msec r4# 说明:结果显示,广州内网无论到上海公司还是北京公司数据包都先发到 100.1.1.1,即通过 hub-and-spoke tunnel 的方式从 Hub 中转,这种通信是不理想的。 7.配置 spoke-to-spoke tunnel 通信方式 (1)在 Hub 路由器 R1 的 mGRE 接口上改变 EIGRP 下一跳规则: r1(config)#int tunnel 1 r1(config-if)#no ip next-hop-self eigrp 1 r1(config-if)# 说明:让 Hub 路由器 R1 不再将从一个 spoke 收到的路由发给另一个 spoke 时将 下一跳地址改为自己,而是保持原来的下一跳地址不变,即 spoke 到另外一个 spoke 的下一跳地址还是源 spoke 而不是 Hub 路由器。 (2)再次查看广州路由器 R4 上的路由表情况: r4#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 第 305 页共 844 页 E1 - OSPF external type 1, E2 - OSPF external type 2 www.china-ccie.com i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 24.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Tunnel4 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, FastEthernet0/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/15362560] via 100.1.1.1, 00:00:38, Tunnel4 D 192.168.1.0/24 [90/28162560] via 100.1.1.3, 00:00:38, Tunnel4 S* 0.0.0.0/0 [254/0] via 24.1.1.2 r4# 说明:广州路由器 R4 到上海的网段 10.1.1.0/24 的下一跳还是直接发到上海路由 器 100.1.1.1 的,而到北京的网段 192.168.1.0/24 的路由则变成了直接发到北京路由 器 R3 的 mGRE 接口地址 100.1.1.3,说明现在 spoke 与 spoke 之间的通信没有通过 Hub 路由器中转,而是改成了 spoke-and-spoke tunnel 的形式。 第 306 页共 844 页 www.china-ccie.com (3)再次查看广州内网到上海公司和北京公司数据包的路径走向: r4#traceroute 10.1.1.5 Type escape sequence to abort. Tracing the route to 10.1.1.5 1 100.1.1.1 192 msec 204 msec 276 msec 2 10.1.1.5 220 msec * 128 msec r4# r4#traceroute 192.168.1.3 Type escape sequence to abort. Tracing the route to 192.168.1.3 1 100.1.1.3 248 msec * 240 msec r4# 说明:广州路由器 R4 到上海的网段 10.1.1.0/24 的下一跳还是直接发到上海路由 器 100.1.1.1 的,而到北京的网段 192.168.1.0/24 则变成了直接发到北京路由器 R3 的 mGRE 接口地址 100.1.1.3,说明现在 spoke 与 spoke 之间的通信没有通过 Hub 路 由器中转,而是改成了 spoke-and-spoke tunnel 的形式。 第 307 页共 844 页 www.china-ccie.com (4)再次查看 spoke 端 R4 的 NHRP 映射情况: r4#show ip nhrp 100.1.1.1/32 via 100.1.1.1, Tunnel4 created 00:12:20, never expire Type: static, Flags: nat used NBMA address: 12.1.1.1 100.1.1.3/32 via 100.1.1.3, Tunnel4 created 00:03:37, expire 01:56:23 Type: dynamic, Flags: router nat implicit used NBMA address: 23.1.1.1 100.1.1.4/32 via 100.1.1.4, Tunnel4 created 00:03:36, expire 01:56:23 Type: dynamic, Flags: router unique nat local NBMA address: 24.1.1.3 (no-socket) r4# r4#show ip nhrp brie r4#show ip nhrp brief Target Via NBMA Mode Intfc Claimed 100.1.1.1/32 100.1.1.1 12.1.1.1 static Tu4 < > 100.1.1.3/32 100.1.1.3 23.1.1.1 dynamic Tu4 < > 100.1.1.4/32 100.1.1.4 24.1.1.3 dynamic Tu4 < > r4# 第 308 页共 844 页 www.china-ccie.com 说明:因为要使用 spoke-and-spoke tunnel 的通信方式,所以 R4 上通过查询 Hub 路由器 R1 得到了到北京路由器的 NHRP 映射(即北京路由器 R3 的 mGRE 接口地址 100.1.1.3 映射到公网地址 23.1.1.1)。 8.测试 DMVPN 中的 OSPF 情况: (1)在所有路由器上将 EIGRP 改为 OSPF: R1: r1(config)#no router eigrp 1 *Mar 1 00:59:58.175: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 100.1.1.4 (Tunnel1) is down: interface down *Mar 1 00:59:58.187: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 100.1.1.3 (Tunnel1) is down: interface down r1(config)# r1(config)#router ospf 1 r1(config-router)#network 100.1.1.1 0.0.0.0 area 0 r1(config-router)#network 10.1.1.1 0.0.0.0 area 0 r1(config-router)#exit r1(config)# R3: 第 309 页共 844 页 r3(config)#no router eigrp 1 r3(config)# r3(config)#router ospf 1 r3(config-router)#network 100.1.1.3 0.0.0.0 area 0 r3(config-router)#network 192.168.1.3 0.0.0.0 area 0 r3(config-router)# www.china-ccie.com R4: r4(config)#no router eigrp 1 r4(config)# r4(config)#router ospf 1 r4(config-router)#network 100.1.1.4 0.0.0.0 area 0 r4(config-router)#network 172.16.1.4 0.0.0.0 area 0 r4(config-router)#exit r4(config)# 说明:已经在各路由器上取消 EIGRP 进程,并配置了 OSPF。 (2)查看上海路由器 R1 上的 OSPF 情况: r1# *Mar 1 01:09:55.047: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.1.4 on Tunnel1 from FULL to DOWN, Neighbor Down: Adjacency forced to reset 第 310 页共 844 页 www.china-ccie.com *Mar 1 01:09:55.307: %OSPF-4-NONEIGHBOR: Received database description from unknown neighbor 172.16.1.4 *Mar 1 01:09:56.219: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.3 on Tunnel1 from LOADING to FULL, Loading Done r1# *Mar 1 01:10:00.543: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.3 on Tunnel1 from FULL to DOWN, Neighbor Down: Adjacency forced to reset *Mar 1 01:10:00.759: %OSPF-4-NONEIGHBOR: Received database description from unknown neighbor 192.168.1.3 *Mar 1 01:10:01.287: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.1.4 on Tunnel1 from LOADING to FULL, Loading Done r1# 说明:还不用查看,已经看到 OSPF 邻居一会儿 down,一会儿 up, (3)在 R1 上查看 mGRE 在 OSPF 下的网络类型: r1#show ip ospf interface tunnel 1 Tunnel1 is up, line protocol is up Internet Address 100.1.1.1/24, Area 0 Process ID 1, Router ID 100.1.1.1, Network Type POINT_TO_POINT, Cost: 100 Transmit Delay is 1 sec, State POINT_TO_POINT Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:00 第 311 页共 844 页 Supports Link-local Signaling (LLS) www.china-ccie.com Cisco NSF helper support enabled IETF NSF helper support enabled Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 4 msec, maximum is 4 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 172.16.1.4 Suppress hello for 0 neighbor(s) r1# 说明:因为 mGRE 接口默认情况在被 OSPF 定义为 POINT_TO_POINT 的网络类型, 而因为 POINT_TO_POINT 网络类型的接口只能有一个 OSPF 邻居,所以现在要和两个 路由器建 OSPF 邻居就出现了问题,因为我们必须改变 mGRE 接口在 OSPF 下的网络 类型。 (4)改变所有路由器 mGRE 接口在 OSPF 下的网络类型为 point-to-multipoint: r1(config)#int tunnel 1 r1(config-if)#ip ospf network point-to-multipoint r1(config-if)# 第 312 页共 844 页 r3(config)#int tunnel 3 r3(config-if)#ip ospf network point-to-multipoint r3(config-if)# www.china-ccie.com r4(config)#int tunnel 4 r4(config-if)#ip ospf network point-to-multipoint r4(config-if)# 说明:已经将所有路由器的 mGRE 接口的 OSPF 网络类型改为 point-to-multipoint。 (5)查看上海路由器 R1 上的 OSPF 邻居与路由表情况: r1#sh ip os neighbor Neighbor ID Pri State Dead Time Address Interface 172.16.1.4 0 FULL/ - 00:01:55 100.1.1.4 Tunnel1 192.168.1.3 0 FULL/ - 00:01:45 100.1.1.3 Tunnel1 r1# r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 第 313 页共 844 页 E1 - OSPF external type 1, E2 - OSPF external type 2 www.china-ccie.com i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 100.0.0.0/8 is variably subnetted, 3 subnets, 2 masks O 100.1.1.4/32 [110/100] via 100.1.1.4, 00:00:24, Tunnel1 C 100.1.1.0/24 is directly connected, Tunnel1 O 100.1.1.3/32 [110/100] via 100.1.1.3, 00:00:24, Tunnel1 172.16.0.0/24 is subnetted, 1 subnets O 172.16.1.0 [110/101] via 100.1.1.4, 00:00:24, Tunnel1 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, Serial1/0 O 192.168.1.0/24 [110/101] via 100.1.1.3, 00:00:24, Tunnel1 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:因为将 mGRE 接口的 OSPF 网络类型改为 point-to-multipoint,所以正常与 R3 和 R4 建立 OSPF 邻居,并且正常学到北京和广州的路由信息。 第 314 页共 844 页 www.china-ccie.com (6)查看北京路由器 R3 上的 OSPF 邻居与路由表情况: r3#sh ip os neighbor Neighbor ID Pri State Dead Time Address Interface 100.1.1.1 0 FULL/ - 00:01:53 100.1.1.1 Tunnel3 r3# r3#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 23.1.1.2 to network 0.0.0.0 100.0.0.0/8 is variably subnetted, 3 subnets, 2 masks O 100.1.1.4/32 [110/200] via 100.1.1.1, 00:00:52, Tunnel3 第 315 页共 844 页 C 100.1.1.0/24 is directly connected, Tunnel3 www.china-ccie.com O 100.1.1.1/32 [110/100] via 100.1.1.1, 00:00:52, Tunnel3 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/0 172.16.0.0/24 is subnetted, 1 subnets O 172.16.1.0 [110/201] via 100.1.1.1, 00:00:52, Tunnel3 10.0.0.0/24 is subnetted, 1 subnets O 10.1.1.0 [110/101] via 100.1.1.1, 00:00:52, Tunnel3 C 192.168.1.0/24 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [254/0] via 23.1.1.2 r3# 说明:北京路由器已经与上海路由器正常建立 OSPF 邻居,并正常学到上海网段 10.1.1.0/24 和广州网段 172.16.1.0,但下一跳地址都为上海路由器的 mGRE 接口 100.1.1.1,所以 OSPF 下无法实现 spoke-and-spoke tunnel 的通信方式。 (7)查看广州路由器 R4 上的 OSPF 邻居与路由表情况: r4#sh ip os neighbor Neighbor ID Pri State Dead Time Address Interface 100.1.1.1 0 FULL/ - 00:01:48 100.1.1.1 Tunnel4 r4# r4#sh ip route 第 316 页共 844 页 www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 24.1.1.2 to network 0.0.0.0 100.0.0.0/8 is variably subnetted, 3 subnets, 2 masks C 100.1.1.0/24 is directly connected, Tunnel4 O 100.1.1.1/32 [110/100] via 100.1.1.1, 00:01:27, Tunnel4 O 100.1.1.3/32 [110/200] via 100.1.1.1, 00:01:27, Tunnel4 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, FastEthernet0/0 24.0.0.0/24 is subnetted, 1 subnets C 24.1.1.0 is directly connected, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets O 10.1.1.0 [110/101] via 100.1.1.1, 00:01:27, Tunnel4 O 192.168.1.0/24 [110/201] via 100.1.1.1, 00:01:27, Tunnel4 第 317 页共 844 页 S* 0.0.0.0/0 [254/0] via 24.1.1.2 www.china-ccie.com r4# 说明:广州路由器已经与上海路由器正常建立 OSPF 邻居,并正常学到上海网段 10.1.1.0/24 和北京网段 192.168.1.0,但下一跳地址都为上海路由器的 mGRE 接口 100.1.1.1,所以 OSPF 下无法实现 spoke-and-spoke tunnel 的通信方式。 (8)再次查看广州到上海公司和北京公司的通信情况与数据包的路径走向: r4#ping 10.1.1.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 132/200/272 ms r4# r4#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 220/321/384 ms r4# 第 318 页共 844 页 r4#tr r4#traceroute 10.1.1.5 www.china-ccie.com Type escape sequence to abort. Tracing the route to 10.1.1.5 1 100.1.1.1 224 msec 136 msec 220 msec 2 10.1.1.5 156 msec * 368 msec r4# r4#tr r4#traceroute 192.168.1.3 Type escape sequence to abort. Tracing the route to 192.168.1.3 1 100.1.1.1 236 msec 192 msec 264 msec 2 100.1.1.3 352 msec * 372 msec r4# 说明:广州到上海公司和北京公司的通信正常,但数据包都是先发到上海路由器, 所以仍然工作在 hub-and-spoke tunnel 而无法实现 spoke-and-spoke tunnel 的通信方 式。 第 319 页共 844 页 www.china-ccie.com IPsec VPN Feature IPsec Dead Peer Detection(IPsec DPD) 无论是 IKE SA 还是 IPsec SA,都会有 lifetime,IKE SA 的 lifetime 默认为 86400 seconds,即一天,IPsec SA 的 lifetime 默认为 3600 seconds,即 1 小时,建立 IPsec VPN 的 peer 双方之间是没有 hello 包的,如果其中一个 peer 出现故障失去连接时,VPN peer 的另一方是无法检测出来的,只有在 SA 的 lifetime 超时后才会删除与对端 peer 的 SA,那么也就是在 VPN 其中的一个 peer 断开以后,另一个 peer 至少要等待 3600 second(1 小时)才能发现,这种情况会让人难以接受。 为了解决上述问题,在 VPN peer 之间引入一个类似于 OSPF 和 EIGRP 邻居之间的 hello 机制,通过在 peer 之间定期交换 hello 包,如果超过一定时间没有收到对方的 hello 包,便认为对方已经失效,从而立刻删除与对方的 SA,这个机制就是 IPsec Dead Peer Detection(IPsec DPD),IPsec DPD 就是在 IPsec 中用来检测 IKE peer 状态的。 IPsec DPD 分两种模式 Periodic (周期性的) on-demand (按需的) Periodic 模式就是 peer 双方会每隔一个固定时间就会向对方发送一个 hello 包, 也表示每隔一个固定时间就会从邻居 peer 收到一个 hello 包,如果超过一定的时间 没有收到对方 peer 的 hello 包,则认为对方 peer 已经失效,从而立刻删除与对方的 SA。 在配置 Periodic 模式时,除了需要配置 hello 的间隔时间之外,还可以选择配置 retry 时间,例如 hello 间隔是 10 秒,retry 时间是 2 秒,那就表示每 10 秒都应该收 到邻居一个 hello 包,但如果到了 10 秒都没收到邻居的 hello 包,则不会再等 10 秒, 第 320 页共 844 页 www.china-ccie.com 而是会在 retry 的时间 2 秒后再向对方发送 hello,默认连续 5 个,即 10 秒后就认为 邻居失效。retry 默认时间为 2 秒、5 个。 on-demand 模式则不会定期在 peer 双方发送 hello,而是根据流量来的,只有在 要发数据时,才发送 hello 去查询邻居状态,如果没有数据要发送,就不会发送 hello, 所以在没有数据要发时,即使邻居失效了,本地也是不知道的,除非 SA 的 lifetime 超时, 注: ★IPsec DPD 支持的设备包括路由器,PIX 防火墙,并且支持各种 LAN-to-LAN VPN 以及 Easy VPN。 ★一定要先配置了 IPsec DPD,才能应用 crypto map 到接口,如果先应用 crypto map 到接口再配 IPsec DPD,是不生效的。 ★IPsec DPD 在 peer 双方都要配置。 配置 IPsec DPD 第 321 页共 844 页 www.china-ccie.com 说明:以上图为例,在 R1、R2、R3 之间配置 IPsec LAN-to-LAN VPN 来测试 IPsec DPD 的效果,其中 R1 相当于是 Hub,同时和 R2 与 R3 建立 IPsec LAN-to-LAN VPN,而 R2 与 R3 之间不做任何配置。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh 第 322 页共 844 页 r1(config-if)#exit www.china-ccie.com r1(config)#ip route 20.1.1.0 255.255.255.0 100.1.1.2 r1(config)#ip route 30.1.1.0 255.255.255.0 100.1.1.3 r1(config)# 说明:配置 R1 的接口地址,并写静态路由指向 R2 与 R3 相连的网段。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 100.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 20.1.1.1 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r2(config)# 说明:配置 R2 的接口地址,并写默认路由指向 R1。 第 323 页共 844 页 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 100.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 30.1.1.1 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 R1。 2.配置 IPsec LAN-to-LAN VPN (1)在 R1 上配置 IPsec LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des 第 324 页共 844 页 r1(config-isakmp)#hash sha www.china-ccie.com r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.2 r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.3 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)#access-list 120 permit ip 10.1.1.0 0.0.0.255 20.1.1.0 0.0.0.255 r1(config)#access-list 130 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 100.1.1.2 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 120 r1(config-crypto-map)#exit 第 325 页共 844 页 r1(config)# www.china-ccie.com r1(config)#crypto map l2l 2 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 100.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 130 r1(config-crypto-map)#exit r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:14:32.083: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit r1(config)# 说明:在 R1 上配置分别与 R2 和 R3 之间的 IPsec LAN-to-LAN VPN,各参数命令请 参考前文说明。 (2)在 R2 上配置 IPsec LAN-to-LAN VPN: r2(config)#crypto isakmp policy 1 r2(config-isakmp)#encryption 3des 第 326 页共 844 页 r2(config-isakmp)#hash sha www.china-ccie.com r2(config-isakmp)#authentication pre-share r2(config-isakmp)#group 2 r2(config-isakmp)#exit r2(config)# r2(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r2(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r2(cfg-crypto-trans)#exit r2(config)# r2(config)#access-list 100 permit ip 20.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r2(config)# r2(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r2(config-crypto-map)#set peer 100.1.1.1 r2(config-crypto-map)#set transform-set ccie r2(config-crypto-map)#match address 100 r2(config-crypto-map)#exit r2(config)# r2(config)#int f0/0 r2(config-if)#crypto map l2l 第 327 页共 844 页 r2(config-if)# www.china-ccie.com *Mar 1 00:10:03.175: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r2(config-if)#exit r2(config)# 说明:在 R2 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (3)在 R3 上配置 IPsec LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)# r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp 第 328 页共 844 页 www.china-ccie.com % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r3(config-crypto-map)#set peer 100.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/0 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:10:38.971: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)#exit r3(config)# 说明:在 R3 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 3.测试 IPsec LAN-to-LAN VPN (1)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 第 329 页共 844 页 IPv6 Crypto ISAKMP SA www.china-ccie.com r1# 说明:R1 当前没有任何 IKE SA。 (2)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 第 330 页共 844 页 #send errors 0, #recv errors 0 www.china-ccie.com local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) 第 331 页共 844 页 current_peer 100.1.1.3 port 500 www.china-ccie.com PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: 第 332 页共 844 页 outbound ah sas: www.china-ccie.com outbound pcp sas: r1# 说明:R1 上始终有分别到 R2 与 R3 的 IPsec SA,因为没有流量,所以目前 IPsec SA 不是活动状态。 (3)发送流量激活 IKE SA: r1#ping 20.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 120/169/212 ms r1# 说明:R1 向 R2 连接的网段 20.1.1.0/24 发送流量激活 IKE SA。 (4)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 第 333 页共 844 页 100.1.1.2 100.1.1.1 QM_IDLE www.china-ccie.com 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:因为 R1 向 R2 连接的网段 20.1.1.0/24 发送了流量,所以 IKE SA 被激活。 (5)再次查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,ipsec_sa_request_sent} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 第 334 页共 844 页 #pkts compressed: 0, #pkts decompressed: 0 www.china-ccie.com #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x13D515D9(332731865) inbound esp sas: spi: 0x3F0697DF(1057396703) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4549469/3583) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: 第 335 页共 844 页 inbound pcp sas: www.china-ccie.com outbound esp sas: spi: 0x13D515D9(332731865) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4549469/3583) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.3 port 500 PERMIT, flags={origin_is_acl,} 第 336 页共 844 页 #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 www.china-ccie.com #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: outbound ah sas: 第 337 页共 844 页 outbound pcp sas: www.china-ccie.com r1# 说明:因为 R1 向 R2 连接的网段 20.1.1.0/24 发送了流量,所以 R1 与 R2 的 IPsec SA 为活动状态,而与 R3 的 IPsec SA 却为非活动状态。 (5)发送流量激活与 R3 的 IKE SA: r1#ping 30.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 140/170/240 ms r1# 说明:R1 向 R3 连接的网段 30.1.1.0/24 发送流量激活 IKE SA。 (6)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1002 0 ACTIVE 第 338 页共 844 页 100.1.1.2 100.1.1.1 QM_IDLE www.china-ccie.com 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:因为 R1 向 R2 和 R3 连接的网段都发送了流量,所以与 R2 和 R3 的 IKE SA 都被激活了。 (7)再次查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 #pkts compressed: 0, #pkts decompressed: 0 第 339 页共 844 页 #pkts not compressed: 0, #pkts compr. failed: 0 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x13D515D9(332731865) inbound esp sas: spi: 0x3F0697DF(1057396703) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4549469/3539) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 340 页共 844 页 www.china-ccie.com outbound esp sas: spi: 0x13D515D9(332731865) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4549469/3537) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.3 port 500 PERMIT, flags={origin_is_acl,ipsec_sa_request_sent} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 第 341 页共 844 页 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 www.china-ccie.com #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xA480ABFA(2759896058) inbound esp sas: spi: 0x8FCB9CC8(2412485832) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 3, flow_id: SW:3, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4492074/3591) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: 第 342 页共 844 页 inbound pcp sas: www.china-ccie.com outbound esp sas: spi: 0xA480ABFA(2759896058) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 4, flow_id: SW:4, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4492074/3591) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:因为 R1 向 R2 和 R3 连接的网段都发送了流量,所以与 R2 和 R3 的 IPsec SA 都为活动状态。 (8)查看 R1 目前与 R2 和 R3 建立的 IKE SA 时间: 第 343 页共 844 页 r1#show crypto isakmp sa detail www.china-ccie.com Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1002 100.1.1.1 100.1.1.3 Engine-id:Conn-id = SW:2 ACTIVE 3des sha psk 2 23:59:25 1001 100.1.1.1 100.1.1.2 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:58:30 IPv6 Crypto ISAKMP SA r1# 说明:目前 R1 与 R2 建立的 IKE SA 的 lifetime 还剩 23 小时 58 分,与 R3 的 lifetime 还剩 23 小时 59 分为,最新建立的为 24 小时。 第 344 页共 844 页 www.china-ccie.com 4.测试 IPsec DPD: (1)断开 R2 与 R1 相连的接口 F0/0: r2(config)#int f0/0 r2(config-if)#shutdown r2(config-if)# 说明:断开 R2 与 R1 相连的接口 F0/0,测试 SA 状态。 (2)测试 R1 分别到 R2 与 R3 直连网段的通信情况: r1#ping 30.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 148/174/196 ms r1# r1#ping 20.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: 第 345 页共 844 页 Packet sent with a source address of 10.1.1.1 www.china-ccie.com ..... Success rate is 0 percent (0/5) r1# 说明:R1 到 R3 直连网段的通信正常,但因为 R2 的接口已经断开,所以与 R2 直 连网段的通信失败。 (3)查看 R1 当前的 IKE SA 状态: r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1002 100.1.1.1 100.1.1.3 Engine-id:Conn-id = SW:2 ACTIVE 3des sha psk 2 23:51:41 1001 100.1.1.1 100.1.1.2 ACTIVE 3des sha psk 2 23:50:47 第 346 页共 844 页 Engine-id:Conn-id = SW:1 www.china-ccie.com IPv6 Crypto ISAKMP SA r1# r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1002 0 ACTIVE 100.1.1.2 100.1.1.1 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:虽然 R2 与 R1 相连的接口已经断开,但 R1 上并未发现,可以看见目前 IKE SA 的状态依然正常,并且时间已经过了很久,只有在 SA 的 lifetime 超时后才会删除。 (4)在 R1、R2、R3 上配置 IPsec DPD: 第 347 页共 844 页 www.china-ccie.com R3: r3(config)#crypto isakmp keepalive 10 periodic r3(config)#int f0/0 r3(config-if)#no crypto map l2l r3(config-if)# *Mar 1 00:21:17.511: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r3(config-if)# r3(config-if)#crypto map l2l r3(config-if)# R2: r2 (config)#crypto isakmp keepalive 10 periodic r2 (config)#int f0/0 r2 (config-if)#no crypto map l2l r2 (config-if)# *Mar 1 00:18:41.363: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r2 (config-if)# r2 (config-if)#crypto map l2l r2 (config-if)# 第 348 页共 844 页 www.china-ccie.com *Mar 1 00:18:47.195: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r2 (config-if)# R1: r1(config)#crypto isakmp keepalive 10 periodic r1(config)#int f0/0 r1(config-if)#no crypto map l2l r1(config-if)# *Mar 1 00:18:41.363: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r1(config-if)# r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:18:47.195: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)# 说明:配置了 IPsec DPD 之后,必须重新应用 crypto map 才能生效。 (5)再次查看 R1 当前的 IKE SA 状态: r1#show crypto isakmp sa 第 349 页共 844 页 IPv4 Crypto ISAKMP SA www.china-ccie.com dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1003 0 ACTIVE 100.1.1.2 100.1.1.1 MM_NO_STATE 1001 0 ACTIVE (deleted) IPv6 Crypto ISAKMP SA r1# 说明:因为 R1 不可能收到 R2 的 IPsec DPD 的 hello,所以确定将与 R2 的 IKE SA 删除。 (6)再次查看 R1 当前的 IKE SA 状态: r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1003 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:因为 R1 收不到 R2 的 IPsec DPD 的 hello,所以已经将与 R2 的 IKE SA 删除。 第 350 页共 844 页 www.china-ccie.com IPsec SA Idle Timer 当 IPsec VPN peer 之间建立 IPsec SA 之后,路由器在维护 IPsec SA 状态时是需要 消耗系统资源的,因为要占用内存和 CPU,如果某台路由器拥有大量的 VPN peer, 那么也将消耗大量的系统资源来维护 IPsec SA。与邻居之间的 IPsec SA 在 lifetime 没 有超时之前,是不会被删除的,即使是配置了 IPsec DPD,也只有在 VPN peer 失效 后才会删除相应 IPsec SA;但如果该 VPN 路由器与某些 peer 之间没有流量要传递, 那么与这些 peer 之间的 IPsec SA 就是空闲的,有和没有是一样的,所以当与某些 peer 之间没有流量时,我们就想办法让 VPN 路由器删除这些空闲的 IPsec SA,从而节省 系统资源和内存空间,等到需要传递流量时,再建立相应 IPsec SA,这样就可以充 份利用系统资源。 要达到在 IPsec SA 空闲时将其删除的目的,需要使用 IPsec SA Idle Timer 机制, IPsec SA Idle Timer 为 IPsec SA 设置空闲时间,在这个时间内没有流量传递,就认为 该 IPsec SA 是空闲的,从而将其删除。 IPsec SA Idle Timer 和 IPsec DPD 不一样,IPsec DPD 只有在 peer 不可用时才会删 除 SA,而 IPsec SA Idle Timer 时在没有流量的情况下就会删除 SA。 注: ★如果 IPsec SA 被删除了,那么 IKE SA 也照样会[被删除的。 ★IOS 12.3(14)T 以及之后版本才支持 IPsec SA Idle Timer。 ★IPsec SA Idle Timer 可以在全局(globally)下配,也可以在 crypto map 下配, 全局下配的对所有 SA 生效,而在 crypto map 下配的则只针对特定 peer 的 SA 生效。 ★一定要先配置了 IPsec SA Idle Timer,才能应用 crypto map 到接口,如果先应 用 crypto map 到接口再配 IPsec DPD,是不生效的。 第 351 页共 844 页 www.china-ccie.com ★IPsec SA Idle Timer 不需要在 peer 双方都配置,单方配置也可以。 配置 IPsec SA Idle Timer 说明:以上图为例,在 R1、R2、R3 之间配置 IPsec LAN-to-LAN VPN 来测试 IPsec SA Idle Timer 的效果,其中 R1 相当于是 Hub,同时和 R2 与 R3 建立 IPsec LAN-to-LAN VPN, 而 R2 与 R3 之间不做任何配置。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 第 352 页共 844 页 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 20.1.1.0 255.255.255.0 100.1.1.2 r1(config)#ip route 30.1.1.0 255.255.255.0 100.1.1.3 r1(config)# 说明:配置 R1 的接口地址,并写静态路由指向 R2 与 R3 相连的网段。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 100.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 20.1.1.1 255.255.255.0 第 353 页共 844 页 r2(config-if)#no sh www.china-ccie.com r2(config-if)#exit r2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r2(config)# 说明:配置 R2 的接口地址,并写默认路由指向 R1。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 100.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 30.1.1.1 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 R1。 第 354 页共 844 页 www.china-ccie.com 2.配置 IPsec LAN-to-LAN VPN (1)在 R1 上配置 IPsec LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.2 r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.3 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)#access-list 120 permit ip 10.1.1.0 0.0.0.255 20.1.1.0 0.0.0.255 r1(config)#access-list 130 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp 第 355 页共 844 页 www.china-ccie.com % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 100.1.1.2 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 120 r1(config-crypto-map)#exit r1(config)# r1(config)#crypto map l2l 2 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 100.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 130 r1(config-crypto-map)#exit r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:14:32.083: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit r1(config)# 第 356 页共 844 页 www.china-ccie.com 说明:在 R1 上配置分别与 R2 和 R3 之间的 IPsec LAN-to-LAN VPN,各参数命令请 参考前文说明。 (2)在 R2 上配置 IPsec LAN-to-LAN VPN: r2(config)#crypto isakmp policy 1 r2(config-isakmp)#encryption 3des r2(config-isakmp)#hash sha r2(config-isakmp)#authentication pre-share r2(config-isakmp)#group 2 r2(config-isakmp)#exit r2(config)# r2(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r2(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r2(cfg-crypto-trans)#exit r2(config)# r2(config)#access-list 100 permit ip 20.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r2(config)# r2(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r2(config-crypto-map)#set peer 100.1.1.1 第 357 页共 844 页 r2(config-crypto-map)#set transform-set ccie www.china-ccie.com r2(config-crypto-map)#match address 100 r2(config-crypto-map)#exit r2(config)# r2(config)#int f0/0 r2(config-if)#crypto map l2l r2(config-if)# *Mar 1 00:10:03.175: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r2(config-if)#exit r2(config)# 说明:在 R2 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (3)在 R3 上配置 IPsec LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)# r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 第 358 页共 844 页 www.china-ccie.com r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r3(config-crypto-map)#set peer 100.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/0 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:10:38.971: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)#exit r3(config)# 说明:在 R3 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 第 359 页共 844 页 (4)发送流量激活 IKE SA: www.china-ccie.com r1#ping 20.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 104/146/200 ms r1# r1#ping 30.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 ..!!! Success rate is 60 percent (3/5), round-trip min/avg/max = 124/181/280 ms r1# 说明:R1 向 R2 和 R3 连接的网段发送流量激活 IKE SA。 第 360 页共 844 页 (5)查看 R1 上的 IKE SA(ISAKMP SA): www.china-ccie.com r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1007 0 ACTIVE 100.1.1.2 100.1.1.1 QM_IDLE 1006 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:因为 R1 向 R2 和 R3 连接的网段都发送了流量,所以与 R2 和 R3 的 SA 都 被激活了。 (6)查看 R1 目前与 R2 和 R3 建立的 IKE SA 时间: r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature 第 361 页共 844 页 renc - RSA encryption IPv4 Crypto ISAKMP SA www.china-ccie.com C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1007 100.1.1.1 100.1.1.3 Engine-id:Conn-id = SW:7 ACTIVE 3des sha psk 2 23:59:03 1006 100.1.1.1 100.1.1.2 Engine-id:Conn-id = SW:6 ACTIVE 3des sha psk 2 23:58:47 IPv6 Crypto ISAKMP SA r1# 说明:目前 R1 与 R2 建立的 IKE SA 的 lifetime 还剩 23 小时 58 分,与 R3 的 lifetime 还剩 23 小时 59 分为,最新建立的为 24 小时。 (7)再次查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 第 362 页共 844 页 www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5 #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 5, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x3622878D(908232589) inbound esp sas: spi: 0xFE1DEB40(4263373632) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } 第 363 页共 844 页 conn id: 11, flow_id: SW:11, crypto map: l2l www.china-ccie.com sa timing: remaining key lifetime (k/sec): (4407583/3553) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x3622878D(908232589) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 12, flow_id: SW:12, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4407583/3552) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: 第 364 页共 844 页 outbound pcp sas: www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 3, #pkts encrypt: 3, #pkts digest: 3 #pkts decaps: 3, #pkts decrypt: 3, #pkts verify: 3 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 4, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xC5C19F0A(3317800714) inbound esp sas: spi: 0x9EA781(10397569) 第 365 页共 844 页 transform: esp-3des esp-sha-hmac , www.china-ccie.com in use settings ={Tunnel, } conn id: 13, flow_id: SW:13, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4439668/3569) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xC5C19F0A(3317800714) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 14, flow_id: SW:14, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4439668/3568) IV size: 8 bytes replay detection support: Y Status: ACTIVE 第 366 页共 844 页 outbound ah sas: www.china-ccie.com outbound pcp sas: r1# 说明:因为 R1 向 R2 和 R3 连接的网段都发送了流量,所以与 R2 和 R3 的 IPsec SA 都为活动状态。 3.测试 IPsec SA Idle Timer (1)在 R1 上配置 IPsec SA Idle Timer: r1(config)#crypto ipsec security-association idle-time 60 r1(config)# r1(config)#int f0/0 r1(config-if)#no crypto map l2l r1(config-if)# *Mar 1 00:30:20.555: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r1(config-if)# r1(config-if)#crypto map l2l r1(config-if)# 第 367 页共 844 页 www.china-ccie.com *Mar 1 00:30:24.791: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)# 说明:配置了 IPsec SA Idle Timer 之后,必须重新应用 crypto map 才能生效;IPsec SA Idle Timer 不需要在 peer 双方都配置,在 R1 单方配置也可以。 (2)在 R3 上向 R1 长时间发送流量: r3#ping 10.1.1.1 source 30.1.1.1 repeat 10000000 Type escape sequence to abort. Sending 10000000, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 30.1.1.1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 说明:使用以上命令在 R3 上向 R1 长时间发送流量,以免 SA 空闲。 (3)再次查看 R1 当前的 IKE SA 状态: r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.3 QM_IDLE 1008 0 ACTIVE IPv6 Crypto ISAKMP SA 第 368 页共 844 页 www.china-ccie.com r1# 说明:在 R1 上配置了 IPsec SA Idle Timer 之后,因为与 R2 之间没有流量,所以 与 R2 的 IKE SA 被认为是空闲 SA 而被删除了,但由于 R3 与 R1 之间长时间有流量, 所以与 R3 之间的 IKE SA 还是正常状态。 (4)再次查看 R1 当前的 IPsec SA 状态: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 第 369 页共 844 页 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) 第 370 页共 844 页 www.china-ccie.com remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 582, #pkts encrypt: 582, #pkts digest: 582 #pkts decaps: 582, #pkts decrypt: 582, #pkts verify: 582 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xB5D4399C(3050584476) inbound esp sas: spi: 0xE4D4B738(3839145784) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 15, flow_id: SW:15, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4489233/3496) IV size: 8 bytes 第 371 页共 844 页 replay detection support: Y Status: ACTIVE www.china-ccie.com inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xB5D4399C(3050584476) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 16, flow_id: SW:16, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4489233/3496) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 第 372 页共 844 页 www.china-ccie.com 说明:因为 R1 与 R2 之间没有流量,所以与 R2 之间的 IPsec SA 为非活动状态, 而与 R3 之间长时间有流量,所以与 R3 的 IPsec SA 为正常状态。 IPsec Preferred Peer 有时为了网络冗余性,会设计一个场点两台 VPN 路由器,使用两台路由器来和 对方建立 VPN 连接,对于 VPN 路由器来说,如果要同时和对方一台以上的路由器建 立 VPN 连接,这并不困难,但有时希望只和对方某单台路由器建立 VPN 连接,只有 当使用中的 VPN 路由器不可用时,再启用其它路由器作备用;这种 IPsec VPN 使用 情况,我们称为 IPsec Preferred Peer。 IPsec Preferred Peer 由两个部件组成: Default peer IPsec DPD Default peer 就是在和多台路由器建立 VPN 连接时,其中优先被使用的那台称为 Default peer,而其它都是备用路由器,只有在 Default peer 不可用时,才会尝试和 其它备路由器连接。Default peer 是在 crypto map 下通过多条命令“set peer”指定 多个 peer 来实现的,而 Default peer 必须是第一个指定,就是希望被优先使用的那 台路由器必须写在第一条。 因为在和多台路由器建立 VPN 连接后,只有当 Default peer 不可用时,才会尝试 和其它备路由器建立连接,那么什么时候才认为 Default peer 不可用呢?如果靠 SA 的 lifetime,会让任何人都无法接受,所以在实施 Default peer 时,必须配置 IPsec DPD, 但是否配置 IPsec SA Idle-Timer 是自己决定的,如果要配置 IPsec SA Idle-Timer,必须 在 crypto map 下配置,不能在 globally 下配置,但如果 globally 下已经有了配置,那 第 373 页共 844 页 www.china-ccie.com 么 crypto map 下的值必须和 globally 的不同,否则是不生效的。 配置 IPsec Preferred Peer 说明:以上图为例,在 R1、R2、R3 之间配置 IPsec LAN-to-LAN VPN 来测试 IPsec Preferred Peer 的效果,其中 R1 相当于是 Hub,同时和 R2 与 R3 建立 IPsec LAN-to-LAN VPN,而 R2 与 R3 之间不做任何配置。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh 第 374 页共 844 页 r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 20.1.1.0 255.255.255.0 100.1.1.2 r1(config)#ip route 30.1.1.0 255.255.255.0 100.1.1.3 r1(config)# 说明:配置 R1 的接口地址,并写静态路由指向 R2 与 R3 相连的网段。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 100.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 20.1.1.1 255.255.255.0 r2(config-if)#no sh 第 375 页共 844 页 r2(config-if)#exit www.china-ccie.com r2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r2(config)# 说明:配置 R2 的接口地址,并写默认路由指向 R1。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 100.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 30.1.1.1 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 R1。 第 376 页共 844 页 www.china-ccie.com 2.配置和测试 IPsec Preferred Peer (1)在 R1 上配置 IPsec Preferred Peer: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.2 r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.3 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 20.1.1.0 0.0.0.255 r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer 第 377 页共 844 页 and a valid access list have been configured. www.china-ccie.com r1(config-crypto-map)#set peer 100.1.1.2 default r1(config-crypto-map)#set peer 100.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 120 r1(config-crypto-map)#exit r1(config)# r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:12:49.247: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit r1(config)# 说明:在 R1 上同时配置与 R2 和 R3 建立 IPsec LAN-to-LAN VPN,其中 R2(100.1.1.2) 为 Default peer,所以只有当 R2 不可用时,才会使用 R3(100.1.1.3)。 (2)在 R2 上配置 IPsec LAN-to-LAN VPN: r2(config)#crypto isakmp policy 1 r2(config-isakmp)#encryption 3des r2(config-isakmp)#hash sha r2(config-isakmp)#authentication pre-share 第 378 页共 844 页 r2(config-isakmp)#group 2 www.china-ccie.com r2(config-isakmp)#exit r2(config)# r2(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r2(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r2(cfg-crypto-trans)#exit r2(config)# r2(config)#access-list 100 permit ip 20.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r2(config)# r2(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r2(config-crypto-map)#set peer 100.1.1.1 r2(config-crypto-map)#set transform-set ccie r2(config-crypto-map)#match address 100 r2(config-crypto-map)#exit r2(config)# r2(config)#int f0/0 r2(config-if)#crypto map l2l r2(config-if)# *Mar 1 00:10:03.175: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON 第 379 页共 844 页 r2(config-if)#exit www.china-ccie.com r2(config)# 说明:在 R2 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (3)在 R3 上配置 IPsec LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit r3(config)# r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. 第 380 页共 844 页 r3(config-crypto-map)#set peer 100.1.1.1 www.china-ccie.com r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/0 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:10:38.971: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)#exit r3(config)# 说明:在 R3 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (4)发送流量激活 IKE SA: r1#ping 20.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 .!!!! 第 381 页共 844 页 www.china-ccie.com Success rate is 80 percent (4/5), round-trip min/avg/max = 132/174/248 ms r1# r1# r1#ping 30.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 ..... Success rate is 0 percent (0/5) r1# 说明:R1 目前只能与 R2 相连的网段 20.1.1.0/24 通信,不能与 R3 相连的网段 30.1.1.0/24 通信,因为 R2 是 default peer,所以在 R2 不可用之前,R3 是被启用的。 (5)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.2 100.1.1.1 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA 第 382 页共 844 页 www.china-ccie.com r1# 说明:R1 目前只建立了与 R2 的 IKE SA,因为 R2 是 default peer,所以在 R2 不可 用之前,R3 是被启用的。 (6)查看 R1 上的 IPsec SA(IPsec SA): r1# r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 第 383 页共 844 页 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xB98C42DF(3112977119) inbound esp sas: spi: 0x1CE09B84(484481924) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4383483/3533) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 384 页共 844 页 outbound esp sas: www.china-ccie.com spi: 0xB98C42DF(3112977119) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4383483/3532) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: 第 385 页共 844 页 inbound pcp sas: www.china-ccie.com outbound esp sas: outbound ah sas: outbound pcp sas: protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 15, #recv errors 0 第 386 页共 844 页 www.china-ccie.com local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: outbound ah sas: outbound pcp sas: local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x0(0) inbound esp sas: 第 387 页共 844 页 inbound ah sas: www.china-ccie.com inbound pcp sas: outbound esp sas: outbound ah sas: outbound pcp sas: r1# 说明:R1 与 R2 的 IPsec SA 为活动状态,而与 R3 的 IPsec SA 为非活动状态 (7)断开 R2 的 VPN 接口 F0/0: r2(config)#interface f0/0 r2(config-if)#shutdown r2(config-if)# 说明:断开 R2 与 R1 相连的接口 F0/0,用以测试 IPsec Preferred Peer。 第 388 页共 844 页 (8)再次查看 R1 上的 IKE SA(ISAKMP SA): www.china-ccie.com r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.2 100.1.1.1 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:虽然 R2 已经断开,但 R1 无法检测到,所以 R1 不会尝试与 R3 建立 VPN 连接,除非配置 IPsec DPD 让 R1 能够检测到 R2 已经不可用。 (9)在 R1 和 R3 上配置 IPsec DPD: R1: r1(config)#crypto isakmp keepalive 10 periodic r1(config)#int f0/0 r1(config-if)#no crypto map l2l r1(config-if)# *Mar 1 01:02:20.055: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r1(config-if)# r1(config-if)#crypto map l2l r1(config-if)# 第 389 页共 844 页 www.china-ccie.com *Mar 1 01:02:25.615: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)# R3: r3(config)#crypto isakmp keepalive 10 periodic r3(config)#int f0/0 r3(config-if)#no crypto map l2l r3(config-if)# *Mar 1 01:02:25.055: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r3(config-if)# r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 01:02:26.612: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 说明:在 R1 和 R3 上配置上 IPsec DPD,用以检测对方 peer 的状态。 (10)R1 再次向 R2 和 R3 发送流量: r1#ping 20.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: 第 390 页共 844 页 Packet sent with a source address of 10.1.1.1 ..... Success rate is 0 percent (0/5) r1# www.china-ccie.com r1#ping 30.1.1.1 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 84/201/324 ms r1# 说明:因为 R2 已经断开了,所以与备路由器 R3 建立 VPN 连接。 (11)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.2 100.1.1.1 MM_NO_STATE 0 0 ACTIVE (deleted) 100.1.1.3 100.1.1.1 QM_IDLE 1004 0 ACTIVE 第 391 页共 844 页 IPv6 Crypto ISAKMP SA www.china-ccie.com r1# 说明:与 R2 的 IKE SA 即将被删除,而与 R3 的 IKE SA 已经建立。 (12)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1005 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:与 R2 的 IKE SA 已经完全被删除,从而被备路由器 R3 的 IKE SA 取代。 第 392 页共 844 页 Reverse route injection (RRI) www.china-ccie.com 在配置 IPsec VPN 时,通常我们需要配置 ACL 来定义感兴趣流,被 ACL 匹配的流 量就是需要通过 IPsec 隧道来加密传输的流量,同时,IPsec 建立的 IPsec SA 会话里 也会记录着 VPN 双方哪些流量是需要通过 IPsec 隧道来加密传输的,很显然,这些 需要通过 IPsec 隧道来加密传输的流量应该被发到相应的 VPN peer,这里就衍生出 了一个机制,称为 Reverse route injection (RRI),RRI 是为需要通过 IPsec 隧道来加密 传输的流量自动创建下一跳指向相应 VPN peer 的静态路由。 当配置的 crypto map 是静态 crypto map 时,RRI 是根据 crypto map 中的 ACL 所 定义的流量来自动创建静态路由的,但在配置动态 crypto map 时,是不会通过 ACL 来定义感兴趣流的,所以此时 RRI 就无法自动创建静态路由,因为事先根本无法知 道哪些流量需要通过 IPsec 隧道来加密传输,所以 crypto map 中,只能在建立 IPsec SA 后,根据 IPsec SA 中指示的需要被保护的流量来自动创建静态路由。 RRI 自动创建的静态路由可以重分布进任何动态路由协议后向邻居传递。 配置 RRI 的方法是在 crypto map 下输入命令 reverse-route。 静态 crypto map 的静态路由是根据 ACL 自动创建的,路由的下一跳是 crypto map 中指定的 peer,只要 peer 或 ACL 没了,路由也就没了,但有没有 IPsec SA 不影响静 态路由。 动态 crypto map 的静态路由是根据 IPsec SA 自动创建的,如果 IPsec SA 没了,那 么自动创建的静态路由也会随之消失。 在 IOS 12.3(14)T 和之后的版本,配置 RRI 的命令应该输入 reverse-route static,无 论什么情况下静态路由都会生效。 在使用 ACL 定义感兴趣流量时,不得出现“any”字样。 第 393 页共 844 页 配置 Reverse route injection (RRI) www.china-ccie.com 说明:以上图为例,在 R1 和 R3 之间配置 IPsec LAN-to-LAN VPN 来测试 Reverse route injection (RRI)的效果,在 R1 上配置 RRI 之后,还将在 R1 与 R2 之间配置 OSPF 动态路由协议,将 RRI 自动创建的静态路由重分布进 OSPF,从而让 R1 的 OSPF 邻居 R2 能够动态学习到需要被 IPsec 隧道加密的网段信息。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh 第 394 页共 844 页 r1(config-if)#exit www.china-ccie.com r1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.3 r1(config)#router ospf 1 r1(config-router)#network 10.1.1.1 0.0.0.0 area 0 r1(config-router)#exit‘ 说明:配置 R1 的接口地址,并写默认路由指向 R3,同时与 R2 之间启用 OSPF 动态路由协议。 (2)配置 R2: r2(config)#int f0/1 r2(config-if)#ip add 10.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#router ospf 1 r2(config-router)#network 10.1.1.2 0.0.0.0 area 0 r2(config-router)#exit 说明:配置 R2 的接口地址,并与 R1 之间启用 OSPF 动态路由协议。 第 395 页共 844 页 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip address 100.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip add 30.1.1.1 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 说明:配置 R3 的接口地址,并写默认路由指向 R1。 (4)查看 R2 上的 OSPF 状态: r2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 100.1.1.1 1 FULL/DR 00:00:34 10.1.1.1 FastEthernet0/1 r2# 第 396 页共 844 页 说明:R2 已经和 R1 正常建立 OSPF 邻居关系。 www.china-ccie.com (5)查看 R2 上的路由表情况: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 10.1.1.1 to network 0.0.0.0 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 r2# 说明:R2 没有通过 OSPF 从 R1 那里收到任何路由。 2.配置 IPsec LAN-to-LAN VPN 第 397 页共 844 页 (1)在 R1 上配置 IPsec LAN-to-LAN VPN: www.china-ccie.com r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.3 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)# r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)# r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. 第 398 页共 844 页 r1(config-crypto-map)#set peer 100.1.1.3 www.china-ccie.com r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)# r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:05:44.615: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit 说明:在 R1 上配置与 R3 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (2)在 R3 上配置 IPsec LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 第 399 页共 844 页 r3(config-isakmp)#exit www.china-ccie.com r3(config)# r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r3(config-crypto-map)#set peer 100.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/0 r3(config-if)#crypto map l2l r3(config-if)# *Mar 1 00:06:23.499: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)# 第 400 页共 844 页 r3(config-if)#exit www.china-ccie.com 说明:在 R3 上配置与 R1 之间的 IPsec LAN-to-LAN VPN,各参数命令请参考前文 说明。 (3)在 R1 上向 R3 发送流量激活 IKE SA: r2#ping 30.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 96/139/240 ms r2# 说明:R1 向 R3 连接的网段发送流量激活 IKE SA。 (4)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.3 100.1.1.1 QM_IDLE 1001 0 ACTIVE 第 401 页共 844 页 IPv6 Crypto ISAKMP SA www.china-ccie.com r1# 说明:因为 R1 向 R3 连接的网段都发送了流量,所以与 R3 的 SA 都被激活了。 (5)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.3 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 #pkts compressed: 0, #pkts decompressed: 0 第 402 页共 844 页 #pkts not compressed: 0, #pkts compr. failed: 0 www.china-ccie.com #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x87A7BBC5(2275916741) inbound esp sas: spi: 0xEBC08B2A(3955264298) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4546772/3573) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 403 页共 844 页 www.china-ccie.com outbound esp sas: spi: 0x87A7BBC5(2275916741) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4546772/3572) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:R1 的 IPsec SA 中显示的加密流量和 ACL 所配置的一样,即为 10.1.1.0/24 到 30.1.1.0/24。 (6)查看 R1 当前的路由表: r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP 第 404 页共 844 页 www.china-ccie.com D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.3 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [1/0] via 100.1.1.3 r1# 说明:因为没有配置 RRI,所以 R1 上目前没有为需要加密的流量自动创建静态 路由。 3.配置 RRI (1)在 R1 上配置 RRI: r1(config)#crypto map l2l 1 ipsec-isakmp 第 405 页共 844 页 r1(config-crypto-map)#reverse-route static www.china-ccie.com This will remove all existing SAs on this map r1(config-crypto-map)# 说明:因为本路由器 IOS 高于 IOS 12.3(14)T,所以使用命令 reverse-route static。 (2)再次查看 R1 的路由表情况: r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.3 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 第 406 页共 844 页 30.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com S 30.1.1.0 [1/0] via 100.1.1.3 S* 0.0.0.0/0 [1/0] via 100.1.1.3 r1# 说明:因为配置了 RRI,,所以 R1 上为需要加密的流量自动创建了静态路由。 (3)再次查看 R2 的路由表情况: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 10.1.1.1 to network 0.0.0.0 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet0/1 r2# 第 407 页共 844 页 说明:R2 上依然没有从 R1 那里收到任何路由。 www.china-ccie.com (4)在 R1 上重分布静态路由进 OSPF: r1(config)#router ospf 1 r1(config-router)#redistribute static subnets r1(config-router)# 说明:在 R1 上将 RRI 自动创建的静态路由重分布进 OSPF。 (5)再次查看 R2 的路由表情况: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 10.1.1.1 to network 0.0.0.0 第 408 页共 844 页 10.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 10.1.1.0 is directly connected, FastEthernet0/1 30.0.0.0/24 is subnetted, 1 subnets O E2 30.1.1.0 [110/20] via 10.1.1.1, 00:00:04, FastEthernet0/1 r2# 说明:因为 R1 将 RRI 自动创建的静态路由重分布进了 OSPF,所以 R2 收到了相 应路由。 (6)测试 R2 到 R3 的流量情况: r2#ping 30.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 30.1.1.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 100/149/216 ms r2# 说明:R2 收到路由后,可以与 VPN 隧道对端的网段通信了。 第 409 页共 844 页 www.china-ccie.com IPsec VPN High Availability 在考虑网络冗余性时,会设计一个场点两台 VPN 路由器,这两台 VPN 路由器执 行完全相同的功能,其中的一台是优先被使用的,而其它的都作为备用路由器,只 有当主用路由器不可用时,才转而使用备路由器,从而实现网络的高可用性(High Availability)。要达到这样的目的,前面讲述的 IPsec Preferred Peer 可以实现这样的 功能,但我们不难发现,如果要使用 IPsec Preferred Peer,有一些很明显的弊端,比 如这些结合工作的多台路由器各自都拥有独立的 IP 地址,对于 VPN peer 来说都是 不同的对等体,并且在对端 VPN peer 上需要为多台路由器做好配置,所以 IPsec Preferred Peer 需要 VPN 双方共同协作才能实现高可用性,并且这种高可用性不是透 明的。 为了将网络高可用性做的更好,我们需要实施 IPsec VPN High Availability(IPsec VPN HA),实现的方法就是将在一个场点布署的多台 VPN 路由器通过 HSRP 虚拟成 同一个 IP 地址,然后多台 VPN 路由器中 HSRP 角色为 Active 的路由器以 HSRP 虚拟 IP 地址为源负责与对端建立 IPsec 连接,当 Active 路由器不可用之后,其它再次成 为 Active 的备路由器再次以同一个 HSRP 虚拟 IP 地址为源与对端建立 IPsec 连接 ,从 而为用户提供不间断服务,并且这对端远端 VPN peer 来说,不需要做额外的配置, 只要保持正常配置即可,因为布署 IPsec VPN HA 的多台路由器无论何时都像是同一 台路由器。 在实施 IPsec VPN HA 时,需要同时完成两个功能组件: Reverse Route Injection (RRI) Hot Standby Router Protocol and IPsec (HSRP) 其中 RRI 的功能已经在上一节中介绍过,可以将需要被 IPsec VPN 隧道加密的网 段信息动态地通告给内网路由器; HSRP 的功能在此更加清晰明了,目的就是为了将实现 IPsec VPN HA 的多台路由 第 410 页共 844 页 器虚拟成同一台路由器,即同一个 IP 地址。 www.china-ccie.com 因为 HSRP 是工作在以太网链路上的,HSRP 必须将多台路由器用来建立 IPsec VPN 连接的外网地址虚拟成同一个 IP 地址,所以实现 IPsec VPN HA 的多台路由器的外网 接口必须通过交换机或 Hub 相连,且 IP 地址都在同网段,否则难以实现 IPsec VPN HA。 当 HSRP 组中 Active 的路由器不可用之后,再次成为 Active 的备路由器会接替 IPsec VPN 的工作,在 VPN 对端上的 IPsec 连接也必须和新的 Active 路由器重新建立, 那么此时老的 IPsec 连接就应该尽快删除,所以在布署 IPsec VPN HA 时,IPsec DPD 还是需要配置的。 当 HSRP 组中 Active 的路由器不可用之后,再次成为 Active 的备路由器是需要和 VPN 对端重新建立 IPsec 会话的,而不是继续使用原来的 IPsec 会话,因为再次成为 Active 的备路由器原本就没有 IPsec 会话,所以要重新建立。 在配置 HSRP 时,接口上需要定义 HSRP name,当该 name 或接口地址改变时, 所应用的 crypto map 也要重新应用。 在配置 IPsec VPN HA 中的 HSRP 时,多台路由器的优先级建议设置成相同或保持 默认而不做更改,Active 的角色则依靠 IP 地址大小来选举。 注: ★实施 IPsec VPN HA 时也需要配置 IPsec DPD。 ★在 Active 的路由器不可用之后,再次成为 Active 的备路由器和 VPN 对端的 IPsec 会话是新建立的,所以 VPN 流量会丢包。 ★IPsec VPN HA 中路由器的 HSRP 优先级建议设置成相同或保持默认,最终依靠 IP 地址大小来选举。 ★在多台 VPN 路由器之间配置 HSRP 组时,应该 Track 自己的内网接口,在自己 内网接口不可用时,则让出自己的 Active 角色。 ★HSRP 必须在路由器的外网接口上配置,但内网接口不一定要配置。 第 411 页共 844 页 配置 IPsec VPN HA www.china-ccie.com 说明:以上图为例,在 R1、R2、R3 之间配置 IPsec LAN-to-LAN VPN 来测试 IPsec VPN HA 的效果,其中 R2 和 R3 通过 HSRP 虚拟成单台 VPN 路由器,虚拟 IP 地址为 100.1.1.10,然后以该虚拟 IP 地址为源和 R1 建立 VPN 连接,在任何时候,R2 和 R3 中只有 Active 的那台路由器负责和对端建立 VPN 连接,在 Active 路由器不可用时, 则备用路由器接替原 Active 的角色。R2 和 R3 同时还与内部路由器 R4 启用 OSPF 动 态路由协议,并且通过配置 RRI 然后重分布进 OSPF,将去往对端 VPN 网段信息通告 给 R4,最终让 R4 通过 VPN 隧道与 R1 相连的网段 10.1.1.0/24 通信。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exi r1(config)# 第 412 页共 844 页 r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.10 r1(config)# 说明:配置 R1 的接口地址,并写默认路由指向 R2 和 R3 通过 HSRP 虚拟的 IP 地 址 100.1.1.10。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 100.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 30.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 第 413 页共 844 页 r2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 www.china-ccie.com r2(config)#router ospf 1 r2(config-router)#network 30.1.1.2 0.0.0.0 area 0 r2(config-router)#redistribute static subnets r2(config-router)#exit 说明:配置 R2 的接口地址,并写默认路由指向 R1,然后和 R4 之间启用 OSPF 动态路由协议,将静态路由重分布进 OSPF。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 100.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 第 414 页共 844 页 r3(config)#router ospf 1 www.china-ccie.com r3(config-router)#network 30.1.1.3 0.0.0.0 area 0 r3(config-router)#redistribute static subnets r3(config-router)#exit 说明:配置 R3 的接口地址,并写默认路由指向 R1,然后和 R4 之间启用 OSPF 动态路由协议,将静态路由重分布进 OSPF。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 30.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#router ospf 1 r4(config-router)#network 30.1.1.4 0.0.0.0 area 0 r4(config-router)#exit 说明:配置 R4 的接口地址,并且和 R2 与 R3 之间启用 OSPF 动态路由协议。 (5)查看 R4 上的 OSPF 状态: r4#show ip ospf neighbor 第 415 页共 844 页 www.china-ccie.com Neighbor ID Pri State Dead Time Address Interface 100.1.1.2 1 FULL/DR 00:00:30 30.1.1.2 FastEthernet0/1 100.1.1.3 1 FULL/BDR 00:00:34 30.1.1.3 FastEthernet0/1 r4# 说明:R4 已经和 R2 与 R3 建立 OSPF 邻居。 (6)查看 R4 上的路由表情况: r4#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 30.0.0.0/24 is subnetted, 1 subnets 第 416 页共 844 页 C 30.1.1.0 is directly connected, FastEthernet0/1 www.china-ccie.com r4# 说明:R4 还没有通过 OSPF 从 R2 与 R3 那里收到任何路由。 2.配置 IPsec VPN HA (1)在 R1 上配置 IPsec LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.10 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)# 第 417 页共 844 页 r1(config)#crypto isakmp keepalive 10 periodic www.china-ccie.com r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 100.1.1.10 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:41:43.791: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)# r1(config-if)#exit 说明:R1 上正常配置 IPsec LAN-to-LAN VPN,但 R1 的 VPN peer 则指向 R2 和 R3 通过 HSRP 虚拟的 IP 地址 100.1.1.10,而不是指向 R2 与 R3 的真实地址。 (2)在 R2 上配置 IPsec LAN-to-LAN VPN,并配置 IPsec VPN HA: r2(config)#crypto isakmp policy 1 r2(config-isakmp)#encryption 3des 第 418 页共 844 页 r2(config-isakmp)#hash sha www.china-ccie.com r2(config-isakmp)#authentication pre-share r2(config-isakmp)#group 2 r2(config-isakmp)#exit r2(config)# r2(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r2(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r2(cfg-crypto-trans)#exit r2(config)# r2(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r2(config)#crypto isakmp keepalive 10 periodic r2(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r2(config-crypto-map)#set peer 100.1.1.1 r2(config-crypto-map)#set transform-set ccie r2(config-crypto-map)#match address 100 r2(config-crypto-map)#reverse-route static This will remove all existing SAs on this map r3(config-crypto-map)# r2(config-crypto-map)#exit 第 419 页共 844 页 r2(config)# www.china-ccie.com r2(config)#int f0/0 r2(config-if)#standby 1 ip 100.1.1.10 r2(config-if)#standby 1 preempt r2(config-if)#standby 1 track f0/1 r2(config-if)#standby 1 name chinaccie r2(config-if)#crypto map l2l redundancy chinaccie r2(config-if)#exit *Mar 1 00:44:54.563: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r2(config-if)#exit 说明:在 R2 上配置 IPsec LAN-to-LAN VPN,并开启 RRI 功能,在外网接口上和 R3 配置 HSRP 组,同时跟踪连接 R4 的内部接口 F0/1,在 F0/1 不可用时,将 HSRP active 的角色让给 R3。 (3)在 R3 上配置 IPsec LAN-to-LAN VPN,并配置 IPsec VPN HA: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit 第 420 页共 844 页 r3(config)# www.china-ccie.com r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)#crypto isakmp keepalive 10 periodic r3(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r3(config-crypto-map)#set peer 100.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#reverse-route static This will remove all existing SAs on this map r3(config-crypto-map)# r3(config-crypto-map)#exit r3(config)# r3(config)#int f0/0 r3(config-if)#standby 1 ip 100.1.1.10 r3(config-if)#standby 1 preempt 第 421 页共 844 页 r3(config-if)#standby 1 track f0/1 www.china-ccie.com r3(config-if)#standby 1 name chinaccie r3(config-if)#crypto map l2l redundancy chinaccie r3(config-if)# *Mar 1 00:46:54.895: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r3(config-if)#exit 说明:在 R3 上配置 IPsec LAN-to-LAN VPN,并开启 RRI 功能,在外网接口上和 R3 配置 HSRP 组,同时跟踪连接 R4 的内部接口 F0/1,在 F0/1 不可用时,将 HSRP active 的角色让给 R2。 (4)查看 R3 当前的 HSRP 状态: r3#show standby brief P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/0 1 100 P Active local 100.1.1.2 100.1.1.10 r3# 说明:因为没有配置 HSRP 优先级,所以 R3 靠 IP 地址获得了 Active 的角色。 (5)查看 R3 当前的路由表情况: 第 422 页共 844 页 r3#sh ip route www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.1 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets S 10.1.1.0 [1/0] via 100.1.1.1 30.0.0.0/24 is subnetted, 1 subnets C 30.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [1/0] via 100.1.1.1 r3# 说明:由于配置了 RRI,所以 R3 为需要被 IPsec 保护的流量自动创建了指向对方 Peer 的静态路由。 第 423 页共 844 页 www.china-ccie.com (6)再次查看 R4 上的路由表情况: r4#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 10.0.0.0/24 is subnetted, 1 subnets O E2 10.1.1.0 [110/20] via 30.1.1.3, 00:01:18, FastEthernet0/1 30.0.0.0/24 is subnetted, 1 subnets C 30.1.1.0 is directly connected, FastEthernet0/1 r4# 说明:R4 已经从 R3 那里收到了需要被 IPsec 保护的网段信息。 (7)查看 R2 当前的路由表情况: 第 424 页共 844 页 r2#sh ip route www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.1 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets O E2 10.1.1.0 [110/20] via 30.1.1.3, 00:05:15, FastEthernet0/1 30.0.0.0/24 is subnetted, 1 subnets C 30.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [1/0] via 100.1.1.1 r2# 说明:因为 R3 才是 Active 角色,所以 R2 选择从 R3 去往被 IPsec 保护的目标网 段。 第 425 页共 844 页 (8)从 R4 上发送流量激活 IKE SA: r4#ping 10.1.1.1 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 96/202/412 ms r4# 说明:R4 向 IPsec 保护网段发送流量激活 IKE SA: (10)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.10 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 第 426 页共 844 页 www.china-ccie.com 说明:R1 已经建立了与 100.1.1.10 的 IKE SA,这就是 R2 和 R3 通过 HSRP 虚拟的 IP 地址。 (11)查看 R1 目前与对端建立的 IKE SA 时间: r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1002 100.1.1.1 100.1.1.10 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:58:32 D IPv6 Crypto ISAKMP SA r1# 说明:目前 R1 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 58 分,最新建立的 第 427 页共 844 页 为 24 小时,并且请注意 Conn-id = SW:1。 www.china-ccie.com (12)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.10 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5 #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 第 428 页共 844 页 www.china-ccie.com local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.1.1.10 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x548C3B44(1418476356) inbound esp sas: spi: 0x7D1744FF(2098676991) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4423799/3519) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x548C3B44(1418476356) transform: esp-3des esp-sha-hmac , 第 429 页共 844 页 in use settings ={Tunnel, } www.china-ccie.com conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4423799/3519) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:R1 上当前的 IPsec SA 显示了正确的网段信息与状态。 (13)查看 R3 上的 IKE SA(ISAKMP SA): r3#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.10 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA 第 430 页共 844 页 r3# 说明:R3 也显示已经与 R1 建立了的 IKE SA。 www.china-ccie.com (14)查看 R1 目前与对端建立的 IKE SA 时间: r3#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1001 100.1.1.10 100.1.1.1 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:58:07 D IPv6 Crypto ISAKMP SA r3# 说明:目前 R3 与 R1 建立的 IKE SA 的 lifetime 还剩 23 小时 58 分,最新建立的为 24 小时,并且请注意 Conn-id = SW:1。 第 431 页共 844 页 www.china-ccie.com (15)查看 R3 上的 IPsec SA: r3#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.10 protected vrf: (none) local ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5 #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 5, #recv errors 0 local crypto endpt.: 100.1.1.10, remote crypto endpt.: 100.1.1.1 第 432 页共 844 页 www.china-ccie.com path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x7D1744FF(2098676991) inbound esp sas: spi: 0x548C3B44(1418476356) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4539265/3481) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x7D1744FF(2098676991) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } 第 433 页共 844 页 conn id: 2, flow_id: SW:2, crypto map: l2l www.china-ccie.com sa timing: remaining key lifetime (k/sec): (4539265/3480) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r3# 说明:R3 上当前的 IPsec SA 显示了正确的网段信息与状态。 (16)查看 R2 上的 IKE SA(ISAKMP SA): r2#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r2# 第 434 页共 844 页 www.china-ccie.com 说明:因为 R2 不是 Active 角色,所以不负责 VPN 连接,也就看不到任何 SA 信 息。 (17)查看 R4 到 VPN 对端的流量路径情况: r4#traceroute 10.1.1.1 Type escape sequence to abort. Tracing the route to 10.1.1.1 1 30.1.1.3 76 msec 64 msec 136 msec 2 100.1.1.1 256 msec * 224 msec r4# 说明:因为 R3 是 Active 角色,所以 R4 去往 VPN 对端的流量先发到 R3,然后由 R3 转发出去。 3.测试 IPsec VPN HA: (1)断开 R3 的内网接口: r3(config)#int f0/1 r3(config-if)#shutdown r3(config-if)# 说明:断开 R3 与 R4 相连的内网接口 F0/1: 第 435 页共 844 页 www.china-ccie.com (2)查看 R3 的 HSRP 状态: r3#show standby brief P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/0 1 90 P Standby 100.1.1.2 local 100.1.1.10 r3# 说明:由于 R3 的内网接口 F0/1 已经断开,所以 HSRP 的角色从 Active 变成了 Standby。 (3)查看 R2 的 HSRP 状态: r2#sh standby brief P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/0 1 100 P Active local 100.1.1.3 100.1.1.10 r2# 说明:由于 R3 的内网接口 F0/1 已经断开,所以 R2 的 HSRP 的角色从 Standby 变 成了 Active。 (4)再次查看 R2 上的路由表情况: 第 436 页共 844 页 r2#sh ip route www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 100.1.1.1 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets S 10.1.1.0 [1/0] via 100.1.1.1 30.0.0.0/24 is subnetted, 1 subnets C 30.1.1.0 is directly connected, FastEthernet0/1 S* 0.0.0.0/0 [1/0] via 100.1.1.1 r2# 说明:R2 原本从 R3 到被 IPsec 保护的目标网段现在改从自己直接出去了。 第 437 页共 844 页 (5)再次查看 R4 上的路由表情况: www.china-ccie.com r4#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 10.0.0.0/24 is subnetted, 1 subnets O E2 10.1.1.0 [110/20] via 30.1.1.2, 00:02:07, FastEthernet0/1 30.0.0.0/24 is subnetted, 1 subnets C 30.1.1.0 is directly connected, FastEthernet0/1 r4# 说明:R4 原本从 R3 到被 IPsec 保护的目标网段现在也改从 R2 走了。 (6)测试 R4 到 VPN 对端的通信情况: 第 438 页共 844 页 r4#ping 10.1.1.1 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 92/192/304 ms r4# 说明:R4 到 VPN 对端的通信正常。 (7)查看 R2 上的 IKE SA(ISAKMP SA): r2#sh crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.10 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r2# 说明:R2 现在已经与 R1 建立了的 IKE SA。 (8)查看 R2 目前与对端建立的 IKE SA 时间: 第 439 页共 844 页 r2#sh crypto isakmp sa detail www.china-ccie.com Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1001 100.1.1.10 100.1.1.1 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:59:29 D IPv6 Crypto ISAKMP SA 说明:目前 R2 与 R1 建立的 IKE SA 的 lifetime 还剩 23 小时 59 分,最新建立的为 24 小时,说明此连接是全新建立的。 (9)查看 R2 上的 IPsec SA: r2#show crypto ipsec sa interface: FastEthernet0/0 第 440 页共 844 页 Crypto map tag: l2l, local addr 100.1.1.10 www.china-ccie.com protected vrf: (none) local ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5 #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 5, #recv errors 0 local crypto endpt.: 100.1.1.10, remote crypto endpt.: 100.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xEDCF7EFD(3989798653) inbound esp sas: spi: 0x12CF9A71(315595377) transform: esp-3des esp-sha-hmac , 第 441 页共 844 页 in use settings ={Tunnel, } www.china-ccie.com conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4440233/3565) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xEDCF7EFD(3989798653) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4440233/3564) IV size: 8 bytes replay detection support: Y Status: ACTIVE 第 442 页共 844 页 outbound ah sas: www.china-ccie.com outbound pcp sas: r2# 说明:R2 上当前的 IPsec SA 显示了正确的网段信息与状态。 (10)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1002 100.1.1.1 100.1.1.10 Engine-id:Conn-id = SW:2 ACTIVE 3des sha psk 2 23:56:48 D IPv6 Crypto ISAKMP SA 第 443 页共 844 页 www.china-ccie.com r1# 说明:现在 R1 上建立的 IKE SA 的 lifetime 还剩 23 小时 56 分,但现在显示了 Conn-id = SW:2,而之前的为 Conn-id = SW:1,所以 R1 上的 IKE SA 也是新建立的。 (11)再次查看 R3 上的 IKE SA(ISAKMP SA): r3#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r3# 说明:因为 R3 的 HSRP 角色已经由 Active 变成了 Standby,IPsec VPN 连接的工作 将由 R2 接替,所以 IKE SA 也就被删除了。 (12)再次查看 R4 到 VPN 对端的流量路径情况: r4#traceroute 10.1.1.1 Type escape sequence to abort. Tracing the route to 10.1.1.1 第 444 页共 844 页 www.china-ccie.com 1 30.1.1.2 88 msec 56 msec 112 msec 2 100.1.1.1 152 msec * 292 msec r4# 说明:之前 R4 去往 VPN 对端的流量先发到 R3,然后由 R3 转发出去,而现在则 先发 到 R2,由 R2 转发出去。 Stateful Failover for IPsec 虽然在设计网络冗余性时,可以通过在一个场点布署两台或更多 VPN 路由器, 然后通过前面介绍的 IPsec VPN HA 让多台 VPN 路由器执行完全相同的功能,当主路 由器在任何情况下停止工作时,备用路由器将立刻接替主路由器的工作为用户转发 数据。 但是 IPsec VPN HA 并不是很完美,因为在主路由器不可用时,备用路由器在接替 主路由器的工作后,需要重新与 VPN 对端建立 IPsec 连接,这必定会造成用户的数 据丢包。造成这个问题的原因就是与 VPN 对端的 IPsec 会话信息只在主路由器上存 在,而备路由器上是没有 IPsec 会话信息的,所以在备用路由器接替主路由器的工 作时,必须再次重新和 VPN 对端建立 IPsec 会话,从而造成用户数据丢包,如果在 任何时候,主备路由器都拥有着完全相同的 IPsec 会话信息,那么在备用路由器接 替主路由器的工作时就不需要再次重新和 VPN 对端建立 IPsec 会话,就能直接使用 当前的 IPsec 会话,这样用户的数据就不会丢包了,这才是真正的高可用性,实现 主备路由器之间的无缝切换,并且对用户来说是完全透明的,要实现这样的功能, 就需要靠 Stateful Failover for IPsec。 Stateful Failover for IPsec 让主备路由器之间在任何时候都共享完全相同的 IPsec 会话信息,在任何路由器成为主路由器后都可以直接使用当前已有的 IPsec 会话而 不用重新和 VPN 对端建立 IPsec 会话,所以 Stateful Failover for IPsec 最大的优势就 是能够在主备路由器之间共享 IPsec 会话信息,让主备路由器随时都拥有着完全相 第 445 页共 844 页 www.china-ccie.com 同的 IPsec 会话信息,从而在任何路由器为用户提供服务时都不会造成网络中断, Stateful Failover for IPsec 靠以下两个组件来完成: Stateful Switchover (SSO) Hot Standby Routing Protocol (HSRP) SSO 的功能就是在主备路由器之间共享 IPsec 会话信息(包括 IKE SA 和 IPsec SA), 让路由器之间随时都拥有着完全相同的 IPsec 会话信息,任何路由器在任何时间都 能成为活动路由器,从而在任何路由器为用户提供服务时都不会造成网络中断。 HSRP 的功能和 IPsec VPN HA 中 HSRP 的功能一样,就是将多台路由器用来建立 IPsec VPN 连接的外网地址虚拟成同一个 IP 地址,所以多台路由器的外网接口必须 通过交换机或 Hub 相连,除此之外,Stateful Failover for IPsec 还要求路由器的内网 接口也配置 HSRP,对用户内部也虚拟出同一个 IP 地址;所以 Stateful Failover for IPsec 中必须配置两组 HSRP,内外网接口各一组,并且内外网 HSRP 互相监控对方的接口 状态,在任何一个接口不可用时,同时转让出两组 HSRP 的 Active 角色,并且同一 台路由器的两组 HSRP 要么都为 Active,要么都为 Standby。 提供 Stateful Failover for IPsec 功能的所有路由器都必须具有完全相同的 IKE 和 IPsec 配置,也就是所有 VPN 相关的配置必须完全相同,Stateful Failover 只是共享 IKE 和 IPsec 的状态信息,而不是共享双方配置信息,所以并不会将一方的配置自动复 制到另一方去。 注: ★当主路由器出现故障停止工作时,在让出 HSRP 角色后,会自动重启。 ★配置 Stateful Failover for IPsec 同时也必须配置 Reverse Route Injection (RRI)。 第 446 页共 844 页 www.china-ccie.com ★提供 Stateful Failover for IPsec 功能的所有路由器必须是相同型号的硬件,以及 CPU,内存,IOS 软件版本等等。 ★Stateful Failover for IPsec 功能的所有路由器必须在内外网两个接口同时配置 HSRP,但不要修改 HSRP 优先级,并且同一台路由器的两组 HSRP 要么都为 Active, 要么都为 Standby。 ★Stateful Failover for IPsec 功能的所有路由器的内外网两个接口必须分别通过 LAN 互连,如交换机或 Hub,普通的广域网线是不行的;且记得在交换机连路由器 的接口上开 spanning-tree portfast。 ★Stateful Failover for IPsec 功能的所有路由器在任何时间只有一台是工作的,不 能实现多台负载。 ★Stateful Failover for IPsec 不支持 L2TP over IPsec,但支持 Easy VPN。 ★Stateful Failover for IPsec 不支持 IPsec Idle Timer,但 Dead Peer Detection(DPD)。 ★Stateful Failover for IPsec 不支持 Public key infrastructure (PKI)认证,只支持 Preshared Key(PSK)认证。 配置 Stateful Failover for IPsec 第 447 页共 844 页 www.china-ccie.com 说明:以上图为例,在 R1、R2、R3 之间配置 IPsec LAN-to-LAN VPN 来测试 Stateful Failover for IPsec 的效果,其中 R2 和 R3 通过 HSRP 虚拟成单台 VPN 路由器,外网虚 拟 IP 地址为 100.1.1.10,然后以该虚拟 IP 地址为源和 R1 建立 VPN 连接,R2 和 R3 中只有 Active 的那台路由器负责和对端建立 VPN 连接,在 Active 路由器不可用时, 则备用路由器接替原 Active 的角色,因为配置了 Stateful Failover,所以备路由器在 接替原 Active 的角色时不会造成用户数据丢包。同时在内网接口也通过 HSRP 将地 址虚拟为 30.1.1.10,R4 默认路由指向 30.1.1.10,从而让 R4 通过 VPN 隧道与 R1 相 连的网段 10.1.1.0/24 通信。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exi r1(config)# r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.10 第 448 页共 844 页 www.china-ccie.com 说明:配置 R1 的接口地址,并写默认路由指向 R2 和 R3 通过 HSRP 虚拟的 IP 地 址 100.1.1.10。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 100.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f1/1 r2(config-if)#ip add 30.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 说明:配置 R2 的接口地址,并写默认路由指向 R1。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 100.1.1.3 255.255.255.0 r3(config-if)#no sh 第 449 页共 844 页 r3(config-if)#exit www.china-ccie.com r3(config)#int f1/1 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1 说明:配置 R3 的接口地址,并写默认路由指向 R1。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 30.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 30.1.1.10 说明:配置 R4 的接口地址,并写默认路由指向 R2 和 R3 通过 HSRP 虚拟的 IP 地 址 30.1.1.10。 第 450 页共 844 页 www.china-ccie.com 2.配置 Stateful Failover for IPsec (1)在 R1 上配置 IPsec LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 100.1.1.10 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)# r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 r1(config)# r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. 第 451 页共 844 页 r1(config-crypto-map)#set peer 100.1.1.10 www.china-ccie.com r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:10:18.179: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit 说明:R1 上正常配置 IPsec LAN-to-LAN VPN,但 R1 的 VPN peer 则指向 R2 和 R3 通过 HSRP 虚拟的 IP 地址 100.1.1.10,而不是指向 R2 与 R3 的真实地址。 (2)在 R2 上配置 IPsec LAN-to-LAN VPN: r2(config)#crypto isakmp policy 1 r2(config-isakmp)#encryption 3des r2(config-isakmp)#hash sha r2(config-isakmp)#authentication pre-share r2(config-isakmp)#group 2 r2(config-isakmp)#exit r2(config)# r2(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r2(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac 第 452 页共 844 页 r2(cfg-crypto-trans)#exit www.china-ccie.com r2(config)# r2(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r2(config)# r2(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r2(config-crypto-map)#set peer 100.1.1.1 r2(config-crypto-map)#set transform-set ccie r2(config-crypto-map)#match address 100 r2(config-crypto-map)#reverse-route static r2(config-crypto-map)#exit 说明:R2 上正常配置 IPsec LAN-to-LAN VPN。 (3)在 R3 上配置 IPsec LAN-to-LAN VPN: r3(config)#crypto isakmp policy 1 r3(config-isakmp)#encryption 3des r3(config-isakmp)#hash sha r3(config-isakmp)#authentication pre-share r3(config-isakmp)#group 2 r3(config-isakmp)#exit 第 453 页共 844 页 r3(config)# www.china-ccie.com r3(config)#crypto isakmp key 0 cisco123 address 100.1.1.1 r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r3(cfg-crypto-trans)#exit r3(config)# r3(config)#access-list 100 permit ip 30.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r3(config)# r3(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r3(config-crypto-map)#set peer 100.1.1.1 r3(config-crypto-map)#set transform-set ccie r3(config-crypto-map)#match address 100 r3(config-crypto-map)#reverse-route static r3(config-crypto-map)#exit 说明:R3 上正常配置 IPsec LAN-to-LAN VPN。 (4)在 R2 上配置 Stateful Failover for IPsec: 进入 inter-device 配置模式: 第 454 页共 844 页 r2(config)#redundancy inter-device www.china-ccie.com 指定 redundancy 方式,目前只有 standby: r2(config-red-interdevice)#scheme standby HA-out % Standby scheme configuration cannot be processed now group HA-out is not in active state r2(config-red-interdevice)#exit 进入 IPC zone configuration mode: r2(config)#ipc zone default r2(config-ipczone)#association 1 配置 Stream Control Transmission Protocol (SCTP)为通讯协议: r2(config-ipczone-assoc)#protocol sctp 指定本地端口(必须和对方的目的端口保持一致): r2(config-ipc-protocol-sctp)#local-port 5000 指定本地 IP(必须是接口真实 IP,且和对方的目的 IP 保持一致): r2(config-ipc-local-sctp)#local-ip 100.1.1.2 r2(config-ipc-local-sctp)#exit 指定目标端口(必须和对方的源端口保持一致): r2(config-ipc-protocol-sctp)#remote-port 5000 指定目标 IP(必须是接口真实 IP,且和对方的源 IP 保持一致): r2(config-ipc-remote-sctp)#remote-ip 100.1.1.3 r2(config-ipc-remote-sctp)#exit r2(config-ipc-protocol-sctp)#exit 第 455 页共 844 页 r2(config-ipczone-assoc)#exit www.china-ccie.com r2(config-ipczone)#exit r2(config)# crypto map l2l redundancy replay-interval inbound 1000 outbound 10000 配置 HSRP: r2(config)#int f0/0 r2(config-if)#standby 1 ip 100.1.1.10 r2(config-if)#standby 1 preempt r2(config-if)#standby 1 name HA-out r2(config-if)#standby 1 track f1/1 开启 SSO: r2(config-if)#crypto map l2l redundancy HA-out stateful r2(config-if)# *Nov 16 20:10:20.087: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -> Standby *Nov 16 20:10:20.435: %CRYPTO-5-IKE_SA_HA_STATUS: IKE sa's if any, for vip 100.1.1.10 will change from STANDBY to ACTIVE r2(config-if)# *Nov 16 20:10:20.467: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON 定义重启参数: r2(config-if)#standby delay reload 120 第 456 页共 844 页 r2(config-if)#exit www.china-ccie.com 配置内网 HSRP: r2(config)#int f1/1 r2(config-if)#standby 2 ip 30.1.1.10 r2(config-if)#standby 2 preempt r2(config-if)#standby 2 name HA-in r2(config-if)#standby 2 track f0/0 r2(config-if)#standby delay reload 120 r2(config-if)# *Nov 16 20:10:56.615: %HSRP-5-STATECHANGE: FastEthernet1/1 Grp 2 state Speak -> Standby r2(config-if)#exit (5)在 R3 上配置 Stateful Failover for IPsec: 进入 inter-device 配置模式: r3(config)#redundancy inter-device 指定 redundancy 方式,目前只有 standby: r3(config-red-interdevice)#scheme standby HA-out % Standby scheme configuration cannot be processed now group HA-out is not in active state r3(config-red-interdevice)#exit 进入 IPC zone configuration mode: 第 457 页共 844 页 r3(config)#ipc zone default www.china-ccie.com r3(config-ipczone)# association 1 配置 Stream Control Transmission Protocol (SCTP)为通讯协议: r3(config-ipczone-assoc)#protocol sctp 指定本地端口(必须和对方的目的端口保持一致): r3(config-ipc-protocol-sctp)#local-port 5000 指定本地 IP(必须是接口真实 IP,且和对方的目的 IP 保持一致): r3(config-ipc-local-sctp)#local-ip 100.1.1.3 r3(config-ipc-local-sctp)#exit 指定目标端口(必须和对方的源端口保持一致): r3(config-ipc-protocol-sctp)#remote-port 5000 指定目标 IP(必须是接口真实 IP,且和对方的源 IP 保持一致): r3(config-ipc-remote-sctp)#remote-ip 100.1.1.2 r3(config-ipc-remote-sctp)#exit r3(config-ipc-protocol-sctp)#exit r3(config-ipczone-assoc)#exit r3(config-ipczone)#exit r3(config)#crypto map l2l redundancy replay-interval inbound 1000 outbound 10000 r3(config)# 配置 HSRP: 第 458 页共 844 页 r3(config)#int f0/0 www.china-ccie.com r3(config-if)#standby 1 ip 100.1.1.10 r3(config-if)#standby 1 preempt r3(config-if)#standby 1 name HA-out r3(config-if)#standby 1 track f1/1 开启 SSO: r3(config-if)#crypto map l2l redundancy HA-out stateful r3(config-if)# *Nov 16 20:03:55.495: %CRYPTO-5-IKE_SA_HA_STATUS: IKE sa's if any, for vip 100.1.1.10 will change from STANDBY to ACTIVE r3(config-if)# *Nov 16 20:03:55.527: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON 定义重启参数: r3(config-if)#standby delay reload 120 r3(config-if)#exit 配置内网 HSRP: r3(config)#int f1/1 r3(config-if)#standby 2 ip 30.1.1.10 r3(config-if)#standby 2 preempt r3(config-if)#standby 2 name HA-in r3(config-if)#standby 2 track f0/0 r3(config-if)# 第 459 页共 844 页 www.china-ccie.com *Nov 16 20:04:36.347: %HSRP-5-STATECHANGE: FastEthernet1/1 Grp 2 state Speak -> Standby *Nov 16 20:04:36.847: %HSRP-5-STATECHANGE: FastEthernet1/1 Grp 2 state Standby -> Active r3(config-if)#standby delay reload 120 r3(config-if)#exit 3.测试 Stateful Failover for IPsec: (1)查看 R3 当前的 HSRP 状态: r3#sh stan brief P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/0 1 100 P Active local 100.1.1.2 100.1.1.10 Fa1/1 2 100 P Active local 30.1.1.2 30.1.1.10 r3# 说明:因为没有配置 HSRP 优先级,所以 R3 靠 IP 地址获得了 Active 的角色。 (2)查看 R3 当前的 SSO 状态: r3#show redundancy states my state = 13 -ACTIVE 第 460 页共 844 页 peer state = 8 -STANDBY HOT Mode = Duplex Unit ID = 0 www.china-ccie.com Maintenance Mode = Disabled Manual Swact = Enabled Communications = Up client count = 12 client_notification_TMR = 30000 milliseconds RF debug mask = 0x0 r3# 说明:因为 R3 的 HSRP 状态为 Active,所以当前 SSO 的状态也为 Active,对端路 由器的 SSO 状态则为 STANDBY HOT(热备份),如果对端为 STANDBY COLD-BULK,则 不正常,一般是由于 IOS 版本太低造成,所以请更换高版本 IOS。 (3)查看 R3 更多 SSO 信息: r3#show crypto ha IKE VIP: 100.1.1.10 stamp: 2F 78 23 C6 0B 6E F6 51 18 FC 3F 6D 07 2C FA C5 IPSec VIP: 100.1.1.10 第 461 页共 844 页 www.china-ccie.com r3# 说明:如果发现 stamp: Not set,则不正常,一般也是由于 IOS 版本太低造成,所 以还是请更换高版本 IOS。 (4)查看 R2 的 SSO 信息: r2#show redundancy states my state = 8 -STANDBY HOT peer state = 13 -ACTIVE Mode = Duplex Unit ID = 0 Maintenance Mode = Disabled Manual Swact = Enabled Communications = Up client count = 12 client_notification_TMR = 30000 milliseconds RF debug mask = 0x0 r2# 第 462 页共 844 页 r2#show crypto ha www.china-ccie.com IKE VIP: 100.1.1.10 stamp: 2F 78 23 C6 0B 6E F6 51 18 FC 3F 6D 07 2C FA C5 IPSec VIP: 100.1.1.10 r2# 说明:因为 R2 的 HSRP 状态为 Standby,所以当前 SSO 的状态为 STANDBY HOT, 而对端路由器的 SSO 状态则为 ACTIVE。 (5)查看 R3 上的 IKE SA(ISAKMP SA): r3#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status IPv6 Crypto ISAKMP SA r3# 说明:因为当前没有流量,所以 R3 上的 IKE SA 为空。 (6)查看 R2 上的 IKE SA(ISAKMP SA): 第 463 页共 844 页 r2#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status www.china-ccie.com IPv6 Crypto ISAKMP SA r2# 说明:因为当前没有流量,所以 R2 上的 IKE SA 也为空。 (7)从 R4 上发送流量激活 IKE SA: r4#ping 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 72/170/264 ms r4# 说明:R4 向 IPsec 保护网段发送流量激活 IKE SA: 第 464 页共 844 页 (8)再次查看 R3 上的 IKE SA(ISAKMP SA): www.china-ccie.com r3#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status 100.1.1.1 100.1.1.10 QM_IDLE 1001 ACTIVE IPv6 Crypto ISAKMP SA r3# 说明:R3 已经建立了与 R1 的 IKE SA,并且请注意 R3 的状态为 Active。 (9)查看 R3 目前与对端建立的 IKE SA 时间: r3#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal T - cTCP encapsulation, X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 第 465 页共 844 页 www.china-ccie.com 1001 100.1.1.10 100.1.1.1 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:59:28 D IPv6 Crypto ISAKMP SA r3# 说明:目前 R3 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 59 分,最新建立的 为 24 小时,并且请注意 Conn-id = SW:1。 (10)查看 R3 上的 IPsec SA: r3#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.10 protected vrf: (none) local ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 第 466 页共 844 页 #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4 www.china-ccie.com #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 6, #recv errors 0 local crypto endpt.: 100.1.1.10, remote crypto endpt.: 100.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x71B34C72(1907575922) PFS (Y/N): N, DH group: none inbound esp sas: spi: 0xC044FF1B(3225747227) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, sibling_flags 80000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4539948/3561) HA KB life last checkpointed at (k): (4539949) IV size: 8 bytes replay detection support: Y Status: ACTIVE 第 467 页共 844 页 inbound ah sas: www.china-ccie.com inbound pcp sas: outbound esp sas: spi: 0x71B34C72(1907575922) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, sibling_flags 80000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4539948/3561) HA KB life last checkpointed at (k): (4539949) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r3# 说明:R3 上当前的 IPsec SA 显示了正确的网段信息与状态。 第 468 页共 844 页 (11)再次查看 R2 上的 IKE SA(ISAKMP SA): www.china-ccie.com r2#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status 100.1.1.1 100.1.1.10 QM_IDLE 1001 STDBY IPv6 Crypto ISAKMP SA r2# 说明:R2 已经建立了与 R1 的 IKE SA,但请注意 R2 的状态为 STDBY,说明 R2 只 是 R3 的备份,只有在 R3 不可用时,才会启用自己为 Active。 (12)查看 R2 目前与对端建立的 IKE SA 时间: r2#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal T - cTCP encapsulation, X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 第 469 页共 844 页 www.china-ccie.com 1001 100.1.1.10 100.1.1.1 Engine-id:Conn-id = SW:1 STDBY 3des sha psk 2 23:58:12 D IPv6 Crypto ISAKMP SA r2# 说明:目前 R2 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 58 分,最新建立的 为 24 小时,并且请注意 Conn-id = SW:1。 (13)查看 R2 上的 IPsec SA: r2#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.10 protected vrf: (none) local ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 第 470 页共 844 页 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 www.china-ccie.com #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 100.1.1.10, remote crypto endpt.: 100.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x71B34C72(1907575922) PFS (Y/N): N, DH group: none inbound esp sas: spi: 0xC044FF1B(3225747227) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, sibling_flags 90000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4051008/3490) HA KB life last update received (k): (4051008) IV size: 8 bytes replay detection support: Y Status: STANDBY 第 471 页共 844 页 inbound ah sas: www.china-ccie.com inbound pcp sas: outbound esp sas: spi: 0x71B34C72(1907575922) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, sibling_flags 90000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4051008/3490) HA KB life last update received (k): (4051008) IV size: 8 bytes replay detection support: Y Status: STANDBY outbound ah sas: outbound pcp sas: r2# 说明:R2 上当前的 IPsec SA 与 R3 完全相同,但唯一区别就是状态为 STANDBY, 说明 R2 只是 R3 的备份,只有在 R3 不可用时,才会启用自己为 Active。 第 472 页共 844 页 www.china-ccie.com (14)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.10 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:R1 已经建立了与 100.1.1.10 的 IKE SA,这就是 R2 和 R3 通过 HSRP 虚拟的 IP 地址。 (15)查看 R1 目前与对端建立的 IKE SA 时间: r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA 第 473 页共 844 页 www.china-ccie.com C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1001 100.1.1.1 100.1.1.10 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:57:23 IPv6 Crypto ISAKMP SA r1# 说明:目前 R1 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 57 分,最新建立的 为 24 小时,并且请注意 Conn-id = SW:1,如果该值不同,则表示 SA 是重新建的。 (16)在 R4 上向 VPN 对端长时间发送流量测试网络故障: r4#ping 10.1.1.1 repeat 100000 Type escape sequence to abort. Sending 100000, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: !!!!!!!!!!!!!!!!!! 说明:在 R4 上向 VPN 对端长时间发送流量,用以测试在网络发生故障时的数据 包情况。 (17)断开 R3 的内网接口: 第 474 页共 844 页 r3(config)#int f1/1 www.china-ccie.com r3(config-if)#sh r3(config-if)#shutdown r3(config-if)# *Nov 17 00:44:39.191: %TRACKING-5-STATE: 1 interface Fa1/1 line-protocol Up->Down *Nov 17 00:44:39.195: %HSRP-5-STATECHANGE: FastEthernet1/1 Grp 2 state Active -> Init *Nov 17 00:44:40.047: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Active -> Speak *Nov 17 00:44:40.071: %RF_INTERDEV-4-RELOAD: % RF induced self-reload. my state = ACTIVE peer state = STANDBY HOT r3(config-if)# *Nov 17 00:44:40.095: %RF-5-RF_RELOAD: Peer reload. Reason: r3(config-if)# *Nov 17 00:44:41.187: %LINK-5-CHANGED: Interface FastEthernet1/1, changed state to administratively down *Nov 17 00:44:42.187: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/1, changed state to down r3(config-if)# ROM: reload requested... 说明:当 Active 出现故障后,会自动重启。 第 475 页共 844 页 www.china-ccie.com (18)查看 R4 上到 VPN 对端的流量情况: r4#ping 10.1.1.1 repeat 100000 Type escape sequence to abort. Sending 100000, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: !!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!. Success rate is 98 percent (142/144), round-trip min/avg/max = 72/386/1056 ms r4# 说明,虽然 VPN 路由器 R3 发生了故障,但 R4 上到 VPN 对端的流量完全正常, 并且没有丢包,说明 Stateful Failover for IPsec 为网络故障实现了无缝切换。 (19)再次查看 R2 上的 IKE SA(ISAKMP SA): r2#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status 100.1.1.1 100.1.1.10 QM_IDLE 1001 ACTIVE IPv6 Crypto ISAKMP SA 第 476 页共 844 页 www.china-ccie.com r2# 说明:R2 的 IKE SA 已经从之前的备份状态(STDBY)变成了活动状态(Active)。 (20)再次查看 R2 目前与对端建立的 IKE SA 时间: r2#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal T - cTCP encapsulation, X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1001 100.1.1.10 100.1.1.1 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:54:57 D IPv6 Crypto ISAKMP SA 第 477 页共 844 页 www.china-ccie.com r2# 说明:目前 R2 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 54 分,说明不是新 建的,并且请注意 Conn-id = SW:1,和之前的值相同,也说明 SA 没有重新建立而 是使用已有的,所以为网络故障实现了无缝切换。 (21)再次查看 R2 上的 IPsec SA: r2#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 100.1.1.10 protected vrf: (none) local ident (addr/mask/prot/port): (30.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 100.1.1.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 123, #pkts encrypt: 123, #pkts digest: 123 #pkts decaps: 123, #pkts decrypt: 123, #pkts verify: 123 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 第 478 页共 844 页 www.china-ccie.com local crypto endpt.: 100.1.1.10, remote crypto endpt.: 100.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x71B34C72(1907575922) PFS (Y/N): N, DH group: none inbound esp sas: spi: 0xC044FF1B(3225747227) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 1, flow_id: SW:1, sibling_flags 80000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4050989/3297) HA KB life last checkpointed at (k): (4051008) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: 第 479 页共 844 页 outbound esp sas: www.china-ccie.com spi: 0x71B34C72(1907575922) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel, } conn id: 2, flow_id: SW:2, sibling_flags 80000046, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4050989/3297) HA KB life last checkpointed at (k): (4051007) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r2# 说明:R2 的 IPsec SA 也从之前的备份状态 STANDBY 变成了活动状态(Active)。 (22)查看 R2 的 HSRP 状态: r2#sh standby brief P indicates configured to preempt. | 第 480 页共 844 页 Interface Grp Pri P State Active Standby www.china-ccie.com Virtual IP Fa0/0 1 100 P Active local 100.1.1.3 100.1.1.10 Fa1/1 2 100 P Active local 30.1.1.3 30.1.1.10 r2# 说明:由于 R3 出现故障,所以 R2 的 HSRP 状态已经从 Standby 变成了 Active 状 态。 (23)再次查看 R2 的 SSO 信息: r2#show redundancy states my state = 13 -ACTIVE peer state = 8 -STANDBY HOT Mode = Duplex Unit ID = 0 Maintenance Mode = Disabled Manual Swact = Enabled Communications = Up client count = 12 client_notification_TMR = 30000 milliseconds RF debug mask = 0x0 第 481 页共 844 页 www.china-ccie.com r2# 说明:由于 R2 的 HSRP 状态已经从 Standby 变成了 Active 状态,所以 SSO 的状态 也从 STANDBY HOT 变成了 ACTIVE,而对端路由器的 SSO 状态则从 ACTIVE 变成了 STANDBY HOT。 (24)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 100.1.1.1 100.1.1.10 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:R1 的 IKE SA 显示正常没有变化。 (25)再次查看 R1 与对端建立的 IKE SA 时间: r1#show crypto isakmp sa detail Codes: C - IKE configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal 第 482 页共 844 页 X - IKE Extended Authentication psk - Preshared key, rsig - RSA signature renc - RSA encryption IPv4 Crypto ISAKMP SA www.china-ccie.com C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap. 1001 100.1.1.1 100.1.1.10 Engine-id:Conn-id = SW:1 ACTIVE 3des sha psk 2 23:54:26 IPv6 Crypto ISAKMP SA r1# 说明:目前 R1 与对端建立的 IKE SA 的 lifetime 还剩 23 小时 54 分,说明不是新 建的,并且请注意 Conn-id = SW:1,还是和之前的值相同,也说明 SA 没有重新建 立而是使用已有的,所以为网络故障实现了无缝切换。 第 483 页共 844 页 NAT Traversal(NAT-T) www.china-ccie.com 大家都知道,在网络中配置了 NAT 时,通过 NAT 的数据包的包头都将被改写, 而经过 IPsec 保护后的数据包在中途传输时,要更改 IP 包头也许会变的不可行,因 为 IPsec 会将 IP 包头保护起来,并生成 hash,如果随意改动 IP 包头,将使该数据包 作废,所以 IPsec 数据包在穿越 NAT 网络时,存在着某些麻烦。 为了解决以上问题,IOS 加入了探测网络路径中是否存在 NAT 的功能,称为 NAT Traversal(NAT 穿越);NAT-T 在 Phase 1 时就开始探测网络路径中是否存在 NAT,检 测的方法是发送测试数据包,数据包对地址做 hash,如果收到的数据包的 hash 没 变化,就认为路径中没有 NAT,如果有 NAT,双方就会执行 NAT-T。测试时发送的包 称为 NAT discovery (NAT-D),源地址和端口与目标地址和端口是分开的,如果有多个, 那么数据包也就有多个包。 当 Phase 1 发现存在 NAT 之后,Phase 2 才会考虑是否采用 NAT-T,不过不用担心, NAT-T 是自动开启的,不用手工配置;NAT-T 是将 IPsec 的数据包当作数据再次封装 在 UDP 中再进行传输的,这样一来,IPsec 的数据包就受到与普通数据一样的对待, 所以 NAT 也就伤不到 IPsec 的数据包了。 在 ISAKMP 中使用目的端口号为 UDP 4500 来协商 NAT-T,而源端口则使用下一 个可用更高的端口,如 4501,在选择端口时,如果端口已经被用了,则使用 4501, 4502,直到可用为止。 注: ★准确地讲,IPsec 是不能穿越 PAT,而静态地址 NAT 映射是可以的。 ★NAT-T 只能让 ESP(Encapsulating Security Protocol)封装穿越 PAT,而 AH (Authentication Header)封装却不可以。 ★NAT Traversa(l NAT-T)是在 IOS 12.2(13)T 以及之后的版本中默认是自动开启的; ★NAT Traversal(NAT-T)在 IOS 没有特定的命令来打开,却有特定的命令来关闭, 命令如: ★Router(config)# no crypto ipsec nat-transparency udp-encapsulation 第 484 页共 844 页 www.china-ccie.com 在 IOS 12.2(13)T 之前的版本没有 NAT-T 的功能,但并不表示 IPsec 数据包就不能 穿过 NAT 网络,如果要穿过,也是可以的,该功能称为 IPSec through NAT,如果 IPsec VPN 连接是从 NAT 本端的设备发起的,不需要做任何配置,但如果 IPsec VPN 连接 是从 NAT 远端的设备发起的,则需要在 NAT 设备上增加配置命令,例如 IPsec VPN 源路由器的 IP 地址是 10.1.1.1,NAT 路由器的外网接口为 F0/1,则需要在 NAT 设备 上增加如下配置命令: ip nat inside source static esp 10.1.1.1 interface f0/1 ip nat inside source static udp 10.1.1.1 500 interface f0/1 500 在 VPN 设备支持 NAT-T 时,如果 IPsec VPN 连接是从 NAT 本端的设备发起的,也 不需要做任何配置,但如果 IPsec VPN 连接是从 NAT 远端的设备发起的,同样需要 在 NAT 路由器上增加如下配置命令: ip nat inside source static udp 10.1.1.1 4500 interface f0/1 4500 ip nat inside source static udp 10.1.1.1 500 interface f0/1 500 出现 IPsec 数据包要穿越 PAT 的情况多数是因为某个分支机构的公网 IP 只有一个 或不够,但又需要将 VPN 路由器放置在内网,配置了内网地址后然后通过外网路由 器进行 NAT 地址转换后出去,一个配置了内网 IP 地址的路由器是不可能和远程设备 建立 VPN 的,所以需要以外网路由器的公网 IP 地址为源去和远端建立 VPN 连接, 这就需要 NAT-T 或 IPSec through NAT。 配置 NAT Traversal(NAT-T) 第 485 页共 844 页 www.china-ccie.com 说明:以上图为例,在 R3 上开启 NAT 功能,并将所有内网数据源 IP 全部转换为 外网接口 F0/1 的地址,然后在 R1 和 R4 之间配置 IPsec LAN-to-LAN VPN 来测试 NAT Traversa(l NAT-T)的效果。当 R1 和 R4 建立 VPN 之后,要保证 R4 的直连网段 20.1.1.0/24 可以和上海公司的 10.1.1.0/24 正常通信。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)# r1(config)#int loopback 0 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#exit r1(config)# 第 486 页共 844 页 r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 www.china-ccie.com 说明:配置 R1 的接口地址,并写默认路由指向 R2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)# r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 说明:配置 R2 的接口地址,因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可,所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 172.16.1.3 255.255.255.0 r3(config-if)#no sh 第 487 页共 844 页 r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload 第 488 页共 844 页 r3(config)# www.china-ccie.com 说明:配置 R3 的接口地址,并写默认路由指向 Internet(路由器 R2),在 R3 上 开启 NAT 功能,并将所有内网数据源 IP 全部转换为外网接口 F0/1 的地址, (4)配置 R4: r4(config)#int f0/0 r4(config-if)#ip add 172.16.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)# r4(config)#int loopback 0 r4(config-if)#ip add 20.1.1.4 255.255.255.0 r4(config-if)#exit r4(config)# r4(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.3 说明:配置 R4 的接口地址,并写默认路由指向外网路由器 R3。 (5)测试 R3 到 R1 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. 第 489 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 140/203/288 ms r3# 说明:因为 R3 与 R1 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 R1 都是可达的,所以 R3 与 R1 通信正常。 (6)测试 R3 到上海公司 10.1.1.0/24 的连通性: r3#ping 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 R1 的通信,所以 R3 无法访问上海公司的私有网段 10.1.1.0/24。 (7)测试 R4 到 R1 的连通性: r4#ping 12.1.1.1 第 490 页共 844 页 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 80/200/280 ms r4# 说明:因为 R3 与 R1 通信正常,并且 R3 将内网所有数据的源 IP 转换成了自己的 外网接口地址,所以 R4 与 R1 通信正常,。 (8)测试 R4 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r4# 说明:因为 R3 都无法访问上海公司的私有网段 10.1.1.0/24,所以 R4 更不能。 (9)测试北京公司内网 20.1.1.0/24 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 source 20.1.1.4 第 491 页共 844 页 Type escape sequence to abort. www.china-ccie.com Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 20.1.1.4 ..... Success rate is 0 percent (0/5) r4# 说明:因为 R3 都无法访问上海公司的私有网段 10.1.1.0/24,所以北京公司内网 20.1.1.0/24 更不能。 2.配置 IPsec LAN-to-LAN VPN (1)在 R1 上配置 IPsec LAN-to-LAN VPN: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit r1(config)# r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3 r1(config)# r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac 第 492 页共 844 页 r1(cfg-crypto-trans)#exit www.china-ccie.com r1(config)# r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 20.1.1.0 0.0.0.255 r1(config)# r1(config)# r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 00:13:57.263: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit 说明:R1 上正常配置连接 R4 的 IPsec LAN-to-LAN VPN,但 R1 的 VPN peer 是指向 R3 的外网接口 F0/1 的,因为 R3 已经通过 NAT 将内网所有数据包的源 IP 转换成了 接口 F0/1 的地址,R4 接口的私有地址对外是不可见的。 第 493 页共 844 页 (2)在 R4 上配置 IPsec LAN-to-LAN VPN: www.china-ccie.com r4(config)#crypto isakmp policy 1 r4(config-isakmp)#encryption 3des r4(config-isakmp)#hash sha r4(config-isakmp)#authentication pre-share r4(config-isakmp)#group 2 r4(config-isakmp)#exit r4(config)# r4(config)#crypto isakmp key 0 cisco123 address 12.1.1.1 r4(config)# r4(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r4(cfg-crypto-trans)#exit r4(config)# r4(config)#access-list 100 permit ip 20.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 r4(config)# r4(config)# r4(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r4(config-crypto-map)#set peer 12.1.1.1 r4(config-crypto-map)#set transform-set ccie 第 494 页共 844 页 r4(config-crypto-map)#match address 100 www.china-ccie.com r4(config-crypto-map)#exit r4(config)# r4(config)#int f0/0 r4(config-if)#crypto map l2l r4(config-if)# *Mar 1 00:31:05.771: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r4(config-if)#exit r4(config)# 说明:R4 上正常配置指向 R1 的 IPsec LAN-to-LAN VPN。 3.测试 NAT Traversal(NAT-T): (1)再次测试北京公司内网 20.1.1.0/24 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 source 20.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 20.1.1.4 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 216/296/364 ms r4# 第 495 页共 844 页 www.china-ccie.com 说明:因为北京公司内网 20.1.1.0/24 向上海公司 10.1.1.0/24 发出的数据是从 NAT 本端的设备发起的,所以不需要做任何配置,IPsec VPN 就能建立成功,只有在 IPsec VPN 连接是从 NAT 远端的设备发起的,才需要在 NAT 路由器上增加配置命令。 (2)查看 R4 上的 IKE SA(ISAKMP SA): r4#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 172.16.1.4 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r4# 说明:R4 已经正常建立了与 R1 的 IKE SA。 (3)查看 R4 上的 IPsec SA: r4#show crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: l2l, local addr 172.16.1.4 第 496 页共 844 页 protected vrf: (none) www.china-ccie.com local ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) current_peer 12.1.1.1 port 4500 PERMIT, flags={origin_is_acl,} #pkts encaps: 13, #pkts encrypt: 13, #pkts digest: 13 #pkts decaps: 13, #pkts decrypt: 13, #pkts verify: 13 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 2, #recv errors 0 local crypto endpt.: 172.16.1.4, remote crypto endpt.: 12.1.1.1 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0xCEC0B3D6(3468735446) inbound esp sas: spi: 0x5B08DD8C(1527307660) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 1, flow_id: SW:1, crypto map: l2l 第 497 页共 844 页 www.china-ccie.com sa timing: remaining key lifetime (k/sec): (4552994/3535) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xCEC0B3D6(3468735446) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4552994/3534) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: 第 498 页共 844 页 outbound pcp sas: www.china-ccie.com r4# 说明:R4 上当前的 IPsec SA 显示了正确的网段信息与状态。 (4)查看 R4 的 IOS 信息: r4#sh version Cisco IOS Software, 2600 Software (C2691-ADVENTERPRISEK9_IVS-M), Version 12.4(9)T7, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2008 by Cisco Systems, Inc. Compiled Thu 10-Jan-08 16:20 by prod_rel_team ROM: ROMMON Emulation Microcode ROM: 2600 Software (C2691-ADVENTERPRISEK9_IVS-M), Version 12.4(9)T7, RELEASE SOFTWARE (fc3) r4 uptime is 33 minutes System returned to ROM by unknown reload cause - suspect boot_data[BOOT_COUNT] 0x0, BOOT_COUNT 0, BOOTDATA 19 System image file is "tftp://255.255.255.255/unknown" 第 499 页共 844 页 www.china-ccie.com This product contains cryptographic features and is subject to United States and local country laws governing import, export, transfer and use. Delivery of Cisco cryptographic products does not imply third-party authority to import, export, distribute or use encryption. Importers, exporters, distributors and users are responsible for compliance with U.S. and local country laws. By using this product you agree to comply with applicable laws and regulations. If you are unable to comply with U.S. and local laws, return this product immediately. A summary of U.S. laws governing Cisco cryptographic products may be found at: http://www.cisco.com/wwl/export/crypto/tool/stqrg.html If you require further assistance please contact us by sending email to export@cisco.com. Cisco 2691 (R7000) processor (revision 0.1) with 124928K/6144K bytes of memory. Processor board ID XXXXXXXXXXX R7000 CPU at 160MHz, Implementation 39, Rev 2.1, 256KB L2, 512KB L3 Cache 2 FastEthernet interfaces 4 Serial interfaces 第 500 页共 844 页 DRAM configuration is 64 bits wide with parity enabled. www.china-ccie.com 55K bytes of NVRAM. 16384K bytes of ATA System CompactFlash (Read/Write) Configuration register is 0x2142 r4# 说明:R4 的 IOS 版本为 12.4(9)T7,高于 IOS 12.2(13)T,所以 NAT Traversa(l NAT-T) 默认是开启的。 (5)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:R1 上也显示了已经正常建立与 R4 的 IKE SA。 第 501 页共 844 页 (6)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa www.china-ccie.com interface: FastEthernet0/0 Crypto map tag: l2l, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0) current_peer 23.1.1.3 port 4500 PERMIT, flags={origin_is_acl,} #pkts encaps: 13, #pkts encrypt: 13, #pkts digest: 13 #pkts decaps: 13, #pkts decrypt: 13, #pkts verify: 13 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x5B08DD8C(1527307660) 第 502 页共 844 页 www.china-ccie.com inbound esp sas: spi: 0xCEC0B3D6(3468735446) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 1, flow_id: SW:1, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4452512/3480) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x5B08DD8C(1527307660) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 2, flow_id: SW:2, crypto map: l2l sa timing: remaining key lifetime (k/sec): (4452512/3480) 第 503 页共 844 页 IV size: 8 bytes replay detection support: Y Status: ACTIVE www.china-ccie.com outbound ah sas: outbound pcp sas: r1# 说明:R1 上当前的 IPsec SA 显示了正确的网段信息与状态。 (7)查看 R3 上的 NAT 转换情况: r3#show ip nat translations Pro Inside global Inside local Outside local Outside global udp 23.1.1.3:500 172.16.1.4:500 12.1.1.1:500 12.1.1.1:500 udp 23.1.1.3:4500 172.16.1.4:4500 12.1.1.1:4500 12.1.1.1:4500 r3# 说明:可以看到 R4 通过 NAT-T 与远端建立 VPN 所使用的端口情况(UDP 4500), 以及 IKE 的协商端口(UDP 500)。 (8)清除当前所有的 IPsec 会话信息,再次测试 NAT-T: R1 第 504 页共 844 页 r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status www.china-ccie.com IPv6 Crypto ISAKMP SA r1# R4: r4#show cry isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r4# R3: r3#clear ip nat translation * 第 505 页共 844 页 r3# r3#show ip nat translations www.china-ccie.com r3# 说明:R1,R4 的 IPsec 会话已经全部清除,并且 R3 上的 NAT 转换也已经清除。 (9)测试先从上海公司 10.1.1.0/24 向北京公司内网 20.1.1.0/24 发送数据的连通 性: r1#ping 20.1.1.4 source 10.1.1.1 repeat 20000 Type escape sequence to abort. Sending 20000, 100-byte ICMP Echos to 20.1.1.4, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 ......................... 说明:因为上海公司 10.1.1.0/24 向北京公司内网 20.1.1.0/24 发送数据是从 NAT 远端的设备发起的,所以必须在 NAT 路由器上增加配置命令,否则 IPsec VPN 永远 无法通信。 (10)在 NAT 路由器 R3 上增加 NAT-T 必备的命令: r3(config)# ip nat inside source static udp 172.16.1.4 4500 interface f0/1 4500 r3(config)#ip nat inside source static udp 172.16.1.4 500 interface f0/1 500 第 506 页共 844 页 www.china-ccie.com 说明::因为上海公司 10.1.1.0/24 向北京公司内网 20.1.1.0/24 发送数据是从 NAT 远端的设备发起的,所以必须在 NAT 路由器上增加配置命令,命令就是将 NAT 中由 器外网接口的 UDP 端口 500 和 4500 都映射到内网 VPN 地址的 500 和 4500。 (11)查看从上海公司 10.1.1.0/24 向北京公司内网 20.1.1.0/24 发送数据的连通 性: r1#ping 20.1.1.4 source 10.1.1.1 repeat 20000 Type escape sequence to abort. Sending 20000, 100-byte ICMP Echos to 20.1.1.4, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 ..............................................!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 60 percent (70/116), round-trip min/avg/max = 156/323/580 ms r1# 说明:在 NAT 路由器上增加配置命令之后,上海公司 10.1.1.0/24 到北京公司内 网 20.1.1.0/24 的流量已经通了。 (12)再次查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 第 507 页共 844 页 23.1.1.3 12.1.1.1 QM_IDLE www.china-ccie.com 1002 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:R1 再次建立了与 R4 的 IKE SA。 (13)再次查看 R4 上的 IKE SA(ISAKMP SA): r4#show cry isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 172.16.1.4 12.1.1.1 QM_IDLE 1002 0 ACTIVE IPv6 Crypto ISAKMP SA r4# 说明:R4 也再次建立了与 R1 的 IKE SA。 (14)再次查看 R3 上的 NAT 转换情况: r3#show ip nat translations Pro Inside global Inside local Outside local Outside global 第 508 页共 844 页 udp 23.1.1.3:500 172.16.1.4:500 12.1.1.1:500 www.china-ccie.com 12.1.1.1:500 udp 23.1.1.3:500 172.16.1.4:500 --- --- udp 23.1.1.3:4500 172.16.1.4:4500 12.1.1.1:4500 12.1.1.1:4500 udp 23.1.1.3:4500 172.16.1.4:4500 --- --- r3# 说明:R3 上再次看到 R4 通过 NAT-T 与远端建立 VPN 所使用的端口情况 (UDP 4500),以及 IKE 的协商端口(UDP 500)。 4.再次测试穿过 NAT 建立的 IPsec VPN: (1)再次清除当前所有的 IPsec 会话信息,然后测试 IPsec VPN: r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r1# r4#show cry isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 第 509 页共 844 页 IPv6 Crypto ISAKMP SA r4# www.china-ccie.com R3: r3#clear ip nat translation * r3# r3#show ip nat translations r3# 说明:R1,R4 的 IPsec 会话已经全部清除,并且 R3 上的 NAT 转换也已经清除。 (2)在 NAT 路由器 R3 上配置一对一静态 NAT 映射: r3(config)#no ip nat inside source list 3 interface FastEthernet0/1 overload r3(config)#ip nat inside source static 172.16.1.4 interface f0/1 r3(config)# 说明:R3 将自己外网接口地址静态映射到 VPN 路由器 R4。 第 510 页共 844 页 www.china-ccie.com (3)查看 R3 上的 NAT 转换情况: r3#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 23.1.1.3 172.16.1.4 --- --- r3# 说明:R3 已经显示将自己外网接口地址静态映射到 VPN 路由器 R4。 (4)测试北京公司内网 20.1.1.0/24 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 source 20.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 20.1.1.4 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 224/282/332 ms r4# 说明:在 NAT 路由器配置一对一静态 NAT 映射后,北京公司内网 20.1.1.0/24 到 上海公司 10.1.1.0/24 的流量也可以通。 第 511 页共 844 页 www.china-ccie.com (5)将 IPsec 封装改为 AH: R4: r4(config)#int f0/0 r4(config-if)#no crypto map l2l r4(config-if)#exit *Mar 1 01:10:44.539: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r4(config-if)#exit r4(config)#no crypto map l2l r4(config)#no crypto ipsec transform-set ccie esp-3des esp-sha-hmac r4(config)#crypto ipsec transform-set ccie ah-sha-hmac r4(cfg-crypto-trans)#exit r4(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r4(config-crypto-map)#set peer 12.1.1.1 r4(config-crypto-map)#set transform-set ccie r4(config-crypto-map)#match address 100 r4(config-crypto-map)#exit 第 512 页共 844 页 r4(config)# www.china-ccie.com r4(config)#int f0/0 r4(config-if)#crypto map l2l r4(config-if)# *Mar 1 01:12:13.811: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r4(config-if)# r4(config-if)#exit r4(config)# R1: r1(config)#int f0/0 r1(config-if)#no crypto map l2l r1(config-if)#exit r1(config)# *Mar 1 01:12:35.127: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF r1(config)# r1(config)#no crypto map l2l r1(config)#no crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(config)#crypto ipsec transform-set ccie ah-sha-hmac 第 513 页共 844 页 r1(cfg-crypto-trans)#exit www.china-ccie.com r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)# r1(config)#int f0/0 r1(config-if)#crypto map l2l r1(config-if)# *Mar 1 01:13:57.971: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exit r1(config)# 说明:将 R4 和 R1 的 IPsec 封装改为 AH 封装。 (6)查看当前的 transform-set 了解 IPsec 封装: r4#show crypto ipsec transform-set Transform set ccie: { ah-sha-hmac } will negotiate = { Tunnel, }, 第 514 页共 844 页 r4# 说明:当前已经使用 AH 的 IPsec 封装。 www.china-ccie.com (7)再次测试北京公司内网 20.1.1.0/24 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 source 20.1.1.4 repeat 100 Type escape sequence to abort. Sending 100, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 20.1.1.4 ...................................................................... .............................. Success rate is 0 percent (0/100) r4# 说明:AH 封装的数据包是无法穿过 NAT 的,所以北京公司内网 20.1.1.0/24 到上 海公司 10.1.1.0/24 通信失败。 (8)再次将 IPsec 封装改为 ESP 封装: 第 515 页共 844 页 r4(config)#int f0/0 www.china-ccie.com r4(config-if)#no crypto map l2l r4(config-if)#exit r4(config)# r4(config)#no crypto map l2l r4(config)#no crypto ipsec transform-set ccie ah-sha-hmac r4(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r4(cfg-crypto-trans)#exit r4(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r4(config-crypto-map)#set peer 12.1.1.1 r4(config-crypto-map)#set transform-set ccie r4(config-crypto-map)#match address 100 r4(config-crypto-map)#exit r4(config)#int f0/0 r4(config-if)#crypto map l2l r4(config-if)# r4(config-if)# *Mar 1 01:20:13.423: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r4(config-if)#exit 第 516 页共 844 页 r4(config)# www.china-ccie.com r1(config)#int f0/0 r1(config-if)#no crypto map l2l r1(config-if)#exit r1(config)# r1(config)#no crypto map l2l r1(config)#no crypto ipsec transform-set ccie ah-sha-hmac r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit r1(config)#crypto map l2l 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. r1(config-crypto-map)#set peer 23.1.1.3 r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#match address 100 r1(config-crypto-map)#exit r1(config)#int f0/0 r1(config-if)#crypto map l2l 第 517 页共 844 页 r1(config-if)# www.china-ccie.com *Mar 1 01:20:26.115: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)# 说明:将 R4 和 R1 的 IPsec 封装改为 ESP 封装。 (9)查看当前的 transform-set 了解 IPsec 封装: r4#show crypto ipsec transform-set Transform set ccie: { esp-3des esp-sha-hmac } will negotiate = { Tunnel, }, r4# 说明:当前已经已经从 AH 改为 ESP 封装。 (10)再次测试北京公司内网 20.1.1.0/24 到上海公司 10.1.1.0/24 的连通性: r4#ping 10.1.1.1 source 20.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: 第 518 页共 844 页 Packet sent with a source address of 20.1.1.4 www.china-ccie.com .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 264/327/392 ms r4# 说明:因为 IPsec 从 AH 改为 ESP 封装,所以北京公司内网 20.1.1.0/24 到上海公 司 10.1.1.0/24 恢复了通信。 (11)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1007 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:IPsec 从 AH 改为 ESP 封装后,IKE SA(ISAKMP SA)也正常建立了。 第 519 页共 844 页 Easy VPN(EzVPN) www.china-ccie.com 概述 在前文我们介绍的所有 VPN 中,要在一个网络与另一个网络之间建立 VPN 连接, 需要在双方的路由器上进行相关参数配置,如配置 IKE(ISAKMP)策略、认证标识、 IPsec transform、以及 crypto map 等等,但是在某些特殊环境下,比如在没有能够支 持 VPN 功能路由器的家庭网络,以及出差在外的没有使用路由器就接入 Internet 的 办公人员,如果在这种情况下还需要与公司总部建立 VPN 以保证数据加密传输,使 用传统的 VPN 技术将难以实现,所以我们将考虑使用一种简单易用的 VPN 实现方式, 来满足上述环境下的 VPN 连接要求,如下图: 在上图的网络环境中,在家办公的 Home Office,大多使用了没有 VPN 功能路由 器或 Modem 拨号连接,以及出差在外的没有使用路由器就接入 Internet 的办公人 员,当他们需要使用 VPN 来保证与公司总部的数据加密传输时,这时需要实现的 VPN 必须着重于简单的配置,简单的管理,并且方便维护,同时也要考虑到这些环 境的 IP 地址通常都是通过 DHCP 动态获得的,事先无法确定公网 IP 地址,为了在这 样的环境和需求下布署简单易用的 VPN,思科推出了 Easy VPN,即 EzVPN,如下: 第 520 页共 844 页 www.china-ccie.com Easy VPN(EzVPN)是本小节的重点。 EzVPN 同样是属于 IPsec 范畴内的 VPN 技术,需要以 IPsec 为基础来实现 VPN 功 能,大家都还记得,要完成 IPsec VPN 连接,必须在双方配置相同的 IKE(ISAKMP) 策略、认证标识、IPsec transform 等一系列策略,同样,EzVPN 也必须遵守这全部的 规则。但是我们知道,要完成 IPsec VPN 的种种配置,需要专业的技术人员才能完 成,那么 Home Office 以及出差在外的移动办公人员又如何自己去完成这专业性的 差事呢?不用担心,这全部的工作全部交给 EzVPN,因为 EzVPN 能够自动去分析和 完成这全部的工作,以保证 IPsec VPN 的正常连接,而不需要像在路由器上那样进 行专业的配置,否则 EzVPN 就不算是一个简单易用的 VPN 架构,这也就失去了开发 它的意义。 EzVPN 是如何脱离专业的命令配置而自行完成 IPsec VPN 连接的呢?这就需要了 解 EzVPN 的整个运行过程: EzVPN 分为 EzVPN Server 和 EzVPN Remote(本文将 EzVPN Remote 等同于 EzVPN Client),EzVPN Server 通常就是我们的公司总部,EzVPN Server 必须配置在公司总部 的支持 EzVPN 功能的硬件设备上,如路由器,防火墙以及 VPN 集中器都可以,并且 公司总部端的 EzVPN Server 必须具备静态固定的公网 IP 地址,用以接受任何 EzVPN Client 的 IPsec VPN 连接请求。 第 521 页共 844 页 www.china-ccie.com EzVPN Client 则布署在需要和公司总部连接 IPsec VPN 的 Home Office 以及出差在 外的移动办公人员处,EzVPN Client 也可以配置在硬件路由器或防火墙上(准确地讲 这时就叫 EzVPN Remote),但如果这样去实现,就需要专业的配置,那还不如不用 EzVPN,所以 EzVPN Client 可以通过软件的形式安装到 PC 上(准确地讲这时就叫 EzVPN Client),当以软件方式安装了 EzVPN Client 之后,所有的必须的 IPsec 命令配 置就交给软件自动去完成,不需要人工干预,从而真正实现简单易用。但我们知道, 要完成 IPsec VPN 连接,双方必须就 IKE(ISAKMP)策略、认证标识、IPsec transform 保持一致,那么通过 EzVPN Client 实现的 IPsec 又如何去和通过专业技术人员在公司 总部的硬件设备上配置的 EzVPN Server 策略保持一致呢?这个答案也很简单,那就 是 EzVPN Server 直接告诉 EzVPN Client 该使用什么样的 IPsec 策略,因为在 EzVPN Client 软件中已经预先集成了几乎所有的 IPsec 策略,当 EzVPN Client 向 EzVPN Server 请求建立 IPsec VPN 连接时,EzVPN Server 就会将自己通过专业人员配置好的 IPsec 策略发向 EzVPN Client,相当于将自己的 IPsec 策略推送到 EzVPN Client,当 EzVPN Client 收到这些 IPsec 策略之后,就从自己预先定义好的策略库中选出完全匹配的策 略来应用,最终在与 EzVPN Server 双方 IPsec 策略保持一致之后建立 IPsec VPN。 毕竟 EzVPN Client 的 IPsec 策略是预先定义好的,也许并不支持 EzVPN Server 发 来的任何策略要求,某些不支持的 IPsec 策略包括: Diffie-Hellman (D-H) groups 1, IPsec 安全封装协议 AH(Authentication Header), IPsec Mode:Transport mode 因为在普通 IPsec VPN 将双方 LAN 连通时,可以让双方 LAN 的私有地址段进行相 互通信,但一个 EzVPN Client 端和 EzVPN Server 端连接 IPsec VPN 之后,那么 EzVPN Client 又是以什么地址为身份去访问公司总部的资源呢?也许有人会说既然 EzVPN Client 能够连接上 EzVPN Server,那么它应该是有地址的啊,为什么还要考虑 EzVPN Client 的源地址身份呢?这是因为通常 EzVPN Client 端的 IP 地址都是动态分配的公 网 IP 地址,比如家里的 PC 通过 ADSL 上网获得的公网地址,如果 EzVPN Client 直接 以公网 IP 地址穿过 VPN 去访问公司总部的内网资源,公司总部的内网会发现原来 只是 Internet 上一个普通地址在和自己通信,那么 EzVPN Server 自然就会将总部回 复的数据包当作普通流量发向 Internet 而不走 VPN,这时 EzVPN Client 又如何和公司 总部的内网正常通过 VPN 通信呢?基于上述原因,所有成功连接到 EzVPN Server 之 后的 EzVPN Client,都会从 EzVPN Server 获得一个靠 DHCP 自动分发的 IP 地址,所有 通过 VPN 和公司总部内网通信的源 IP 地址都会是这个自动获得的 IP 地址,这个也 第 522 页共 844 页 www.china-ccie.com 像是你自己的 PC 网卡可能配置上一个 IP 地址,但你拨 ADSL 上网之后,会自动获得 一个公网 IP 地址,你拨 EzVPN 连接之后,也会自动获得一个 VPN 地址,EzVPN Client 获得的地址默认掩码是/32,但可以改变这种默认行为。 所以在配置 EzVPN Server 时,还需要配置供自动分配给 EzVPN Client 的地址池, EzVPN Server 动态分配给 Client 的地址可以是任意地址段,即使和自己当前连接的 网络属同一网段也没关系。 因为可能会有多个 EzVPN Client 同时连接到 EzVPN Server,而每个 EzVPN Client 都会获得一个 EzVPN Server 自动分配的 IP 地址,这时,EzVPN Server 为了区分分配 出去的 IP 地址分别对应着哪个 EzVPN Client,它会自动产生一条/32 位的静态路由指 向对应的 EzVPN Client,这个功能称为 Reverse route injection (RRI),但 RRI 的全部功 能并不是指产生一条/32 位的静态路由指向对应的 EzVPN Client,它还包括将该/32 的静态路由自动重分布进各动态路由协议,而重分布并不是自动执行的,只有在手 工开启了 Reverse route injection (RRI),才能获得完整的功能,否则只能自动产生一 条/32 的静态路由而不会自动重分布进各动态路由协议。 当 EzVPN Client 与 EzVPN Server 建立 VPN 连接之后,EzVPN Client 端就能够正 常访问公司总部的内网资源,这是因为默认情况下,所有 EzVPN Client 的流量都会 从 VPN 接口上发出,最后所有的流量都会到达 EzVPN Server 端,也就是 EzVPN Client 端的所有流量都被 IPsec VPN 加密发到 EzVPN Server;但是我们想象一下,如果 EzVPN Client 端的所有流量都通过 VPN 接口发到 EzVPN Server 端,那 EzVPN Client 并不是发 到公司总部而是要发到 Internet 的流量怎么办?我们应该将需要发到公司总部的流 量才通过 IPsec VPN 加密发到 EzVPN Server,而其它如发到 Internet 的流量还是从正 常接口出去,这就相当于普通 IPsec VPN 中的定义感兴趣流量,在 EzVPN 中,这里 称为隧道分离(Split Tunneling),隧道分离让 EzVPN Client 只将需要发到公司总部的 流量才通过 IPsec VPN 加密发到 EzVPN Server,而其它如发到 Internet 的流量还是从 正常接口出去,这样就能够让 EzVPN Client 端访问公司总部和上 Internet 两不误。 隧道分离(Split Tunneling)是在 EzVPN Server 上配置的,配置之后会告知 EzVPN Client 哪些流量需要通过 IPsec VPN 加密发到 EzVPN Server,隧道 分离(Split Tunneling) 通过 ACL 匹配相当的流量,并应用到 Crypto map,静态 map(static map)和动态 map(dynamic map)都可以。 第 523 页共 844 页 www.china-ccie.com 如果 Easy VPN Client 断开连接之后,由于 Easy VPN Server 并不是马上就能知道, 所以在 Easy VPN Client 再次发起连接时,Easy VPN Server 会因为已经存在一条连接 记录而拒绝新的请求,所以加入了一个称为 Initial Contact 的功能,在 Easy VPN Server 收到 Easy VPN Client 新的连接请求时,会删除与该 Easy VPN Client 旧连接而接受新 连接请求,目前 Initial Contact 是默认开启的。 当 Easy VPN Client 向 Easy VPN Server 发起 IPsec 连接请求时,对于 IKE Phase One 的认证,在 Easy VPN Server 端必须通过 AAA 的方式来定义,但不一定要使用 AAA 服务器,也可以使用 Easy VPN Server 本地认证,但必须通过 AAA 方式来定义。当 Easy VPN Client 通过 Easy VPN Server 的认证之后,Easy VPN Server 根据一个 ISAKMP 组分配某些策略,如 IP 地址,隧道分离参数等等,如果 Easy VPN Client 提供的认证 信息没有与定义好 ISAKMP 组匹配,那么则与默认的 ISAKMP 组匹配,但默认的 ISAKMP 组也是必须定义的。一个 ISAKMP 组中所有的用户分配到的策略都是相同的, 这称为 Group-Based Policy Control。 某些时候,我们需要为不同的用户分发不同的策略信息,哪怕是他们属于同一 个 ISAKMP 组,这样基于特定用户分发特定策略则不是基于 ISAKMP 组分发策略的机 制称为 User-Based Policy Control,某个用户的 User-Based Policy Control 策略优先于 Group-Based Policy Control。 上述所说的 User-Based Policy Control 的用户分发策略的行为必须在 IOS Release 12.3(4)T 或更高版本才可以实现,并且必须靠 RADIUS 服务器才能实现,但在 IOS Release 12.4(9)T 或更高版本中,User-Based Policy Control 可以通过配置 Virtual Tunnel Interface 来实现。 对于每个用户同时登录的会话数以及每个组中可以同时发起的会话数都是可以 做限制的,可以通过 AAA 服务器或通过 IOS 命令行都可以实现。 注: ★Cisco Easy VPN Server 可以在配置在 Cisco IOS Release 12.2(8)T 或更高版本。 ★Cisco Easy VPN Remote 可以在配置在 Cisco IOS Release 12.2(4)YA 或更高版本。 第 524 页共 844 页 www.china-ccie.com ★Easy VPN Server 可以接受任何地址的 Easy VPN Client 连接。 ★只能 Easy VPN Server 对 Easy VPN Client 发起认证,Easy VPN Client 不能认证 Easy VPN Server。 ★安装在 EzVPN Client 端的拨号连接软件请自行下载,建议下载 5.0 或更高版本, 也可通过以下地址进行 EzVPN Client 下载: http://www.china-ccie.com/download/EasyVPNClient/EasyVPNClient.rar 目前 Cisco 产品中能够配置 EzVPN 的设备包括 Router(路由器),PIX(防火墙), ASA(防火墙),VPN 集中器,所以我们会对各设备进行 EzVPN 实验配置举例,但 VPN 集中器除外。 EzVPN over Router 在本小节,我们在 Router 与 Router 之间配置 EzVPN,即配置 EzVPN over Router。 配置 EzVPN over Router 第 525 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 EzVPN 的效果,其中远程的 PC 机需要 直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 R1 与 R3 能够通信,R2 不会配置任何路由,R2 不允许拥有公 司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,R1 为公司总部的 EzVPN Server,PC 需要先和 R1 的公网出口能够通信,然后通过与 R1 建立 EzVPN,最终通 过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公网的通信;因为 PC 要先和 R1 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 R1 的公网是通的。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit 第 526 页共 844 页 r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#ip route 4.4.4.4 255.255.255.255 10.1.1.4 r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 第 527 页共 844 页 r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# www.china-ccie.com r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 第 528 页共 844 页 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip nat outside 第 529 页共 844 页 r3(config-if)#exit r3(config)# www.china-ccie.com r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit 第 530 页共 844 页 r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口路由器 R1。同时配 置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 531 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 R1 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! 第 532 页共 844 页 www.china-ccie.com Success rate is 100 percent (5/5), round-trip min/avg/max = 52/99/164 ms r3# 说明:因为 R3 与 R1 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 R1 都是可达的,所以 R3 与 R1 通信正常。 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/63/100 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.U.U 第 533 页共 844 页 Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 R1 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 534 页共 844 页 Gateway of last resort is not set www.china-ccie.com 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 (6)测试 PC 到 R1 的连通性: 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 第 535 页共 844 页 www.china-ccie.com 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 R1 通信正常。 (7)测试 PC 到 R2 的 Loopback 连通性: 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 R2 的 Loopback 通信正常。 (8)查看 PC 与 R2 的 Loopback 通信时的源地址: 说明:因为 R3 已经配置 NAT 将 PC 所在的网段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 是使用源地址 23.1.1.3 与 R2 的 Loopback 通信的,同样也应该是使用 第 536 页共 844 页 源地址 23.1.1.3 与 R1 通信的。 www.china-ccie.com (9)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 (10)查看 PC 的路由表情况: 第 537 页共 844 页 www.china-ccie.com 说明:从 PC 的路由转发表中可以看出,PC 的任何数据包都是发向自己的默认网 关(即 R3 的内网接口)30.1.1.3 的,所以所有与外部的数据包是否通畅全靠 R3。 (11)查看 R3 的 NAT 转换表: r3#sh ip nat translations Pro Inside global Inside local Outside local Outside global udp 23.1.1.3:138 1.1.1.1:138 1.1.1.255:138 1.1.1.255:138 icmp 23.1.1.3:512 30.1.1.1:512 2.2.2.2:512 2.2.2.2:512 icmp 23.1.1.3:512 30.1.1.1:512 4.4.4.4:512 4.4.4.4:512 icmp 23.1.1.3:512 30.1.1.1:512 10.1.1.4:512 10.1.1.4:512 第 538 页共 844 页 icmp 23.1.1.3:512 30.1.1.1:512 12.1.1.2:512 www.china-ccie.com 12.1.1.2:512 r3# 说明:R3 已经将 PC 发往外部的数据源地址转换成自己的外网接口地址 23.1.1.3。 3.在公司总部路由器 R1 上配置 EzVPN (1)配置 AAA 认证: r1(config)#aaa new-model r1(config)#aaa authentication login cisco1 local group radius r1(config)#aaa authorization network cisco2 local group radius r1(config)#username chinaccie password chinaccie 说明:路由器上 AAA 为 EzVPN 的必配部分,定义使用本地用户数据库认证,并 创建了本地用户名 chinaccie 以及密码 chinaccie。 (2)配置 IKE(ISAKMP)策略: r1(config)#crypto isakmp policy 1 r1(config-isakmp)#encryption 3des r1(config-isakmp)#hash sha r1(config-isakmp)#authentication pre-share r1(config-isakmp)#group 2 r1(config-isakmp)#exit 说明:定义了 ISAKMP policy 1,加密方式为 3des,hash 算法为 sha,认证方式为 第 539 页共 844 页 www.china-ccie.com Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (3)定义 EzVPN Client 连接上来后自动分配的地址池: r1(config)#ip local pool net10 10.1.1.100 10.1.1.200 说明:分配给 EzVPN Client 连接上来后地址池为 10.1.1.100- 10.1.1.200。 (4)配置用户组策略,每个连接上来的 EzVPN Client 都与一个用户组相关联, 如果没有配置特定组,但配置了默认组,用户将和默认组相关联: r1(config)#crypto isakmp client configuration group chinaccie r1(config-isakmp-group)#key cisco123 r1(config-isakmp-group)#dns 202.96.209.133 r1(config-isakmp-group)#pool net10 r1(config-isakmp-group)#domain china-ccie.com r1(config-isakmp-group)#exit 说明:用户组名为 chinaccie,该组的密码为 cisco123,所有连上来的 Client 分配 的地址池名为 net10,即前面定义的地址池,以及其它一些参数。 (5)配置 IPsec transform r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac r1(cfg-crypto-trans)#exit 说明:配置了 transform-set 为 ccie,其中数据封装使用 esp 加 3des 加密,并且 第 540 页共 844 页 www.china-ccie.com 使用 esp 结合 sha 做 hash 计算,默认的 IPsec mode 为 tunnel。 (6)定义 crypto map r1(config)#crypto dynamic-map mymap 1 r1(config-crypto-map)#reverse-route r1(config-crypto-map)#set transform-set ccie r1(config-crypto-map)#exit 说明:动态 crypto map 和静态 crypto map 都可以,调用的 IPsec transform 为 ccie, 在路由器中必须配置 reverse-route 功能。 (7)关联认证信息: r1(config)#crypto map ezvpn client configuration address respond (如果 client 是 1.x,则不是 respond 而是 initiate) r1(config)#crypto map ezvpn client authentication list cisco1 (定义认证) r1(config)#crypto map ezvpn isakmp authorization list cisco2 (定义认证查询 IKE querying) r1(config)#crypto map ezvpn 1 ipsec-isakmp dynamic mymap (8)应用 crypto map: 第 541 页共 844 页 r1(config)#int f0/0 www.china-ccie.com r1(config-if)#crypto map ezvpn *Mar 1 00:27:51.587: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON r1(config-if)#exi 说明:将 crypto map 关联到外网接口 F0/0。 4.测试 EzVPN (1)在 PC 上创建 EzVPN 连接: 在 PC 上安装完 EzVPN Client 软件之后,打开后出现以下界面: 第 542 页共 844 页 单击 New,出现如下菜单需要填写信息: www.china-ccie.com 说明:填写的信息必须与 EzVPN Server 上配置的一致,其它 host 必须为 EzVPN Server(即 R1)的外网接口地址 12.1.1.1,Group Authentication 的 Name 为用户组的 名字 chinaccie,Password 是之前定义的 cisco123,填写完后,单击 Save 保存。 保存填写的信息之后,出现如下信息: 第 543 页共 844 页 www.china-ccie.com 说明:右键单击已保存的连接名,然后选择菜单中的 Connect 进行 EzVPN 连接。 向 EzVPN Server 成功发送连接请求之后,将出现如下认证提示: 第 544 页共 844 页 www.china-ccie.com 说明:输入前面创建的本地用户名 chinaccie 以及密码 chinaccie。 等 EzVPN 连接成功之后,将在右下角出现金色小锁的图标,右键单击并选择 Statistics 查看详细信息,如下: 选择 Statistics 查看详细信息后,出现如下信息框: 第 545 页共 844 页 www.china-ccie.com 说明:PC 上的 EzVPN 连接成功后,从 EzVPN Server 那里获得了地址 10.1.1.100, 还可以看到其它各项 IPsec 的安全参数情况,并且在这里也能说明,EzVPN Client 所 在的网段的 NAT 是不影响 EzVPN 的建立的。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 546 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部路由器 R1 建立 EzVPN 连接,所以现在与公司总部的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (3)查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的路径走向: 第 547 页共 844 页 www.china-ccie.com 说明:从 PC 发向公司总部的数据包直接就到达了公司总部路由器 R1,说明中间 的多跳已经被 VPN 隧道取代为一跳了。 (4)查看 PC 到公司总部的数据包源地址: 说明:EzVPN Client 是以从 Server 那里动态分配的地址为源和 Server 的网段进行 通信的,这里也能说明,EzVPN Client 从 Server 那里动态分配的地址可以任意地址 段,和 Server 当前连接的网络(如 10.1.1.0/24)属同一网段也没关系。 第 548 页共 844 页 www.china-ccie.com (5)再次测试 PC 到 R2 的 Loopback 连通性: 说明:在 PC 连通 EzVPN 之后,到 R2 的 Loopback 的通信失败,R2 的 Loopback 也相当于 Internet 地址,这说明正常情况下,PC 连通 EzVPN 之后,所有的数据包都 发往 EzVPN Server,但 EzVPN Server 却不会将来自于 Client 的流量从开启了 EzVPN 的接口发出去,但其它接口可以,如内网。 (6)再次查看 PC 的路由表情况: 第 549 页共 844 页 www.china-ccie.com 说明:现在 PC 的默认网关为 EzVPN 的接口地址 10.1.1.100,即所有去往外部的 流量都从 VPN 隧道发出去,最终就发到了 EzVPN Server,所以就失去了与 Internet 的连接,在这样的情况下,隧道分离(Split Tunneling)就显现出了它的作用,因为 在这里很明显,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才需要走 VPN 隧道,而其它所有流量都走原来的正常接口,这就需要隧道分离将两类流量分开处 理。 (7)查看 EzVPN Server 的路由表情况: r1#sh ip route 第 550 页共 844 页 www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 4.0.0.0/32 is subnetted, 1 subnets S 4.4.4.4 [1/0] via 10.1.1.4 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.1.1.0/24 is directly connected, FastEthernet0/1 S 10.1.1.100/32 [1/0] via 23.1.1.3 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:由于开启了 reverse-route,所以 EzVPN Server 自动产生了一条指向动态分 配给 Client 的主机地址的路由。 第 551 页共 844 页 www.china-ccie.com (8)查看 R1 上 IKE SA 的 peer: r1#show crypto isakmp peers Peer: 23.1.1.3 Port: 1048 Local: 12.1.1.1 Phase1 id: chinaccie r1# 说明:R1 已经成功与 PC 建立 IKE peer,说明 IKE SA 也应该成功建立,R1 本地源 地址为 12.1.1.1,目标为 23.1.1.3。 (9)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status 12.1.1.1 23.1.1.3 QM_IDLE 1001 0 ACTIVE IPv6 Crypto ISAKMP SA r1# 说明:IKE SA 已经成功建立,R1 本地源地址为 12.1.1.1,目标为 23.1.1.3。 第 552 页共 844 页 (10)查看 R1 上的 IPsec SA: r1#show crypto ipsec sa www.china-ccie.com interface: FastEthernet0/0 Crypto map tag: ezvpn, local addr 12.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.100/255.255.255.255/0/0) current_peer 23.1.1.3 port 1048 PERMIT, flags={} #pkts encaps: 72, #pkts encrypt: 72, #pkts digest: 72 #pkts decaps: 184, #pkts decrypt: 184, #pkts verify: 184 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 第 553 页共 844 页 current outbound spi: 0xA33D5D76(2738707830) www.china-ccie.com inbound esp sas: spi: 0xCEAAE435(3467306037) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 1, flow_id: SW:1, crypto map: ezvpn sa timing: remaining key lifetime (k/sec): (4570306/2790) IV size: 8 bytes replay detection support: Y Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0xA33D5D76(2738707830) transform: esp-3des esp-sha-hmac , in use settings ={Tunnel UDP-Encaps, } conn id: 2, flow_id: SW:2, crypto map: ezvpn 第 554 页共 844 页 www.china-ccie.com sa timing: remaining key lifetime (k/sec): (4570324/2789) IV size: 8 bytes replay detection support: Y Status: ACTIVE outbound ah sas: outbound pcp sas: r1# 说明:IPsec SA 中显示了任何去往 Client 的流量都会被加密。 5.配置隧道分离(Split Tunneling) (1)在 R1 上配置隧道分离: r1(config)#no ip local pool net10 10.1.1.100 10.1.1.200 r1(config)#ip local pool net10 100.1.1.100 100.1.1.200 r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 any r1(config)#access-list 100 permit ip host 4.4.4.4 any r1(config)#crypto isakmp client configuration group chinaccie r1(config-isakmp-group)#acl 100 第 555 页共 844 页 r1(config-isakmp-group)#exit www.china-ccie.com 说明:将分配给 EzVPN Client 的地址池做个改动,改为 100.1.1.100-100.1.1.200, 用以测试任意地址段都是可行的,并且配置用于隧道分离的 ACL,ACL 的源就是需 要和 Client 通信的源,即 Client 需要走 VPN 隧道的目标地址段,其它不在该 ACL 源 的地址在 Client 源则不走 VPN 隧道,这里的 ACL 的目标地址必须为 any,或者可以 使用标准 ACL。 (2)查看 PC 连接 EzVPN 之后的详细信息: 说明:PC 现在从 EzVPN Server 那里获得了地址 100.1.1.101,由于地址池改动了。 所以与上次获得的地址无任何关系。 (3)查看 Route Details 中的隧道分离情况: 第 556 页共 844 页 www.china-ccie.com 说明:与配置的效果一样,去往公司总部的 10.1.1.0/24 和 4.4.4.4/32 是需要从 VPN 隧道走的。 (4)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 557 页共 844 页 www.china-ccie.com 说明:和之前建立 EzVPN 后的现象一样,与公司总部的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (5)测试 PC 到 R2 的 Loopback 连通性: 第 558 页共 844 页 www.china-ccie.com 说明:在配置了隧道分离(Split Tunneling)之后,到 EzVPN Server 端的流量从 VPN 隧道中发出,能够正常通信,但其它发到如 Internet 的流量则从正常接口发出, 所以与 R2 的 Loopback 通信也正常。 (6)查看 PC 的路由表情况: 第 559 页共 844 页 www.china-ccie.com 说明:从 PC 的路由表中可以看出,和之前的 Client 软件显示的隧道分离信息一 样,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才从 VPN 接口 100.1.1.101 发出,而其它流量都是从正常接口(30.1.1.3)发出,因为默认网关就是 30.1.1.3。 (7)再次查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及到 R2 的 Loopback 的路径走向: 第 560 页共 844 页 www.china-ccie.com 说明:从 PC 发向公司总部的数据包从 VPN 隧道直接就到达了公司总部路由器 R1, 但到其它 Internet 的数据包则是从正常接口发到 R3,然后由 R3 正常路由出去的。 6.在 EzVPN Server 上,NAT 对 EzVPN 的影响和其它 VPN 一样,所以如要配置 NAT 时,请使用正常方法将需要走 VPN 隧道的流量和到 EzVPN Clietn(即自动分配地址池) 的地址段从 NAT 感兴趣流中移除。 第 561 页共 844 页 www.china-ccie.com EzVPN over PIX 在本小节,我们在 Router 与 PIX 之间配置 EzVPN,即配置 EzVPN over PIX。 配置 EzVPN over PIX 说明:我们下面需要以上图的环境来演示 EzVPN 的效果,其中远程的 PC 机需要 直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 PIX 与 R3 能够通信,R2 不会配置任何路由,R2 不允许拥有公 司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,PIX 为公司总部的 EzVPN Server,PC 需要先和 PIX 的公网出口能够通信,然后通过与 PIX 建立 EzVPN,最终通 过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公网的通信;因为 PC 要先和 PIX 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 第 562 页共 844 页 NAT 转换,因为 R3 和 R1 的公网是通的。 www.china-ccie.com 1.配置基础网络环境 (1)配置 PIX: pixfirewall(config)# int e0 pixfirewall(config-if)# ip add 12.1.1.1 255.255.255.0 pixfirewall(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. pixfirewall(config-if)# no shutdown pixfirewall(config-if)# exit pixfirewall(config)# int e1 pixfirewall(config-if)# ip add 10.1.1.1 255.255.255.0 pixfirewall(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. pixfirewall(config-if)# no shutdown pixfirewall(config-if)# exit pixfirewall(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 pixfirewall(config)# route outside 0 0 12.1.1.2 第 563 页共 844 页 www.china-ccie.com 说明:配置 PIX 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 第 564 页共 844 页 www.china-ccie.com 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 第 565 页共 844 页 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 第 566 页共 844 页 www.china-ccie.com (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 PIX 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 第 567 页共 844 页 2.测试基础网络环境 (1)查看 PC 机的地址情况: www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 PIX 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: 第 568 页共 844 页 www.china-ccie.com !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 148/220/380 ms r3# 说明:因为 R3 与 PIX 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 PIX 都是可达的,所以 R3 与 PIX 通信正常。 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/63/100 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: UUUUU 第 569 页共 844 页 Success rate is 0 percent (0/5) r3# www.china-ccie.com r3#ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 PIX 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 第 570 页共 844 页 www.china-ccie.com ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 PIX 与 R3 能够通信即可。 (6)测试 PC 到 PIX 和 R2 的 Loopback 的连通性: 第 571 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 PIX 和 R2 的 Loopback 通信正 常。 (7)查看 PC 与 R2 的 Loopback 通信时的源地址: 第 572 页共 844 页 www.china-ccie.com 说明:因为 R3 已经配置 NAT 将 PC 所在的网段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 是使用源地址 23.1.1.3 与 R2 的 Loopback 通信的,同样也应该是使用 源地址 23.1.1.3 与 PIX 通信的。 (8)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 573 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 (9)查看 R3 的 NAT 转换表: r3#sh ip nat translations Pro Inside global Inside local Outside local Outside global udp 23.1.1.3:138 1.1.1.1:138 1.255.255.255:138 1.255.255.255:138 icmp 23.1.1.3:512 30.1.1.1:512 4.4.4.4:512 4.4.4.4:512 icmp 23.1.1.3:512 30.1.1.1:512 10.1.1.4:512 10.1.1.4:512 第 574 页共 844 页 icmp 23.1.1.3:512 30.1.1.1:512 12.1.1.1:512 www.china-ccie.com 12.1.1.1:512 r3# 说明:R3 已经将 PC 发往外部的数据源地址转换成自己的外网接口地址 23.1.1.3。 3.在公司总部 PIX 防火墙上配置 EzVPN (1)配置 IKE(ISAKMP)策略: pixfirewall(config)# crypto isakmp policy 10 pixfirewall(config-isakmp-policy)# authentication pre-share pixfirewall(config-isakmp-policy)# encryption 3des pixfirewall(config-isakmp-policy)# hash sha pixfirewall(config-isakmp-policy)# group 2 pixfirewall(config-isakmp-policy)# exit 说明:定义了 ISAKMP policy 10,加密方式为 3des,hash 算法为 sha,认证方式 为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)定义 EzVPN Client 连接上来后自动分配的地址池: pixfirewall(config)# ip local pool net10 10.1.1.100-10.1.1.200 mask 255.255.255.0 说明:地址池范围为 10.1.1.100-10.1.1.200。 (3)配置隧道分离: pixfirewall(config)# access-list Split_Tunnel_List extended permit ip 10.1.1.0 第 575 页共 844 页 255.255.255.0 any www.china-ccie.com pixfirewall(config)# access-list Split_Tunnel_List extended permit ip 4.4.4.4 255.255.255.255 any 说明:将 10.1.1.0/24 和 4.4.4.4/32 分离开来。 (4)配置用户组策略: pixfirewall(config)# group-policy mypp internal pixfirewall(config)# group-policy mypp attributes pixfirewall(config-group-policy)# address-pool value net10 pixfirewall(config-group-policy)# dns-server value 202.96.209.133 pixfirewall(config-group-policy)# split-tunnel-policy tunnelspecified pixfirewall(config-group-policy)# split-tunnel-network-list value Split_Tunnel_List pixfirewall(config-group-policy)# exit 说明:定义了地址池,以及隧道分离信息,该组名不是 EzVPN Client 在创建拨号 时定义的名字。 (5)配置用户隧道信息: pixfirewall(config)# tunnel-group chinaccie type ipsec-ra pixfirewall(config)# tunnel-group chinaccie general-attributes pixfirewall(config-tunnel-general)# default-group-policy mypp pixfirewall(config-tunnel-general)# exit 第 576 页共 844 页 www.china-ccie.com pixfirewall(config)# tunnel-group chinaccie ipsec-attributes pixfirewall(config-tunnel-ipsec)# pre-shared-key cisco123 pixfirewall(config-tunnel-ipsec)# exit 说明:定义了用户隧道名 chinaccie 的基本参数,认证密码为 cisco123,EzVPN Client 在创建拨号时,组名即为该隧道名。 (6)关联 crypto map: pixfirewall(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac pixfirewall(config)# crypto dynamic-map mymap 1 set transform-set ccie pixfirewall(config)# crypto map ezvpn 10 ipsec-isakmp dynamic mymap pixfirewall(config)# crypto map ezvpn interface outside pixfirewall(config)# crypto isakmp enable outside 说明:将 crypto map 与 IPsec transform 关联起来,并应用于接口。 (7)创建用户名和密码: pixfirewall(config)# username chinaccie password chinaccie 说明:创建了本地用户名 chinaccie 以及密码 chinaccie,防火墙上可以不用 AAA 来定义认证。 4.测试 EzVPN 第 577 页共 844 页 (1)在 PC 上创建 EzVPN 连接: www.china-ccie.com 创建 EzVPN 连接的方法和参数与上一节 EzVPN over Router 中完全一致。 (2)查看 PC 连接 EzVPN 后的详细信息: 说明:PC 上的 EzVPN 连接成功后,从 EzVPN Server 那里获得了地址 10.1.1.100。 (3)查看 PC 连接 EzVPN 后的隧道分离信息: 第 578 页共 844 页 www.china-ccie.com 说明:与配置的效果一样,去往公司总部的 10.1.1.0/24 和 4.4.4.4/32 是需要从 VPN 隧道走的。 (4)查看 PC 的路由表情况: 第 579 页共 844 页 www.china-ccie.com 说明:从 PC 的路由表中可以看出,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才从 VPN 接口 10.1.1.100 发出,而其它流量都是从正常接口(30.1.1.3)发出, 因为默认网关就是 30.1.1.3。 (5)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 580 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部路由器 PIX 建立 EzVPN 连接,所以现在与公司总部的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (6)测试 PC 到 R2 的 Loopback 连通性: 第 581 页共 844 页 www.china-ccie.com 说明:因为配置了隧道分离(Split Tunneling),所以到 EzVPN Server 端的流量从 VPN 隧道中发出,能够正常通信,其它发到如 Internet 的流量则从正常接口发出, 所以与 R2 的 Loopback 通信也正常。 (7)再次查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及到 R2 的 Loopback 的路径走向: 第 582 页共 844 页 www.china-ccie.com 说明:从 PC 发向公司总部的数据包从 VPN 隧道直接就到达了公司总部 PIX 防火 墙,但到其它 Internet 的数据包则是从正常接口发到 R3,然后由 R3 正常路由出去 的。 (8)查看 PIX 上的 IKE SA(ISAKMP SA): pixfirewall# show crypto isakmp sa Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 第 583 页共 844 页 www.china-ccie.com 1 IKE Peer: 23.1.1.3 Type : user Role : responder Rekey : no State : AM_ACTIVE pixfirewall# 说明:IKE SA 已经成功建立,PIX 本地源地址为 12.1.1.1,目标为 23.1.1.3。 (9)查看 PIX 上的 IPsec SA: pixfirewall# show crypto ipsec sa interface: outside Crypto map tag: mymap, seq num: 1, local addr: 12.1.1.1 local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0) remote ident (addr/mask/prot/port): (10.1.1.100/255.255.255.255/0/0) current_peer: 23.1.1.3, username: chinaccie dynamic allocated peer ip: 10.1.1.100 #pkts encaps: 52, #pkts encrypt: 52, #pkts digest: 52 #pkts decaps: 103, #pkts decrypt: 103, #pkts verify: 103 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 52, #pkts comp failed: 0, #pkts decomp failed: 0 第 584 页共 844 页 www.china-ccie.com #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 #send errors: 0, #recv errors: 0 local crypto endpt.: 12.1.1.1/4500, remote crypto endpt.: 23.1.1.3/1058 path mtu 1500, ipsec overhead 66, media mtu 1500 current outbound spi: AE77791C inbound esp sas: spi: 0x9C075730 (2617726768) transform: esp-3des esp-sha-hmac none in use settings ={RA, Tunnel, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: mymap sa timing: remaining key lifetime (sec): 28641 IV size: 8 bytes replay detection support: Y outbound esp sas: spi: 0xAE77791C (2927065372) transform: esp-3des esp-sha-hmac none in use settings ={RA, Tunnel, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: mymap 第 585 页共 844 页 sa timing: remaining key lifetime (sec): 28640 IV size: 8 bytes replay detection support: Y www.china-ccie.com pixfirewall# 说明:IPsec SA 中显示了任何去往 Client 的流量都会被加密。 (10)查看 PIX 的路由表情况: pixfirewall# show route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 第 586 页共 844 页 S 4.4.4.4 255.255.255.255 [1/0] via 10.1.1.4, inside www.china-ccie.com C 10.1.1.0 255.255.255.0 is directly connected, inside S 10.1.1.100 255.255.255.255 [1/0] via 12.1.1.2, outside C 12.1.1.0 255.255.255.0 is directly connected, outside S* 0.0.0.0 0.0.0.0 [1/0] via 12.1.1.2, outside pixfirewall# pixfirewall# 说明: EzVPN Server 自动产生了一条指向动态分配给 Client 的主机地址的路由。 EzVPN over ASA 在本小节,我们在 Router 与 ASA 之间配置 EzVPN,即配置 EzVPN over ASA,但在 此提前说明,EzVPN over ASA 的配置与上一小节的 EzVPN over PIX 完全相同,所以如 果已经阅读上一小节的 EzVPN over PIX,那么此小节可以跳过。 配置 EzVPN over ASA 第 587 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 EzVPN 的效果,其中远程的 PC 机需要 直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 ASA 与 R3 能够通信,R2 不会配置任何路由,R2 不允许拥有 公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,ASA 为公司总部的 EzVPN Server,PC 需要先和 ASA 的公网出口能够通信,然后通过与 ASA 建立 EzVPN, 最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公网的通信; 因为 PC 要先和 ASA 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 R1 的公网是通的。 1.配置基础网络环境 (1)配置 ASA: ciscoasa(config)# int e0/0 ciscoasa(config-if)# ip add 12.1.1.1 255.255.255.0 ciscoasa(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. ciscoasa(config-if)# no shutdown 第 588 页共 844 页 ciscoasa(config-if)# exit www.china-ccie.com ciscoasa(config)# int e0/1 ciscoasa(config-if)# ip add 10.1.1.1 255.255.255.0 ciscoasa(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. ciscoasa(config-if)# no shutdown ciscoasa(config-if)# exit ciscoasa(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 ciscoasa(config)# route outside 0 0 12.1.1.2 说明:配置 ASA 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同 时写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 第 589 页共 844 页 r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# www.china-ccie.com r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 第 590 页共 844 页 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip nat outside 第 591 页共 844 页 r3(config-if)#exit r3(config)# www.china-ccie.com r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 第 592 页共 844 页 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 ASA 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 593 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 ASA 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 148/220/380 ms r3# 说明:因为 R3 与 ASA 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 ASA 都是可达的,所以 R3 与 ASA 通信正常。 第 594 页共 844 页 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/63/100 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. 第 595 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 ASA 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets 第 596 页共 844 页 C 2.2.2.0 is directly connected, Loopback0 www.china-ccie.com 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 ASA 与 R3 能够通信即可。 (6)测试 PC 到 ASA 和 R2 的 Loopback 的连通性: 第 597 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 ASA 和 R2 的 Loopback 通信正 常。 (7)查看 PC 与 R2 的 Loopback 通信时的源地址: 第 598 页共 844 页 www.china-ccie.com 说明:因为 R3 已经配置 NAT 将 PC 所在的网段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 是使用源地址 23.1.1.3 与 R2 的 Loopback 通信的,同样也应该是使用 源地址 23.1.1.3 与 ASA 通信的。 (8)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 599 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部 ASA 防火墙上配置 EzVPN (1)配置 IKE(ISAKMP)策略: ciscoasa(config)# crypto isakmp policy 10 ciscoasa(config-isakmp-policy)# authentication pre-share ciscoasa(config-isakmp-policy)# encryption 3des 第 600 页共 844 页 ciscoasa(config-isakmp-policy)# hash sha www.china-ccie.com ciscoasa(config-isakmp-policy)# group 2 ciscoasa(config-isakmp-policy)# exit 说明:定义了 ISAKMP policy 10,加密方式为 3des,hash 算法为 sha,认证方式 为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)定义 EzVPN Client 连接上来后自动分配的地址池: ciscoasa(config)# ip local pool net100 100.1.1.100-100.1.1.200 mask 255.255.255.0 说明:地址池范围为 100.1.1.100-100.1.1.200。 (3)配置隧道分离: ciscoasa(config)# access-list Split_Tunnel_List extended permit ip 10.1.1.0 255.255.255.0 any ciscoasa(config)# access-list Split_Tunnel_List extended permit ip 4.4.4.4 255.255.255.255 any 说明:将 10.1.1.0/24 和 4.4.4.4/32 分离开来。 (4)配置用户组策略: ciscoasa(config)# group-policy mypp internal ciscoasa(config)# group-policy mypp attributes ciscoasa(config-group-policy)# address-pool value net100 ciscoasa(config-group-policy)# dns-server value 202.96.209.133 第 601 页共 844 页 www.china-ccie.com ciscoasa(config-group-policy)# split-tunnel-policy tunnelspecified ciscoasa(config-group-policy)# split-tunnel-network-list value Split_Tunnel_Li$ 说明:定义了地址池,以及隧道分离信息,该组名不是 EzVPN Client 在创建拨号 时定义的名字。 (5)配置用户隧道信息: ciscoasa(config)# tunnel-group chinaccie type ipsec-ra ciscoasa(config)# tunnel-group chinaccie general-attributes ciscoasa(config-tunnel-general)# default-group-policy mypp ciscoasa(config-tunnel-general)# exit ciscoasa(config)# tunnel-group chinaccie ipsec-attributes ciscoasa(config-tunnel-ipsec)# pre-shared-key cisco123 ciscoasa(config-tunnel-ipsec)# exit 说明:定义了用户隧道名 chinaccie 的基本参数,认证密码为 cisco123,EzVPN Client 在创建拨号时,组名即为该隧道名 chinaccie。 (6)关联 crypto map: ciscoasa(config)# crypto ipsec transform-set ccie esp-3des esp-sha-hmac ciscoasa(config)# crypto dynamic-map mymap 1 set transform-set ccie ciscoasa(config)# crypto map ezvpn 10 ipsec-isakmp dynamic mymap ciscoasa(config)# crypto map ezvpn interface outside ciscoasa(config)# crypto isakmp enable outside 第 602 页共 844 页 www.china-ccie.com 说明:将 crypto map 与 IPsec transform 关联起来,并应用于接口。 (7)创建用户名和密码: ciscoasa(config)# username chinaccie password chinaccie 说明:创建了本地用户名 chinaccie 以及密码 chinaccie,防火墙上可以不用 AAA 来定义认证。 4.测试 EzVPN (1)在 PC 上创建 EzVPN 连接: 创建 EzVPN 连接的方法和参数与上上一节 EzVPN over Router 中完全一致。 (2)查看 PC 连接 EzVPN 后的详细信息: 说明:PC 上的 EzVPN 连接成功后,从 EzVPN Server 那里获得了地址 100.1.1.100。 第 603 页共 844 页 (3)查看 PC 连接 EzVPN 后的隧道分离信息: www.china-ccie.com 说明:与配置的效果一样,去往公司总部的 10.1.1.0/24 和 4.4.4.4/32 是需要从 VPN 隧道走的。 (4)查看 PC 的路由表情况: 第 604 页共 844 页 www.china-ccie.com 说明:从 PC 的路由表中可以看出,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才从 VPN 接口 100.1.1.100 发出,而其它流量都是从正常接口(30.1.1.3)发 出,因为默认网关就是 30.1.1.3。 (5)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 605 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部路由器 ASA 建立 EzVPN 连接,所以现在与公司总部 的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (6)测试 PC 到 R2 的 Loopback 连通性: 第 606 页共 844 页 www.china-ccie.com 说明:因为配置了隧道分离(Split Tunneling),所以到 EzVPN Server 端的流量从 VPN 隧道中发出,能够正常通信,其它发到如 Internet 的流量则从正常接口发出, 所以与 R2 的 Loopback 通信也正常。 (7)再次查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及到 R2 的 Loopback 的路径走向: 第 607 页共 844 页 www.china-ccie.com 说明:从 PC 发向公司总部的数据包从 VPN 隧道直接就到达了公司总部 ASA 防火 墙,但到其它 Internet 的数据包则是从正常接口发到 R3,然后由 R3 正常路由出去 的。 (8)查看 ASA 上的 IKE SA(ISAKMP SA): ciscoasa# show crypto isakmp sa Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 第 608 页共 844 页 1 IKE Peer: 23.1.1.3 Type : user Role : responder Rekey : no State : AM_ACTIVE ciscoasa# www.china-ccie.com 说明:IKE SA 已经成功建立,ASA 本地源地址为 12.1.1.1,目标为 23.1.1.3。 (9)查看 ASA 上的 IPsec SA: ciscoasa# show crypto ipsec sa interface: outside Crypto map tag: mymap, seq num: 1, local addr: 12.1.1.1 local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0) remote ident (addr/mask/prot/port): (100.1.1.100/255.255.255.255/0/0) current_peer: 23.1.1.3, username: chinaccie dynamic allocated peer ip: 100.1.1.100 #pkts encaps: 13, #pkts encrypt: 13, #pkts digest: 13 #pkts decaps: 13, #pkts decrypt: 13, #pkts verify: 13 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 13, #pkts comp failed: 0, #pkts decomp failed: 0 第 609 页共 844 页 www.china-ccie.com #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 #send errors: 0, #recv errors: 0 local crypto endpt.: 12.1.1.1/4500, remote crypto endpt.: 23.1.1.3/1048 path mtu 1500, ipsec overhead 66, media mtu 1500 current outbound spi: C29577AD inbound esp sas: spi: 0x9E962572 (2660640114) transform: esp-3des esp-sha-hmac none in use settings ={RA, Tunnel, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: mymap sa timing: remaining key lifetime (sec): 28720 IV size: 8 bytes replay detection support: Y outbound esp sas: spi: 0xC29577AD (3264575405) transform: esp-3des esp-sha-hmac none in use settings ={RA, Tunnel, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: mymap 第 610 页共 844 页 sa timing: remaining key lifetime (sec): 28719 IV size: 8 bytes replay detection support: Y www.china-ccie.com ciscoasa# 说明:IPsec SA 中显示了任何去往 Client 的流量都会被加密。 (10)查看 ASA 的路由表情况: ciscoasa# show route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 S 100.1.1.100 255.255.255.255 [1/0] via 12.1.1.2, outside 第 611 页共 844 页 S 4.4.4.4 255.255.255.255 [1/0] via 10.1.1.4, inside www.china-ccie.com C 10.1.1.0 255.255.255.0 is directly connected, inside C 12.1.1.0 255.255.255.0 is directly connected, outside S* 0.0.0.0 0.0.0.0 [1/0] via 12.1.1.2, outside ciscoasa# 说明: EzVPN Server 自动产生了一条指向动态分配给 Client 的主机地址的路由。 5.测试 EzVPN Server 上 NAT 对 EzVPN 的影响 (1)在 ASA 上配置 NAT: ciscoasa(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0 说明:在 ASA 上配置 NAT 将所有 inside 接口的流量都转换为 outside 接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 612 页共 844 页 www.china-ccie.com 说明:在 EzVPN Server 上,NAT 对 EzVPN 的影响和其它 VPN 一样,所以在 EzVPN Server 上配置了 NAT 后,需要 EzVPN 传递的流量就全不通了。 (3)将相应流量从 NAT 中移除: ciscoasa(config)# access-list nonat extended permit ip 10.1.1.0 255.255.255.0 100.1.1.0 255.255.255.0 ciscoasa(config)# nat (inside) 0 access-list nonat 说明:将源 10.1.1.0/24 去往 EzVPN Client 的流量从 NAT 中移除。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性 第 613 页共 844 页 www.china-ccie.com 说明:因为源 10.1.1.0/24 去往 EzVPN Client 的流量已经从 NAT 中移除,所以 PC 到 10.1.1.0/24 的流量正常,但到 4.4.4.4/32 的流量依然不通。 (5)再次将相应流量从 NAT 中移除: ciscoasa(config)# $permit ip 4.4.4.4 255.255.255.255 100.1.1.0 255.255.255.0 说明:除了将源 10.1.1.0/24 去往 EzVPN Client 的流量从 NAT 中移除之外,再将源 4.4.4.4/32 去往 EzVPN Client 的流量从 NAT 中移除。 (6)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 614 页共 844 页 www.china-ccie.com 说明:因为源 10.1.1.0/24 和 4.4.4.4/32 去往 EzVPN Client 的流量都已经从 NAT 中 移除,所以 PC 到 10.1.1.0/24 和 4.4.4.4/32 的流量正常。 SSL VPN(WebVPN) 概述 在没有能够支持 VPN 功能路由器的家庭网络,以及出差在外的没有使用路由器 就接入 Internet 的办公人员,如果在这种情况下还需要与公司总部建立 VPN 以保证 数据加密传输,使用传统的 VPN 技术将难以实现,我们可以采用前面介绍的 Easy VPN 来实现,Easy VPN 管理简单,维护方便,但是我们还需要注意的是,在使用 Easy VPN 第 615 页共 844 页 www.china-ccie.com 之前,必须在 PC 上安装 Client 软件,在一台没有安装 Client 软件的 PC 上是不能建 立 Easy VPN 连接的,因为 Easy VPN 是 C/S 架构的。 虽然在使用 Easy VPN 之前在 PC 上装个 Client 软件并不是什么难事,但是如果不 巧的是,你没有带电脑,或者在客户的公司,你不能使用自己的电脑接入 Internet, 在这种需要使用和借用别人的电脑来使用 VPN 的时候,这很明显就有些小麻烦,因 为你借别人的电脑用一下,但需要在别人的电脑上安装软件,并不是任何时候别人 都会同意你这么做,所以如果能够让我们不用安装软件就能使用 VPN 连接,那将是 非常期待的。 基于上述种种原因,SSL VPN(WebVPN)出现了,SSL VPN 的实现就可以不需要 借助软件来完成,在一台没有安装任何软件的 PC 上同样可以建立 SSL VPN 连接,这 就是它的优点,想必这个优点也被许多人看中。SSL VPN 的建立只要在 PC 上使用支 持 HTTPS (HTTP over SSL)的网页浏览器就可以完成,摆脱了安装软件的困扰,这就使 得 SSL VPN 在任何环境的 PC 上都能够建立,因为现在几乎没有任何一台 PC 上是没 有网页浏览器的。 下图是支持 HTTPS 网页浏览器的 PC 与公司总部建立的 SSL VPN 连接: 只要是支持 HTTPS 网页浏览器的 PC,无论在哪里,只要能够连接 Internet,就能 与公司总部建立的 SSL VPN 连接。 第 616 页共 844 页 www.china-ccie.com SSL VPN 是在 Application Laye(r 应用层)上建立 SSL 隧道来实现的,虽然说 SSL VPN 不需要借助任何 Client 软件,只需要靠网页浏览器就能完成,其实 SSL VPN 有时也 是需要借助 Client 软件才能完成,但这并不是需要手工安装的软件,因为是通过浏 览器自动检测并安装的插件,是 Java applet 或 ActiveX 的形式,就像平时上视频网 站看 Flash 时安装 flashplayer 一样,是以网页插件的形式安装的。 SSL VPN 共分为三种模式: Clientless Thin-Client Full-Tunnel Client 正因为分了这么多模式,所以将 SSL VPN 更加复杂化了,这并不是件好事,我们 需要的是简单易用的,所以我们肯定会挑选其中最适合大众使用的模式,这三种模 式的工作情况如下: Clientless 模式只提供访问 WEB 资源,在 PC 建立 SSL VPN 连接之后,只能以 WEB, 即网页访问的形式去访问对端的资源,在用户建立 SSL VPN 连接之后,将在登录界 面提供 URL 信息或 web server 的链接,通过这些链接来访问资源;如果这时你并不 是需要访问对端的 WEB 信息,比如你是要使用 FTP,这是不行的,所以 Clientless 模式太局限了,一般不推荐使用。 Thin-Client 模式是在 Clientless 模式的基础上扩展了一些功能,它扩展到可以使 用 TCP 连接,如 POP3,SMTP,SSH 等等,Thin-Client 是需要安装 Java applet 插件的, 虽然 Thin-Client 模式已经扩展到了可以使用 TCP 连接,但这还是远远不够的,所以 Thin-Client 模式也不推荐。 第 617 页共 844 页 www.china-ccie.com Full-Tunnel Client 模式和常规的 VPN 具有完全相同的功能,和 EzVPN 具有完全相 同的访问能力,是在隧道两端提供一个通道,在此通道上可以传递任何流量,没有 任何访问限制,所以我们通常配置 Full-Tunnel Client 模式;Full-Tunnel Client 模式需 要安装 ActiveX 插件。 因为 Thin-Client 模式和 Full-Tunnel Client 模式都需要在本地安装插件,所以在这 两个模式下建立 SSL VPN,需要用户具有管理员权限,要进行 Full-Tunnel Client 模式 的 SSL VPN 建立,配置的设备上是需要加载 SSL VPN Client 模块的,通常是.pkg 格式 的,这称为 SVC。 在用户向 Server 请求建立 SSL VPN 连接之后,是需要认证的,这些认证都是通过 WEB 浏览器进行的,认证的方式多种多样,如用户名加密码,电子证书,或通过 AAA 定义,或者相结合,默认使用的是 Server 本地全局认证,即使用本地用户数据 库做认证。 SSL VPN 除了操作方式和加密方法与 Easy VPN 不一样,其它东西可以认为是完 全一样,SSL VPN 也有和 Easy VPN 一样的隧道分离(Split Tunneling)的功能,除此 之外,也有 Reverse route injection (RRI)功能,并且 Server 也需要为连接上来的 Client 自动分配一个地址,所以在 SSL VPN Server 上需要配置供自动分配给 Client 的地址段, 但 SSL VPN 的这个地址段和 Easy VPN 有细微的区别,当 SSL VPN Server 是配置在路 由器上时,这个地址段需要和该路由器上的一个直连接口地址在同网段,如果地址 段是在路由器上不存在的,那么必须创建一个同网段的 Loopback 接口。 注: ★SSL VPN 默认使用的是 Server 本地全局认证,即使用本地用户数据库做认证。 ★当 SSL VPN Server 是配置在路由器上时,这个地址段需要和该路由器上的一个 直连接口地址在同网段,如果地址段是在路由器上不存在的,那么必须创建一个同 网段的 Loopback 接口。 第 618 页共 844 页 www.china-ccie.com ★Thin-Client 模式和 Full-Tunnel Client 模式都需要在本地安装插件,所以在这两 个模式下建立 SSL VPN,需要用户具有管理员权限 Cisco 的 SSL VPN 只支持路由器和 ASA 防火墙,但不支持 PIX 防火墙,虽然在模 拟环境下可以破解 PIX 防火墙来支持 SSL VPN,但本文不作演示,因为几乎所有的 VPN 配置,PIX 和 ASA 是相同的,能够在 ASA 上配置 SSL VPN,就能够在支持 SSL VPN 的 PIX 上配置 SSL VPN,所以本文只介绍在路由器和 ASA 防火墙上配置 SSL VPN。 SSL VPN over Router 在本小节,我们在路由器上配置 SSL VPN,即配置 SSL VPN over Router。 配置 SSL VPN over Router 说明:我们下面需要以上图的环境来演示 SSL VPN 的效果,其中远程的 PC 机需 第 619 页共 844 页 www.china-ccie.com 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 R1 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,R1 为公司总 部的 SSL VPN Server,PC 需要先和 R1 的公网出口能够通信,然后通过与 R1 建立 SSL VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公网的 通信;因为 PC 要先和 R1 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 R1 的公网是通的。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 4.4.4.4 255.255.255.255 10.1.1.4 r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 第 620 页共 844 页 www.china-ccie.com (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 第 621 页共 844 页 www.china-ccie.com 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 第 622 页共 844 页 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 第 623 页共 844 页 www.china-ccie.com (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口路由器 R1。同时配 置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 第 624 页共 844 页 2.测试基础网络环境 (1)查看 PC 机的地址情况: www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 R1 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. 第 625 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 304/421/632 ms r3# 说明:因为 R3 与 R1 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 R1 都是可达的,所以 R3 与 R1 通信正常。 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 96/260/376 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. 第 626 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: UU.U. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 R1 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP 第 627 页共 844 页 www.china-ccie.com D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 (6)测试 PC 到 R1 以及到 R2 的 Loopback 的连通性: 第 628 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 R1 和 R2 的 Loopback 通信正 常。 (7)查看 PC 与 R2 的 Loopback 通信时的源地址: 第 629 页共 844 页 www.china-ccie.com 说明:因为 R3 已经配置 NAT 将 PC 所在的网段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 是使用源地址 23.1.1.3 与 R2 的 Loopback 通信的,同样也应该是使用 源地址 23.1.1.3 与 R1 通信的。 (8)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 630 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 (9)查看 R3 的 NAT 转换表: r3#show ip nat translations Pro Inside global Inside local Outside local Outside global icmp 23.1.1.3:512 30.1.1.1:512 2.2.2.2:512 2.2.2.2:512 icmp 23.1.1.3:512 30.1.1.1:512 4.4.4.4:512 4.4.4.4:512 icmp 23.1.1.3:512 30.1.1.1:512 10.1.1.4:512 10.1.1.4:512 第 631 页共 844 页 icmp 23.1.1.3:512 30.1.1.1:512 12.1.1.1:512 www.china-ccie.com 12.1.1.1:512 r3# 说明:R3 已经将 PC 发往外部的数据源地址转换成自己的外网接口地址 23.1.1.3。 3.在公司总部路由器 R1 上配置 SSL VPN (1)将 SSL VPN client 模块传至路由器: r1#dir Directory of disk0:/ 1 -rw- 398305 Nov 7 2010 22:40:46 +00:00 sslclient-win-1.1.0.154.pkg 3989504 bytes total (3588096 bytes free) r1# 说明:本实验已经将 SSL VPN client 模块(sslclient-win-1.1.0.154.pkg)上传至路由 器,如果需要,可以通过以下地址进行下载: http://www.china-ccie.com/download/sslclient/sslclient.rar (2)安装 SSL VPN client 模块: r1(config)#webvpn install svc disk0:sslclient-win-1.1.0.154.pkg SSLVPN Package SSL-VPN-Client : installed successfully 第 632 页共 844 页 (3)配置自动分配给用户的地址池: www.china-ccie.com r1(config)#ip local pool ccie 100.1.1.100 100.1.1.200 说明:自动分配给用户的地址范围是 100.1.1.100 -100.1.1.200。 (4)为地址池网段创建 loopback: r1(config)#int loopback 100 r1(config-if)#ip add 100.1.1.1 255.255.255.0 r1(config-if)#exit 说明:当地址池不是自身直连网段时,必须创建同网段的 loopback 接口。 (5)配置 SSL VPN 参数: r1(config)#webvpn gateway chinaccie % Generating 1024 bit RSA keys, keys will be non-exportable...[OK] r1(config-webvpn-gateway)# *Nov 7 22:44:58.159: %SSH-5-ENABLED: SSH 1.99 has been enabled *Nov 7 22:44:59.315: %PKI-4-NOAUTOSAVE: Configuration was modified. Issue "write memory" to save new certificate r1(config-webvpn-gateway)#ip address 12.1.1.1 port 443 r1(config-webvpn-gateway)#inservice r1(config-webvpn-gateway)#exit 说明:定义标识名字,开启的地址,端口等等。 第 633 页共 844 页 www.china-ccie.com (6)定义其它参数,以及组策略: r1(config)#webvpn context cisco r1(config-webvpn-context)#gateway chinaccie domain cisco r1(config-webvpn-context)#inservice *Nov 7 22:46:41.651: %SSLVPN-5-UPDOWN: sslvpn context : cisco changed state to UP r1(config-webvpn-context)#policy group mygroup r1(config-webvpn-group)#functions svc-enabled r1(config-webvpn-group)#svc address-pool ccie r1(config-webvpn-group)#exit r1(config-webvpn-context)#default-group-policy mygroup r1(config-webvpn-context)#exit 说明:定义用户组策略,地址池等等。 (7)定义用来认证的账户: r1(config)#username chinaccie password chinaccie 4.测试 SSL VPN (1)在 PC 上建立 SSL VPN 连接: 第 634 页共 844 页 www.china-ccie.com 在网页浏览器中输入 SSL VPN Server 外网地址:https://12.1.1.1,连接 SSL VPN Server 出现“安全警报”对话框之后,点“确定”。 再次出现证书相关的“安全警报”对话框之后,点“是”,如下图: 第 635 页共 844 页 www.china-ccie.com 出现如下登录认证界面之后,输入定义好的账户: 第 636 页共 844 页 www.china-ccie.com 输入账户之后,出现如下提示框,点“确定”: 第 637 页共 844 页 www.china-ccie.com 然后就是等待系统自动安装 SSL VPN Client 插件: 第 638 页共 844 页 www.china-ccie.com 在等待中,会出现如下与证书相关的对话框,点“是” 第 639 页共 844 页 www.china-ccie.com 出现如下证书信息之后,点“确定”: 第 640 页共 844 页 www.china-ccie.com 再次出现证书对话框,继续点“是”: 第 641 页共 844 页 www.china-ccie.com 等所有过程都结束之后,SSL VPN 将建立成功,会在电脑桌面的右下角出现如下 金黄色钥匙的图标: 第 642 页共 844 页 www.china-ccie.com 右键点击该金黄色钥匙的图标,选择“Statistics”查看详细信息: 然后可以看到如下图的信息: 说明:从图中可以看出,从 SSL VPN Server 那里自动分配到的地址是 100.1.1.100, 并且还可以看到数据包转发情况。 第 643 页共 844 页 查看当前隧道分离情况: www.china-ccie.com 说明:这里显示的是隧道分离信息,0.0.0.0 0.0.0.0 表示所有数据包都走 VPN 隧 道。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 644 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部路由器 R1 建立 SSL VPN 连接,所以现在与公司总部 的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (3)查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的路径走向: 第 645 页共 844 页 www.china-ccie.com 说明:从 PC 发向公司总部的数据包直接就到达了公司总部路由器 R1,说明中间 的多跳已经被 VPN 隧道取代为一跳了。 (4)查看 PC 到公司总部的数据包源地址: 说明:SSL VPN Client 是以从 Server 那里动态分配的地址为源和 Server 的网段进 行通信的。 第 646 页共 844 页 (5)再次测试 PC 到 R2 的 Loopback 连通性: www.china-ccie.com 说明:在 PC 连通 SSL VPN 之后,到 R2 的 Loopback 的通信失败,R2 的 Loopback 也相当于 Internet 地址,这说明正常情况下,PC 连通 SSL VPN 之后,所有的数据包 都发往 SSL VPN Server,但 SSL VPN Server 却不会将来自于 Client 的流量从开启了 SSL VPN 的接口发出去,但其它接口可以,如内网。 (6)查看 PC 的路由表情况: 第 647 页共 844 页 www.china-ccie.com 说明:现在 PC 的默认网关为 SSL VPN 的接口地址 10.1.1.100,即所有去往外部的 流量都从 VPN 隧道发出去,最终就发到了 SSL VPN Server,所以就失去了与 Internet 的连接,在这样的情况下,隧道分离(Split Tunneling)就显现出了它的作用,因为 在这里很明显,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才需要走 VPN 隧道,而其它所有流量都走原来的正常接口,这就需要隧道分离将两类流量分开处 理。 (7)查看 SSL VPN Server 的路由表情况: 第 648 页共 844 页 r1#sh ip route www.china-ccie.com Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 100.0.0.0/24 is subnetted, 1 subnets C 100.1.1.0 is directly connected, Loopback100 4.0.0.0/32 is subnetted, 1 subnets S 4.4.4.4 [1/0] via 10.1.1.4 10.0.0.0/24 is subnetted, 1 subnets C 10.1.1.0 is directly connected, FastEthernet1/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 第 649 页共 844 页 www.china-ccie.com 说明:SSL VPN Server 没有自动产生了一条指向动态分配给 Client 的主机地址的 路由,说明默认没有 reverse-route 功能,但不表示任何型号的任何 IOS 都是如此。 (8)查看 R1 上的 IKE SA(ISAKMP SA): r1#show crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id slot status IPv6 Crypto ISAKMP SA r1# 说明:因为 SSL VPN 不是使用 IPsec 来工作的,所以不会有 IPsec 方面的信息。 (9)查看 R1 上的 SSL VPN 信息: r1#show webvpn session context all WebVPN context name: cisco Client_Login_Name Client_IP_Address No_of_Connections Created Last_Used chinaccie 23.1.1.3 1 00:14:30 00:02:06 r1# 说明:R1 上看到用户 chinaccie 以源地址 23.1.1.3 连了上来。 第 650 页共 844 页 5.配置隧道分离(Split Tunneling) www.china-ccie.com (1)在 R1 上配置隧道分离: r1(config)#webvpn context cisco r1(config-webvpn-context)#policy group mygroup r1(config-webvpn-group)#svc split include 10.1.1.0 255.255.255.0 r1(config-webvpn-group)#svc split include 4.4.4.4 255.255.255.255 说明:路由器中 SSL VPN 的隧道分离配置方法和 EzVPN 不同,SSL VPN 的隧道分 离不是用 ACL 来控制的,而是直接填写网段信息,include 表示需要从隧道走的流量, 即 10.1.1.0/24 和 4.4.4.4/32 是需要走隧道的,这都是 Client 上的目标地址,而不是源 地址。 (2)查看 PC 连接 SSL VPN 之后的详细信息: 说明:PC 现在从 SSL VPN Server 那里获得了地址 100.1.1.101。 第 651 页共 844 页 (3)查看 Route Details 中的隧道分离情况: www.china-ccie.com 说明:与配置的效果一样,去往公司总部的 10.1.1.0/24 和 4.4.4.4/32 是需要从 VPN 隧道走的。 (4)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 652 页共 844 页 www.china-ccie.com 说明:和之前建立 SSL VPN 后的现象一样,与公司总部的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (5)测试 PC 到 R2 的 Loopback 连通性: 第 653 页共 844 页 www.china-ccie.com 说明:在配置了隧道分离(Split Tunneling)之后,到 SSL VPN Server 端的流量从 VPN 隧道中发出,能够正常通信,但其它发到如 Internet 的流量则从正常接口发出, 所以与 R2 的 Loopback 通信也正常。 (6)查看 PC 的路由表情况: 第 654 页共 844 页 www.china-ccie.com 说明:从 PC 的路由表中可以看出,和之前的 Client 软件显示的隧道分离信息一 样,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才从 VPN 接口 100.1.1.101 发出,而其它流量都是从正常接口(30.1.1.3)发出,因为默认网关就是 30.1.1.3。 (7)再次查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及到 R2 的 Loopback 第 655 页共 844 页 的路径走向: www.china-ccie.com 说明:从 PC 发向公司总部的数据包从 VPN 隧道直接就到达了公司总部路由器 R1, 但到其它 Internet 的数据包则是从正常接口发到 R3,然后由 R3 正常路由出去的。 (8)查看 SSL VPN Server 上其它一些信息: r1#show webvpn session user chinaccie context cisco WebVPN user name = chinaccie ; IP address = 23.1.1.3 ; context = cisco No of connections: 1 第 656 页共 844 页 Created 00:05:49, Last-used 00:00:03 STC IP address 100.1.1.101 netmask 255.255.255.0 CSTP Started 00:03:56, Last-recieved 00:00:03 CSTP DPD-Request sent 0 Client Port: 1202 User Policy Parameters Group name = mygroup Group Policy Parameters idle timeout = 2100 sec session timeout = 43200 sec functions = svc-enabled www.china-ccie.com citrix disabled address pool name = "ccie" dpd client timeout = 300 sec dpd gateway timeout = 300 sec keep sslvpn client installed = disabled rekey interval = 3600 sec rekey method = lease duration = 43200 sec 第 657 页共 844 页 split include = 10.1.1.0 255.255.255.0 split include = 4.4.4.4 255.255.255.255 www.china-ccie.com r1# 说明:在 SSL VPN Server 也能看到 client 的一些相关信息以及隧道分离信息。 6.测试 SSL VPN Server 上 NAT 对 SSL VPN 的影响 (1)查看配置 NAT 之前的流量情况: 第 658 页共 844 页 www.china-ccie.com 说明:有没有配置 NAT 之前,PC 到公司总部 10.1.1.0/24 和 4.4.4.4/32 的流量全部 正常。 (2)在 R1 上配置 NAT: r1(config)#int f1/1 r1(config-if)#ip nat inside *Nov 8 10:01:39.887: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed state to up r1(config-if)#exi r1(config-if)#ip nat outside r1(config-if)#exit r1(config)#access-list 111 permit ip any any r1(config)#ip nat inside source list 111 interface f0/0 overload 说明:在 R1 上配置 NAT 将所有内网的流量都转换为外网接口地址 12.1.1.1 出去。 (3)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 659 页共 844 页 www.china-ccie.com 说明:在 SSL VPN Server 上,NAT 对 SSL VPN 的影响和其它 VPN 一样,所以在 SSL VPN Server 上配置了 NAT 后,需要 SSL VPN 传递的流量就全不通了。 (4)将相应流量从 NAT 中移除: r1(config)#no access-list 111 r1(config)#access-list 111 deny ip host 12.1.1.1 host 23.1.1.3 r1(config)#access-list 111 permit ip any any 说明:路由器上 SSL VPN 的 NAT 流量移除比较特别,并不是把特定的流量移除, 而是放开 Server 与 Client 双方的地址。 第 660 页共 844 页 www.china-ccie.com (5)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:因为路由器上 SSL VPN 的 NAT 流量移除比较特别,是放开 Server 与 Client 双方的地址,而不是放开指定流量,所以没办法对指定的流量进行控制,就是流量 要么全通,要么全不通。 SSL VPN over ASA 在本小节,我们在 ASA 防火墙上配置 SSL VPN,即配置 SSL VPN over ASA。 第 661 页共 844 页 配置 SSL VPN over ASA www.china-ccie.com 说明:我们下面需要以上图的环境来演示 SSL VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 ASA 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,ASA 为公司 总部的 SSL VPN Server,PC 需要先和 ASA 的公网出口能够通信,然后通过与 ASA 建 立 SSL VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越 公网的通信;因为 PC 要先和 ASA 的公网接口能够通信,所以 R3 需要对 PC 所在的 网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 ASA 的公网是通的。 1.配置基础网络环境 (1)配置 ASA: ciscoasa(config)# int e0/0 第 662 页共 844 页 ciscoasa(config-if)# ip add 12.1.1.1 255.255.255.0 www.china-ccie.com ciscoasa(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. ciscoasa(config-if)# no shutdown ciscoasa(config-if)# exit ciscoasa(config)# int e0/1 ciscoasa(config-if)# ip add 10.1.1.1 255.255.255.0 ciscoasa(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. ciscoasa(config-if)# no shutdown ciscoasa(config-if)# exit ciscoasa(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 ciscoasa(config)# route outside 0 0 12.1.1.2 ciscoasa(config)# 说明:配置 ASA 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同 时写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh 第 663 页共 844 页 r2(config-if)#exit www.china-ccie.com r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 第 664 页共 844 页 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 第 665 页共 844 页 r3(config-if)#ip nat inside r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh 第 666 页共 844 页 r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 ASA 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 667 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 ASA 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 268/323/444 ms 第 668 页共 844 页 www.china-ccie.com r3# 说明:因为 R3 与 ASA 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 ASA 都是可达的,所以 R3 与 ASA 通信正常。 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 96/260/376 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) 第 669 页共 844 页 r3# r3#ping 4.4.4.4 www.china-ccie.com Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: .U..U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 ASA 的通信,所以 R3 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route 第 670 页共 844 页 Gateway of last resort is not set www.china-ccie.com 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 ASA 与 R3 能够通信即可。 (6)测试 PC 到 ASA 以及到 R2 的 Loopback 的连通性: 第 671 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 ASA 和 R2 的 Loopback 通信正 常。 (7)查看 PC 与 R2 的 Loopback 通信时的源地址: 第 672 页共 844 页 www.china-ccie.com 说明:因为 R3 已经配置 NAT 将 PC 所在的网段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 是使用源地址 23.1.1.3 与 R2 的 Loopback 通信的,同样也应该是使用 源地址 23.1.1.3 与 ASA 通信的。 (8)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 673 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部 ASA 防火墙上配置 SSL VPN (1)将 SSL VPN client 模块传至 ASA 防火墙: ciscoasa# dir 第 674 页共 844 页 Directory of disk0:/ www.china-ccie.com 4 drwx 2048 03:20:10 Nov 26 2008 .private 7 drwx 2048 14:33:48 Dec 03 2007 boot 15 -rwx 7562988 03:26:02 Nov 26 2008 asdm-613.bin 16 -rwx 2643,110 03:27:14 Nov 26 2008 anyconnect-win-2.3.0185-k9.pkg 15679488 bytes total (7690240 bytes free) ciscoasa# 说明:本实验已经将 SSL VPN client 模块(anyconnect-win-2.3.0185-k9.pkg)上传 至 ASA,如果需要,可以通过以下地址进行下载: http://www.china-ccie.com/download/sslclient/anyconnect-win-2.3.0185-k9.rar (2)开启 SSL VPN 并安装 client 模块: ciscoasa(config)# webvpn ciscoasa(config-webvpn)# enable outside INFO: WebVPN and DTLS are enabled on 'outside'. ciscoasa(config-webvpn)# svc image disk0:/anyconnect-win-2.3.0185-k9.pkg ciscoasa(config-webvpn)# svc enable ciscoasa(config-webvpn)# tunnel-group-list enable ciscoasa(config-webvpn)# exit 第 675 页共 844 页 www.china-ccie.com (3)配置自动分配给用户的地址池: ciscoasa(config)# ip local pool ccie 100.1.1.100-100.1.1.200 mask 255.255.255.0 (4)定义隧道分离网段: ciscoasa(config)# access-list split-ssl extended permit ip 10.1.1.0 255.255.255.0 any ciscoasa(config)# access-list split-ssl extended permit ip 4.4.4.4 255.255.255.255 any (5)定义组策略属性: ciscoasa(config)# group-policy SSLCLientPolicy internal ciscoasa(config)# group-policy SSLCLientPolicy attributes ciscoasa(config-group-policy)# address-pools value ccie ciscoasa(config-group-policy)# dns-server value 202.96.209.133 ciscoasa(config-group-policy)# default-domain value cisco.com ciscoasa(config-group-policy)# vpn-tunnel-protocol svc ciscoasa(config-group-policy)# split-tunnel-policy tunnelspecified ciscoasa(config-group-policy)# split-tunnel-network-list value split-ssl ciscoasa(config-group-policy)# exit (6)定义隧道策略属性: ciscoasa(config)# tunnel-group mygroup type remote-access 第 676 页共 844 页 www.china-ccie.com ciscoasa(config)# tunnel-group mygroup general-attributes ciscoasa(config-tunnel-general)# default-group-policy SSLCLientPolicy ciscoasa(config-tunnel-general)# tunnel-group mygroup webvpn-attributes ciscoasa(config-tunnel-webvpn)# group-alias mygroup enable ciscoasa(config-tunnel-webvpn)# exit (7)定义用来认证的账户: ciscoasa(config)# username chinaccie password chinaccie 4.测试 SSL VPN (1)在 PC 上建立 SSL VPN 连接: 在网页浏览器中输入 SSL VPN Server 外网地址:https://12.1.1.1,连接 SSL VPN Server 第 677 页共 844 页 www.china-ccie.com 说明:出现证书相关的“安全警报”对话框之后,点“是”. 出现如下登录认证界面之后,输入定义好的账户: 第 678 页共 844 页 www.china-ccie.com 输入账户之后,出现如下加载 Client 插件的进程: 第 679 页共 844 页 www.china-ccie.com 在等待中,会出现如下与证书相关的对话框,点“是”: 第 680 页共 844 页 www.china-ccie.com 等所有过程都结束之后,SSL VPN 将建立成功,如下图界面所显示:14 第 681 页共 844 页 www.china-ccie.com SSL VPN 建立成功后,还会在电脑桌面的右下角出现如下绿色小锁的图标: 第 682 页共 844 页 www.china-ccie.com 右键点击该绿色小锁的图标,选择“Open AnyConnect”查看详细信息: 然后可以看到如下图的信息: 第 683 页共 844 页 www.china-ccie.com 说明:从图中可以看出,从 SSL VPN Server 那里自动分配到的地址是 100.1.1.100, 并且还可以看到数据包转发情况。 点击“Details”查看更详细的信息: 第 684 页共 844 页 www.china-ccie.com 查看当前隧道分离情况: 第 685 页共 844 页 www.china-ccie.com 说明:与配置的效果一样,去往公司总部的 10.1.1.0/24 和 4.4.4.4/32 是需要从 VPN 隧道走的。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 686 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部 ASA 防火墙建立 SSL VPN 连接,所以现在与公司总部 的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (3)查看 PC 到公司总部的数据包源地址: 第 687 页共 844 页 www.china-ccie.com 说明:SSL VPN Client 是以从 Server 那里动态分配的地址为源和 Server 的网段进 行通信的。 (4)再次测试 PC 到 R2 的 Loopback 连通性: 说明:因为已经配置了隧道分离,所以 PC 到 Internet 路由器 R2(2.2.2.2)是通 的。 第 688 页共 844 页 www.china-ccie.com (5)查看 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 Internet 地址 2.2.2.2/32 的路径走向: 说明:从 PC 发向公司总部的数据包直接就到达了公司总部 ASA 防火墙,说明中 间的多跳已经被 VPN 隧道取代为一跳了,而到 Internet 地址 2.2.2.2/32 的数据包还是 从正常接口出去的。 (6)查看 PC 的路由表情况: 第 689 页共 844 页 www.china-ccie.com 说明:从 PC 的路由表中可以看出,因为配置了隧道分离,所以只有发往公司总 部的 10.1.1.0/24 和 4.4.4.4/32 的流量才从 VPN 接口 100.1.1.101 发出,而其它流量都 是从正常接口(30.1.1.3)发出,因为默认网关就是 30.1.1.3。 (7)查看 SSL VPN Server 的路由表情况: ciscoasa# sh route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 第 690 页共 844 页 www.china-ccie.com N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 S 100.1.1.100 255.255.255.255 [1/0] via 12.1.1.2, outside S 4.4.4.4 255.255.255.255 [1/0] via 10.1.1.4, inside C 10.1.1.0 255.255.255.0 is directly connected, inside C 12.1.1.0 255.255.255.0 is directly connected, outside S* 0.0.0.0 0.0.0.0 [1/0] via 12.1.1.2, outside ciscoasa# 说明:SSL VPN Server 自动产生了一条指向动态分配给 Client 的主机地址的路由, 说明默认没有 reverse-route 功能。ASA 上也看不出再多的其它信息,所以不再继续 查看。 5.测试 SSL VPN Server 上 NAT 对 SSL VPN 的影响 (1)在 ASA 上配置 NAT: ciscoasa(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool 第 691 页共 844 页 ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0 www.china-ccie.com 说明:在 ASA 上配置 NAT 将所有 inside 的流量都转换为 outside 接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:在 SSL VPN Server 上,NAT 对 SSL VPN 的影响和其它 VPN 一样,所以在 SSL VPN Server 上配置了 NAT 后,需要 SSL VPN 传递的流量就全不通了。 (3)将相应流量从 NAT 中移除 第 692 页共 844 页 www.china-ccie.com ciscoasa(config)# access-list nonat extended permit ip 10.1.1.0 255.255.255.0 any ciscoasa(config)# nat (inside) 0 access-list nonat 说明:将源 10.1.1.0/24 去往 SSL VPN Client 的流量从 NAT 中移除。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:因为源 10.1.1.0/24 去往 SSL VPN Client 的流量已经从 NAT 中移除,所以 PC 到 10.1.1.0/24 的流量正常,但到 4.4.4.4/32 的流量依然不通。 (5)再次将相应流量从 NAT 中移除: ciscoasa(config)# access-list nonat extended permit ip 4.4.4.4 255.255.255.255 any 第 693 页共 844 页 www.china-ccie.com 说明:除了将源 10.1.1.0/24 去往 SSL VPN Client 的流量从 NAT 中移除之外,再将 源 4.4.4.4/32 去往 SSL VPN Client 的流量从 NAT 中移除。 (6)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:因为源 10.1.1.0/24 和 4.4.4.4/32 去往 SSL VPN Client 的流量都已经从 NAT 中移除,所以 PC 到 10.1.1.0/24 和 4.4.4.4/32 的流量正常。 第 694 页共 844 页 www.china-ccie.com PPTP VPN 概述 和 Easy VPN 以及 SSL VPN 一样,PPTP VPN 用在没有能够支持 VPN 功能路由器的 家庭网络、出差在外的没有使用路由器就接入 Internet 的移动办公人员。PPTP VPN 的部署架构和 Easy VPN 以及 SSL VPN 相同,都是使用远程拥有可路由公网 IP 地址 的 PC 穿越 Internet 呼叫总部的 VPN Server,从而建立 VPN 隧道以提供 Client 与总部 之前的数据加密传输。 PPTP VPN 和 Easy VPN 与 SSL VPN 也有着不同之处,使用 PPTP VPN 的 PC 上不需 要像 EasyVPN 那样安装任何拨号软件,也不需要像 SSL VPN 那样安装任何插件,在 运行 Windows 系统的 PC 上直接创建 VPN 连接即可,非常方便。 通过 PPTP VPN Server 认证的 Client 同样会被自动分配一个 IP 地址,该地址就是 VPN 隧道的地址,默认情况下,PC 端的所有流量都从 VPN 隧道接口发出,但这样 一来,就会造成 PC 端所有的流量都被发到 VPN Server 而不能上 Internet,通常我们 是通过隧道分离(Split Tunneling)将 Client 需要走 VPN 隧道加密的流量和不需要走 VPN 的普通流量区分开来,但遗憾的是 PPTP VPN 不支持在 VPN Server 上配置隧道 分离,因为 PPTP VPN Server 无法向 Client 推送隧道分离信息,所以将 Client 需要走 VPN 隧道加密的流量和不需要走 VPN 的普通流量区分开的工作需要在 VPN 连接的 PC 上手动完成,这些设置将在后续实验中详细介绍。 PPTP VPN 的数据包是 PPP 格式封装的,并且实现隧道功能的协议是二层协议 Point to Point Tunneling Protocol (PPTP),所以 PPTP VPN 的隧道是在二层实现的。使 用 VPN,安全是一个必不可少的环节,PPTP VPN 同样需要加密协议,它使用的是 Microsoft Point-to-Point Encryption (MPPE) 协议,MPPE 是 Microsoft 的加密技术,使 用的是 RC4 算法,有 40 Bit 或 128 Bit 两种加密长度可选,双方加解密长度必须是一 样的。 PPTP 使用 TCP 端口号 1723,源端口是随机的,并且是扩展了 GRE 来封装数据的。 第 695 页共 844 页 www.china-ccie.com MPPE 两种模式: Stateful (工作性能好,但不稳定,数据容易丢包) Stateless (工作性能不算好,但很稳定,数据不丢包) 在双方没有指定工作模式的情况下, stateless 模式被优先选用,如果其中一方 指定 Stateful,而另一方不指定,则双方工作在 Stateful 模式。 从上面可以看出,隧道协议 PPTP 和加密协议 MPPE 结合工作从而形成 PPTP VPN, 因为 PPTP 是个隧道协议,隧道协议可以单独使用而不需要加密协议,当 PPTP 和 MPPE 结合使用时,则最多支持 500 条隧道会话,如果 PPTP 单独使用时,可最多支 持 2000 条隧道会话。 当 PPTP 结合 MPPE 实现 PPTP VPN 时,呼叫的 Client 必须是 Windows 系统,并 且在 Windows 中必须使用 MS-CHAP 认证。 在 PPTP VPN 的认证中,如果要使用远程服务器认证,只支持 RADIUS 而不支持 TACACS。 在配置 PPTP 时,必须创建 Virtual Template 接口,当用户认证成功之后,会自动 为该用户创建 virtual-access 接口。 配置 MPPE 时,可以指定 40 bit 或 128 bit,也可以配置为 auto 自动协商加密位 数,但是否加密也需要看配置,模式 Passive 表示不加密,如果对方需要加密,本端 则起用加密,而 Required 则是必须加密,否则拒绝连接。 注: ★PIX 防火墙支持 PPTP VPN,但 OS 版本必须在 version 5.1 到 6.X 范围内,任何 version 7.X 之后都是不支持的。 ★ASA 防火墙是不支持 PPTP VPN 的。 第 696 页共 844 页 www.china-ccie.com ★在路由器中默认为本地用户数据库认证,而 PIX 中必须指定认证方式。 ★PPTP 是 VPDN 的一种。 PPTP VPN over Router 在本小节,我们在路由器上配置 PPTP VPN,即配置 PPTP VPN over Router。 配置 PPTP VPN over Router 说明:我们下面需要以上图的环境来演示 PPTP VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 R1 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,R1 为公司总 部的 PPTP VPN Server,PC 需要先和 R1 的公网出口能够通信,然后通过与 R1 建立 PPTP VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越 公网的通信;因为 PC 要先和 R1 的公网接口能够通信,所以 R3 需要对 PC 所在的网 段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 R1 的公网是通的。 第 697 页共 844 页 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit www.china-ccie.com r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 4.4.4.4 255.255.255.255 10.1.1.4 r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 说明:配置 R1 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 第 698 页共 844 页 r2(config-if)#no sh r2(config-if)#exit www.china-ccie.com r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: 第 699 页共 844 页 r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# 第 700 页共 844 页 r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 第 701 页共 844 页 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口路由器 R1。同时配 置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 702 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 R1 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 220/377/716 ms r3# 说明:因为 R3 与 R1 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 R1 都是可达的,所以 R3 与 R1 通信正常。 第 703 页共 844 页 www.china-ccie.com (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/72/112 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.UU. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. 第 704 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 R1 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 第 705 页共 844 页 23.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 (6)测试 PC 到 R1 以及到 R2 的 Loopback 的连通性: 第 706 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 R1 和 R2 的 Loopback 通信正 常。 (7)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 707 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部路由器 R1 上配置 PPTP VPN (1)创建自动分配给用户的地址池: r1(config)#ip local pool ccie 100.1.1.100 100.1.1.200 说明:自动分配给用户的地址范围是 100.1.1.100 -100.1.1.200。 第 708 页共 844 页 www.china-ccie.com (2)创建 virtual template 接口,并指定各参数: r1(config)#interface virtual-template 1 r1(config-if)#ip unnumbered f0/0 r1(config-if)#peer default ip address pool ccie r1(config-if)#ppp encrypt mppe auto r1(config-if)#ppp authentication ? chap Challenge Handshake Authentication Protocol (CHAP) eap Extensible Authentication Protocol (EAP) ms-chap Microsoft Challenge Handshake Authentication Protocol (MS-CHAP) ms-chap-v2 Microsoft CHAP Version 2 (MS-CHAP-V2) pap Password Authentication Protocol (PAP) r1(config-if)#ppp authentication pap chap ms-chap 说明:在接口 F0/0 上开启 PPTP VPN 功能,并指定地址池,MPPE 加密为自动协 商,包括位数等等,认证方法则开启多个,任何一个匹配即可,但 ms-chap 在有 MPPE 的情况下是必须的。 (3)开启 VPDN 功能: r1(config)#vpdn enable r1(config)#vpdn-group 1 r1(config-vpdn)#accept-dialin 第 709 页共 844 页 r1(config-vpdn-acc-in)#protocol ? any Use any protocol l2f Use L2F l2tp Use L2TP pppoe Use PPPoE pptp Use PPTP www.china-ccie.com r1(config-vpdn-acc-in)#protocol pptp r1(config-vpdn-acc-in)#virtual-template 1 说明:开启 VPDN 功能,接受远端呼叫,并指定协议为 PPTP, (4)定义本地用户数据库: r1(config)#username chinaccie password chinaccie 说明:定义用来认证的用户名和密码。 4.测试 PPTP VPN (1)在 PC 上建立 VPN 拨号连接: 进入“网上邻居”的属性栏目中(本文档摘自 XP 系统,不同系统可能有略微区 别),单击左侧的“创建一个新的连接”: 第 710 页共 844 页 www.china-ccie.com 出现如下“新建连接向导”,然后点击“下一步”: 第 711 页共 844 页 www.china-ccie.com 选择“连接到我的工作场所的网络(O)”,然后点击“下一步”: 第 712 页共 844 页 www.china-ccie.com 选择“虚拟专用网络连接(Y)”,然后点击“下一步”: 第 713 页共 844 页 www.china-ccie.com 在公司名下面的空白栏中输入该连接的名字,没有任何意义,只是标识而已, 可 以 随 便 输 入 , 然 后 点 击 “ 下 一 步 ”: 第 714 页共 844 页 www.china-ccie.com 输入需要连接的 PPTP VPN 服务器外网地址,本实验为公司总部路由器 R1 的外 网地址 12.1.1.1,然后点击“下一步”: 第 715 页共 844 页 www.china-ccie.com 最后完成所有过程: 第 716 页共 844 页 www.china-ccie.com 连接创建完成之后,会自动打开,在连接对话框中输入 PPTP VPN Server 上配置 的认证用户名和密码,本实验的用户名和密码都为 chinaccie,输入完之后,点击“连 接”,便开始进行 PPTP VPN 呼叫: 第 717 页共 844 页 www.china-ccie.com 当连接成功之后,会在桌面的右下角出现连接成功的图标和提示信息: 可以点击连接图标,查看具体的详细信息: 第 718 页共 844 页 www.china-ccie.com 说明:从图中可以看出,从 PPTP VPN Server 那里自动分配到的地址是 100.1.1.100。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 719 页共 844 页 www.china-ccie.com 说明:因为已经与公司总部路由器 R1 建立 PPTP VPN 连接,所以现在与公司总部 的 10.1.1.0/24 和 4.4.4.4/32 通信正常。 (3)再次测试 PC 到 R2 的 Loopback 连通性: 第 720 页共 844 页 www.china-ccie.com 说明:在 PC 连通 PPTP VPN 之后,到 R2 的 Loopback 的通信失败,R2 的 Loopback 也相当于 Internet 地址,这说明正常情况下,PC 连通 PPTP VPN 之后,所有的数据 包都发往 PPTP VPN Server,但 PPTP VPN Server 却不会将来自于 Client 的流量从开启 了 PPTP VPN 的接口发出去,但其它接口可以,如内网。 (4)查看 PC 的路由表情况: 第 721 页共 844 页 www.china-ccie.com 说明:现在 PC 的默认网关为 PPTP VPN 的接口地址 10.1.1.100,即所有去往外部 的流量都从 VPN 隧道发出去,最终就发到了 PPTP VPN Server,所以就失去了与 Internet 的连接,在这样的情况下,隧道分离(Split Tunneling)就显现出了它的作 用,因为在这里很明显,只有发往公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量才需 要走 VPN 隧道,而其它所有流量都走原来的正常接口,这就需要隧道分离将两类流 量分开处理;但遗憾的是,PPTP VPN 不支持在 Server 上配置隧道分离,因为 PPTP VPN Server 无法将隧道分离信息推送到用户端,所以要将走 VPN 隧道的流量和不走的流 量区分开来,必须由用户手工完成。 第 722 页共 844 页 (5)查看 PPTP VPN Server 的情况: r1#show vpdn www.china-ccie.com %No active L2F tunnels %No active L2TP tunnels PPTP Tunnel and Session Information Total tunnels 1 sessions 1 LocID Remote Name State Remote Address Port Sessions VPDN Group 15 estabd 23.1.1.3 2366 1 1 LocID RemID TunID Intf Username State Last Chg Uniq ID 14 16384 15 Vi3 chinaccie estabd 00:02:52 13 r1# r1#who Line User Host(s) Idle Location 第 723 页共 844 页 * 0 con 0 idle 00:00:00 www.china-ccie.com Interface User Vi3 chinaccie Mode Idle Peer Address PPPoVPDN 00:00:13 10.1.1.100 r1# 说明:可以看到当前 PPTP 隧道情况,以及在线的 PPTP 用户。 (6)查看 PPTP VPN Server 的路由表情况: r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 第 724 页共 844 页 www.china-ccie.com 4.0.0.0/32 is subnetted, 1 subnets S 4.4.4.4 [1/0] via 10.1.1.4 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.1.1.0/24 is directly connected, FastEthernet0/1 C 10.1.1.100/32 is directly connected, Virtual-Access3 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:Server 上的路由表不会因为用户的连接而有变动。 (7)查看 PPTP VPN Server 的接口情况: r1#show ip interface brief Interface IP-Address OK? Method Status FastEthernet0/0 12.1.1.1 YES manual up FastEthernet0/1 10.1.1.1 YES manual up Virtual-Access1 unassigned YES unset down Virtual-Template1 12.1.1.1 YES TFTP down Virtual-Access2 unassigned YES unset up 第 725 页共 844 页 Protocol up up down down up Virtual-Access3 12.1.1.1 YES TFTP up r1# 说明:会为用户创建一个 Virtual-Access 接口。 www.china-ccie.com up 5.配置隧道分离(Split Tunneling) (1)在用户 PC 上配置隧道分离: 在连接 PPTP VPN 成功之后,点击连接图标出现如下状态框,然后单击“属性”: 出现如下属性对话框,选中“网络”选项卡,然后双击“Internet 协议 (TCP/IP)”: 第 726 页共 844 页 www.china-ccie.com 出现如下 Internet 协议 (TCP/IP)属性对话框后,点击下面的“高级”: 第 727 页共 844 页 www.china-ccie.com 出现如下高级 TCP/IP 设置对话框,将“在远程网络上使用默认网关(U)”前 面 的勾去掉即可: 第 728 页共 844 页 www.china-ccie.com 确定之后,会提示重新连接后生效: 第 729 页共 844 页 www.china-ccie.com (2)再次查看 PC 的路由表情况: 第 730 页共 844 页 www.china-ccie.com 说明:在 PC 上设置了隧道分离之后,默认网关已经变成了正常接口 30.1.1.3 而 不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常接口发出, 但只有与 VPN 接口地址段 100.0.0.0/8 同网段的才从 PPTP VPN 中发出。 (3)再次测试 PC 到 R2 的 Loopback 连通性: 第 731 页共 844 页 www.china-ccie.com 说明:因为在 PC 上设置了隧道分离,默认网关已经变成了正常接口 30.1.1.3 而 不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常接口发出, 但只有与 VPN 接口地址段 100.0.0.0/8 同网段的才从 PPTP VPN 中发出,所以与 R2 的 Loopback 通信也正常。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 732 页共 844 页 www.china-ccie.com 说明:在 PC 上设置了隧道分离之后,PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的流量再也不通了,因为只有与 VPN 接口地址段 100.0.0.0/8 同网段的才从 PPTP VPN 中发出,而公司总部的 10.1.1.0/24 和 4.4.4.4/32 与 VPN 接口地址无关,所以必须修 改分配给用户 PC 的地址池,地址池应该和 PC 用户需要通信的内网在同网段,这是 PPTP VPN 的限制条件。 (5)修改分配给用户 PC 的地址池网段: r1(config)#no ip local pool ccie 100.1.1.100 100.1.1.200 r1(config)#ip local pool ccie 10.1.1.100 10.1.1.200 说明:因为要和总部 10.1.1.0/24 通信,所以地址池也必须在这个网段,用户 PC 第 733 页共 844 页 只将 VPN 接口同网段的流量通过 VPN 发到总部。 www.china-ccie.com (6)再次查看 PC 的路由表情况: 说明:在 PPTP VPN Server 上修改了地址池之后,与 VPN 接口地址段 10.0.0.0/8 同网段的流量将从 PPTP VPN 中发出,而所有未知目标的流量,如 Internet 的流量则 从正常接口发出, 第 734 页共 844 页 www.china-ccie.com (7)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 说明:因为只有与 VPN 接口地址段 10.0.0.0/8 同网段的流量将从 PPTP VPN 中发 出,而所有未知目标的流量,如 Internet 的流量则从正常接口发出,所以公司总部 的 4.4.4.4/32 是不通的,因为是从正常接口发出的,最终被 Internet 路由器 R2 收到, 对于 R2 来说,是没有公司私有网段的路由的。 (8)再次测试 PC 到 R2 的 Loopback 连通性: 第 735 页共 844 页 www.china-ccie.com 说明:因为在 PC 上设置了隧道分离,默认网关已经变成了正常接口 30.1.1.3 而 不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常接口发出, 但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 PPTP VPN 中发出,所以与 R2 的 Loopback 通信也正常。 6.测试 PPTP VPN Server 上 NAT 对 PPTP VPN 的影响 (1)在 R1 上配置 NAT: r1(config)#int f0/1 r1(config-if)#ip nat inside r1(config-if)#exit 第 736 页共 844 页 r1(config)#int f0/0 r1(config-if)#ip nat outside r1(config-if)#exit www.china-ccie.com r1(config)#access-list 111 permit ip any any r1(config)#ip nat inside source list 111 interface f0/0 overload 说明:在 R1 上配置 NAT 将所有内网的流量都转换为外网接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 说明:在 PPTP VPN Server 上,NAT 对 PPTP VPN 的影响和其它 VPN 一样,所以在 PPTP VPN Server 上配置了 NAT 后,需要 PPTP VPN 传递的流量就全不通了。 第 737 页共 844 页 (3)将相应流量从 NAT 中移除: www.china-ccie.com r1(config)#no access-list 111 r1(config)#access-list 111 deny ip host 12.1.1.1 any r1(config)#access-list 111 per ip any any 说明:路由器上 PPTP VPN 的 NAT 流量移除比较特别,并不是把特定的流量移除, 而是放开 Server 的外网接口到任意地址的流量,也许有的 IOS,操作会有所不一样, 可能是常规的移除方法,请自己注意。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 说明:因为路由器上 PPTP VPN 的 NAT 流量移除比较特别,是放开 Server 的外网 地址到任意地址流量,而不是放开指定流量,所以没办法对指定的流量进行控制。 (5)查看 NAT 移除的 ACL 情况: 第 738 页共 844 页 r1#sh ip access-lists www.china-ccie.com Extended IP access list 111 10 deny ip host 12.1.1.1 any (55 matches) 20 permit ip any any r1# 说明,可以看到,VPN 流量的正常通信,是因为 ACL 匹配的 Server 的外网地址 到任意地址流量被 NAT 拒绝了,所以网络才通了。 PPTP VPN over PIX 在本小节,我们在 PIX 防火墙上配置 PPTP VPN,即配置 PPTP VPN over PIX。 配置 PPTP VPN over PIX(必须在 PIX 7.X 之前的版本,本节实验基于 PIX 6.3 版本) 第 739 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 PPTP VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 PIX 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,R1 为公司总 部的 PPTP VPN Server,PC 需要先和 PIX 的公网出口能够通信,然后通过与 PIX 建立 PPTP VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越 公网的通信;因为 PC 要先和 PIX 的公网接口能够通信,所以 R3 需要对 PC 所在的网 段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 PIX 的公网是通的。 1.配置基础网络环境 (1)配置 PIX: pix(config)# nameif ethernet0 outside security0 pix(config)# nameif ethernet1 inside security100 pix(config)# pix(config)# ip address inside 10.1.1.1 255.255.255.0 第 740 页共 844 页 pix(config)# ip address outside 12.1.1.1 255.255.255.0 www.china-ccie.com pix(config)# pix(config)# interface ethernet0 auto pix(config)# interface ethernet1 auto pix(config)# pix(config)# route outside 0 0 12.1.1.2 pix(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 说明:配置 PIX 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 第 741 页共 844 页 r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# www.china-ccie.com r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh 第 742 页共 844 页 r3(config-if)#exit www.china-ccie.com r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit 第 743 页共 844 页 r3(config)# www.china-ccie.com r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 第 744 页共 844 页 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 PIX 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 745 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 PIX 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 220/377/716 ms r3# 说明:因为 R3 与 PIX 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 PIX 都是可达的,所以 R3 与 PIX 通信正常。 第 746 页共 844 页 www.china-ccie.com (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/72/112 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.UU. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. 第 747 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 PIX 的通信,所以 R3 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 第 748 页共 844 页 23.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 PIX 与 R3 能够通信即可。 (6)测试 PC 到 PIX 以及到 R2 的 Loopback 的连通性: 第 749 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 PIX 和 R2 的 Loopback 通信正 常。 (7)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 750 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部 PIX 防火墙上配置 PPTP VPN (1)创建自动分配给用户的地址池: pix(config)# ip local pool ccie 10.1.1.100-10.1.1.200 说明:自动分配给用户的地址范围是 10.1.1.100 -10.1.1.200。 第 751 页共 844 页 www.china-ccie.com (2)开启 VPDN 的 PPTP 被叫功能,并指定各认证参数: pix(config)# vpdn group 1 accept dialin pptp pix(config)# vpdn group 1 ppp authentication pap pix(config)# vpdn group 1 ppp authentication chap pix(config)# vpdn group 1 ppp authentication mschap pix(config)# vpdn group 1 ppp encryption mppe auto (3)指定地址池: pix(config)# vpdn group 1 client configuration address local ccie (4)指定认证方式为本地用户数据库认证: pix(config)# vpdn group 1 client authentication local (5)在 outside 口开启 VPDN 功能: pix(config)# vpdn enable outside (6)创建供 VPDN 认证的账户: pix(config)# vpdn username chinaccie password chinaccie 说明:注意创建用户的方法,否则无法通过认证。 4.测试 PPTP VPN 第 752 页共 844 页 (1)在 PC 上建立 VPN 拨号连接: www.china-ccie.com 使用之前在上个实验中已经创建好的 VPN 连接,用户名和密码正确输入: 当在如下进程时,基本上是连接成功的: 第 753 页共 844 页 www.china-ccie.com 当连接成功之后,会在桌面的右下角出现连接成功的图标和提示信息: 可以点击连接图标,查看具体的详细信息: 说明:从图中可以看出,从 PPTP VPN Server 那里自动分配到的地址是 10.1.1.100。 (2)查看 PC 的路由表情况: 第 754 页共 844 页 www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 PPTP VPN 中发出,对 于 4.4.4.4/32,不可能通,我们也就不用再测了。 (3)测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 755 页共 844 页 www.china-ccie.com 说明:在正常理论下,现在 PC 应该和公司总部的 10.1.1.0/24 是通的,但是很不 巧的是,在 PIX 支持 PPTP VPN 的老版本 OS 中,默认就是开启 NAT 并对所有 inside 内网流量进行 NAT 源地址转换的,所以在这里,PIX 上默认已经开启的 NAT 影响了 正常流量的通信,最终 PC 在 PPTP VPN 已经建立的情况下也不能与公司总部的 10.1.1.0/24 通信,要解决此问题,必须将相应流量绕过 NAT,即不让公司总部和用 户地址池的流量受 NAT 转换。 (4)查看 PIX 上当前的 PPTP VPN 状态: pix# show vpdn %No active L2TP tunnels PPTP Tunnel and Session Information (Total tunnels=1 sessions=1) Tunnel id 5, remote id is 5, 1 active sessions Tunnel state is estabd, time since event change 34 secs remote Internet Address 23.1.1.3, port 3946 Local Internet Address 12.1.1.1, port 1723 第 756 页共 844 页 www.china-ccie.com 13 packets sent, 52 received, 415 bytes sent, 8548 received Call id 5 is up on tunnel id 5 Remote Internet Address is 23.1.1.3 Session username is chinaccie, state is estabd Time since event change 33 secs, interface outside Remote call id is 0 PPP interface id is 1 13 packets sent, 52 received, 415 bytes sent, 8548 received Seq 14, Ack 51, Ack_Rcvd 13, peer RWS 64 0 out of order packets %No active PPPoE tunnels pix# pix# pix# show vpdn session %No active L2TP tunnels PPTP Session Information (Total tunnels=1 sessions=1) Call id 5 is up on tunnel id 5 第 757 页共 844 页 Remote Internet Address is 23.1.1.3 www.china-ccie.com Session username is chinaccie, state is estabd Time since event change 107 secs, interface outside Remote call id is 0 PPP interface id is 1 13 packets sent, 56 received, 415 bytes sent, 10291 received Seq 14, Ack 55, Ack_Rcvd 13, peer RWS 64 0 out of order packets %No active PPPoE tunnels pix# 说明:可以看到当前 PPTP 隧道情况,以及在线的 PPTP 用户。 4.将相应流量从 NAT 中移除 (1)将公司总部去往用户地址池的任意流量拒绝 NAT 转换: pix(config)# access-list 111 permit ip any 10.1.1.0 255.255.255.0 pix(config)# nat (inside) 0 access-list 111 pix(config)# pix(config)# access-list 112 permit ip any 10.1.1.4 255.255.255.255 第 758 页共 844 页 pix(config)# access-group 112 in interface outside www.china-ccie.com 说明:将所有公司总部去往用户地址池 10.1.1.0/24 的流量放入 NAT 0 中从而不做 转换,并且在 outside 也要放行用户到达公司总部相应网段的流量。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 说明:因为已经在 PIX 防火墙上将所有公司总部去往用户地址池 10.1.1.0/24 的流 量放入 NAT 0 中从而不做转换,并且在 outside 也要放行用户到达公司总部相应网段 的流量,所以用户去往公司总部 10.1.1.0/24 的流量正常,但去往 4.4.4.4/32 的流量 在启用了隧道分离的情况下是不可能通的。 第 759 页共 844 页 www.china-ccie.com (3)查看 PC 到公司总部 10.1.1.0/24 的数据包源地址: 说明:PPTP VPN 用户是以从 Server 那里动态分配的地址为源和公司总部的网段 进行通信的。 L2TP VPN 概述 L2TP VPN 和 PPTP VPN 在用途和工作方式上几乎都是相同的,都是用在没有能 够支持 VPN 功能路由器的家庭网络、出差在外的没有使用路由器就接入 Internet 的 移动办公人员。 第 760 页共 844 页 www.china-ccie.com L2TP VPN 的隧道也是在二层实现的,它结合了两个隧道协议的特性: Cisco 的 Layer 2 Forwarding (L2F) Microsoft 的 Point-to-Point Tunneling Protocol (PPTP) 但这些隧道协议只是实现隧道而已,无法保证数据安全,所以利用 IPsec 来保护 数据更为理想。 如果将 L2TP 结合 IPsec 来使用,则称为 L2TP over IPsec,但通常我们在路由器上 都不配置 IPsec,由于 L2TP 不仅支持路由器,同时还支持 PIX 防火墙和 ASA 防火墙, 但在防火墙上必须同时使用 L2TP 和 IPsec,不能单独使用 L2TP,所以我们在防火墙 上总是配置 L2TP over IPsec。 注: ★L2TP 使用 UDP 端口号 1701。 ★防火墙上必须同时使用 L2TP 和 IPsec,不能单独使用 L2TP,所以 我们在防火墙 上总是配置 L2TP over IPsec。 ★PIX 防火墙支持 L2TP 和 IPsec 的软件版本为 6.x 或更高的版本,并且在防火墙 中只支持 default tunnel group 以及 default group policy。 ★在配置 L2TP over IPsec 时,IPsec 应该配置为 transport mode。 ★当在路由器上配置 L2TP 时,需要在 Windows 的 PC 上添加相项注册表项,添 加的方法为: ★在“运行”栏输入“regedit”打开注册表, ★ 进 到 目 录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters ★右健新建 DWORD 值,重命名为:ProhibitIpSec,然后将数值数据改为 1, ★添加完后并重启电脑。 也可通过本站下载注册表文件直接运行后修改 L2TP VPN 相关键值,下载地址如 下: 第 761 页共 844 页 http://www.china-ccie.com/tech/vpn/l2tp.rar www.china-ccie.com 当配置 L2TP over IPsec 时,在 Windows 2000 上需要添加该注册表项,Windows XP 则不需要,当使用 ASA 时,添不添加都没关系,但如果在连接时出现“错误 800” 的提示时,请删除该注册表项,所以也需要以自身实际情况为主;其它系统也请以 实际为主。 L2TP VPN over Router 在本小节,我们在路由器上配置 L2TP VPN,即配置 L2TP VPN over Router。 配置 L2TP VPN over Router 第 762 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 L2TP VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 R1 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,R1 为公司总 部的 L2TP VPNServer,PC 需要先和 R1 的公网出口能够通信,然后通过与 R1 建立 L2TP VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公网的 通信;因为 PC 要先和 R1 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 R1 的公网是通的。 1.配置基础网络环境 (1)配置 R1: r1(config)#int f0/0 r1(config-if)#ip add 12.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#int f0/1 r1(config-if)#ip add 10.1.1.1 255.255.255.0 r1(config-if)#no sh r1(config-if)#exit r1(config)#ip route 4.4.4.4 255.255.255.255 10.1.1.4 第 763 页共 844 页 r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 www.china-ccie.com 说明:配置 R1 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 第 764 页共 844 页 r2(config-line)#no login www.china-ccie.com r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 第 765 页共 844 页 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# www.china-ccie.com r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 第 766 页共 844 页 www.china-ccie.com 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# r4(config)#line vty 0 15 r4(config-line)#no login 第 767 页共 844 页 r4(config-line)#exit www.china-ccie.com 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口路由器 R1。同时配 置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 第 768 页共 844 页 www.china-ccie.com (2)测试 R3 到 R1 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 220/377/716 ms r3# 说明:因为 R3 与 R1 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 R1 都是可达的,所以 R3 与 R1 通信正常。 (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/72/112 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 第 769 页共 844 页 Type escape sequence to abort. www.china-ccie.com Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.UU. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U.U.U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 R1 的通信,所以 R1 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 第 770 页共 844 页 www.china-ccie.com i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 R1 与 R3 能够通信即可。 (6)测试 PC 到 R1 以及到 R2 的 Loopback 的连通性: 第 771 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 R1 和 R2 的 Loopback 通信正 常。 (7)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 772 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部路由器 R1 上配置 L2TP VPN (1)创建自动分配给用户的地址池: r1(config)#ip local pool ccie 10.1.1.100 10.1.1.200 说明:自动分配给用户的地址范围是 10.1.1.100 -10.1.1.200。 第 773 页共 844 页 www.china-ccie.com (2)创建 virtual template 接口,并指定各参数: r1(config)#interface Virtual-Template1 r1(config-if)# ip unnumbered FastEthernet0/0 r1(config-if)# peer default ip address pool ccie r1(config-if)# ppp authentication chap ms-chap r1(config-if)#exit (3)开启 VPDN 功能: r1(config)#vpdn enable r1(config)#vpdn-group 1 r1(config-vpdn)#accept-dialin r1(config-vpdn-acc-in)#protocol l2tp r1(config-vpdn-acc-in)#virtual-template 1 r1(config-vpdn-acc-in)#no l2tp tunnel authentication r1(config-vpdn)#exit 说明:开启 VPDN 功能,接受远端呼叫,并指定协议为 L2TP, (4)定义本地用户数据库: r1(config)#username chinaccie password chinaccie 第 774 页共 844 页 说明:定义用来认证的用户名和密码。 www.china-ccie.com 4.测试 PPTP VPN (1)在 PC 上建立 VPN 拨号连接: 首先在“运行”里面输入 regedit 编辑注册表,如下图: 说明:右键选择“新建”→“DWORD 值”,然后继续: 第 775 页共 844 页 www.china-ccie.com 说明:新的注册表项被创建,新名字重命名为 ProhibitIpSec,如下图: 第 776 页共 844 页 www.china-ccie.com 双击新建的注册表项,将数值数据修改为 1,如下图: 第 777 页共 844 页 www.china-ccie.com 修改完后,重启电脑,然后使用在之前的实验中已经创建好的 VPN 连接,用户 名和密码正确输入: 第 778 页共 844 页 www.china-ccie.com 当在如下进程时,基本上是连接成功的: 当连接成功之后,会在桌面的右下角出现连接成功的图标和提示信息: 第 779 页共 844 页 www.china-ccie.com 可以点击连接图标,查看具体的详细信息: 说明:从图中可以看出,从 L2TP VPN Server 那里自动分配到的地址是 10.1.1.100。 第 780 页共 844 页 (2)查看 PC 的路由表情况: www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通,我们也就不用再测了。 (3)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 781 页共 844 页 www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通。 (4)查看 PC 到公司总部的数据包源地址: 第 782 页共 844 页 www.china-ccie.com 说明:L2TP VPN Client 是以从 Server 那里动态分配的地址为源和 Server 的网段进 行通信的。 (5)再次测试 PC 到 R2 的 Loopback 连通性: 说明:因为已经配置了隧道分离,所以 PC 到 Internet 路由器 R2(2.2.2.2)是通 的。 第 783 页共 844 页 www.china-ccie.com (6)查看 L2TP VPN Server 的情况: r1#show vpdn %No active L2F tunnels L2TP Tunnel and Session Information Total tunnels 1 sessions 1 LocID RemID Remote Name State Remote Address Port Sessions L2TP Class/ VPDN Group 11300 1 gehd est 23.1.1.3 1701 1 1 LocID RemID TunID Username, Intf/ State Last Chg Uniq ID Vcid, Circuit 2 1 11300 chinaccie, Vi2.1 est 00:04:52 1 %No active PPTP tunnels r1# 第 784 页共 844 页 www.china-ccie.com r1#who Line User Host(s) Idle Location * 0 con 0 idle 00:00:00 Interface User Mode Idle Peer Address Vi2.1 chinaccie PPPoVPDN - 10.1.1.100 r1# 说明:可以看到当前 PPTP 隧道情况,以及在线的 PPTP 用户。 (7)查看 L2TP VPN Server 的路由表情况: r1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 第 785 页共 844 页 www.china-ccie.com i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 4.0.0.0/32 is subnetted, 1 subnets S 4.4.4.4 [1/0] via 10.1.1.4 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.1.1.0/24 is directly connected, FastEthernet0/1 C 10.1.1.100/32 is directly connected, Virtual-Access2.1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 12.1.1.2 r1# 说明:为自动分配给用户产生了一条指向用户的接口和地址。 6.测试 L2TP VPN Server 上 NAT 对 PPTP VPN 的影响 (1)在 R1 上配置 NAT: r1(config)#int f0/1 r1(config-if)#ip nat inside 第 786 页共 844 页 www.china-ccie.com *Mar 1 00:23:14.419: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed state to up r1(config-if)# r1(config-if)#exit r1(config)#int f0/0 r1(config-if)#ip nat outside r1(config-if)# r1(config-if)#exit r1(config)#access-list 111 permit ip any any r1(config)#ip nat inside source list 111 interface f0/0 overload 说明:在 R1 上配置 NAT 将所有内网的流量都转换为外网接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 787 页共 844 页 www.china-ccie.com 说明:在 L2TP VPN Server 上配置 NAT 之后,并没有对 VPN 的流量造成影响,但 并不代表任何设备上的 NAT 都不会对 VPN 造成影响,所以请注意自身的情况。 L2TP over IPsec on PIX 在本小节,我们在 PIX 防火墙上配置 L2TP over IPsec,即配置 L2TP over IPsec on PIX。 配置 L2TP VPN over PIX 第 788 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 L2TP VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 PIX 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,PIX 为公司总 部的 L2TP VPNServer,PC 需要先和 PIX 的公网出口能够通信,然后通过与 PIX 建立 L2TP VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿越公 网的通信;因为 PC 要先和 PIX 的公网接口能够通信,所以 R3 需要对 PC 所在的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 PIX 的公网是通的。 1.配置基础网络环境 (1)配置 PIX: pixfirewall(config)# int e0 pixfirewall(config-if)# ip add 12.1.1.1 255.255.255.0 第 789 页共 844 页 pixfirewall(config-if)# nameif outside www.china-ccie.com INFO: Security level for "outside" set to 0 by default. pixfirewall(config-if)# no shutdown pixfirewall(config-if)# exit pixfirewall(config)# int e1 pixfirewall(config-if)# ip add 10.1.1.1 255.255.255.0 pixfirewall(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. pixfirewall(config-if)# no shutdown pixfirewall(config-if)# exit pixfirewall(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 pixfirewall(config)# route outside 0 0 12.1.1.2 说明:配置 PIX 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同时 写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit 第 790 页共 844 页 r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit www.china-ccie.com r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh 第 791 页共 844 页 r3(config-if)#exit www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit 第 792 页共 844 页 www.china-ccie.com r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit 第 793 页共 844 页 r4(config)#int loopback 0 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 PIX 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 794 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 PIX 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 268/323/444 ms r3# 说明:因为 R3 与 PIX 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 PIX 都是可达的,所以 R3 与 PIX 通信正常。 第 795 页共 844 页 www.china-ccie.com (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/164/356 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.U.. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. 第 796 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U...U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 PIX 的通信,所以 R3 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 第 797 页共 844 页 23.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 PIX 与 R3 能够通信即可。 (6)测试 PC 到 PIX 以及到 R2 的 Loopback 的连通性: 第 798 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 PIX 和 R2 的 Loopback 通信正 常。 (7)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 799 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部 PIX 防火墙上配置 L2TP over IPsec on PIX (1)配置 IKE(ISAKMP)策略 pixfirewall(config)# crypto isakmp policy 10 pixfirewall(config-isakmp-policy)# authentication pre-share 第 800 页共 844 页 pixfirewall(config-isakmp-policy)# encryption 3des www.china-ccie.com pixfirewall(config-isakmp-policy)# hash sha pixfirewall(config-isakmp-policy)# group 2 pixfirewall(config-isakmp-policy)# exit pixfirewall(config)# crypto isakmp nat-traversal 10 pixfirewall(config)# crypto isakmp ipsec-over-tcp port 10000 说明:定义了 ISAKMP policy 10,加密方式为 3des,hash 算法为 sha,认证方式 为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)定义 crypto map 与 IPsec transform: pixfirewall(config)# crypto ipsec transform-set myset esp-3des esp-sha-hmac pixfirewall(config)# crypto ipsec transform-set myset mode transport pixfirewall(config)# crypto dynamic-map dymap 10 set transform-set myset pixfirewall(config)# crypto map l2tpvpn 10 ipsec-isakmp dynamic dymap pixfirewall(config)# crypto map l2tpvpn interface outside pixfirewall(config)# crypto isakmp enable outside 说明:将 crypto map 与 IPsec transform 关联起来,并应用于接口。 (3)定义 EzVPN Client 连接上来后自动分配的地址池: pixfirewall(config)# ip local pool ccie 10.1.1.100-10.1.1.200 mask 255.255.255$ 说明:地址池范围为 10.1.1.100-10.1.1.200。 第 801 页共 844 页 www.china-ccie.com (4)配置用户组策略: pixfirewall(config)# group-policy DefaultRAGroup internal pixfirewall(config)# group-policy DefaultRAGroup attributes pixfirewall(config-group-policy)# vpn-tunnel-protocol IPSec l2tp-ipsec pixfirewall(config-group-policy)# dns-server value 202.96.209.133 pixfirewall(config-group-policy)# default-domain value cisco.com pixfirewall(config-group-policy)# address-pools value ccie pixfirewall(config-group-policy)# exit 说明:组名建议使用名字为 DefaultRAGroup,不要使用其它名字,定义了地址池, 以及其它一些参数,这里的 vpn-tunnel-protocol 必须是 IPSec l2tp-ipsec。 (5)配置用户隧道信息: pixfirewall(config)# tunnel-group DefaultRAGroup general-attributes pixfirewall(config-tunnel-general)# default-group-policy DefaultRAGroup pixfirewall(config-tunnel-general)# exit pixfirewall(config)# tunnel-group DefaultRAGroup ipsec-attributes pixfirewall(config-tunnel-ipsec)# pre-shared-key chinaccie pixfirewall(config-tunnel-ipsec)# exit 说明:隧道名建议使用名字为 DefaultRAGroup,不要使用其它名字,并定义了认 证时使用的 PSK 密钥。 第 802 页共 844 页 (6)定义了认证信息: www.china-ccie.com pixfirewall(config)# tunnel-group DefaultRAGroup ppp-attributes pixfirewall(config-ppp)# authentication ms-chap-v2 pixfirewall(config-ppp)# exit (7)创建用户名和密码: pixfirewall(config)# username chinaccie password chinaccie pixfirewall(config)# username chinaccie password chinaccie mschap 说明:创建时,必须使用这种格式。 4.测试 L2TP over IPsec (1)在 PC 上建立 VPN 拨号连接: 使用在之前的实验中已经创建好的 VPN 连接,用户名和密码正确输入: 第 803 页共 844 页 www.china-ccie.com 然后点击“属性”,并修改相关设置,如下图: 第 804 页共 844 页 www.china-ccie.com 点击“IPsec 设置”,如下图: 第 805 页共 844 页 www.china-ccie.com 输入用来为 IPsec 认证的 PSK 密钥。 当前 PC 无法拨通 PIX 上的 L2TP over IPsec,如下图: 第 806 页共 844 页 www.china-ccie.com 说 明 : 因 为 XP 的 系 统 不 需 要 创 建 注 册 表 目 录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 下的 ProhibitIpSec,所以必须删除掉,如下图: 重启 PC 后,再拨,当连接成功之后,会在桌面的右下角出现连接成功的图标和 提示信息: 第 807 页共 844 页 可以点击连接图标,查看具体的详细信息: www.china-ccie.com 说明:从图中可以看出,从 L2TP VPN Server 那里自动分配到的地址是 10.1.1.100。 (2)查看 PC 的路由表情况: 第 808 页共 844 页 www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通,我们也就不用再测了。 (3)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 809 页共 844 页 www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通。 (4)再次测试 PC 到 R2 的 Loopback 连通性: 第 810 页共 844 页 www.china-ccie.com 说明:因为已经配置了隧道分离,所以 PC 到 Internet 路由器 R2(2.2.2.2)是通 的。 (5)查看 PIX 上的 IKE SA(ISAKMP SA): pixfirewall# show crypto isakmp sa Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 23.1.1.3 Type : user Role : responder Rekey : no State : MM_ACTIVE 第 811 页共 844 页 pixfirewall# www.china-ccie.com 说明:因为 L2TP over IPsec 使用了 IPsec,所以能看见 IKE SA 信息。 (6)查看 PIX 上的 IPsec SA: pixfirewall# show crypto ipsec sa pixfirewall# show crypto ipsec sa interface: outside Crypto map tag: dymap, seq num: 10, local addr: 12.1.1.1 local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/17/1701) remote ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/17/0) current_peer: 23.1.1.3, username: chinaccie dynamic allocated peer ip: 10.1.1.100 #pkts encaps: 300, #pkts encrypt: 300, #pkts digest: 300 #pkts decaps: 380, #pkts decrypt: 380, #pkts verify: 380 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 300, #pkts comp failed: 0, #pkts decomp failed: 0 #post-frag successes: 0, #post-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 第 812 页共 844 页 #send errors: 0, #recv errors: 0 www.china-ccie.com local crypto endpt.: 12.1.1.1/4500, remote crypto endpt.: 23.1.1.3/4500 path mtu 1500, ipsec overhead 66, media mtu 1500 current outbound spi: 5A6D826F inbound esp sas: spi: 0xF66624B1 (4133889201) transform: esp-3des esp-sha-hmac none in use settings ={RA, Transport, NAT-T-Encaps, } slot: 0, conn_id: 12288, crypto-map: dymap sa timing: remaining key lifetime (kB/sec): (207488/3389) IV size: 8 bytes replay detection support: Y outbound esp sas: spi: 0x5A6D826F (1517126255) transform: esp-3des esp-sha-hmac none in use settings ={RA, Transport, NAT-T-Encaps, } slot: 0, conn_id: 12288, crypto-map: dymap sa timing: remaining key lifetime (kB/sec): (207496/3388) IV size: 8 bytes 第 813 页共 844 页 replay detection support: Y www.china-ccie.com pixfirewall# 说明: IPsec SA 中显示了相应流量会被加密。 (7)查看 PIX 上的路由表情况: pixfirewall# sh route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 12.1.1.2 to network 0.0.0.0 S 4.4.4.4 255.255.255.255 [1/0] via 10.1.1.4, inside C 10.1.1.0 255.255.255.0 is directly connected, inside 第 814 页共 844 页 www.china-ccie.com S 10.1.1.100 255.255.255.255 [1/0] via 12.1.1.2, outside C 12.1.1.0 255.255.255.0 is directly connected, outside S* 0.0.0.0 0.0.0.0 [1/0] via 12.1.1.2, outside pixfirewall# 说明:为自动分配给用户产生了一条指向用户的接口和地址。 5.测试 L2TP over IPsec 上 NAT 对 L2TP VPN 的影响 (1)在 PIX 上配置 NAT: pixfirewall(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool pixfirewall(config)# nat (inside) 1 0.0.0.0 0.0.0.0 说明:在 PIX 上配置 NAT 将所有内网的流量都转换为外网接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 815 页共 844 页 www.china-ccie.com 说明:在 L2TP over IPsec Server 上,NAT 对 L2TP VPN 的影响和其它 VPN 一样,所 以在 L2TP over IPsec Server 上配置了 NAT 后,需要 L2TP VPN 传递的流量就全不通了。 (3)将相应流量从 NAT 中移除: pixfirewall(config)# access-list nonat extended permit ip 10.1.1.0 255.255.255.0 any pixfirewall(config)# nat (inside) 0 access-list nonat 说明:将源为 10.1.1.0/24 的流量从 NAT 中移除。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 816 页共 844 页 www.china-ccie.com 说明:因为源为 10.1.1.0/24 的流量已经从 NAT 中移除,所以 PC 到 10.1.1.0/24 的 流量正常。 L2TP over IPsec on ASA 在本小节,我们在 ASA 防火墙上配置 L2TP over IPsec,即配置 L2TP over IPsec on ASA。 配置 L2TP VPN over ASA 第 817 页共 844 页 www.china-ccie.com 说明:我们下面需要以上图的环境来演示 L2TP VPN 的效果,其中远程的 PC 机需 要直接使用私有地址来访问公司总部 10.1.1.0/24 和 4.4.4.4/32,而 R2 则相当于 Internet 路由器,R2 只负责让 ASA 与 R3 能够通信,R2 不会配置任何路由,R2 不允 许拥有公司总部的 10.1.1.0/24 和 4.4.4.4/32 以及 PC 所在的 30.1.1.0/24,ASA 为公司 总部的 L2TP VPNServer,PC 需要先和 ASA 的公网出口能够通信,然后通过与 ASA 建 立 L2TP VPN,最终通过 VPN 隧道来穿越没有路由的 R2,实现在私网与私网之间穿 越公网的通信;因为 PC 要先和 ASA 的公网接口能够通信,所以 R3 需要对 PC 所在 的网段 30.1.1.0/24 进行 NAT 转换,因为 R3 和 ASA 的公网是通的。 1.配置基础网络环境 (1)配置 ASA: ciscoasa(config)# int e0/0 ciscoasa(config-if)# ip add 12.1.1.1 255.255.255.0 ciscoasa(config-if)# nameif outside INFO: Security level for "outside" set to 0 by default. ciscoasa(config-if)# no shutdown 第 818 页共 844 页 ciscoasa(config-if)# exit www.china-ccie.com ciscoasa(config)# int e0/1 ciscoasa(config-if)# ip add 10.1.1.1 255.255.255.0 ciscoasa(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default. ciscoasa(config-if)# no shutdown ciscoasa(config-if)# exit ciscoasa(config)# route inside 4.4.4.4 255.255.255.255 10.1.1.4 ciscoasa(config)# route outside 0 0 12.1.1.2 ciscoasa(config)# 说明:配置 ASA 的接口地址,并写指向 R4 的 Loopback 地址 4.4.4.4 的路由,同 时写默认路由指向 Internet(路由器 R2),地址 12.1.1.2。 (2)配置 R2: r2(config)#int f0/0 r2(config-if)#ip add 12.1.1.2 255.255.255.0 r2(config-if)#no sh r2(config-if)#exit r2(config)#int f0/1 r2(config-if)#ip add 23.1.1.2 255.255.255.0 第 819 页共 844 页 r2(config-if)#no sh r2(config-if)#exit www.china-ccie.com r2(config)#int loopback 0 r2(config-if)#ip add 2.2.2.2 255.255.255.0 r2(config-if)#exit r2(config)# r2(config)#line vty 0 15 r2(config-line)#no login r2(config-line)#exit 说明:配置 R2 的接口地址,并配置 Loopback 地址 2.2.2.2/32,最后打开 VTY 线 路供 Telnet;因为 R2 模拟 Internet,R2 只需要有公网路由 12.1.1.0 和 23.1.1.0 即可, 所以 R2 不需要写任何路由,也不允许写任何路由。 (3)配置 R3: r3(config)#int f0/0 r3(config-if)#ip add 30.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit 第 820 页共 844 页 r3(config)#int f0/1 r3(config-if)#ip add 23.1.1.3 255.255.255.0 r3(config-if)#no sh r3(config-if)#exit www.china-ccie.com r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2 r3(config)#service dhcp r3(config)#ip dhcp pool net30 r3(dhcp-config)#network 30.1.1.0 255.255.255.0 r3(dhcp-config)#default-router 30.1.1.3 r3(dhcp-config)#dns-server 202.96.209.133 r3(dhcp-config)#exit r3(config)#ip dhcp excluded-address 30.1.1.3 r3(config)# r3(config)#int f0/0 r3(config-if)#ip nat inside r3(config-if)#exit 第 821 页共 844 页 r3(config)#int f0/1 r3(config-if)#ip nat outside r3(config-if)#exit r3(config)# www.china-ccie.com r3(config)#access-list 3 permit any r3(config)#ip nat inside source list 3 interface f0/1 overload r3(config)# 说明:配置 R3 的接口地址,并写默认路由指向 Interne(t 路由器 R2),地址 23.1.1.2; 并且在 R3 上开启 DHCP,让 PC 动态获得 IP 地址;同时 R3 将 PC 所在的网段全部 NAT 转换成外网接口地址 23.1.1.3 出去。 (4)配置 R4: r4(config)#int f0/1 r4(config-if)#ip add 10.1.1.4 255.255.255.0 r4(config-if)#no sh r4(config-if)#exit r4(config)#int loopback 0 第 822 页共 844 页 r4(config-if)#ip address 4.4.4.4 255.255.255.0 r4(config-if)#exit r4(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1 r4(config)# www.china-ccie.com r4(config)#line vty 0 15 r4(config-line)#no login r4(config-line)#exit 说明:配置 R4 的接口地址,并写默认路由指向公司总部出口 ASA 防火墙。同时 配置 Loopback 地址 4.4.4.4/32,最后打开 VTY 线路供 Telnet。 2.测试基础网络环境 (1)查看 PC 机的地址情况: 第 823 页共 844 页 www.china-ccie.com 说明:PC 机通过 R3 的 DHCP 正常获得了地址 30.1.1.1,并且网关指向 R3 内网接 口 30.1.1.3。 (2)测试 R3 到 ASA 的连通性: r3#ping 12.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 268/323/444 ms r3# 说明:因为 R3 与 ASA 都有默认路由指向 Internet(路由器 R2),而 R2 与 R3 和 ASA 都是可达的,所以 R3 与 ASA 通信正常。 第 824 页共 844 页 www.china-ccie.com (3)测试 R3 到 R2 的 Loopback 连通性: r3#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/164/356 ms r3# 说明:因为 R3 有默认路由指向 Internet(路由器 R2),所以 R3 与 R2 的 Loopback 通信正常。 (4)测试 R3 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: r3#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: U.U.. Success rate is 0 percent (0/5) r3# r3#ping 4.4.4.4 Type escape sequence to abort. 第 825 页共 844 页 www.china-ccie.com Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: U...U Success rate is 0 percent (0/5) r3# 说明:虽然 R3 有默认路由指向 Internet 路由器 R2,但 R2 只有公网路由 12.1.1.0 和 23.1.1.0,只能保证 R3 与 ASA 的通信,所以 R3 无法访问公司总部的私有网段 10.1.1.0/24 和 4.4.4.4/32。 (5)查看 R2 的路由表: r2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is directly connected, Loopback0 第 826 页共 844 页 23.0.0.0/24 is subnetted, 1 subnets www.china-ccie.com C 23.1.1.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.1.1.0 is directly connected, FastEthernet0/0 r2# 说明:因为 R2 模拟 Internet 路由器,所以 R2 没有写任何路由,R2 的责任就只 是保证 ASA 与 R3 能够通信即可。 (6)测试 PC 到 ASA 以及到 R2 的 Loopback 的连通性: 第 827 页共 844 页 www.china-ccie.com 说明:因为 PC 的默认网关指向路由器 R3,并且 R3 已经配置 NAT 将 PC 所在的网 段全部转换成外网接口地址 23.1.1.3 出去,所以 PC 与 ASA 和 R2 的 Loopback 通信正 常。 (7)测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 828 页共 844 页 www.china-ccie.com 说明:因为连 R3 都与公司总部的 10.1.1.0/24 和 4.4.4.4/32 不能通信,所以 PC 更 不能。 3.在公司总部 ASA 防火墙上配置 L2TP over IPsec on ASA (1)配置 IKE(ISAKMP)策略: ciscoasa(config)# crypto isakmp policy 10 ciscoasa(config-isakmp-policy)# authentication pre-share 第 829 页共 844 页 ciscoasa(config-isakmp-policy)# encryption 3des www.china-ccie.com ciscoasa(config-isakmp-policy)# hash sha ciscoasa(config-isakmp-policy)# group 2 ciscoasa(config-isakmp-policy)# exit ciscoasa(config)# crypto isakmp nat-traversal 10 ciscoasa(config)# crypto isakmp ipsec-over-tcp port 10000 说明:定义了 ISAKMP policy 10,加密方式为 3des,hash 算法为 sha,认证方式 为 Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为 group 2。 (2)定义 crypto map 与 IPsec transform: ciscoasa(config)# crypto ipsec transform-set myset esp-3des esp-sha-hmac ciscoasa(config)# crypto ipsec transform-set myset mode transport ciscoasa(config)# crypto dynamic-map dymap 10 set transform-set myset ciscoasa(config)# crypto map l2tpvpn 10 ipsec-isakmp dynamic dymap ciscoasa(config)# crypto map l2tpvpn interface outside ciscoasa(config)# crypto isakmp enable outside 说明:将 crypto map 与 IPsec transform 关联起来,并应用于接口。 (3)定义 EzVPN Client 连接上来后自动分配的地址池: ciscoasa(config)# ip local pool ccie 10.1.1.100-10.1.1.200 mask 255.255.255.0 说明:地址池范围为 10.1.1.100-10.1.1.200。 第 830 页共 844 页 (4)配置用户组策略: www.china-ccie.com ciscoasa(config)# group-policy DefaultRAGroup internal ciscoasa(config)# group-policy DefaultRAGroup attributes ciscoasa(config-group-policy)# vpn-tunnel-protocol IPSec l2tp-ipsec ciscoasa(config-group-policy)# dns-server value 202.96.209.133 ciscoasa(config-group-policy)# default-domain value cisco.com ciscoasa(config-group-policy)# address-pools value ccie ciscoasa(config-group-policy)# exit 说明:组名建议使用名字为 DefaultRAGroup,不要使用其它名字,定义了地址池, 以及其它一些参数,这里的 vpn-tunnel-protocol 必须是 IPSec l2tp-ipsec。 (5)配置用户隧道信息: ciscoasa(config)# tunnel-group DefaultRAGroup general-attributes ciscoasa(config-tunnel-general)# default-group-policy DefaultRAGroup ciscoasa(config-tunnel-general)# exit ciscoasa(config)# tunnel-group DefaultRAGroup ipsec-attributes ciscoasa(config-tunnel-ipsec)# pre-shared-key chinaccie ciscoasa(config-tunnel-ipsec)# exit 说明:隧道名建议使用名字为 DefaultRAGroup,不要使用其它名字,并定义了认 证时使用的 PSK 密钥。 (6)定义了认证信息: 第 831 页共 844 页 www.china-ccie.com ciscoasa(config)# tunnel-group DefaultRAGroup ppp-attributes ciscoasa(config-ppp)# authentication ms-chap-v2 ciscoasa(config-ppp)# exit (7)创建用户名和密码: ciscoasa(config)# username chinaccie password chinaccie ciscoasa(config)# username chinaccie password chinaccie mschap 说明:创建时,必须使用这种格式。 4.测试 L2TP over IPsec (1)在 PC 上建立 VPN 拨号连接: 使用在之前的实验中已经创建好的 VPN 连接,用户名和密码正确输入: 第 832 页共 844 页 www.china-ccie.com 然后点击“属性”,并修改相关设置,如下图: 第 833 页共 844 页 www.china-ccie.com 点击“IPsec 设置”,如下图: 第 834 页共 844 页 www.china-ccie.com 输入用来为 IPsec 认证的 PSK 密钥。 当连接成功之后,会在桌面的右下角出现连接成功的图标和提示信息: 第 835 页共 844 页 www.china-ccie.com 说明: XP 系 统 中 注 册 表 目 录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 下的 ProhibitIpSec 不会对 ASA 的 L2TP over IPsec 造成影响,有和没有都没关系,但还是 请注意自己的实际情况。 可以点击连接图标,查看具体的详细信息: 说明:从图中可以看出,从 L2TP VPN Server 那里自动分配到的地址是 10.1.1.100。 第 836 页共 844 页 (2)查看 PC 的路由表情况: www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通,我们也就不用再测了。 (3)再次测试 PC 到公司总部的 10.1.1.0/24 和 4.4.4.4/32 的连通性: 第 837 页共 844 页 www.china-ccie.com 说明:因为之前已经在 PC 上设置过隧道分离,所以现在默认网关是正常接口 30.1.1.3 而不是 VPN 接口,所以所有未知目标的流量,如 Internet 的流量都从正常 接口发出,但只有与 VPN 接口地址段 10.0.0.0/8 同网段的才从 L2TP VPN 中发出,对 于 4.4.4.4/32,不可能通。 (4)再次测试 PC 到 R2 的 Loopback 连通性: 第 838 页共 844 页 www.china-ccie.com 说明:因为已经配置了隧道分离,所以 PC 到 Internet 路由器 R2(2.2.2.2)是通 的。 (5)查看 ASA 上的 IKE SA(ISAKMP SA): ciscoasa# show crypto isakmp sa Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 23.1.1.3 Type : user Role : responder 第 839 页共 844 页 Rekey : no State : MM_ACTIVE www.china-ccie.com ciscoasa# 说明:因为 L2TP over IPsec 使用了 IPsec,所以能看见 IKE SA 信息。 (6)查看 ASA 上的 IPsec SA: ciscoasa# show crypto ipsec sa interface: outside Crypto map tag: dyn, seq num: 10, local addr: 12.1.1.1 local ident (addr/mask/prot/port): (12.1.1.1/255.255.255.255/17/1701) remote ident (addr/mask/prot/port): (23.1.1.3/255.255.255.255/17/0) current_peer: 23.1.1.3, username: chinaccie dynamic allocated peer ip: 10.1.1.100 #pkts encaps: 34, #pkts encrypt: 34, #pkts digest: 34 #pkts decaps: 89, #pkts decrypt: 89, #pkts verify: 89 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 34, #pkts comp failed: 0, #pkts decomp failed: 0 #post-frag successes: 0, #post-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 #send errors: 0, #recv errors: 0 第 840 页共 844 页 www.china-ccie.com local crypto endpt.: 12.1.1.1/4500, remote crypto endpt.: 23.1.1.3/4500 path mtu 1500, ipsec overhead 66, media mtu 1500 current outbound spi: 809FDDFC inbound esp sas: spi: 0x45232D65 (1159933285) transform: esp-3des esp-md5-hmac none in use settings ={RA, Transport, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: dyn sa timing: remaining key lifetime (kB/sec): (207510/3558) IV size: 8 bytes replay detection support: Y outbound esp sas: spi: 0x809FDDFC (2157960700) transform: esp-3des esp-md5-hmac none in use settings ={RA, Transport, NAT-T-Encaps, } slot: 0, conn_id: 4096, crypto-map: dyn sa timing: remaining key lifetime (kB/sec): (207517/3558) IV size: 8 bytes replay detection support: Y 第 841 页共 844 页 ciscoasa# 说明: IPsec SA 中显示了相应流量会被加密。 www.china-ccie.com 5.测试 L2TP over IPsec 上 NAT 对 L2TP VPN 的影响 (1)在 ASA 上配置 NAT: ciscoasa(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0 说明:在 ASA 上配置 NAT 将所有内网的流量都转换为外网接口地址 12.1.1.1 出去。 (2)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 842 页共 844 页 www.china-ccie.com 说明:在 L2TP over IPsec Server 上,NAT 对 L2TP VPN 的影响和其它 VPN 一样,所 以在 L2TP over IPsec Server 上配置了 NAT 后,需要 L2TP VPN 传递的流量就全不通了。 (3)将相应流量从 NAT 中移除: ciscoasa(config)# access-list nonat extended permit ip 10.1.1.0 255.255.255.0 any ciscoasa(config)# nat (inside) 0 access-list nonat 说明:将源为 10.1.1.0/24 的流量从 NAT 中移除。 (4)再次测试 PC 到公司总部的 10.1.1.0/24 的连通性: 第 843 页共 844 页 www.china-ccie.com 说明:因为源为 10.1.1.0/24 的流量已经从 NAT 中移除,所以 PC 到 10.1.1.0/24 的 流量正常。 第 844 页共 844 页

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。