wps477

IPSec(Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报
文在网络上传输的机密性、完整性和防重放,可满足企业日益提高的对网络安全性的需求。IPSec是
IETF定义的一个协议组,通信双方在IP层通过加密、完整性校验、数据源认证等方式,保证了IP数据
报文在网络上传输的机密性、完整性和防重放。

● 机密性(Confidentiality)指对数据进行加密保护,用密文的形式传送数据。

● 完整性(Data integrity)指对接收的数据进行认证,以判定报文是否被篡改。

● 防重放(Anti-replay)指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒
绝旧的或重复的数据包。

IPSec VPN体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)
、和IKE(Internet Key Exchange)协议套件组成。

● AH协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放功能,但AH并不加密所保护的
数据报文。

● ESP协议:提供AH协议的所有功能外,还可提供对IP报文的机密功能。

● IKE协议:用于自动协商AH和ESP所使用的密码算法。

● SA:Security Association,安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加
密算法、秘钥等参数。SA是单向的,两个对等体之间的双向通信,至少需要两个SA。

● 如果两个对等体同时使用AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一
对SA。

● SA由一个三元组来唯一标识、这个三元组包括安全参数索引SPI(Security Parameter Index)、
目的IP地址、安全协议(SA或ESP)。

建立SA的方式有以下两种:

1、手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建立安全联盟比较复杂,但优点是
可以不依赖IKE而单独实现IPSec。当对等体设备数量较少时,或是在小型静态环境中,手工配置SA是
可行的。

2、IKE动态协商方式:只需要通信对等体之间配置好IKE协商参数,由IKE自动协商来创建和维护SA。
动态协商方式建立安全联盟相对简单些。对于中大型的动态网络环境中,推荐使用IKE协商建立SA。

IPSec协议有两种封装模式:

1、传输模式:传输模式中,在IP报文头和高层协议之间插入AH或ESP头。传输模式中的AH和ESP主要
对上层协议数据提供保护。传输模式中的AH在IP头部之后插入AH头,对整个IP数据包进行完整性校验。
传输模式中的ESP在IP头部之后插入ESP头,在数据字段后插入尾部以及认证安段。对高层数据和ESP尾
部进行加密。对IP数据包中的ESP报文头,高层数据和ESP尾部进行完整性校验。传输模式中的AH+ESP
在IP头部之后插入AH和ESP头,在数据字段后插入尾部以及认证字段。

2、隧道模式:隧道模式中,AH或ESP头封装在原始IP报文头之前,并另外生成一个新的IP头封装到AH
或ESP之前。隧道模式可以完全地对原始IP数据报文进行认证和加密,并可以使用IPSec对等体的IP地
址来隐藏客户机的IP地址。隧道模式中的AH对整个原始IP服文提供完整性检查和认证、认证功能优于
ESP。但AH不提供加密功能,所以通常和ESP联合使用。隧道模式中的ESP对整个原始IP报文和ESP尾部
进行加密,对ESP报文文、原始IP报文和ESP尾部进行完整性校验。隧道模式中的AH_ESP对整个原始IP
报文和ESP尾部进行加密,AH、ESP分别会对不同部分进行完整 性校验。

3、IPSec VPN的配置步骤:

配置网络可达-->配置ACL识别兴趣流-->创建安全提议-->创建安全策略-->应用安全策略

配置IPSec VPN

1、我们以下图拓扑为例,来演示一下IPSec VPN的配置过程。我们需要在分支机构的边缘路由器R1和
总部边缘路由器R3之间部署IPSec VPN,建立IPSec隧道,用于安全传输指定的数据流。

wps478

2、首先配置各路由器的接口IP地址,包括物理接口以及Loopback接口。

3、在三台路由器上配置OSPF,将Loopback0的IP地址作为路由器的Router ID。使用OSPF的默认进程
1,并将公网网段10.0.12.0 /24和10.0.23.0 /24以及环回接口地址通告到OSPF区域0。以R1为例。

ospf router-id 10.0.1.1

area 0

network 10.0.1.0 0.0.0.255

network 10.0.11.0 0.0.0.255

network 10.0.12.0 0.0.0.255

wps479

2、OSPF配置完成后,查看OSPF邻居以及路由表。

wps480wps481

3、在R1和R3上配置高级ACL来定义IPSec VPN的感兴趣流,高级ACL能够基于特定的参数来匹配流量。

R1:

acl 3001

rule 5 permit ip source 10.0.1.0 0.0.0.255 destination 10.0.3.0 0.0.0.255

R3:

acl 3001

rule 5 permit ip source 10.0.3.0 0.0.0.255 destination 10.0.1.0 0.0.0.255

wps482

4、在R1和R3上创建IPSec提议,并进入IPSec提议视图来指定安全协议。注意确保隧道两端的设备使用
相同的安全协议。

R1:

ipsec proposal tran1

esp authentication-algorithm sha1

esp encryption-algorithm 3des

R3:

ipsec proposal tran1

esp authentication-algorithm sha1

esp encryption-algorithm 3des

5、检查配置结果

display ipsec proposal

wps483wps484

7、在R1和R3上手工创建IPSec策略,每一个IPSec安全策略都使用唯一的名称和序号来标识,IPSec策
略中会应用IPSec提议中定义的安全协议、认证算法、加密算法和封装模式。另外手工创建的IPSec策
略还需要配置安全联盟SA中的参数。

R1:

ipsec policy p1 10 manual

security acl 3001

proposal tran1

tunnel remote 10.0.23.3

