论文部分内容阅读
PE如何从CE处学习路由
与VPN相连的PE路由器需要知道该VPN内的每个基站的地址集。
在CE设备是主机或交换机的情况下,通常直接把地址集配置进与此设备相连的PE路由器。当CE设备是一台路由器时,有好几种方法可以使PE路由器获得此地址集信息。
PE利用配好的RD将这些地址译成VPN-IPv4地址,然后PE把这些VPN-IPv4地址作为BGP的输入,由BGP负责分发到其他的PE。来自基站的路由信息绝对不会渗透到骨干网的IGP中。
具体采用哪一种PE/CE路由分发技术依赖于CE是否在“中转VPN”中。“中转VPN”
是这样的一种VPN:它的路由器接收来自“第三方”的路由,然后把这些路由重分发给某个PE路由器。非中转VPN称为“根VPN”。大部分的VPN,包括所有的企业网,都是“根VPN”。
有以下的PE/CE路由分发技术:
1)静态路由(可能只对根VPN有用)。
2)PE和CE可以是RIP对等体,CE可以使用RIP将经由此CE路由器所属基站可达的地址前缀集合报告给PE路由器。当CE配置了RIP时,必须保证从其他基站来的地址前缀不会被回送给PE。
3)PE和CE路由器可以成为OSPF对等体。在这种模式下,基站应该作为一个单独的OSPFarea,CE应作为该area的一个ABR,并且PE应是不在此area内的一个ABR。除属同一基站内的CE外,PE不应向其他基站报告OSPF的路由器链路LSA(类型码为1)。(该技术仅对根VPN有用)
4)PE和CE路由器成为BGP对等体。CE路由器可以使用BGP(如用EBGP向PE路由器通报该CE路由器所属基站的地址前缀集)。
从纯技术的角度考虑,第四种是目前最好的技术:
它不与IGP的备选技术类似,从而,若PE想与多个CE通信,无需运行多个路由算法的实例;BGP所完成的功能是:在由不同的机构运营的路由系统之间传送路由信息;如果基站含有“BGP后门”,如有的路由器具有到其他的非PE路由器的路由设备的连接,该VPN实现技术能很好地工作,而其他的技术能否正常工作需要对具体的网络环境进行具体的分析;BGP使CE可以很容易地把路由的属性送到PE。
从不好的方面来讲,除非VPN客户自身就是ISP,否则,使用BGP对CE管理员可能是一种新体验,因而需要一段适应的时间。
如果基站不属于中转VPN,则基站可以不必有唯一的自治系统号(ASN)。每个CE,若其基站不在中转VPN内,则可以使用相同的ASN,这样的ASN可以从专用的ASN空间里挑选,PE将完成这些ASN的剥离。源基站属性可以防止环路的形成。
如果基站的集合构成了某个中转VPN,将它们作为一BGP联合体会带来很大的方便。中转VPN的内部结构对于此VPN之外的任何路由器都是不可见的。这样,VPN内的每个基站需要到骨干的两条连接,对BGP联合体来说,一条是内部连接,另一条是外部连接。因为骨干和基站可能采用不同的策略,因此需要对一般的联合体内部交互过程做一点小小的改动。在其中一条连接上,骨干是联合体的一个成员,在另一条连接上则不是。若VPN业务的客户是一个ISP的话,这些技术可能很有用。利用这些技术,本身就是ISP的VPN客户可以从其他的ISP处得到VPN骨干承载服务。
CE如何从PE处学习路由
假定CE设备是一个路由器。一般来说,PE可以把基站转发表里的所有路由信息都分发给CE。这里有一个例外:路由信息不会被重分发到由其源基站属性所指示的基站内的任何CE。
在大多数情况下,PE简单地把缺省路由分发给CE就足够了。对于那些本身不需要向其他基站分发缺省路由的基站,由PE向CE分发缺省路由的方式通常都是可行的。然而有时基站需要向其他基站分发缺省路由。例如,若某企业VPN网里的一个基站拥有Internet接入通道,则此基站就可能需要把一条缺省路由分发到其他的基站,可是此基站却不能把该缺省路由分发到自身。
CE提供MPLS时的VPN的实现
当CE具备MPLS能力,并且“愿意”接收其所在VPN的完整路由时,PE可以给每个这样的路由分发一个标记。当PE从CE收到具有这样标记的报文时,它用通过BGP学到的转发标记替换当前报文标记,同时将对应于BGP下一跳的标记(由IGP下一跳路由器分发)压入栈顶。
一、虚拟基站
如果CE/PE路由分发是通过BGP完成的,则CE可以使用MPLS来实现多个虚拟基站。CE本身可以为每个虚拟基站维护一张转发表。CE根据从PE收到的路由的源VPN属性和目的VPN属性,把这些路由归入各个转发表中;若CE收到了PE的完整的路由集合,PE就不再需要对从CE来的报文做任何目的地址查找。另外一种虚拟基站的实现方式是,针对每个VPN,PE可以向CE分发一条(带标签)缺省路由。随后,当PE收到来自CE的带这种标记的报文时,由于CE已经在报文的转发标记里指示了发出此报文的虚拟基站,PE立刻就知道了该去查找哪一张转发表。
二、将ISPVPN表示为根VPN
若某个VPN用户实际上就是一个ISP,而该ISP的CE路由器可以支持MPLS,那么,VPN可以被视为一个根VPN。CE和PE路由器只需互相发送VPN的内部路由;对每条内部路由,PE可以向CE发送一个转发标记;VPN的不同基站内的路由器可以成为BGP对等路由器。当CE路由器查找报文的目的地址时,路由查找过程就解析到一个内部地址,通常是报文的BGP下一跳路由器地址,然后CE给报文打上标记并将其发送给PE。
安全
在以下情况下,本文所论述的VPN体系的安全级别等同于在帧中继和ATM骨干上提供VPN的安全性级别:
对从不可信或不可靠来源到达的标记报文,除非骨干路由设备可以断定若使用此转发标记,必将使得此报文的标记栈内层转发标记和IP报头被检查之前,报文离开骨干网络,否则骨干路由器不接收此报文;不接收从不可信或不可靠来源到达的VPN-IPv4路由。
值得注意的是,使用MPLS提供该级别的安全性要比采取像IP-in-IP隧道这样的技术来提供安全性要简单得多:除非上述第一个条件满足,否则只需简单地拒绝接收标记报文。采用MPLS还使VPN可以在跨越多个SP的同时,对IPv4路由的在域间的分发方式没有任何的依赖性。
一、CE路由器间的点对点安全隧道
安全意识较高的VPN用户可能要求对部分或全部穿越骨干的报文进行认证和/或加密。现今,实现此功能的标准做法是在VPN的每一对CE路由器之间,采用IPSEC隧道模式建立“安全隧道”。
然而,在迄今所提到的所有报文处理过程中,没有一个可以做到使发送数据包的CE路由器能够得到数据包将要经过的下一个CE路由器的身份信息。而这种信息正是IPSEC隧道模式需要的。
通过技术可以使每一个VPN-IPv4路由可以带有一个属性,该属性指示了沿着该路由经过的下一个CE路由器的身份。如果VPN内所有CE路由器都能得到此身份信息的话,我们就可以使用标准IPSEC隧道模式了。
如果CE和PE是BGP对等体,可以把CE身份信息作为一个BGP属性来提供。使用IPSEC的每个CE应配置一地址前缀集,以阻止CE向这些地址发送不安全的数据包。这样,在CE由于某种原因无法获得必须的信息时,就不会发送不安全的数据包了。当采用MPLS在IPSEC隧道的两个对端传送报文时,IPSEC的外层报头实际上没有什么作用。
二、多方安全协会
比起在每一对CE路由器之间建立安全隧道,建立单一的多方“安全协会”可能会好些。在这个安全协会里,特定VPN内的所有CE路由器将共享相同的安全参数,则入口CE就不必知道下一个CE是谁了,入口CE仅须知道数据包要到哪个VPN去就够了。若某个CE属于多个VPN,则对每个VPN,该CE要使用不同的参数。
按照这种方式,由于不用把“外层报头”填入IP目的地域,所以就可以不用标准的IPSEC隧道模式。若使用MPLS做数据转发时,外层报头实际完全没有必要。PE路由器利用MPLS转发,甚至不用知道隧道端口的IP地址,就可以把数据包送过去。PE路由器只需要“内部报头”的IP目的地址。
QoS
QoS是任何形式的VPN业务的一个重要方面。在MPLS/BGP体系里,利用MPLS的SHIM头的“实验”比特,可以对标记报文应用第三层QoS。当骨干是ATM时,也可以使用ATM的QoS。流量工程也可以应用于MPLS/BGPVPN。如果需要,甚至可以利用流量工程在特定的基站对之间建立具有特定QoS特性的LSP。SP还可以将综合业务模型(intserv)或区别业务模型(diffserv)应用到特定的VPN。
扩展性
SP骨干网含有:PE路由器,BGP路由反射器,P路由器和ASBR。P路由器不含任何VPN路由。为了正确转发VPN数据流,P路由器仅需维护到PE路由器和到ASBR路由器的路由。使用两级标记栈使得P路由器不用关心VPN路由信息。PE路由器需要维护路由信息,但仅限于其直接相连的VPN的路由信息。
路由反射器和ASBR可以分散在各个VPN之中,这样每一部分只负责SP提供的所有VPN集合的一个VPN子集的路由。单个的路由反射器或ASBR不会维护全部VPN的路由信息。从而,SP网络中的单个路由设备不会去维护全部VPN的路由信息。这样,网络对快速增长的VPN的支持能力就不再受单个路由设备能力的限制。
与VPN相连的PE路由器需要知道该VPN内的每个基站的地址集。
在CE设备是主机或交换机的情况下,通常直接把地址集配置进与此设备相连的PE路由器。当CE设备是一台路由器时,有好几种方法可以使PE路由器获得此地址集信息。
PE利用配好的RD将这些地址译成VPN-IPv4地址,然后PE把这些VPN-IPv4地址作为BGP的输入,由BGP负责分发到其他的PE。来自基站的路由信息绝对不会渗透到骨干网的IGP中。
具体采用哪一种PE/CE路由分发技术依赖于CE是否在“中转VPN”中。“中转VPN”
是这样的一种VPN:它的路由器接收来自“第三方”的路由,然后把这些路由重分发给某个PE路由器。非中转VPN称为“根VPN”。大部分的VPN,包括所有的企业网,都是“根VPN”。
有以下的PE/CE路由分发技术:
1)静态路由(可能只对根VPN有用)。
2)PE和CE可以是RIP对等体,CE可以使用RIP将经由此CE路由器所属基站可达的地址前缀集合报告给PE路由器。当CE配置了RIP时,必须保证从其他基站来的地址前缀不会被回送给PE。
3)PE和CE路由器可以成为OSPF对等体。在这种模式下,基站应该作为一个单独的OSPFarea,CE应作为该area的一个ABR,并且PE应是不在此area内的一个ABR。除属同一基站内的CE外,PE不应向其他基站报告OSPF的路由器链路LSA(类型码为1)。(该技术仅对根VPN有用)
4)PE和CE路由器成为BGP对等体。CE路由器可以使用BGP(如用EBGP向PE路由器通报该CE路由器所属基站的地址前缀集)。
从纯技术的角度考虑,第四种是目前最好的技术:
它不与IGP的备选技术类似,从而,若PE想与多个CE通信,无需运行多个路由算法的实例;BGP所完成的功能是:在由不同的机构运营的路由系统之间传送路由信息;如果基站含有“BGP后门”,如有的路由器具有到其他的非PE路由器的路由设备的连接,该VPN实现技术能很好地工作,而其他的技术能否正常工作需要对具体的网络环境进行具体的分析;BGP使CE可以很容易地把路由的属性送到PE。
从不好的方面来讲,除非VPN客户自身就是ISP,否则,使用BGP对CE管理员可能是一种新体验,因而需要一段适应的时间。
如果基站不属于中转VPN,则基站可以不必有唯一的自治系统号(ASN)。每个CE,若其基站不在中转VPN内,则可以使用相同的ASN,这样的ASN可以从专用的ASN空间里挑选,PE将完成这些ASN的剥离。源基站属性可以防止环路的形成。
如果基站的集合构成了某个中转VPN,将它们作为一BGP联合体会带来很大的方便。中转VPN的内部结构对于此VPN之外的任何路由器都是不可见的。这样,VPN内的每个基站需要到骨干的两条连接,对BGP联合体来说,一条是内部连接,另一条是外部连接。因为骨干和基站可能采用不同的策略,因此需要对一般的联合体内部交互过程做一点小小的改动。在其中一条连接上,骨干是联合体的一个成员,在另一条连接上则不是。若VPN业务的客户是一个ISP的话,这些技术可能很有用。利用这些技术,本身就是ISP的VPN客户可以从其他的ISP处得到VPN骨干承载服务。
CE如何从PE处学习路由
假定CE设备是一个路由器。一般来说,PE可以把基站转发表里的所有路由信息都分发给CE。这里有一个例外:路由信息不会被重分发到由其源基站属性所指示的基站内的任何CE。
在大多数情况下,PE简单地把缺省路由分发给CE就足够了。对于那些本身不需要向其他基站分发缺省路由的基站,由PE向CE分发缺省路由的方式通常都是可行的。然而有时基站需要向其他基站分发缺省路由。例如,若某企业VPN网里的一个基站拥有Internet接入通道,则此基站就可能需要把一条缺省路由分发到其他的基站,可是此基站却不能把该缺省路由分发到自身。
CE提供MPLS时的VPN的实现
当CE具备MPLS能力,并且“愿意”接收其所在VPN的完整路由时,PE可以给每个这样的路由分发一个标记。当PE从CE收到具有这样标记的报文时,它用通过BGP学到的转发标记替换当前报文标记,同时将对应于BGP下一跳的标记(由IGP下一跳路由器分发)压入栈顶。
一、虚拟基站
如果CE/PE路由分发是通过BGP完成的,则CE可以使用MPLS来实现多个虚拟基站。CE本身可以为每个虚拟基站维护一张转发表。CE根据从PE收到的路由的源VPN属性和目的VPN属性,把这些路由归入各个转发表中;若CE收到了PE的完整的路由集合,PE就不再需要对从CE来的报文做任何目的地址查找。另外一种虚拟基站的实现方式是,针对每个VPN,PE可以向CE分发一条(带标签)缺省路由。随后,当PE收到来自CE的带这种标记的报文时,由于CE已经在报文的转发标记里指示了发出此报文的虚拟基站,PE立刻就知道了该去查找哪一张转发表。
二、将ISPVPN表示为根VPN
若某个VPN用户实际上就是一个ISP,而该ISP的CE路由器可以支持MPLS,那么,VPN可以被视为一个根VPN。CE和PE路由器只需互相发送VPN的内部路由;对每条内部路由,PE可以向CE发送一个转发标记;VPN的不同基站内的路由器可以成为BGP对等路由器。当CE路由器查找报文的目的地址时,路由查找过程就解析到一个内部地址,通常是报文的BGP下一跳路由器地址,然后CE给报文打上标记并将其发送给PE。
安全
在以下情况下,本文所论述的VPN体系的安全级别等同于在帧中继和ATM骨干上提供VPN的安全性级别:
对从不可信或不可靠来源到达的标记报文,除非骨干路由设备可以断定若使用此转发标记,必将使得此报文的标记栈内层转发标记和IP报头被检查之前,报文离开骨干网络,否则骨干路由器不接收此报文;不接收从不可信或不可靠来源到达的VPN-IPv4路由。
值得注意的是,使用MPLS提供该级别的安全性要比采取像IP-in-IP隧道这样的技术来提供安全性要简单得多:除非上述第一个条件满足,否则只需简单地拒绝接收标记报文。采用MPLS还使VPN可以在跨越多个SP的同时,对IPv4路由的在域间的分发方式没有任何的依赖性。
一、CE路由器间的点对点安全隧道
安全意识较高的VPN用户可能要求对部分或全部穿越骨干的报文进行认证和/或加密。现今,实现此功能的标准做法是在VPN的每一对CE路由器之间,采用IPSEC隧道模式建立“安全隧道”。
然而,在迄今所提到的所有报文处理过程中,没有一个可以做到使发送数据包的CE路由器能够得到数据包将要经过的下一个CE路由器的身份信息。而这种信息正是IPSEC隧道模式需要的。
通过技术可以使每一个VPN-IPv4路由可以带有一个属性,该属性指示了沿着该路由经过的下一个CE路由器的身份。如果VPN内所有CE路由器都能得到此身份信息的话,我们就可以使用标准IPSEC隧道模式了。
如果CE和PE是BGP对等体,可以把CE身份信息作为一个BGP属性来提供。使用IPSEC的每个CE应配置一地址前缀集,以阻止CE向这些地址发送不安全的数据包。这样,在CE由于某种原因无法获得必须的信息时,就不会发送不安全的数据包了。当采用MPLS在IPSEC隧道的两个对端传送报文时,IPSEC的外层报头实际上没有什么作用。
二、多方安全协会
比起在每一对CE路由器之间建立安全隧道,建立单一的多方“安全协会”可能会好些。在这个安全协会里,特定VPN内的所有CE路由器将共享相同的安全参数,则入口CE就不必知道下一个CE是谁了,入口CE仅须知道数据包要到哪个VPN去就够了。若某个CE属于多个VPN,则对每个VPN,该CE要使用不同的参数。
按照这种方式,由于不用把“外层报头”填入IP目的地域,所以就可以不用标准的IPSEC隧道模式。若使用MPLS做数据转发时,外层报头实际完全没有必要。PE路由器利用MPLS转发,甚至不用知道隧道端口的IP地址,就可以把数据包送过去。PE路由器只需要“内部报头”的IP目的地址。
QoS
QoS是任何形式的VPN业务的一个重要方面。在MPLS/BGP体系里,利用MPLS的SHIM头的“实验”比特,可以对标记报文应用第三层QoS。当骨干是ATM时,也可以使用ATM的QoS。流量工程也可以应用于MPLS/BGPVPN。如果需要,甚至可以利用流量工程在特定的基站对之间建立具有特定QoS特性的LSP。SP还可以将综合业务模型(intserv)或区别业务模型(diffserv)应用到特定的VPN。
扩展性
SP骨干网含有:PE路由器,BGP路由反射器,P路由器和ASBR。P路由器不含任何VPN路由。为了正确转发VPN数据流,P路由器仅需维护到PE路由器和到ASBR路由器的路由。使用两级标记栈使得P路由器不用关心VPN路由信息。PE路由器需要维护路由信息,但仅限于其直接相连的VPN的路由信息。
路由反射器和ASBR可以分散在各个VPN之中,这样每一部分只负责SP提供的所有VPN集合的一个VPN子集的路由。单个的路由反射器或ASBR不会维护全部VPN的路由信息。从而,SP网络中的单个路由设备不会去维护全部VPN的路由信息。这样,网络对快速增长的VPN的支持能力就不再受单个路由设备能力的限制。