目录

  • 1 项目1 实验室网络组建
    • 1.1 工作任务1 实验室网络需求分析
    • 1.2 工作任务2 实验室网络系统设计
    • 1.3 工作任务3 实验室网络的实施
    • 1.4 工作任务4 实验室网络的验收
    • 1.5 拓展训练 小型办公室网络组建
  • 2 项目2 校园网规划设计
    • 2.1 工作任务1 教学楼网络系统方案设计
    • 2.2 工作任务2 综合布线系统设计
    • 2.3 工作任务3 综合布线系统施工
    • 2.4 工作任务4 交换机的安装与调试
    • 2.5 拓展训练 新新集团办公楼网络组建
  • 3 项目3 单核心校园网组建
    • 3.1 工作任务1 校园网系统方案设计
    • 3.2 工作任务2 主干网交换机的配置管理
    • 3.3 工作任务3 校园网出口设计与部署
    • 3.4 工任任务4 网络安全设计与配置
    • 3.5 拓展训练 单核心企业网组建
    • 3.6 习题与思考
  • 4 项目4 双核心校园网组建
    • 4.1 工作任务1 双核心校园网规划设计
    • 4.2 工作任务2 RIP动态路由协议及其配置
    • 4.3 工作任务3 网络冗余设计与配置
    • 4.4 工作任务4 双链路接入Internet
    • 4.5 工作任务5 网络管理设计
    • 4.6 拓展训练 双核心大型企业网组建
  • 5 项目5 多校区校园网互联
    • 5.1 工作任务1 多校区校园网广域网互联规划设计
    • 5.2 工作任务2 OSPF动态路由协议配置
    • 5.3 工作任务3 DDN专线互联
    • 5.4 工作任务4 VPN互联解决方案
    • 5.5 拓展训练 多分支机构企业网互联
    • 5.6 习题与思考
  • 6 课程实验演示视频
    • 6.1 双绞线跳线的制作与测试
    • 6.2 RJ45信息模块的端接(打线型)
    • 6.3 RJ45信息模块的端接(免打型)
    • 6.4 PVC 线槽水平直角安装
    • 6.5 PVC线槽非水平(内弯)直角安装
    • 6.6 PVC线管冷弯与安装
    • 6.7 数据配线架(固定式)的安装
    • 6.8 110语音配线架的安装
    • 6.9 在L型滑道上安装服务器
    • 6.10 光纤冷接
    • 6.11 光纤热熔
  • 7 学生演示作品
    • 7.1 网络跳线制作演示
    • 7.2 信息模块打线演示
    • 7.3 复杂永久链路打线演示
    • 7.4 网线配线架打线演示
    • 7.5 光纤冷接演示
    • 7.6 永久链路打线演示
  • 8 实训实验项目
    • 8.1 01-单元1认识综合布线工程-实训项目
    • 8.2 02-单元2综合布线工程常用标准-实训项目
    • 8.3 03-单元3综合布线工程设计-实训项目
    • 8.4 04-单元4综合布线工程常用器材和工具-实训项目
    • 8.5 05-单元5工作区子系统的设计和安装技术-实训项目
    • 8.6 06-单元6水平子系统的设计和安装技术-实训项目
    • 8.7 07-单元7管理间子系统的设计和安装技术-实训项目
    • 8.8 08-单元8垂直子系统的设计和安装技术-实训项目
    • 8.9 09-单元9设备间子系统的设计和安装技术-实训项目
    • 8.10 10-单元10建筑群和进线间子系统的设计和安装技术-实训项目
    • 8.11 11-单元11综合布线工程测试和验收-实训项目
    • 8.12 12-单元12综合布线工程招投标-实训项目
    • 8.13 13-单元13综合布线工程管理-实训项目
  • 9 网络工程项目案例
    • 9.1 项目一
  • 10 综合布线的工具及耗材
    • 10.1 布线工具
    • 10.2 布线耗材
  • 11 实验场景
    • 11.1 永久链路打线实验
  • 12 综合布线典型计算题解
    • 12.1 公式
    • 12.2 工程用线量及管线槽截面积计算
    • 12.3 RJ45需求量计算题解
  • 13 综合布线工程文档范文
    • 13.1 综合布线招标文档模板
    • 13.2 综合布线投标文档
    • 13.3 网络综合布线合同范文
    • 13.4 网络综合布线施工方案范本
    • 13.5 综合布线验收方案范本
工作任务4 VPN互联解决方案




5.4   工作任务四        VPN互联解决方案

主要内容


【任务分析】

     本工作任务的目标是综合运用多种VPN技术,将Leader职业学院的老校区与威海校区、老校区与青岛校区通过广域网互联起来。


     使用VPN技术组建广域网,用户只需要使用局域网中常用的交换机、防火墙等设备就可以。因为大多数的VPN技术对设备接口的数据链路层协议没有限制,既可以使用以太网接口,也可以使用串行接口。本工作任务将在老校区与青岛校区各自的核心交换机上部署MPLS L2 VPN,在老校区与威海校区各自的局域网出口防火墙上部署GRE over IPSec VPN。   

【任务要求】

任务名称

VPN互联解决方案

任务目标

了解MPLS VPN的作用。掌握GRE VPN、IPSec VPN的原理和配置。

学习方式与工具

Cisco 2811或2911路由器、硬件防火墙、计算机、Packet Tracer、GNS3、Internet搜索、资料查阅。

相关知识

Cisco Packet Tracer的使用方法,GNS3模拟器的使用方法。

工作任务

(1)了解MPLS L2 VPN、MPLS L3 VPN的作用和基本组网方式;

(2)掌握GRE VPN的工作原理和配置;

(3)掌握IPSec VPN的工作原理和配置;

(4)掌握GRE over IPSec的工作原理和配置;

(5)使用多种VPN技术实现老校区与威海校区、青岛校区的广域网互联。

完成任务和成果

使用VPN技术将老校区与威海校区、青岛校区互联起来。归纳配置过程中出现过的问题,总结VPN的知识结构。

5.4.1               MPLS VPN技术及配置

主要内容


1.MPLS VPN技术

MPLS(Multi-Protocol Label Switching,多协议标签交换)是用一个短而定长的标签封装网络层数据包,并将封装后的报文转发到支持MPLS技术的交换机或路由器,交换机或路由器根据标签值转发报文。普通的IP网络,只要将路由器升级能支持MPLS技术,就成为MPLS网络。MPLS网络可以与普通IP网络共存,报文可以在IP网络和MPLS网络之间转发。

1)MPLS VPN网络中路由器的角色

MPLS网络中的路由器分为两种角色:LSR(Label Switch   g Router,标签交换路由器)和LER(Label Switching Edge Router,标签交换边缘路由器),如图5-25所示。LSR是MPLS网络的核心交换机或者路由器,不与非MPLS网络相连,提供标签交换和标签分发功能;LER位于MPLS网络的边缘,与非MPLS网络(如IP网络)相连,LER提供标签映射、移除和标签分发等功能。

1.1拓扑设计


图5-25 MPLS网络组成

(2)MPLS VPN隧道

MPLS VPN是一种由运营商负责维护VPN隧道的VPN方案

MPLS VPN隧道建立在PE设备之间,由服务提供商向用户提供VPN服务,用户感觉不到公共网络的存在,就好像拥有独立的网络资源一样。P路由器也不需要知道有VPN的存在,仅负责骨干网内部的数据传输,但其必须能够支持MPLS协议。所有VPN的构建、连接和管理工作都是在PE上进行的。

MPLS VPN的特点:用户网络配置简单,可以直接利用现有路由协议而无需任何改动,具有良好的可扩展性,可实现具有QOS和TE的VPN。

MPLS VPN分为MPLS L3 VPN和MPLS L2 VPN两种,分别承载三层业务和二层业务。

1.1拓扑设计



图5-26        MPLS VPN—由运营商负责维护的VPN隧道

(3)MPLS L3 VPN

     MPLS L3 VPN是一种基于PE的三层VPN技术,它使用BGP路由协议在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。从业务承载模式的角度来看,MPLS L3 VPN属于路由模式的MPLS VPN。从用户的角度来看,MPLS L3 VPN所呈现的形式就像是一台路由器。

     两个用户同时在运营商办理了MPLS L3 VPN业务,用户1的设备为路由器CE1和CE3,用户2的设备为路由器CE2和CE4。运营商使用MPLS L3 VPN为两个用户建立了两个VPN隧道,VPN1和VPN2。

 对于每个用户来说,他们眼中的MPLS L3 VPN就像是一台路由器,实现用户的两个局域网之间的互联。运营商路由器需要参与用户的私网路由,包括OSPF等动态路由协议。

1.1拓扑设计



          图5-27          用户视角的MPLS L3 VPN     图5-28          用户视角的MPLS L2 VPN-VPWS

