MPLS VPN核心网的邻居保护

2020-07-06 18:08:43 云杰通信 104

MPLS VPN核心网的邻居保护

  在经济全球化的今天,越来越多的企业在全球各地开办分支机构,同时随着企业信息化进程的加快,网络中的各种应用,如电子商务、视频会议等在各行各业中不断普及。为了保证信息传递的实时性与安全性,企业纷纷组建自己的VPN(虚拟专用网)。

  通常VPN 用户对网络的基本要求是保证数据的安全性、网络操作的简便性和网络的可扩展性。传统的VPN 采用隧道技术为用户在公网上传递私有数据存在很多缺陷,已经很难满足用户对VPN的需求。MPLS(多协议标签交换)VPN是基于MPLS 协议构建的一种站点到站点的VPN 技术,它继承了MPLS 网络的优势,具有扩展性强、易于实现服务质量、服务等级和流量工程等特点。但是在安全性方面,尽管MPLS VPN 采用了严格的路由隔离,依然有受到内网和外网攻击的可能。本文提出一种方案,在控制层面上对MPLS VPN 核心网络的安全性进行了加强改进。

  MPLS VPN 自身安全保障分析

  MPLS VPN 采用地址隔离、路由隔离和核心隐藏等手段,提供防范攻击和抗标记欺骗的安全保障。

  (1)地址空间和路由隔离

  MPLS VPN 在不同VPN 的IP 地址前添加了不同的RD(路径区分符),可以确保VPN 用户的IP地址在全网唯一,即不同的VPN 可以使用相同的地址空间。同时,PE(服务提供商边缘路由器)为每个VPN 维护一个独立的VRF(VPN 路由转发表),控制每个VPN 的流量,使其只会在本VRF内转发。

  (2)核心信息隐藏

  由于只有PE 上包含了VPN 的信息,MPLS VPN不需要暴露任何有关核心网的信息给用户。由于不知道网络拓扑,攻击者只能通过猜测IP 地址进行攻击,使得攻击变得艰难。

  (3)抗标记欺骗

  在MPLS 网络中交换是基于标签的,标签交换不会在通向CE(用户边缘路由器)的PE 接口上出现,同样任何一个从CE 到达PE 上标记过的分组将被丢弃。因此,通过标记欺骗来实施攻击是不可能的。

  可能遇到的安全威胁

  从前面的分析可知,攻击者无法从一个VPN攻击另一个VPN。因此,他们可能会通过攻击MPLS 核心网络来攻击VPN。

  核心网络中,PE之间交换MP-BGP(多协议扩展BGP-4)路由信息建立VPN路由表,P(服务商路由器)之间交换公网路由信息建立公网传输路径。因此,攻击者通常伪装成PE 与运营商网络的PE 建立连接并交换路由信息,获取VPN 的内部路由,篡改或伪造路由信息,使用户数据流入自己的PE 设备。除此之外,攻击者对PE 或P 的DoS (拒绝服务)攻击会影响和破坏路由信息的正常交换,妨碍路由表的建立和维护,导致VPN 数据包的转发丢失或错误。

  安全改进方案改进思路

  为防御攻击,需要在路由器间加强邻居安全,如增加MD5(信息摘要算法第五版)鉴权机制。如果MPLS 域内所有的设备都配置同一MD5 密钥,则密钥的泄漏会导致整个域内认证失效。但是为每一对路由器单独配置一个密钥,则会大大增加管理配置的复杂度。因此,考虑使用另一种简单有效的保护机制GTSM(通用TTL安全机制)。

  GTSM是一种基于TTL(生存周期)的安全保护机制,通过检查协议报文中的TTL 值是否在一个预先定义好的特定范围内,来确定与自己建立连接的对端路由器是否合法。攻击者经过简单的调试即可知道与目标路由器的距离,然后设置相应的TTL值,靠路径上路由器的递减,使得包到达目标路由器时TTL 值正好为指定值,即可以进行DoS攻击。在MPLS域内,P之间建立基于LDP(标签分发协议)的直连邻居关系,如果事先设置GTSM,使得路由器只发出TTL为255的LDP 包,且只接收邻居发来的TTL 为255的LDP包,则攻击者除非是直接连在目标路由器上,否则目标路由器收到的攻击包必然是TTL小于255的,因此很容易分辨出对端路由器是否合法。同时,GTSM 仅仅依靠对每个IP包都会携带的TTL 字段进行处理,不会增加带宽消耗,也不需要经过复杂的加解密程,可以实现迅速而有效的保护。

  安全改进方案方案流程

  根据以上分析,方案设计在PE之间采用基于MP-BGP的MD5鉴权机制,将所有PE 划分为不同区域,为每个区域配置不同的MD5 密钥,由于PE的数量较少,对网络管理影响不大。而在P 直连邻居间采用基于LDP的GTSM机制。

  (1)基于MP-BGP 的MD5 鉴权

  在PE上为BGP邻居配置一致的MD5 认证密钥后,发送BGP消息之前,PE将BGP 消息与设置的认证密钥一起进行MD5 计算,将计算出的信息摘要填充在TCP(传输控制协议)头部后面,然后再将消息发送出去。当接收端路由器收到BGP 消息后,先取得相关信息段与本地密钥进行MD5 计算,将结果与收到的消息中的信息摘要相对比,若一致则接收,若不一致则说明报文被篡改过或密钥不一致,直接丢弃。

  (2)基于LDP的GTSM 机制

  LDP 会话时两端路由器发送Hello消息进行邻居发现,为使双方协商并使用GTSM,需要在Hello消息中使用一个标志位来表示自己是否使能GTSM。为了不影响MPLS 基础功能,取Hello消息中Common Hello TLV 保留字段的第一个bit位作为G 标志位。G为1,表示本路由器使能GTSM;G为0,表示本路由器未使能GTSM。只有双方都使能,才能协商成功。

  T:是否为远端连接 G:是否使能GTSM R:是否发送目标Hello包

  协商成功后,路由器发送与接收LDP消息都会经过如下处理流程:

  (1)发送LDP 消息时,路由器首先判断该协议是否注册了GTSM 机制。若没有注册,则直接发送消息;若已注册,则路由器先将TTL 字段设为255,然后通过数据发送模块发送出去。

  (2)在接收方,路由器收到LDP 消息后先判断该协议是否注册了GTSM 机制。若没有注册,则直接送交LDP 模块处理;若已注册,检查TTL 字段,如果TTL=255,则接收并交给LDP 模块进行处理,如果TTL≠255,则直接丢弃。由此可见,在LDP 上增加GTSM,协商时只使用了Hello消息的一个保留位,在处理LDP 消息前只需对TTL作简单处理,因此这一功能模块的添加对MPLSVPN 基本功能和网络性能的影响不大。

  MPLS VPN 能为用户提供灵活、安全和实时的传输需求,它将是未来构建VPN 技术发展的方向,具有广阔的应用前景。而是否具有良好的安全性,是MPLS VPN 能否大规模商用的关键。本文提出的安全改进方案,根据MPLSVPN 的特点,在BGP邻居和LDP 邻居间分别采用MD5 和GTSM 邻居保护机制,可以有效防范非法用户的侵入、DoS 攻击等安全威胁,为MPLS VPN 提供更强的安全保障,与此同时却并不增加网络管理和程序处理的复杂度,可以很好地满足用户及运营商的需求。