重点讲解用目标和源属性组建VPN属性

安全
更确切地说,这个属性应称为“源路由”属性而不是“源VPN属性属性。它只确定路由来自于某一站点集合中的一个站点,并不关心这些站点是否组成一个VPN属性。

重点讲解用目标和源属性组建VPN属性,在向大家详细介绍VPN属性之前,首先让大家了解下VPN属性配置模式中相应参数,然后全面介绍共享上网,选择使用宽带路由器这种最简单方案。

源VPN属性

一个VPN-IPv4路由可以选择性地通过源属性与一个VPN属性相关。这个属性唯一地代表了一系列站点的集合,并代表了相应的来自于该集合的一个站点的路由。这个属性的典型用途是表明了路由指向的站点的拥有者---某企业,或表明了该站点的内联网。当然,还可能有其它用途。这个属性可以象一个扩展的BGP群体属性一样来编码。

当需要确定一路由的来源时,应当使用源属性,而不是RD。如下文所述,这个属性可以用于构建VPN属性。更确切地说,这个属性应称为“源路由”属性而不是“源VPN属性属性。它只确定路由来自于某一站点集合中的一个站点,并不关心这些站点是否组成一个VPN属性

用目标和源属性组建VPN属性

如果正确地设置了目标VPN和源VPN属性,就可以组建各种不同的VPN。如果想组建一个包含特定站点集合的封闭用户群CUG,可以用一个指定的目标VPN属性值来代表该CUG。这个值应该与CUG中每个站点的转发表,以及从CUG中每个站点中学习的路由相关联。

任何有该目标VPN属性的路由都应该重新分发,以到达每一个与CUG中任一站点相连的PE路由器。如果是想组建一种"hubandspoke"VPN,可以使用两个目标属性值,一个代表“Hub”,一个代表“Spoke”。从spoke发出的路由被分发到hub,但hub发出的路由并不被分发到spoke.

如果一些站点既在内联网上也在外联网上,而另一些站点只在内联网上,那么,有一些内联网和外联网的路由具有代表全体站点的目标VPN属性。那些有内联网路由的站点只能过滤有“错误”源VPN属性的路由。利用这两个属性,可以灵活地控制路由信息在不同站点集合间的分发,在VPN属性的组建上也提供了很好的灵活性。

在主干网上的转发

如果主干网上的中间路由对到VPN属性的路由一无所知,数据包如何从VPN属性的一个站点转发到另一个站点呢?这是利用MPLS的两层标签栈来实现的。PE路由器(和重新分发VPN-IPv4地址的ASBR)要在主干网的IGP路由表中插入/32地址前缀。

这样,在主干网的每一个网络节点上,都可以用MPLS为到每个PE路由器的路由指定一个标签。(在主干网上建立标签交换路径LSP的过程中不需要/32地址前缀)当PE从一个CE设备接收到一个包时,它选择一个站点转发表来查找包的目的地址。

假设找到了匹配项。如果该包的目的地是连接在同一PE上的一个CE设备,就直接发送到该CE设备。如果该包的目的地不是连接在同一PE上,则找到该包的“BGP下一跳”和BGP下一跳为包的目的地址分配的标签。先把标签压入包的标签栈,成为栈底标签。

接着PE查找到BGP下一跳的IGP路由,确定IGP下一跳和IGP下一跳为BGP下一跳地址分配的标签。这个标签也被压入包的标签栈,成为栈顶标签。然后这个包被转发往IGP下一跳。(如果BGP下一跳就是IGP下一跳,第二个标签就用不着入栈了。)由MPLS携带这个包经主干网到达适当的CE设备。

也就是说,所有的P和PE路由器做出的转发决定现在都以MPLS方式给出,直到包到达该CE设备,不需再查看包的IP包头。最后的PE路由器将在把包发送到CE设备前从标签栈中弹出最后的标签,这样,CE设备看到的仍是一个普通的IP包。(第8节将讨论CE能接收带标签的包的情况)当一个包通过一个PE路由器从某站点进入主干网时,根据PE路由器中与该站点相关的转发表内容决定包的路由。

与包离开主干网的PE路由器中的转发表是无关的。因此,到同一系统可以有多个路由,为包选择哪一个路由取决于包从哪一个站点进入主干网。注意,两层标签的运用使保持所有VPN属性路由与P路由器的隔离成为可能,这对于保证该模型的扩展性相当重要。主干网甚至只需到PE的路由而无需到CE的路由。

责任编辑:佟健 来源: chinaunix
相关推荐

2009-12-31 10:28:16

VPN配置实例

2010-06-29 16:56:48

2010-05-11 10:22:28

2010-09-07 14:40:10

title属性Alt属性CSS

2023-11-20 14:41:34

Python属性

2009-12-11 14:21:57

PHP获取字段属性

2022-01-25 07:44:15

CSS防御式 CSSFlexbox

2009-12-29 10:11:56

WPF布局属性

2012-04-13 09:36:35

微软开源开放

2010-01-13 10:46:42

VB.NET Dock

2009-07-08 17:42:26

this属性

2009-12-22 13:26:03

Linux sysfs

2010-05-10 15:37:14

Unix文件

2010-08-23 15:14:10

padding

2013-07-11 10:08:05

2009-07-08 17:48:18

prototype属性

2012-11-08 10:40:47

JavaScript原型链

2010-08-25 09:25:13

CSSmargin

2009-07-08 17:51:45

constructor

2012-02-03 10:21:47

HibernateJava
点赞
收藏

51CTO技术栈公众号