(4)MPLS L2 VPN

        MPLS L2 VPN提供基于MPLS网络的二层VPN服务,使运营商可以在统一的MPLS网络上提供基于不同数据链路层的二层VPN,包括Ethernet、PPP、HDLC、帧中继等。简单来说,MPLS L2 VPN就是在MPLS网络上透明传输用户的二层数据。从业务承载模式的角度来看,MPLS L2 VPN属于管道模式的MPLS VPN;从用户的角度来看,MPLS L2 VPN网络是一个二层交换网络,可以在不同的节点之间建立二层连接。

       MPLS L2VPN包括VPWS和VPLS两种方式。

①VPWS(Virtual Private Wire Service,虚拟私有线路服务):是指在MPLS VPN网络中尽可能真实地模仿ATM、帧中继、以太网、低速TDM电路和SONET/SDH等业务的基本行为和特征的一种二层业务承载技术。本质上,VPWS技术是一种点到点的虚拟专线技术,能够支持几乎所有的链路层协议。

如图5-28所示,两个用户同时在运营商办理了VPWS方式的MPLS L2 VPN业务,用户1的设备为路由器CE1和CE3,用户2的设备为路由器CE2和CE4。运营商使用VPWS方式的MPLS L2 VPN为两个用户建立了两个VPN隧道,VPN1和VPN2。

对于每个用户来说,VPWS方式的MPLS L2 VPN所呈现的形式就像是一条线路,既可以是以太网线路,也可以是串行线路等其他线路。

② VPLS(Virtual Private LAN Service,虚拟专用局域网服务):是通过MPLS VPN网络连接多个以太网LAN网段,使它们像一个LAN那样工作。VPLS也称为透明局域网服务(TLS Transparent LAN Service)或虚拟专用交换网服务。利用VPLS技术,服务提供商可以通过MPLS骨干网向用户提供基于以太网的多点业务。VPLS仅支持Ethernet二层协议。

如图5-29所示,用户1在运营商办理了VPLS 方式的MPLS L2 VPN业务,用户1的设备为路由器CE1、CE2、CE3和CE4。运营商使用VPLS 方式的MPLS L2 VPN为两个用户建立了VPN隧道VPN1。

对于用户1来说,他们眼中的VPLS 方式的MPLS L2 VPN就像是一台交换机,实现用户的四个局域网之间的互联。

与MPLS L3 VPN相比,MPLS L2 VPN有以下优点:

可扩展性强:MPLS L2 VPN只建立二层连接关系,不引入、也不管理用户的路由信息。这大大减轻了PE,甚至整个服务提供商网络的负担,使服务提供商能够支持更多的VPN接入和更多的用户。

可靠性和安全性强:由于不引入用户的路由信息,MPLS L2 VPN不能获得和处理用户路由,保护了用户网络的安全。

1.1  拓扑设计



图5-29用户视角的MPLS L2VPN – VPLS方式

 MPLS L2 VPN互联老校区和青岛校区

(1)MPLS L2 VPN互联设计

本任务的目标是将老校区和青岛校区校园网通过MPLS L2 VPN互联,通过分析MPLS L2 VPN技术特征,无论是VPWS方式还是VPLS方式,都可以支持以太网链路,因此两个校区的MPLS VPN接入设备既可以是以太网交换机,也可以是配备以太网接口的路由器。对于校园网来说,将局域网的核心交换机作为MPLS VPN的接入设备是较好的选择。

老校区的核心交换机Core和青岛校区的核心交换机Qingdao是MPLS L2 VPN两端的接入设备,交换机Core使用FastEthernet1/2接口接入MPLS VPN线路,交换机Qingdao使用FastEthernet1/15接口接入MPLS VPN线路。由于运营商提供的MPLS L2 VPN在用户看来就像是一条网线,所以可以在两个核心交换机之间规划一个网段172.31.0.20/30,用于老校区和青岛校区之间的广域网互联。

(2)使用MPLS L2 VPN互联两个校区网络的配置

  配置老校区核心交换机:

Core(config)# interface FastEthernet1/2

Core(config-if)#no shutdown

Core(config-if)# no switchport

Core(config-if)# ip address 172.31.0.21 255.255.255.252


    配置青岛校区核心交换机

Qingdao(config)# interface FastEthernet1/15

Qingdao(config-if)#no shutdown

Qingdao(config-if)# no switchport

Qingdao(config-if)# ip address 172.31.0.22 255.255.255.252

使用ping测试两个校区之间的连通性,并测试文件传输、视频点播等常见应用的网络速率。

提示:与DDN、SDH、帧中继、ATM等传统专线技术相比,MPLS VPN技术具有设备投资少、线路租用费较低、带宽高、拓扑灵活、可扩展性好、维护管理方便等优点。MPLS VPN非常适合数目众多的那些对价格较为敏感,但对带宽也有一定需求的用户。

5.4.2        GRE VPN技术及配置

主要内容


项目导入

GRE本身是一种封装方法,而不是指VPN。GRE是由Cisco公司开发的轻量级隧道协议,能够在任意一种网络协议上传送任意另一种网络协议的封装方法。将GRE称作轻量级隧道协议的原因是GRE的头部较小,封装效率高,但是GRE没有任何安全防护机制,因此在5.4.4节会介绍GRE over IPSec VPN,使用IPSec保护GRE隧道。


(1)GRE协议

GRE是一种三层隧道封装技术,其封装格式如图5-30所示。原始IP数据包包括IP头部、TCP(或UDP)头部和应用层数据,GRE协议将原始数据包封装在新数据包的内部。GRE在内层IP头部之间添加一个GRE头部,并在GRE头部之前再添加一个新的外层IP头部。经过GRE封装后的新的IP数据包前面添加数据链路层头部,并在链路上进行传输。被封装的内层IP数据包为载荷协议,GRE为封装协议,而封装后的新的外层IP头部为承载协议。GRE对载荷协议(内层IP数据包)不提供任何安全防护,在后面的GRE配置案例中,可以使用Wireshark数据包分析工具获取GRE传送的原始数据

(2)GRE VPN技术

与MPLS VPN不同,GRE VPN和IPSec VPN都是由用户自己搭建、维护隧道的VPN。GRE VPN、IPSec VPN也称为CPE-Based VPN,CPE(Customer Premise Equipment,用户前端设备)是指放置在用户侧,并直接连接到Internet的网络设备,通常为硬件防火墙、专用VPN网关或路由器。在CPE-Based VPN中,CPE必须支持VPN功能,负责发起VPN连接,通过隧道连接到另一个CPE设备。用户需要自己购买支持VPN功能的CPE设备,并且自行在设备上配置VPN隧道。

1.1 拓扑设计

如图5-31所示,CPE-Based VPN隧道建立在用户的CE设备之间。VPN隧道的建立、维护由用户自己来完成,有时也可以委托运营商或第三方进行配置和管理。


图5-31用户负责维护的VPN隧道

(3)IP over IP的GRE VPN隧道

  如图5-32所示的GRE VPN地址空间和路由规划图,用户局域网A的Internet出口设备是路由器R1,R1通过Fa 0/0接口连接内部局域网,通过Fa 0/1接口连接Internet。用户局域网B的Internet出口设备是路由器R2,R2通过Fa 0/0接口连接内部局域网,通过Fa 0/1接口连接Internet。用户局域网内部使用私有地址,通过NAT技术,在出口设备上将私有地址转换为公有地址,使内部用户能够访问Internet。路由器R1和R2的Fa 0/0接口配置了私有IP地址,属于私网路由域,而路由器R1和R2的Fa 0/1接口配置了公有IP地址,属于公网路由域。由于运营商的IP公网不允许路由使用私有IP地址标识的数据包,所以局域网A和局域网B的私网路由域是不能互相访问的。要使私网路由域互通,可以使用GRE VPN技术。

  要使GRE VPN正常运作,前提是公网必须联通。路由器R1和R2的Fa0/1接口都连接到Internet,服务提供商必须保证路由器R1和R2能够各自访问到对方的Fa 0/1接口所配置的公网IP地址。

        要配置GRE VPN,需要在路由器上创建隧道接口(Tunnel)。隧道接口是为实现报文的封装而提供的一种点到点类型的虚拟接口,隧道接口是一种逻辑接口。GRE VPN直接使用GRE建立GRE隧道接口,在公网上传送私有数据,即IP同时作为载荷协议和承载协议。其中私有IP数据为载荷协议,公共IP网络为承载协议网络,又称为IP over IP的GRE封装。

        在隧道接口上需要指定隧道的实际物理出接口(或隧道的源IP地址)和隧道的目的IP地址,隧道接口依赖物理接口进行实际的通信。在隧道接口上需要配置私有IP地址,因此隧道接口也属于私网路由域。通过隧道接口,用户的两个私网路由域就可以互通了。

企业在两个局域网之间部署GRE VPN,通过IP公网传送内部局域网的数据,从而实现网络层的站点到站点VPN。

1.1 拓扑设计

使用GRE VPN的目的是搭建站点到站点VPN,即将用户的两个或多个局域网使用现有的Internet出口,通过Internet搭建广域网。图5-32是


图5-32 GRE VPN地址空间和路由规划

2.GRE VPN典型配置案例

(1)配置设备物理接口IP地址

按照拓扑图中的地址规划,为路由器R1、R2、Internet的物理接口配置IP地址。为PC1和PC2配置IP地址、子网掩码和默认网关

(2)配置公网路由

GRE VPN隧道的连通性取决于实际物理网络的公网连通性。。

配置路由器R1的公网路由

R1(config)#ip route 0.0.0.0 0.0.0.0 60.135.1.1

配置路由器R2的公网路由

R2(config)#ip route 0.0.0.0 0.0.0.0 222.5.7.1

配置路由器Internet的公网路由

因为路由器Internet的路由表中已经有本拓扑中的所有公网地址段,所以不需要为它配置任何静态路由或动态路由协议。

测试公网连通性

使用ping测试路由器R1与R2之间的公网地址连通性。

1.1拓扑设计

假设一个企业的总部和分支机构之间要通过GRE VPN实现广域网互联,如图5-33所示。路由器R1为总部的Internet出口设备,路由器R2为分支机构的Internet出口设备,路由器Internet用来模拟整个国际互联网。在路由器R1和R2上创建GRE隧道接口,并分别使用静态路由和OSPF动态路由协议实现内部网络互联。


(3)配置GRE隧道

配置路由器R1的GRE隧道

R1(config)#interface tunnel 0      !创建隧道接口,该接口只要求本地唯一

R1(config-if)#tunnel mode gre ip     !指定隧道的封装为GRE(默认封装)

R1(config-if)#tunnel source fastEthernet 0/1   !指定隧道的实际物理出接口(隧道源)

R1(config-if)#tunnel destination 222.5.7.2    !指定隧道的目的IP地址

*Mar 1 00:19:18.699: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up

配置了隧道目的IP地址后,只要隧道的物理出接口(Fa 0/1)up,隧道口的数据链路层协议状态即为up。

R1(config-if)#ip address 192.168.0.1 255.255.255.252

R1(config-if)#keepalive     !允许路由器探测隧道的实际工作情况

*Mar 1 00:21:17.939: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down

由于隧道的对端路由器R2还没有配置GRE隧道,所以在启用隧道接口的Keepalive(保持激活)特性后,隧道的数据链路层协议down了。

配置路由器R2的GRE隧道

R2(config)#interface tunnel 0

R2(config-if)#tunnel source fastEthernet 0/1

R2(config-if)#tunnel destination 60.135.1.2

R2(config-if)#ip address 192.168.0.2 255.255.255.252

R2(config-if)#keepalive 

将路由器R2的GRE隧道配置好后,路由器R1的隧道口链路层协议就转变为up了。

测试GRE隧道的连通性

(4)配置私网路由——使用静态路由

将GRE隧道建立好以后,总部和分支机构之间的私网数据就可以通过隧道接口传输了。首先,使用静态路由实现内部网络互通。

配置路由器R1的私网路由

R1(config)#ip route 192.168.2.0 255.255.255.0 tunnel 0

配置路由器R2的私网路由

R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.0.1

因为隧道口的数据流量最终要通过物理接口向外发送,所以在配置静态路由时,使用本地出接口或下一跳IP地址这两种方式都是可以的。

(5)配置私网路由——使用OSPF

GRE隧道既支持传输单播数据,也支持传输组播数据,因此可以使用OSPF这样的动态路由协议,通过GRE隧道互联两个局域网。

删除路由器R1和R2的静态路由

R1(config)#no ip route 192.168.2.0 255.255.255.0

R2(config)#no ip route 192.168.1.0 255.255.255.0

配置路由器R1的私网路由

R1(config)#router ospf 1

R1(config-router)#network 192.168.1.0 0.0.0.255 area 0

R1(config-router)#network 192.168.0.0 0.0.0.255 area 0

配置路由器R2的私网路由

R2(config)#router ospf 1

R2(config-router)#network 192.168.0.0 0.0.0.255 area 0

R2(config-router)#network 192.168.2.0 0.0.0.255 area 0

*Mar  1 00:45:45.195: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Tunnel0 from LOADING to FULL, Loading Done

路由器R2通过Tunnel 0接口与路由器R1建立了OSPF邻接关系。

(7)测试GRE VPN网络连通性并进行数据包分析

测试网络连通性:从PC1来ping PC2,测试GRE VPN网络的连通性。

VPCS[1]> ping 192.168.2.2

192.168.2.2 icmp_seq=1 ttl=62 time=109.200 ms

(省略其他输出内容)

使用Wireshark进行数据包分析:首先分析从PC1发送到路由器R1的数据包。在数据包的IP头部中,Protocol字段为ICMP(协议号为1),表示IP数据包的内部是ICMP协议数据。数据包的源IP地址为192.168.1.2,目的IP地址为192.168.2.2。这是一个使用私有地址编址的IP数据包,不能直接在公网上传输。


        然后分析从路由器R1发送到路由器Internet的数据包,如图5-35所示。原始IP数据包被封装在GRE里面,然后又被封装在使用公有IP地址标识的外层IP数据包中。在GRE头部中,Protocol Type字段为IP(编号为0x0800),表示被GRE封装的内部数据为IP数据包。在外层IP头部中,Protocol字段为GRE(协议号为47),表示外层IP数据包的内部是由GRE封装的数据。外层IP数据包的源IP地址为60.135.1.2,目的IP地址为222.5.7.2,分别为GRE隧道配置中的隧道源(本案例为出接口)IP地址和隧道目的IP地址。

提示:配置GRE VPN时,要注意公网路由域和私网路由域是分开的,公网路由与私网路由的配置要分别进行,互不影响。但是GRE隧道的连通与否取决于公网路由的连通性,因此必须先配置公网路由域,后配置GRE隧道和通过GRE隧道连通的私网路由域。


图5-35从路由器R1发送到路由器Internet的数据包分析

3.GRE隧道的工作流程

GRE VPN隧道的工作流程为:隧道起点路由查找,加封装,承载协议路由转发,中途转发,解封装,隧道终点路由查找。在图5-36中,以GRE VPN典型配置为例简要说明了数据通过GRE隧道进行发送的工作流程。


图5-36 GRE VPN隧道的工作流程

1.1校园网拓扑设计与技术选择



隧道起点路由查找:位于总部私有网络的PC向分支机构发送数据,数据包的源、目的IP地址为私有地址。数据包被发送到局域网的出口设备R1,路由器R1查看IP路由表,发现匹配目的地址的路由条目的出接口为Tunnel 0,于是将数据包从Tunnel 0接口向外发送。

加封装:Tunnel 0接口是一个虚拟的接口,不能直接发送数据,所有数据必须经过实际物理接口转发。Tunnel 0接口的封装模式为GRE over IP,也就是使用GRE将原始数据包封装在IP数据包中,因此在转发之前,需要为使用私有地址标识的IP数据包添加GRE封装头部,并添加使用外层地址标识的IP头部。外层IP地址的源地址为路由器R1向路由器R2发送数据的出接口,也就是Fa 0/1接口的IP地址。外层IP地址的目的地址为GRE隧道配置中的目的地址。通过对比配置命令可以知道,外层IP头部的源地址为60.135.1.2,目的地址为222.5.7.2,他们都是公有地址。

承载协议路由转发:路由器R1查看外层IP头部的目的地址,通过查找IP路由表确定真正的物理出接口为Fa 0/1接口。

中途转发:使用公有IP地址标识的数据包从路由器R1的Fa 0/1接口发送出去,通过整个Internet最终传送到路由器R2。IP公网中的路由器只会查看数据包的外层IP地址,不会看到GRE封装,也不会看到内层的私网IP数据包。

解封装:路由器R2从Tunnel 0接口接收到数据包,检查外层IP头部中的Protocol字段,发现上层协议为GRE,表示外层IP头部里面还有一层GRE封装。路由器R2解开外层的IP头部和GRE头部,得到内层的私网IP数据包。

隧道终点路由查找:路由器R2得到最终的私网IP数据包,处理方法与从普通接口接收到的IP数据包相同,即查找路由表,最终把数据包转发到分支机构的私有网络中。

GRE VPN的优点是配置简单、容易理解、支持IP组播和动态路由协议、支持多种网络协议,但是GRE VPN也有缺乏安全性、布署复杂连接关系时工作量巨大的缺点。

5.4.3             IPSec VPN技术及配置

主要内容


项目导入


IPsec由两大部分组成,一是建立安全数据传输的密钥交换协议,二是保护数据包的封装协议。前者为Internet密钥交换(IKE)协议,后者包括封装安全载荷协议(ESP)和报文头验证协议(AH)。

(1)IPSec

IPSec(Internet Protocol Security,IP协议安全性)是通过对IP数据包进行加密和认证来保护IP协议的网络协议框架。IPSec通过验证算法和加密算法防止数据遭受篡改和窃听等安全威胁,大大提高了安全性。