tunnel local 10.0.12.1

sa spi outbound esp 54321

sa spi inbound esp 12345

sa string-key outbound esp simple huawei

sa string-key inbound esp simple huawei

R3:

ipsec policy p1 10 manual

security acl 3001

proposal tran1

tunnel remote 10.0.12.1

tunnel local 10.0.23.3

sa spi outbound esp 12345

sa spi inbound esp 54321

sa string-key outbound esp simple huawei

sa string-key inbound esp simple huawei

wps485

8、在R1和R3的相应物理接口上应用IPSec策略,接口将对感兴趣流量进行IPSec加密处理。

R1:

int s4/0/0

ipsec policy p1

R3:

int s4/0/0

ipsec policy p1

9、验证设备对不感兴趣的流量不进行IPSec加密处理。在R1上指定通过Loopback1接口Ping R3的
Loopback1接口。

wps486

10、查看IPSec流量统计,全为O,因为IPSec感兴趣流中并没有定义Loopback1接口。

wps487

11、验证设备对感兴趣的流量进行IPSec加密处理。在R1上指定通过Loopback0接口Ping R3的
Loopback0接口。

wps488

12、查看IPSec流量统计,可以看到Inpacket和Outpacket值为5,因为IPSec感兴趣流中定义了
Loopback0接口,指定接口的流量经过IPSec隧道进行了加密传输。

wps489

配置GRE

IPSec VPN用于在两个端点之间提供安全的IP通信,但只能加密并传输单播数据,无法加密和传输语音、
视频、动态路由协议信息等组播数据流量。Generic Routing Encapsulation通用路由封装协议GRE提
供了将一种协议的报文封装在另一种协议报文中的机制,是一种隧道封装技术。GRE可以封装组播数据,
并可以和IPSec结合使用,从而保证语音、视频等组播业务的安全。

GRE用来对某些网络层协议如IPX的报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)
中传输。GRE可以解决异种网络的传输问题。IPSec VPN技术可以创建一条跨越共享公网的隧道,从而
实现私网互联,IPSec VPN能够安全传输IP报文,但是无法在隧道的两个端点之间运行RIP和OSPF等路
由协议。GRE可以将路由协议信息封装在另一种协议报文中进行传输(如IP)。

使用GRE可以克服IGP协议是一些局限性,例如RIP的最大跳数为15,如果网络直径超过15,设备将无法
通信,这种情况下,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络
的工作范围。GRE本身并不支持加密,因而通过GRE隧道传输的流量是不加密的。将IPSec技术与GRE相
结合,可以先建立GRE隧道对报文进行GRE封装,然后再建立IPSec隧道对报文进行加密,以保证报文传
输的完整性和私密性。

wps490

2、我们在上一步实验的基础之上,来继续创建GRE隧道,首先在R1和R3上创建隧道接口并为该接口配
置一个公网IP地址,然后指定接口封装类型为GRE,并配置隧道的实际源地址以及实际目的地址。

R1:

int tunnel 0/0/1

ip address 100.1.1.1 24

tunnel-protocol gre

source 10.0.12.1

destination 10.0.23.3

R3:

int tunnel 0/0/1

ip address 100.1.1.1 24 

tunnel-protocol gre

source 10.0.23.3

destination 10.0.12.1

wps491

3、在R1和R3上配置OSPF进程2用于隧道路由,将隧道接口所在的网络通告在OSPF进程1,从OSPF进程
1中删除网络10.0.12.0/24和10.0.23.0/24。创建OSPF进程2,并将网络10.0.12.0/24和10.0.23.0/24
通告到OSPF进程2。

R1:

ospf 1

area 0

undo network 10.0.12.0 0.0.0.255

network 100.1.1.0 0.0.0.255

ospf 2 router-id 10.0.1.1

area 0

network 10.0.12.0 0.0.0.255

R3:

ospf 1

area 0

undo network 10.0.23.0 0.0.0.255

network 100.1.1.0 0.0.0.255

ospf 2 router-id 10.0.3.3

area 0

network 10.0.23.0 0.0.0.255

4、路由器会为不同的OSPF进程创建不同的LSDB,R1和R3中分别有LSDB1和LSDB2,两个数据库彼此独
立,不会同步路由信息。因此R2不会学习到R1和R3通告在进程2中的路由。检查两台路由器的隧道配
置结果。

dis int tun 0/0/1

wps492

5、在R1和R3上将GRE流量定义为感兴趣流量。

R1:

acl 3001

rule 5 permit gre source 10.0.12.1 0 destination 10.0.23.3 0

R3:

acl 3001

rule 5 permit gre source 10.0.23.3 0 destination 10.0.12.1 0

6、验证路由信息通过GRE封装后可由IPSec VPN传输,在两台路由器上查看路由表。可以看到,GRE隧
道建立以后,路由器可以将OSPF协议报文通过GRE封装后进行交互,从而获得对端路由信息。

wps493

7、清除IPSec统计信息,然后再通过Ping命令进行测试。

wps494

8、通过测试可以看到,OSPF协议交互报文进行了GRE封装后再被IPSec VPN加密传输。

wps495

9、在R1上为GRE隧道配置Keepalive功能。

int tunne 0/0/1

keepalive period 3

wps496

10、IPSec VPN与GRE配置完成,以R3为例的完整的配置如下。这里我们最终配置的是
GRE over IPSec。

wps497wps498

Last modification:March 23rd, 2020 at 11:06 am
如果觉得我的文章对你有用,请随意赞赏