华为OSPF--GRE--IPSec

OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。
OSPF可以解决网络扩容带来的问题。当网络上路由器越来越多,路由
信息流量急剧增长的时候,OSPF可以将每个自治系统划分为多个区域,
并限制每个区域的范围。OSPF这种分区域的特点,使得OSPF特别适
用于大中型网络。OSPF还可以同其他协议(比如多协议标记切换协议
MPLS)同时运行来支持地理覆盖很广的网络


华为OSPF--GRE--IPSec

OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息,
这样才能计算出到达目的地的最优路径。OSPF的收敛过程由链路状态
公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器
已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器
都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link
State Database),并在LSDB的基础上使用SPF算法进行运算,建立
起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网
络的最优路由,并将其加入到IP路由表中


华为OSPF--GRE--IPSec

OSPF直接运行在IP协议之上,使用IP协议号89。
OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。

  1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广
    播和NBMA(None-Broadcast Multi-Access)类型的网络中选举指
    定路由器DR(Designated Router)和备份指定路由器BDR(
    Backup Designated Router)。
  2. DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自
    己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的
    头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量
    的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
  3. LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器
    有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请
    求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。
  4. LSU报文:用来向对端路由器发送所需要的LSA。
  5. LSACK报文:用来对接收到的LSU报文进行确认。

华为OSPF--GRE--IPSec

在配置OSPF时,需要首先使能OSPF进程。
命令ospf [process id]用来使能OSPF,在该命令中可以配置进程ID。如
果没有配置进程ID,则使用1作为缺省进程ID。
命令ospf [process id] [router-id <router-id>]既可以使能OSPF进程,还
同时可以用于配置Router ID。在该命令中,router-id代表路由器的ID。
命令network用于指定运行OSPF协议的接口,在该命令中需要指定一
个反掩码。反掩码中,“0”表示此位必须严格匹配,“1”表示该地址
可以为任意值。


华为OSPF--GRE--IPSec

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


华为OSPF--GRE--IPSec

GRE封装报文时,封装前的报文称为净荷,封装前的报文协议称为乘客
协议,然后GRE会封装GRE头部,GRE成为封装协议,也叫运载协议
,最后负责对封装后的报文进行转发的协议称为传输协议。
GRE封装和解封装报文的过程如下:

  1. 设备从连接私网的接口接收到报文后,检查报文头中的目的IP地址
    字段,在路由表查找出接口,如果发现出接口是隧道接口,则将报
    文发送给隧道模块进行处理。
  2. 隧道模块接收到报文后首先根据乘客协议的类型和当前GRE隧道配
    置的校验和参数,对报文进行GRE封装,即添加GRE报文头。
  3. 然后,设备给报文添加传输协议报文头,即IP报文头。该IP报文头
    的源地址就是隧道源地址,目的地址就是隧道目的地址。
  4. 最后,设备根据新添加的IP报文头目的地址,在路由表中查找相应
    的出接口,并发送报文。之后,封装后的报文将在公网中传输。
  5. 接收端设备从连接公网的接口收到报文后,首先分析IP报文头,如
    果发现协议类型字段的值为47,表示协议为GRE,于是出接口将报
    文交给GRE模块处理。GRE模块去掉IP报文头和GRE报文头,并根
    据GRE报文头的协议类型字段,发现此报文的乘客协议为私网中运
    行的协议,于是将报文交给该协议处理

华为OSPF--GRE--IPSec

interface tunnel interface-number命令用来创建Tunnel接口。创建
Tunnel接口后,需要配置Tunnel接口的IP地址和Tunnel接口的封装协议

tunnel-protocol命令用来配置Tunnel接口的隧道协议。
source { source-ip-address | interface-type interface-number }命令用
来配置Tunnel源地址或源接口。
destination dest-ip-address命令用来指定Tunnel接口的目的IP地址。
在本端设备和远端设备上还必须存在经过Tunnel转发的路由,这样,需
要进行GRE封装的报文才能正确转发。经过Tunnel接口转发的路由可以
是静态路由,也可以是动态路由。配置静态路由时,路由的目的地址是
GRE封装前原始报文的目的地址,出接口是本端Tunnel接口。

IPsec VPN

华为OSPF--GRE--IPSec

IPSec是IETF定义的一个协议组。通信双方在IP层通过加密、完整性校
验、数据源认证等方式,保证了IP数据报文在网络上传输的机密性、完
整性和防重放。

  1. 机密性(Confidentiality)指对用户数据进行加密保护,用密文的形
    式传送数据。
  2. 完整性(Data integrity)指对接收的数据进行认证,以判定报文是
    否被篡改。
  3. 防重放(Anti-replay)指防止恶意用户通过重复发送捕获到的数据
    包所进行的攻击,即接收方会拒绝旧的或重复的数据包。
    企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到
    企业总部网络。

华为OSPF--GRE--IPSec

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

  1. AH协议:主要提供的功能有数据源验证、数据完整性校验和防报文
    重放功能。然而,AH并不加密所保护的数据报。
  2. ESP协议:提供AH协议的所有功能外(但其数据完整性校验不包括
    IP头),还可提供对IP报文的加密功能。
  3. IKE协议:用于自动协商AH和ESP所使用的密码算法。

华为OSPF--GRE--IPSec

SA(Security Association)安全联盟定义了IPSec通信对等体间将使用
的数据封装模式、认证和加密算法、秘钥等参数。SA是单向的,两个对
等体之间的双向通信,至少需要两个SA。如果两个对等体希望同时使用
AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协
商一对SA。
SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(
Security Parameter Index)、目的IP地址、安全协议(AH或ESP)。
建立SA的方式有以下两种:

  1. 手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建
    立安全联盟比较复杂,但优点是可以不依赖IKE而单独实现IPSec功
    能。当对等体设备数量较少时,或是在小型静态环境中,手工配置
    SA是可行的。
  2. IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由
    IKE自动协商来创建和维护SA。动态协商方式建立安全联盟相对简
    单些。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA

项目环境

华为OSPF--GRE--IPSec


华为OSPF--GRE--IPSec


华为OSPF--GRE--IPSec


华为OSPF--GRE--IPSec


本示例中的IPSec VPN连接是通过配置静态路由建立的,下一跳指向
RTB。需要配置两个方向的静态路由确保双向通信可达。建立一条高级
ACL,用于确定哪些感兴趣流需要通过IPSec VPN隧道。高级ACL能够
依据特定参数过滤流量,继而对流量执行丢弃、通过或保护操作。
执行ipsec proposal命令,可以创建IPSec提议并进入IPSec提议视图。
配置IPSec策略时,必须引用IPSec提议来指定IPSec隧道两端使用的安
全协议、加密算法、认证算法和封装模式。缺省情况下,使用ipsec
proposal命令创建的IPSec提议采用ESP协议、DES加密算法、MD5认
证算法和隧道封装模式。在IPSec提议视图下执行下列命令可以修改这
些参数。
执行transform [ah | ah-esp | esp]命令,可以重新配置隧道采用的安全
协议。
执行encapsulation-mode {transport | tunnel }命令,可以配置报文的
封装模式。
执行esp authentication-algorithm [md5 | sha1 | sha2-256 | sha2-
384 | sha2-512 ]命令,可以配置ESP协议使用的认证算法。
执行esp encryption-algorithm [des | 3des | aes-128 | aes-192 | aes-
256 ]命令,可以配置ESP加密算法。
执行ah authentication-algorithm [md5 | sha1 | sha2-256 | sha2-384
| sha2-512 ]命令,可以配置AH协议使用的认证算法。