IPSec是一种网络层安全保障机制,可以实现数据的机密性、完整性和源验证。IPSec实现于网络层,因此上层的TCP、UDP以及各种应用层协议均可以受到IPSec的保护。IPSec并不是一个单独的协议,而是由封装协议、密钥协商协议和多种开放标准的加密、校验、验证算法构成的协议框架。如图5-37所示,IPSec是一个可扩展的体系,它并不受限于任何一种特定的协议和算法。

(2)IPSec VPN 

IPSec VPN是利用IPSec隧道实现的三层VPN。IPSec对IP数据包的封装、加密和验证能力使其可以被用来建立安全的VPN隧道,跨越公共网络传送私有IP数据包。IPSec VPN 利用封装和加密机制来实现数据的机密性,使用哈希算法来确保数据的完整性,使用密码或数字证书来验证网络另一端的身份。IPSec VPN可以部署在安全网关(如防火墙)之间、主机与安全网关之间以及主机与主机之间。

IPSec VPN也具有配置复杂、消耗CPU资源较多、增加网络延迟、不利于语音视频等实时性要求强的应用、不支持IP组播和动态路由协议等缺点。

(3)IPSec VPN使用的数据加密和校验算法

加密算法是一个数学函数,它将明文消息与密钥合并,得到无法解读的密文。。由于IPSec VPN使用的都是公开的加密算法,数据加密的关键就是通信双方必须预先协商好加密密钥。IPSec VPN可以使用的数据加密算法包括DES、3DES和AES,另外,IPSec VPN还可以使用RSA进行数字签名方式的身份验证,并使用DH(Diffie&Hellman)进行密钥交换。

校验算法可以验证数据的完整性,也叫做哈希(Hash)算法。同一种哈希算法,不管输入的数据长度是多少,结果都是定长的。因此,哈希算法具有单向性、不可逆性。

HMAC(Hash Message Authentication Code)进一步提高了安全性,HMAC对单输入哈希算法进行了改进,收发双方共享一个MAC密钥,计算摘要时不仅输入原始数据,还要输入MAC密钥

IPSec VPN可以使用两种数据校验算法:HMAC-MD5 Message Digest,消息摘要算法第五版)和HMAC-SHA-1(Secure Hash Algorithm,安全散列算法)。

(1)IPSec安全协议

IPSec通过AH和ESP两个安全协议对原始数据进行封装,实现数据在网络上传输的机密性、完整性和真实性。

①AH(Authentication Header,报文头验证协议):主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。AH协议不能加密数据报文。当网络不要求或不允许有机密性时,可以使用AH协议。AH的协议号为51。

②ESP(Encapsulating Security Payload,封装安全载荷协议):除提供AH协议的所有功能外,还可提供对IP报文的加密功能。ESP协议通过加密IP数据包提供机密性。ESP的协议号为50。

由于ESP协议能提供数据加密功能,所以比AH协议使用更广泛。另外,还可以将AH协议与ESP协议结合使用,但由于开销较大,因而不推荐使用。

(2)IPSec工作模式

无论是AH,还是ESP,都有两种工作模式:传输模式和隧道模式。下面以ESP协议为例讲解这两种工作模式的特点和区别。

①传输模式(Transport Mode):通常用于保护端到端主机之间的安全性。图5-38为IPSec传输模式的封装示意图,IPSec使用加密算法将原始数据包中的TCP(或UDP)头部、应用层数据、ESP尾部与加密密钥结合计算为密文,并使用校验算法将ESP头部、密文与校验密钥结合计算为ESP验证数据。IPSec传输模式将ESP头部放在密文的前面,将ESP验证数据放在密文的后面,并将原始IP数据包的头部拿出来放在ESP头部的前面。传输模式的IPSec封装会保留原始的IP数据包头部信息,原始IP数据包头部不参与运算。


图5-38 IPSec传输模式封装示意图

    在图5-39中,PC与Server位于同一个内部网络,他们之间是全局可路由的。在这里,使用IPSec传输模式的目的是为PC与Server之间的数据流量进行安全保护。PC向Server发出不加密的原始数据,数据在从路由器R1向外发出时,原始数据被加密。当加密数据到达路由器R2时,数据被解密并发送到Server。


图5-39 IPSec传输模式隧道化过程

在图中,数据的加密由路由器实现,相当于两台路由器在内部网络中建立了一个数据的加密隧道,这就是IPSec VPN的传输模式。使用传输模式的前提是数据的收发双方必须是全局可路由的。另外,数据的加密、解密也可以在PC和Server的操作系统中实现,即主机与主机之间的IPSec传输模式。

②隧道模式(Tunnel Mode):隧道模式通常用于保护站点到站点之间的安全性。图为IPSec隧道模式的封装示意图,IPSec使用加密算法将原始数据包中的IP头部、TCP(或UDP)头部、应用层数据、ESP尾部与加密密钥结合计算为密文,并使用校验算法将ESP头部、密文与校验密钥结合计算为ESP验证数据。IPSec隧道模式将ESP头部放在密文的前面,将ESP验证数据放在密文的后面,并将新的IP头部放在ESP头部的前面。使用隧道模式的IPSec封装,将不会保留原始的IP数据包头部。用户的整个IP数据包被用来计算ESP头部,且被加密。


         IPSec隧道模式通常用来搭建站点到站点IPSec VPN。在图5-41中,PC与Server分别位于两个距离较远的局域网内部,均配置了私有地址。两个局域网分别以路由器R1和R2作为Internet出口设备,通过NAT技术,将内部私有地址转换为公有地址,从而访问Interent。使用隧道模式的IPSec VPN,可以像GRE VPN一样在公共网络上建立用户私有的VPN隧道。但是与GRE VPN不同的是,IPSec VPN可以对数据进行加密、校验和身份验证。由于数据的通信双方PC与Server的私有IP地址在Internet上不可路由,所以使用隧道模式的IPSec VPN,会将用户的原始数据全部加密,放在VPN隧道中传输,并为数据包封装使用公有地址标识的新IP头部。隧道模式的IPSec封装的外层IP头部在Internet中是全局可路由的。

1.1拓扑设计


图5-41 IPSec隧道模式隧道化过程

IPSec传输模式的目的是直接保护端到端的数据通信,而IPSec隧道模式的目的是建立站点到站点的VPN隧道,保护局域网之间的特定或全部数据。想要搭建站点到站点的IPSec VPN,只能使用隧道模式。而如果使用IPSec保护GRE隧道的数据,即搭建站点到站点的GRE over IPSec VPN,则既可以使用隧道模式,也可以使用传输模式。隧道模式由于隐藏了原始IP头部,因而安全性更好。但隧道模式有一个额外的IP头部,因此隧道模式比传输模式占用更多的带宽。具体选择哪种封装模式,需要在性能和安全之间权衡。

主要内容


(3)IPSec SA

安全关联(Security Association,SA)是构成IPSec的基础。SA是两个通信实体经协商建立起来的一种协定,比如使用哪种封装安全协议、工作模式、加密算法、密钥以及密钥的生存周期等。通信的双方只要符合SA约定的内容,就可以建立SA,进而对数据进行保护。SA由三元组来唯一标识,包括安全参数索引(SPI)、目的IP地址、安全协议标识符。

SA是单向的,想要在两个实体之间进行双向通信,最少需要in和out两个SA来分别对两个方向的数据流进行安全保护。SA又是与协议相关的,两台路由器之间可以建立AH协议的SA,也可以建立ESP协议的SA,如果同时使用了AH和ESP,则每台路由器都会针对每一种协议来建立一个独立的SA。

一个SA包括以下安全参数:

加密算法、校验算法、密钥长度和其他加密参数;

校验算法所使用的会话密钥(HMAC);

应用SA的网络流量描述(ACL);

IPSec封装协议(AH或ESP);

IPSec工作模式(隧道模式或传输模式)。

IPSec SA可以由手工或IKE自动协商两种方式创建。使用手工方式创建的SA会一直有效,除非手工删除。IKE自动协商方式创建的SA既可手工删除,也可以以时间或数据流量为周期自动更新或删除。

3.IKE基本原理

(1)IKE概述

要在两台路由器之间建立IPSec VPN,就必须选择使用哪种封装协议、工作模式、加密算法、校验算法以及加密和校验过程中所需的密钥。这些参数就是IPSec SA,建立IPSec SA有两种方式:手工或通过IKE自动协商。其中,手工方式建立SA的配置较为繁琐,而且难以定时更新SA和密钥,因此在实际工程中建议使用IKE自动协商,建立IPSec SA。

IKE(Internet Key Exchange,Internet 密钥交换协议)为IPSec提供了自动协商交换密钥、建立安全关联的服务,使用IKE能够简化IPSec的配置和管理。IKE协议属于一种混合型协议,建立在由ISAKMP(Internet Security Association Key Management Protocol,Internet安全关联和密钥管理协议)定义的一个框架上。

     IKE提供身份验证功能,中小型企业常使用预共享密钥(Pre-Shared Key)验证,大型企业可使用RSA数字签名验证。IKE具有一套自保护机制,可以在不安全的网络上安全地分发密钥、验证身份、建立IPSec SA。IKE的精髓在于它永远不在不安全的网络上直接传送密钥,而是通过一系列数据的交换,使得通信双方最终计算出共享密钥,即使第三方(黑客)截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

        IKE的核心技术是DH(Diffie Hellman)密钥交换技术。DH密钥交换是一种公共密钥加密系统。利用DH交换技术,可以在一个不受保护的通信信道上,在交换双方建立一个安全的共享密钥会话。IKE使用Diffie Hellman算法进行密钥交换,工作在为ISAKMP协议指定的UDP端口500上。

