📄 rfc2547.txt
字号:
如果CE设备是一个路由器,它是其直接相连的PE的路由对等体,而不是其它站点上的CE路由器的路由对等体。不同站点上的路由器并不直接交换路由信息,它们甚至无需互相了解(除非因为安全的需要,见第9节)。因为简化了每个站点的路由策略,可以支持大型的VPN(有大量站点的VPN)。
重要的一点是要保持SP和其用户间明晰的管理界限(cf. [4])。PE和P路由器仅由SP管理,SP用户无权介入。CE设备仅由用户管理(除非用户把管理服务委托给了SP)。
1.3 有重叠地址空间的VPNs
任何两个不相交的VPN(如:无公共站点的VPN)可能有重叠的地址空间,而同一地址也可能用在不同VPN的不同系统中。只要端系统的地址在其所属的VPN中是唯一的,该端系统无须对VPN有所了解。
在这种模式下,VPN的拥有者无须管理一个主干网或一个虚拟主干网。SP也无须为每个VPN管理一个单独的主干网或虚拟主干网。主干网中站点间的路由是最优化的(基于组建VPN的限制策略),并不受限于任何人工的隧道虚拟拓扑。
1.4 由不同路由到达同一系统的VPN
一个站点可以在多个VPN中,但不同VPN到该站点中某一系统的路由无须相同。例如,假设一个内联网中包含站点A、B、C,一个外联网中包含A、B、C和一个外部站点D。若在站点A上有一个服务器,我们希望来自于B、C、D的客户能使用该服务器。同时,在站点B上有一个防火墙,为了对来自外联网的业务进行接纳控制,所有站点D连到服务器的业务都要通过这个防火墙。而来自站点C的业务是内联网的,无须经由该防火墙到达服务器。
也就是说,到服务器有两条路径。站点B和C使用一条路径直接通向站点A,站点D使用第二条路径,先到达站点B的防火墙,如果防火墙允许该业务流通过,该业务就象从站点B发出的业务流一样发往站点A。
1.5 PE上的转发表
每个PE路由器都要维护若干独立的转发表。每个与PE相连的站点必须对应于其中的一个转发表。当从某个站点收取一个包时,需查找与该站点相应的转发表以确定该包的转发路径。只有当路由的目标站点与站点S同在至少一个VPN中时,才产生站点S的转发表,这可以防止两个不在同一VPN的站点间的通信,而且,这样两个没有公共站点的VPN也可以使用重叠的地址空间。
1.6 SP 主干网路由器
SP的主干网包括PE路由器和未直接与CE设备相连的其它路由器(P路由器)。
如果SP主干网中的每个路由器都得为所有VPN维护路由信息,那么无疑这个模式的扩展能力很差,SP能支持的站点数取决于一个路由器上可保存的路由信息的数量。因此,一个重要的要求就是,一个VPN的路由信息只保存在与该VPN相连的PE路由器上,而P路由器无需保存任何VPN的路由信息。
VPN可以跨越多个服务提供商。如果两个服务提供商SP之间是相互信任的,那么它们的PE路由器间的通路可根据一个专用的对等协议穿越SP网络间的边界。特别是,每个提供商信任对方并把正确的路由信息和来源可靠的带有标签的包(在MPLS情况下[9])传递给对方。在此,我们假定标签交换路径可以穿越SP间的边界。
1.7 安全Security
即使不加密,一个VPN模型也应当提供相当于第二层主干网(如Frame Relay)的安全保证。也就是说,即使在误配置或故意将不同VPN间互连的情况下,一个VPN的系统也不能进入另一个VPN的系统。
同时,该模型应该也可以采用标准的安全措施。
2. 站点和CE
从主干网的角度看,如果一系列IP系统相互连接且它们之间的通信无需主干网参与,则这些IP系统组成了一个站点。一般来说,一个站点由一些地理位置相近的系统组成,当然并非总是这样。如果地理位置较远的两地间用一根运行OSPF的专线相连,也可以组成一个站点,因为两地间的通信无须主干网的参与。
一个CE设备常被视为在一个单独的站点上(但一个站点可能由多个“虚拟站点”组成)。而一个站点可能在多个VPN中。
一个PE路由器可能与多个站点中的CE设备相连,无论它们是否在同一个VPN 中。出于鲁棒性的考虑,一个CE设备也可能与多个PE路由器相连,这些路由器可能属于同一个或不同的服务提供商。如果这个CE设备是路由器,则它与相连的PE路由器互为邻接路由器。
如果互连的基本单元是站点,这里描述的体系结构可以实现更为精细的互连控制粒度。例如,一个站点上的某个系统可能是一个内联网的成员,同时也是一个或多个外联网的成员,而该站点上的其它系统却只限于是内联网的成员。
3. PE中基于站点的转发表
每个PE路由器维护一个或多个“站点转发表”,与PE相连的每个站点都对应于其中的一个表。当从某站点接收到一个包时,从与该站点相应的转发表中查找该包的目的地址。
站点转发表是如何产生的呢?如,PE1,PE2,PE3是三个PE路由器,CE1,CE2,CE3是三个CE路由器。PE1从CE1了解站点CE1可达的路由信息。如果PE2和PE3分别与CE2、CE3相连,且VPN V包括CE1、CE2、CE3,PE1用BGP向PE2、PE3分发它从CE1得到的路由信息。PE2,PE3使用这些路由信息产生与CE2、CE3相应的转发表。来源于VPN V以外站点的路由不出现在这些转发表中,也就是说,CE2,CE3发出的包不会发送到VPN V以外的站点。
如果一个站点在多个VPN中,其对应的转发表将包含其在所有VPN中的路由信息。
一般,一个PE只为每个站点维护一个转发表,即使它与该站点间有多个连接。如果几个不同的站点共用相同的路由,它们共享同一个转发表。
假设一个PE路由器从一直接相连的站点收到一个包,但在相应的站点转发表中找不到这个包的目的地址。如果SP在该站点处并不提供Internet接入服务,那么该包因为无法发送而被丢弃。否则,将会查询PE的Internet转发表。也就是说,即使提供Internet接入,一般每个PE也只需要维护一个Internet路由转发表。
要保持VPN间的隔离,重要的一点就是主干网中的路由器不接收来自于邻接的非主干设备的带标签的包,除非
1) 标签栈顶的标签是主干网路由器分配给该设备的;
2) 主干网路由器能确定由于该标签的使用,这个包在离开主干网之前,不会检查IP包头和标签栈中的其余标签。
这些限制对于防止包进入其它VPN相当有必要。
PE中的站点转发表只用于那些从PE直接相连的站点发来的包,而不用于来自于SP主干网的包。因此,到同一系统可能有多个不同的路由,包从哪一个站点接入主干网,就由哪一个站点决定选用何种路由。如,你可以为由外联网发往指定系统的包指定一个路由(通向防火墙),为内联网发往同一系统的包(包括那些已经通过防火墙的包)指定另一路由。
3.1 虚拟站点
有时,一个站点可能被用户用VLAN分成几个虚拟站点。每个虚拟站点可能是不同VPN的成员。PE要为每个虚拟站点维护一个独立的转发表。例,如果一个CE支持VLAN,并希望每个VLAN对应于一个独立的VPN,PE与CE间发送的包可封装在该站点的VLAN中。PE可以利用这一点,以及接收包的接口,把该包指定到某一虚拟站点。
也可以把接口分成多个“子接口”(尤其是如果接口是Frame Relay 或 ATM),并根据包到达的子接口把包指定到一个VPN。或者简单些,每个虚拟站点使用不同的接口。无论何种情况,即使有多个虚拟站点,每个站点都只需一个CE路由器。当然,如果愿意,每个虚拟站点也可以使用不同的CE路由器。
注意,无论哪种情况,控制业务流属于何VPN的机制和策略都由用户掌握。
如果希望一个主机在多个虚拟站点上,那么主机必须确定,每个包对应于哪一个虚拟站点。例如,它可以在不同的VLAN的不同虚拟站点上通过不同的网络接口发送包。
这些并不要求CE支持MPLS。对于支持MPLS的CE如何支持多个虚拟站点,在第八节中有一个简短的讨论。
4. 用BGP分发VPN路由信息
PE路由器使用BGP相互分发VPN路由信息(更确切地说,是引起路由信息的分发)。
一个BGP传播者只能安装和分发一个路由到指定的地址前缀。我们允许每个VPN有各自的地址空间,也就是说,相同的地址可被若干VPN使用,而在每个VPN中这个地址代表不同的系统。因此,我们应该允许BGP为某个IP地址前缀安装和分发多个路由。甚至于,如果BGP为某一IP地址前缀安装了多个路由,我们必须确保在任何一个站点转发表中只出现其中的一个。
我们使用下面描述的新的地址族来实现上述目标。
4.1 VPN-IPv4地址族
BGP多协议扩展[3]允许BGP携带来自多个“地址族”的路由。我们先介绍VPN-IPv4地址族的概念。一个VPN-IPv4地址长12字节,以8字节的“路由标记”RD开头,后接一个4字节的IPv4地址。如果两个VPN使用相同的地址前缀,PE可以把它们翻译成不同的VPN-IPv4地址前缀。这样,如果在两个VPN中使用了相同的地址,也可以分别为每个VPN安装与该地址对应的不同的路由。
RD本身并没什么特别的语义,它并不包含路由来源或向哪些VPN分发路由的信息。RD的目的仅在于可以对一普通的IPv4前缀产生一个与众不同的路由,RD还可以用于决定路由的重新分发。(见4.2)
RD还可以用于产生到同一系统的多个不同的路由。在第3节中,我们曾给出一个例子:从内联网到某一服务器的路由必须与从外联网的业务流路由不同。这可以通过产生两个IPv4地址部分相同,但RD不同的VPN-IPv4路由来实现。这样,BGP就可以安装到同一系统的多个路由,还可以使用一定的策略(见第4.2.3节)来决定包的路由选择。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -