设为首页收藏本站language 语言切换
查看: 2256|回复: 4
收起左侧

应用技巧:理解MPLS VPN(第二部分)

[复制链接]
 成长值: 63400
发表于 2010-10-12 18:35:17 | 显示全部楼层 |阅读模式
上一篇文章讨论了MPLS VPN网络的转发层面,特别是如何通过在每一个服务提供商端(PE)保持单独的信息表和把有关的通讯经过单独的LSP(分层服务提供程序)协议连接到每一个表以保持隐密性。  还有控制层面:每一个信息表中包含的本地可达信息是如何传播到其它服务提供商的?
  要记住,MPLS VPN和MPLS的基本目标之一是在一个通用的、共享的基础设施上支持多项服务,本地可达信息在服务提供商之间的传播还应该由一个单独的和共享的协议处理。
  它确实如此,使用GBP(边界网关协议)。(对于2层VPN和VPLS来说,你有使用LDP(标签分发协议)的替代方法。但是,在我的头脑中,这只是不必要地增加了一个协议。使用BGP支持所有的VPN功能对我更有意义。也许对于这个问题的支持和反对的讨论将成为以后的好文章)。
  然而,普遍使用BGP在所有的VPN之间传送全部可达信息提出了一个令人担心的问题:如果每一个服务提供商端的全部可达信息进入一个共享的BGP表并且使用相同的BGP更新消息进行传播,如何保证每一个VPN信息的秘密呢?
  重叠的信息会出现什么情况呢?例如,3层VPN用户A、用户B和用户C可能都使用10.0.0.0/8专用地址空间作为自己的网络地址。我们说,PE_1用户A、B和C每个用户都有一个连接的网站,没一个网站的地址是在10.1.1.0/24的范围之内并且是单独传送的。在本地的PE_1,通过网站分开的连接和分开的信息表把这三个重叠的前缀分开。因此,用户A网站播出的10.1.1.0/24地址保存在用户A的VRF(VPN路由转发)中。用户B播出的10.1.1.0/24地址保存在用户B的VRF中。用户C播出的10.1.1.0/24地址保存在用户C的VRF中。
  但是,PE-1现在必须要播出数字相同、但是实际上却不同的这三个前缀,因为它们属于三个不同的用户,都属于在这个网络上使用一个BGP处理的其它服务提供商。因此,10.1.1.0/24前缀将通过三个不同的VRF添加到BGP表。更有趣的是,用户D和用户E也播出连接到这个网络上的其它服务提供商的网站的10.1.1.0/24地址。从BGP的观点看,它只是得到了通向同一个目的地的五个不同的路由,而不是五个不同的目的地。在服务提供商端,BGP仅选择它认为通向10.1.1.0/24地址的最佳路由,并且把它安装到所有本地的VRF。这显然不是我们要的东西。
  要支持这些重叠的地址,我们需要满足两个要求:
  (1)我们需要一个识别机制识别相同的前缀,并且把它们变成唯一的前缀,这样,BGP就不会把它们简单地解释为通向同一个目的地的多个可达通知。
  (2)我们需要一个围绕前缀制定政策的方法,这样,我们就能够控制什么前缀能够进入什么信息表。
  使用路由标识(RD,Route Distinguisher)能够满足第一个要求。路由标识是一个预先把一个前缀与一个具体的VPN用户关联起来的64位值。这个VPN服务提供商为每一个用户分配一个唯一的路由标识,并且可能为每一个用户网站分配一个路由标识。在这个前缀添加到BGP表的时候,这个路由标识将预先计划每一个用户发出的每一个前缀。
  在我们提供的五个不同的VPN用户发出的10.1.1.0/24地址的例子中,路由标识可以按照下列情况预先计划:
  - 用户A, 在站点1: 1:1:10.1.1.0/24
  - 用户B, 在站点1: 2:1:10.1.1.0/24
  - 用户C, 在站点1: 3:1:10.1.1.0/24
  - 用户D, 在站点2: 4:2:10.1.1.0/24
  - 用户E, 在站点3: 5:3:10.1.1.0/24
  由于这些路由标识,你能够方便地看到这五个在数字上相似的前缀现在都是唯一的。
  但是,这些地址的长度不能超过IPv4地址。通过预先计划路由标识创建的地址属于VPN-IPv4地址家族。由于除了默认的IPv4地址家族之外BGP必须要发送这种VPN-IPv4系列地址,我们要使用多协议BGP(MBGP)。对于第二个要求,制定一些政策确定什么前缀属于什么信息表。这个解决方案是对于每一个本地的信息表都要创建一个VPN-IPv4前缀过滤器。但是,前缀过滤器在操作的上不能很好地升级,特别是在有数百或者数千个用户的时候。
  过滤VPN-IPv4地址也不像我们喜欢的那样灵活。例如,用户A和用户B可能要在他们之间建立一个基于VPN的内部网,相互传送一个有限的共同地址空间的子集。
  幸运的是BGP已经拥有一个政策工具,可专门为大量的前缀组(社区)使用灵活的政策。BGP社区路经属性是一个能够用于BGP前缀的“标记”。正如名称暗示的那样,共享同一个标记的前缀是一个能够使用一些统一政策的“社区”。
  社区还能够提供广泛的政策灵活性,因为一个前缀能够有多个社区。因此,你可以创建一个只有识别出具体的社区或者识别出社区的某种组合之后才能使用的政策。
  BGP社区有两种类型:标准社区是32位值;扩展社区是64位值。这使我们回到了这个VPN讨论。
  MPLS VPN使用一个64位扩展的社区属性,称作“路由目标”(RT)。在一个指定的服务提供商端,你创建一个出网政策,把一个路由目标附加到本地连接到服务提供商端的一个VPN用户传送的前缀。然后,你在拥有用户网站的所有其它的服务提供商端创建一个入网政策,识别用户的一个或者更多的路由目标,并且接受相关的前缀进入用户本地的VPN信息表。
  路由标识和路由目标的区别是引起许多网络工作者混淆的原因,主要是因为它们都是64位值,格式完全相同。路由标识和路由目标都有一个2个字节的类型字段表示“类型0”或者“类型1”。类型字段之后的两个字段表示管理员字段和分配的编号字段。类型0的路由标识和路由目标有一个两个字节的管理员字段和一个4个字节的分配的编号字段。类型1的路由标识和路由目标有一个4个字节的管理员字段和一个2个字节的分配的编号字段。在这两种情况下,分配的编号字段是你确定的任意编号,不过,管理员字段也可以是你喜欢的任意编号。这两种类型允许你把这个字段变成一个两个字节的AS编号或者一个四个字节的IP地址。
  不过,要点是虽然路由识别和路由目标在格式上是相同的,但是,它们是不同的动物,执行完全不同的任务。请记住,路由标识只是让潜在的相同的前缀变成唯一的前缀,而路由目标是一种BGP社区属性,把可达信息的发布传送正确的信息表。

发表于 2010-11-28 18:31:46 | 显示全部楼层
谢谢晒```!
沙发 2010-11-28 18:31:46 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-5-3 23:18:18 | 显示全部楼层
感谢分享

板凳 2011-5-3 23:18:18 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-2-21 22:16:46 | 显示全部楼层
地板 2012-2-21 22:16:46 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-9-27 15:38:59 | 显示全部楼层
5# 2012-9-27 15:38:59 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-4 21:50 , Processed in 0.069509 second(s), 13 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表