(2)IKE在IPSec协议中的作用

IKE在IPSec协议的作用如下:

IKE可以降低手工布署IPSec VPN的复杂度;

 IKE使用Diffie-Hellman交换,在不安全的网络上安全地分发密钥,验证身份;

 IKE定时更新SA和密钥,而且各SA所使用的密钥互不相关,从而为IPSec提供完善前向安全性(Perfect Forward Security,PFS);

IKE可以为IPSec自动重新建立SA,从而为IPSec提供抗重播服务。

首先协商好保护IKE协商本身的安全参数,即IKE SA。这一协商通过交换IKE的提议(Proposal)实现。IKE提议描述了期望在IKE协商过程中所使用的安全参数,包括加密算法、校验算法、身份验证方法、DH组以及IKE SA的生存时间等。因此在配置IPSec VPN时,需要为IKE和IPSec各配置一套加密和校验算法.

(3)IKE与IPSec的关系

IKE和IPSec的工作流程如下。

① 当数据准备从出接口向外发送时,需要进入IPSec隧道。路由器首先检查IPSec SA是否已经建立,如果IPSec SA已经建立,则直接将数据放入IPSec隧道发送出去。

②如果还没有建立IPSec SA,则路由器会检查IKE SA是否已经配置并建立,如果IKE SA已经建立,则路由器根据IKE策略所指定的内容协商建立IPSec SA。

③如果IKE SA还没有建立,路由器会使用预共享密钥或数字证书方式建立IKE SA,并进行密钥交换,最终建立IPSec SA,为数据包提供相应的安全服务。

1.1拓扑设计

图5-42描述了IKE与IPSec的关系。IKE为IPSec提供自动协商交换密钥、建立SA的服务,而IPSec安全协议负责提供实际的安全服务。


图5-42 IKE与IPSec的关系

4.IPSec VPN典型配置案例

本实验模拟了一个组织的总部和分支机构之间通过IPSec VPN实现广域网互联的典型案例。

在图5-43中,路由器R1为总部的Internet出口设备,路由器R2为分支机构的Internet出口设备,路由器Internet用来模拟整个国际互联网。

本案例将在路由器R1和R2上创建使用预共享密钥验证方式的IKE + IPSec VPN,采用ESP封装,对原始数据进行加密传输,工作模式为隧道模式,并使用静态路由实现内部网络互联。

1.1 拓扑设计

图5-43 IPSec VPN典型配置案例拓扑图

(1)配置设备物理接口IP地址

按照拓扑图中的地址规划,为路由器R1、R2、Internet的物理接口配置IP地址。为PC1和Server配置IP地址、子网掩码和默认网关。

(2)配置公网路由

IPSec VPN隧道是否连通取决于实际物理网络的公网连通性。在实际工程中,局域网的Internet出口设备上必须配置指向服务提供商的默认路由,本案例在路由器R1和R2上配置静态默认路由。

①配置路由器R1的公网路由

 R1(config)#ip route 0.0.0.0 0.0.0.0 60.135.1.1

② 配置路由器R2的公网路由

 R2(config)#ip route 0.0.0.0 0.0.0.0 222.5.7.1

③ 配置路由器Internet的公网路由:因为路由器Internet的路由表  中已经有本拓扑中的所有公网地址段,所以不需要为它配置任何 静态路由或动态路由协议。

(4)配置路由器R1的IPSec VPN

①配置安全ACL:创建一个扩展ACL,名称为IPSec-VPN。在ACL中添加一条编号为10的规则,用来定义IPSec VPN感兴趣的数据流量,即什么样的数据包要通过IPSec VPN隧道进行加密传输。在这里,只对从总部内部网络到分支内部网络的数据流量进行加密,其他流量不进行加密。

R1(config)#ip access-list extended IPSec-VPN 

R1(config-ext-nacl)#10 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

R1(config-ext-nacl)#exit

提示:在VPN配置中的ACL的作用并不是过滤数据包。对于IPSec VPN中配置的ACL,规则为permit的语句表示匹配的数据包需要进入VPN隧道,而规则为deny的语句表示对匹配的数据包进行正常路由转发,不进入VPN隧道。

②配置IKE策略:创建一个优先级为10的ISAKMP策略,即IKE策略。ISAKMP策略可以有多个,编号越小,优先级越高。如果配置了多个ISAKMP策略,双方路由器将采用编号最小,参数相同的策略。

R1(config)#crypto isakmp policy 10

R1(config-isakmp)#authentication pre-share    !配置IKE身份验证方式为预共享密钥

R1(config-isakmp)#encryption aes 256    !配置IKE协商时采用的加密算法为AES 256 bit

R1(config-isakmp)#hash sha     !配置IKE协商时采用的校验算法为SHA-1

R1(config-isakmp)#group 5     ! 配置IKE采用的DH组为组5

R1(config-isakmp)#exit

路由器的配置中包含一个默认的IKE策略。默认的IKE策略所采用的的加密算法为DES、校验算法为SHA-1,DH组为组1,身份验证方式为RSA数字签名。

使用下面的命令,可以查看刚刚配置的IKE策略,以及系统中已经存在的默认策略。

R1#show crypto isakmp policy 

Global IKE policy

Protection suite of priority 10

encryption algorithm:   AES - Advanced Encryption Standard (256 bit keys).

hash algorithm:         Secure Hash Standard

authentication method:  Pre-Shared Key

        Diffie-Hellman group:   #5 (1536 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

③配置IKE对等体的预共享密钥

R1(config)#crypto isakmp key 0 123456 address 222.5.7.2 

!配置路由器R1的IKE对等体——路由器R2(IP地址为222.5.7.2)的预共享密钥为123456,用来进行身份验证。

④配置IPSec转换集

R1(config)#crypto ipsec transform-set IPSec-R2 esp-aes 256 esp-sha-hmac 

!创建名称为IPSec-R2的IPSec转换集,用来对实际数据进行加密和校验,封装协议为ESP,加密算法为AES 256 bit,校验算法为HMAC-SHA-1。

R1(cfg-crypto-trans)#mode tunnel     !配置IPSec隧道的工作模式为隧道模式(默认模式)

R1(cfg-crypto-trans)#exit

IPSec转换集可用的封装协议包括ESP、AH和AH+ESP三种方式,可用的加密算法包括DES、3DES和AES,可用的校验算法包括HMAC-MD5、HMAC-SHA-1。IPSec隧道的默认工作模式为隧道模式,因此在这里也可以不用配置mode tunnel命令。

⑤配置IPSec加密图:创建名称为Map-R2的IPSec加密图。因为一个接口只能应用一个IPSec加密图,所以如果需要为路由器配置到达多个分支的IPSec VPN,那么每个VPN就需要使用不同的编号。这里使用的编号是10,该编号只在本地有效。最后添加的ipsec-isakmp参数表示使用IKE进行密钥协商、建立IPSec SA。

R1(config)#crypto map Map-R2 10 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)#match address IPSec-VPN  !配置IPSec VPN感兴趣的流量的ACL

R1(config-crypto-map)#set peer 222.5.7.2        ! 配置IPSec VPN对等体的IP地址

R1(config-crypto-map)#set transform-set IPSec-R2  !配置转换集,对感兴趣的流量进行保护

R1(config-crypto-map)#exit

⑥将IPSec加密图应用到出接口

R1(config)#interface fastEthernet 0/1

R1(config-if)#crypto map Map-R2

*Mar  1 00:56:49.503: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

R1(config-if)#exit

(5)配置路由器R2的IPSec VPN

R2(config)#ip access-list extended IPSec-VPN

R2(config-ext-nacl)#10 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

R2(config-ext-nacl)#exit

R2(config)#crypto isakmp policy 10

R2(config-isakmp)#authentication pre-share 

R2(config-isakmp)#encryption aes 256 

R2(config-isakmp)#hash sha 

R2(config-isakmp)#group 5

R2(config-isakmp)#exit

R2(config)#crypto isakmp key 0 123456 address 60.135.1.2

R2(config)#crypto ipsec transform-set IPSec-R1 esp-aes 256 esp-sha-hmac 

R2(cfg-crypto-trans)#exit

R2(config)#crypto map Map-R1 10 ipsec-isakmp 

R2(config-crypto-map)#match address IPSec-VPN

R2(config-crypto-map)#set peer 60.135.1.2

R2(config-crypto-map)#set transform-set IPSec-R1

R2(config-crypto-map)#exit

R2(config)#interface fastEthernet 0/1

R2(config-if)#crypto map Map-R1

R2(config-if)#exit

注意,在路由器R2的IPSec VPN配置中,安全ACL的源IP地址范围和目的IP地址范围与路由器R1正好相反。路由器R2的其他配置命令要与路由器R1相对应。

(6)配置私网路由

在路由器R1和R2上分别配置指向对方内部局域网的静态路由。

R1(config)#ip route 192.168.2.0    255.255.255.0 60.135.1.1

R2(config)#ip route 192.168.1.0 255.255.255.0 222.5.7.1

对于本配置案例来说,不配置这两条静态路由也不影响实验结果,因为之前已经为路由器配置了指向相同下一跳IP地址的静态默认路由。在这里配置明细静态路由是为了明确IPSec VPN的私网路由配置方法。由于IPSec隧道只支持单播,不支持组播,所以通过IPSec隧道不能传输动态路由协议的信息。IPSec VPN的私网路由只能使用静态路由的方式来配置。

(7)验证IPSec VPN

在PC上打开命令行,使用ping命令测试与Server之间的连通性。由于IPSec VPN隧道只会在有感兴趣流量时才开始建立。在隧道建立之初,IKE协商会花费一点时间,所以第一个数据包会超时。当IPSec隧道最终建立后,所有的后续ping包就都可以通了。

PC与Server可以互相访问后,可以使用以下命令验证IPSec VPN的工作状态。

①查看IKE SA的状态

R1#show crypto isakmp sa

dst             src             state          conn-id slot status

222.5.7.2       60.135.1.2      QM_IDLE         1    0 ACTIVE

②查看IPSec SA的状态

R1#show crypto ipsec sa

interface: FastEthernet0/1

    Crypto map tag: Map-R2, local addr 60.135.1.2

!本端出接口应用的IPSec加密图为Map-R2,本端的IP地址为60.135.1.2。

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): (192.168.2.0/255.255.255.0/0/0)

!感兴趣的数据流为192.168.1.0/24到192.168.2.0/24。

   current_peer 222.5.7.2 port 500

!远端对等体为222.5.7.2,使用的ISAKMP端口为UDP 500。

     PERMIT, flags={origin_is_acl,}

 #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4

    #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4

!加密了4个数据包,解密了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

!本端加密终结点为60.135.1.2,远端加密终结点为222.5.7.2。

local crypto endpt.: 60.135.1.2, remote crypto endpt.: 222.5.7.2

path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1

current outbound spi: 0xE8E4D49F(3907310751)

!以下为入方向的IPSec SA。

inbound esp sas:

spi: 0x54C4BF65(1422180197)

transform: esp-256-aes esp-sha-hmac ,

!IPSec转换集为esp-256-aes esp-sha-hmac,即使用ESP封装协议,加密算法为AES 256 bit,校验算法为HMAC-SHA-1。

in use settings ={Tunnel, }

! IPSec工作模式为隧道模式。

conn id: 2001, flow_id: SW:1, crypto map: Map-R2

sa timing: remaining key lifetime (k/sec): (4596481/2669)

        IV size: 16 bytes

replay detection support: Y

        Status: ACTIVE

inbound ah sas:

inbound pcp sas:

(出方向的SA省略)

③查看IPSec VPN摘要

R1#show crypto session 

Crypto session current status

Interface: FastEthernet0/1

Session status: UP-ACTIVE     

Peer: 222.5.7.2 port 500 

  IKE SA: local 60.135.1.2/500 remote 222.5.7.2/500 Active 

  IPSEC FLOW: permit ip 192.168.1.0/255.255.255.0 192.168.2.0/255.255.255.0 

        Active SAs: 2, origin: crypto map

(8)配置NAT与IPSec VPN兼容

在实际工程中,局域网的出口设备通常需要配置NAT,将内部私有地址转换为外部可路由的公有地址。假设路由器R1的NAT配置如下。

R1(config)#ip access-list standard NAT

R1(config-std-nacl)#10 permit 192.168.1.0 0.0.0.255

R1(config)#interface fastEthernet 0/0

R1(config-if)#ip nat inside 

R1(config)#interface fastEthernet 0/1

R1(config-if)#ip nat outside 

R1(config)#ip nat inside source list NAT interface fastEthernet 0/1 overload

为路由器R1配置NAT后,从PC再次ping服务器,会提示“目标不可达”。原因在于路由器R1的接口FastEthernet 0/1既是NAT的出接口,也应用了IPSec加密图,是IPSec VPN的出接口。当数据包从这个接口向外发出之前,路由器的操作是“先做NAT,后进入VPN隧道”。在上面的配置中,所有源地址为192.168.1.0/24的数据包都会被转换为路由器R1的FastEthernet 0/1接口的IP地址,所以与IPSec VPN的配置冲突了。解决NAT与IPSec VPN配置冲突的办法是修改NAT的配置,对从192.168.1.0/24发送到192.168.2.0/24的数据流不进行地址转换。

R1(config)#no ip nat inside source list NAT interface fastEthernet 0/1 overload 

R1(config)#no ip access-list standard NAT

R1(config)#ip access-list extended NAT

R1(config-ext-nacl)#5 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

R1(config-ext-nacl)#10 permit ip 192.168.1.0 0.0.0.255 any 

R1(config-ext-nacl)#exit

R1(config)#ip nat inside source list NAT interface fastEthernet 0/1 overload

(9)清除并重建VPN隧道

当路由器的IKE或IPSec策略、转换集、加密图等命令配置错误时,有可能会建立不正确的IKE SA和IPSec SA。这时,如果只是修改配置,并不能使网络正常工作。因为IKE SA和IPSec SA的默认生存时间比较长。使用以下clear命令可以清除已经建立的IKE SA和IPSec SA,使路由器以新的配置建立安全关联。

R1#clear crypto isakmp     !清除IKE SA

R1#clear crypto sa       ! 清除所有SA,包括IPSec SA

(10)IPSec VPN路由分析

在本配置案例的第6步,配置私网路由时,静态路由的目的网络为远端局域网内部私有地址,下一跳却指向服务提供商的公有地址。这里有一个有趣的问题,发往远端局域网的私有数据是否直接被发送到Internet了?Internet不是不能路由使用私有地址标识的数据包吗?事实上,使用私有地址标识的原始数据包是被ESP封装,加密发送出去的。

下面举一个例子,当PC向Server发数据包时,原始数据包的源IP地址为192.168.1.2,目的IP地址为192.168.2.2。下面分析这个数据包是怎样匹配路由并通过VPN隧道发送的。

①原始数据包被发送到路由器R1,路由器查看路由表,目的地址192.168.2.2匹配第6步配置的静态路由,因此路由器会根据这条路由的下一跳IP地址60.135.1.1判断出接口为FastEthernet 0/1。

②原始数据包尝试从FastEthernet 0/1接口离开路由器,但是这个接口上配置了crypto map,而加密图中感兴趣的数据流匹配该数据包,因此数据包整个被加密,并在ESP头部前面添加了外层IP头部,源IP地址为FastEthernet 0/1接口的IP地址60.135.1.2,目的IP地址为加密图中的对端IP地址222.5.7.2。

③原始数据包加密后产生了新的IP数据包,路由器R1需要再次查看路由表,新数据包的外层IP头部中的目的地址222.5.7.2匹配默认路由,因此应该通过FastEthernet 0/1接口向外发送。外层IP头部不匹配FastEthernet 0/1接口的加密图中的感兴趣数据流,因此被直接通过该接口发送出去。

5.4.4               GRE over IPSec VPN技术及配置

主要内容


项目导入

1.GRE over IPSec VPN技术

GRE是一种通用的封装协议,可以支持多种网络层协议。GRE VPN隧道的实现采用了虚拟的隧道(Tunnel)接口,可以支持IP单播、组播和广播。

因此GRE VPN可以支持各种动态路由协议。但是GRE VPN不能保证数据的机密性和完整性,也不能验证数据的来源。IPSec是针对IP数据包设计的,IPSec VPN可以实现数据的机密性、完整性和来源验证,但是IPSec VPN不支持组播,因而不支持动态路由协议,基于隧道嵌套的GRE over IPSec VPN可以解决这个问题。

(1)GRE over IPSec的封装过程

GRE over IPSec的封装过程如图5-44所示,原始IP数据包被封装在GRE隧道封装包中,GRE隧道封装包又被封装在IPSec隧道封装包中,并被发送到公网上。使用GRE over IPSec时,GRE隧道封装与IPSec隧道封装是同时进行又各自独立的。


图5-44 GRE over IPSec的封装过程

(2)GRE over IPSec的封装格式

由于IPSec的工作模式有传输模式和隧道模式两种,所以GRE over IPSec最终生成的数据包也有两种结构。如图5-45所示是隧道模式的GRE over IPSec封装示意图,内层的私网数据包被GRE封装为公网数据包,外层IP头部中的源IP地址和目的IP地址为公网地址。

该封装包又被IPSec加密封装,在ESP头部前面又添加了一个新的公网IP头部。通过分析GRE VPN和IPSec VPN的配置,可以了解到GRE封装包的外层IP头部与IPSec封装包的外层IP头部的源、目的IP地址是一致的。因此,隧道模式的GRE over IPSec封装实际上为每个数据包增加了20个字节的IP头部开销。


图5-45 GRE over IPSec隧道模式封装示意图

图5-46是传输模式的GRE over IPSec封装示意图。使用IPSec的传输模式,直接将GRE的外层IP头部拿出来作为新的IP数据包的头部信息来源。因为GRE外层IP头部的源、目的IP地址正好是IPSec隧道两端的公有地址,所以GRE over IPSec VPN的IPSec隧道是可以使用传输模式的。

图5-46 GRE over IPSec传输模式封装示意图

2.使用GRE over IPSec VPN互联老校区和威海校区

无论使用GRE VPN、IPSec VPN还是GRE over IPSec VPN,都是在局域网的Internet出口设备上进行部署,老校区的Internet出口设备为防火墙Firewall_1,威海校区的Internet出口设备为防火墙Firewall_2,下面将在这两台设备上部署GRE over IPSec VPN

(1)配置设备物理接口的IP地址

按照表5-3中的地址规划,为所有路由器、交换机配置IP地址。

(2)配置公网路由

在Firewall_1和Firewall_2上各自指向服务提供商的静态默认路由

Firewall_1(config)#ip route 0.0.0.0 0.0.0.0 219.1.2.1

Firewall_2(config)#ip route 0.0.0.0 0.0.0.0 61.1.2.1

路由器Internet只负责公网路由,因此只需要配置接口IP地址,有两条直连公网路由即可,不需要配置任何静态或动态路由协议

配置好公网路由后,测试Firewall_1与Firewall_2之间的公网地址连通性。

(3)配置GRE隧道

对于GRE over IPSec VPN来说,私有网络的原始数据包是先进入GRE隧道,后进入IPSec隧道的,因此应先配置GRE隧道。


①配置老校区防火墙Firewall_1的GRE隧道。

Firewall_1(config)#interface tunnel 0

Firewall_1(config-if)#ip address 172.31.0.17 255.255.255.252

Firewall_1(config-if)#tunnel source fastEthernet 0/1

Firewall_1(config-if)#tunnel destination 61.1.2.2

Firewall_1(config-if)#exit

②配置威海校区防火墙Firewall_2的GRE隧道。

Firewall_2(config)#interface tunnel 0

Firewall_2(config-if)#ip address 172.31.0.18 255.255.255.252

Firewall_2(config-if)#tunnel source fastEthernet 0/1

Firewall_2(config-if)#tunnel destination 219.1.2.2

Firewall_2(config-if)#exit

由于GRE隧道接口已经up up,所以在实验过程中,配置好GRE隧道后,就可以配置OSPF等路由协议了。但是在实际工程中,应先配置好外层的IPSec隧道,使用IPSec对GRE隧道中的任何数据包,包括OSPF数据包进行保护。将GRE over IPSec VPN隧道全部配置完后,再配置路由协议。

(4)配置IPSec隧道

① 配置老校区防火墙Firewall_1的IPSec隧道。

Firewall_1(config)#ip access-list extended VPN

Firewall_1(config-ext-nacl)#10 permit gre host 219.1.2.2 host 61.1.2.2

Firewall_1(config-ext-nacl)#exit

GRE隧道中传送的所有数据包都被封装为公网数据包,GRE外层的IP头部中,源IP地址为Tunnel 0接口配置中FastEthernet 0/1接口的IP地址219.1.2.2,目的IP地址为tunnel destination,即61.1.2.2。因此IPSec的感兴趣流量应为防火墙物理接口公网地址219.1.2.2和61.1.2.2之间的GRE数据流。

Firewall_1(config)#crypto isakmp policy 1     !配置IKE策略

Firewall_1(config-isakmp)#authentication pre-share 

Firewall_1(config-isakmp)#encryption aes 256

Firewall_1(config-isakmp)#hash sha 

Firewall_1(config-isakmp)#group 5

Firewall_1(config-isakmp)#exit

Firewall_1(config)#crypto isakmp key 0 123456 address 61.1.2.2

!针对隧道对端61.1.2.2配置IKE的预共享密钥为123456。

Firewall_1(config)#crypto ipsec transform-set IPSEC-WEIHAI esp-aes 256 esp-sha-hmac

Firewall_1(cfg-crypto-trans)#mode transport 

Firewall_1(cfg-crypto-trans)#exit

!创建名称为IPSEC-WEIHAI的IPSec转换集,配置工作模式为传输模式。

Firewall_1(config)#crypto map MAP-WEIHAI 10 ipsec-isakmp 

Firewall_1(config-crypto-map)#match address VPN

Firewall_1(config-crypto-map)#set peer 61.1.2.2

Firewall_1(config-crypto-map)#set transform-set IPSEC-WEIHAI

Firewall_1(config-crypto-map)#exit

!配置IPSec加密图,引用之前配置的安全ACL、IPSec转换集,并指定隧道对端的IP地址。

Firewall_1(config)#interface fastEthernet 0/1

Firewall_1(config-if)#crypto map MAP-WEIHAI 

Firewall_1(config-if)#exit

!将IPSec策略应用到出接口。

② 配置威海区防火墙Firewall_2的IPSec隧道

Firewall_2(config)#ip access-list extended VPN

Firewall_2(config-ext-nacl)#10 permit gre host 61.1.2.2 host 219.1.2.2

Firewall_2(config-ext-nacl)#exit

!配置安全ACL,源、目的IP地址与Firewall_1对调。

Firewall_2(config)#crypto isakmp policy 1    !配置IKE策略

Firewall_2(config-isakmp)#authentication pre-share 

Firewall_2(config-isakmp)#encryption aes 256 

Firewall_2(config-isakmp)#hash sha 

Firewall_2(config-isakmp)#group 5

Firewall_2(config-isakmp)#exit

Firewall_2(config)#crypto isakmp key 0 123456 address 219.1.2.2

!针对隧道对端219.1.2.2配置IKE的预共享密钥为123456。

Firewall_2(config)#crypto ipsec transform-set IPSEC-LAOXIAO esp-aes 256 esp-sha-hmac 

Firewall_2(cfg-crypto-trans)#mode transport 

Firewall_2(cfg-crypto-trans)#exit

!创建名称为IPSEC-LAOXIAO的IPSec转换集,配置工作模式为传输模式。

Firewall_2(config)#crypto map MAP-LAOXIAO 10 ipsec-isakmp 

Firewall_2(config-crypto-map)#match address VPN

Firewall_2(config-crypto-map)#set peer 219.1.2.2

Firewall_2(config-crypto-map)#set transform-set IPSEC-LAOXIAO

Firewall_2(config-crypto-map)#exit


!配置IPSec加密图,引用之前配置的安全ACL、IPSec转换集,并指定隧道对端的IP地址。

Firewall_2(config)#interface fastEthernet 0/1

Firewall_2(config-if)#crypto map MAP-LAOXIAO

Firewall_2(config-if)#exit

! 将IPSec策略应用到出接口。

(5)验证GRE over IPSec隧道

①查看IKE SA:在Firewall_1和Firewall_2之间测试GRE隧道接口IP地址之间的连通性,由于GRE隧道中的所有流量都会进入IPSec隧道,所以防火墙会建立IKE SA和IPSec SA。

使用show crypto isakmp sa命令可以查看防火墙Firewall_1的IKE SA。使用show crypto ipsec sa命令可以查看防火墙Firewall_1的IPSec SA。

②使用Wireshark分析使用GRE over IPSec封装的数据包:在Firewall_1上测试GRE隧道的连通性,并使用Wireshark捕获防火墙Firewall_1与路由器Internet之间的数据包。

Firewall_1#ping 172.31.0.18     

Sending 5, 100-byte ICMP Echos to 172.31.0.18, timeout is 2 seconds:

!!!!!

图5-47为Wireshark的数据包分析,被GRE封装的内部私有数据包被IPSec加密,无法看到原始内容。外层IP头部中的Protocol字段为ESP(协议号为50),表示外层IP数据包的内部是由ESP封装的数据。外层IP头部中的源IP地址和目的IP地址均为公有地址。


图5-47 GRE over IPSec数据包分析

(6)GRE over IPSec VPN与NAT的兼容性

如果单独使用IPSec VPN,则必须为NAT的ACL去掉内部私有网络之间的流量。但是如果使用GRE over IPSec,则不需要这样做。因为内部私有网络之间的流量都进入了GRE隧道,被封装为公有IP数据包,不会匹配NAT中ACL定义的流量,所以GRE over IPSec VPN与NAT互不影响。


这里是威海校区的Firewall_2的NAT配置。

Firewall_2(config)#ip access-list extended NAT

Firewall_2(config-ext-nacl)#10 permit ip 172.18.0.0 0.0.255.255 any 

Firewall_2(config)#interface fastEthernet 0/0

Firewall_2(config-if)#ip nat inside 

Firewall_2(config)#interface fastEthernet 0/1

Firewall_2(config-if)#ip nat outside 

Firewall_2(config)#ip nat pool NAT-POOL 61.1.2.3 61.1.2.5 prefix-length 29

Firewall_2(config)#ip nat inside source list NAT pool NAT-POOL overload


启用NAT后,威海校区可以访问Internet中的公有地址,不会影响VPN的连通性。

5.4.5                使用OSPF路由协议互联 各个校区

主要内容


1.配置老校区核心交换机Core

到此为止,已经完成了老校区与新校区、青岛校区和威海校区的广域网部署。接下来,将在全网部署OSPF路由协议,实现各个校区的内部网络互通。

Core(config)#interface loopback 0

Core(config-if)#ip address 1.1.1.1 255.255.255.255

Core(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Core(config)#router ospf 1

Core(config-router)#router-id 1.1.1.1

Core(config-router)#network 1.1.1.1 0.0.0.0 area 0

Core(config-router)#network 172.31.0.0 0.0.0.3 area 0

Core(config-router)#network 172.31.0.8 0.0.0.3 area 0

Core(config-router)#network 172.31.0.20 0.0.0.3 area 0

Core(config-router)#exit

Core(config)#ip route 172.16.0.0 255.255.0.0 loopback 1

!配置一条静态路由,用来模拟指向老校区内部网络的静态路由。

Core(config)#router ospf 1

Core(config-router)#redistribute static 

Core(config-router)#exit

!将Core中的所有静态路由重分发到OSPF中。

Core(config)#ip route 0.0.0.0 0.0.0.0 172.31.0.10

!配置静态默认路由,内部网络中所有的三层设备,包括三层交换机、路由器都需要配置指向Internet的默认路由。

2.配置老校区广域网路由器Laoxiao

Laoxiao(config)#interface loopback 0

Laoxiao(config-if)#ip address 2.2.2.2 255.255.255.255

Laoxiao(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Laoxiao(config)#router ospf 1

Laoxiao(config-router)#router-id 2.2.2.2

Laoxiao(config-router)#network 172.31.0.0 0.0.0.3 area 0

Laoxiao(config-router)#network 172.31.0.4 0.0.0.3 area 0

Laoxiao(config-router)#network 2.2.2.2 0.0.0.0 area 0

Laoxiao(config-router)#exit

3.配置新校区广域网路由器Xinxiao

Xinxiao(config)#router rip

Xinxiao(config-router)#version 2

Xinxiao(config-router)#no auto-summary 

Xinxiao(config-router)#network 172.17.0.0

Xinxiao(config-router)#exit


!RIPv2基本配置。

Xinxiao(config)#interface loopback 0

Xinxiao(config-if)#ip address 3.3.3.3 255.255.255.255

Xinxiao(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Xinxiao(config)#router ospf 1

Xinxiao(config-router)#router-id 3.3.3.3

Xinxiao(config-router)#network 172.31.0.4 0.0.0.3 area 0

Xinxiao(config-router)#network 3.3.3.3 0.0.0.0 area 0

Xinxiao(config-router)#redistribute rip subnets 

Xinxiao(config-router)#exit


!在OSPF路由协议配置中,将所有RIP路由(包括子网)重分发到OSPF中。

Xinxiao(config)#router rip

Xinxiao(config-router)#redistribute ospf 1 metric 5

Xinxiao(config-router)#exit

!将OSPF路由重分发到RIP中,配置种子度量值为5。

Xinxiao(config)#router ospf 1

Xinxiao(config-router)#summary-address 172.17.0.0 255.255.0.0 

Xinxiao(config-router)#exit

!新校区的地址段为172.17.0.0/16,而路由器Xinxiao作为自治系统边界路由器,可以为OSPF配置ASBR外部路由汇总。


4.配置新校区核心交换机Core_1

Core_1(config)#router rip

Core_1(config-router)#version 2

Core_1(config-router)#no auto-summary 

Core_1(config-router)#network 172.17.0.0

Core_1(config-router)#exit

5.配置新校区核心交换机Core_2

Core_2(config)#router rip

Core_2(config-router)#version 2

Core_2(config-router)#no auto-summary 

Core_2(config-router)#network 172.17.0.0

Core_2(config-router)#exit

6.配置老校区出口防火墙Firewall_1

Firewall_1(config)#interface loopback 0

Firewall_1(config-if)#ip address 6.6.6.6 255.255.255.255

Firewall_1(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Firewall_1(config)#router ospf 1

Firewall_1(config-router)#router-id 6.6.6.6

Firewall_1(config-router)#network 172.31.0.8 0.0.0.3 area 0

Firewall_1(config-router)#network 172.31.0.16 0.0.0.3 area 0

Firewall_1(config-router)#network 6.6.6.6 0.0.0.0 area 0

Firewall_1(config-router)#exit

7.配置威海校区出口防火墙Firewall_2

Firewall_2(config)#interface loopback 0

Firewall_2(config-if)#ip address 7.7.7.7 255.255.255.255

Firewall_2(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Firewall_2(config)#router ospf 1

Firewall_2(config-router)#router-id 7.7.7.7

Firewall_2(config-router)#network 172.31.0.16 0.0.0.3 area 0

Firewall_2(config-router)#network 172.18.0.0 0.0.0.3 area 1

Firewall_2(config-router)#network 7.7.7.7 0.0.0.0 area 0

Firewall_2(config-router)#area 1 range 172.18.0.0 255.255.0.0

Firewall_2(config-router)#area 0 range 172.31.0.0 255.255.0.0

Firewall_2(config-router)#exit

! 防火墙Firewall_2是区域边界路由器,可以配置Area 0和Area 1的ABR路由汇总,其中威海校区属于Area 1,地址段为172.18.0.0/16。广域网属于Area 0,地址段为172.31.0.0/16。

8.配置威海校区核心交换机Weihai


Weihai(config)#interface loopback 0

Weihai(config-if)#ip address 8.8.8.8 255.255.255.255

Weihai(config-if)#exit

!创建环回接口,用于OSPF的Router ID互联。

Weihai(config)#router ospf 1

Weihai(config-router)#passive-interface loopback 1

Weihai(config-router)#passive-interface loopback 2

Weihai(config-router)#network 172.18.1.0 0.0.0.255 area 1

Weihai(config-router)#network 172.18.2.0 0.0.0.255 area 1

Weihai(config-router)#network 172.18.0.0 0.0.0.3 area 1

Weihai(config-router)#network 8.8.8.8 0.0.0.0 area 1

Weihai(config-router)#exit


!将模拟用户网段的Loopback 1和Loopback 2接口配置为被动接口

9.配置青岛校区核心交换机Qingdao

Qingdao(config)#interface loopback 0

Qingdao(config-if)#ip address 9.9.9.9 255.255.255.255

Qingdao(config-if)#exit


!创建环回接口,用于OSPF的Router ID互联。

Qingdao(config)#router ospf 1

Qingdao(config-router)#router-id 9.9.9.9

Qingdao(config-router)#network 172.31.0.20 0.0.0.3 area 0

Qingdao(config-router)#network 172.19.1.0 0.0.0.255 area 2

Qingdao(config-router)#network 172.19.2.0 0.0.0.255 area 2

Qingdao(config-router)#network 9.9.9.9 0.0.0.0 area 0

Qingdao(config-router)#passive-interface loopback 1

Qingdao(config-router)#passive-interface loopback 2

Qingdao(config-router)#area 2 range 172.19.0.0 255.255.0.0 

Qingdao(config-router)#area 0 range 172.31.0.0 255.255.0.0

Qingdao(config-router)#exit

!将模拟用户网段的Loopback 1和Loopback 2接口配置为被动接口。路由器Qingdao是区域边界路由器,可以配置Area 0和Area 2的ABR路由汇总,其中青岛校区属于Area 2,地址段为172.19.0.0/16。


10.验证网络连通性

在每台设备上检查OSPF邻居表和IP路由表,并测试网络的连通性。

【任务归纳】

VPN技术分为站点到站点VPN和远程访问VPN。常见的站点到站点VPN包括MPLS VPN、GRE VPN、IPSec VPN。远程访问VPN包括SSL VPN、IPSec远程访问VPN和L2TP VPN。

MPLS VPN是由服务提供商负责搭建的VPN,用户只需购买服务提供商的VPN服务,不需要为VPN广域网购买单独的设备。用户不需要配置、管理VPN。对于新建的网络,只要用户的资金不太紧张,都推荐采用MPLS VPN技术方案。

GRE VPN利用用户现有的Internet连接建立广域网,GRE隧道的配置简单,但是GRE不提供任何的安全性。GRE隧道支持IP组播和动态路由协议,这是IPSec不能相比的

IPSec VPN也利用用户现有的Internet连接建立广域网,能够对用户数据进行加密、校验和身份验证等安全服务。IPSec隧道只支持单播数据流,如果企业需要在VPN广域网上运行动态路由协议,就不能单独使用IPSec VPN。