专利名称:用于根据流量方向路由信息的方法和装置的制作方法
背景技术:
被称为“订户网络”的计算机网络提供了订户的远程装备或用户网络设施之间的数据通信的高速长距离传输。例如,具有若干分行的银行,或者具有若干操作计算机网络的远程或地理上分布式装备(例如局域网装备)的大型连锁宾馆或其他用户可以订购订户或运营商网络,以在用户的远程网络装备之间提供数据通信能力。订户网络能够代表订户网络的很多不同用户传输很多不同类型的数据。一种支持订户网络的这种代表不同用户传输不同类型数据的能力的技术被称为多标签协议交换(MPLS)。MPLS是一种本领域技术人员公知的技术,并被记载在由被称为因特网工程任务组(IETF)的标准组织公布的若干请求注释(RFC)中。
支持MPLS的订户网络通常包括多个边缘路由器(提供商边缘路由器或PE路由器),用户边缘路由器(在每个用户设施边缘处的CE路由器)连接到PE路由器以便通过订户网络进行通信。基于MPLS的订户网络可以提供批发服务(wholesale service),其中订户基于使用某种第2层服务选择标准来访问网络的各种服务。第2层服务选择需要使用PPP(点对点)客户端,例如PPPoE(基于以太网的点对点协议)或PPPoA(基于ATM的点对点协议)。一般而言,为了发起与批发服务提供商(其可能拥有支持订户的服务)之间的PPP会话,客户端选择给定服务,并输入用户名@服务名称以及密码。
由MPLS网络支持的一种类型的批发服务可以是客户端(例如辐条)和上行流ISP(因特网服务提供商)(例如中心)之间的“中心&辐条”式因特网类型访问。根据这种拓扑,可以通过到中心ISP的MPLS核心为多个因特网订户提供到订户的因特网访问的连通性。上行流ISP通常包括如下节点,该节点将来自给定子网的公共IP(因特网协议)地址分配给发起会话请求的订户以通过因特网通信。在此情况下,这样的客户端例如可以是拨入用户,例如需要访问雇主设施的雇员。
为了建立这种服务的会话,订户可以基于给定的用户名@服务名称(例如订户A@ISP-A.com)来发起PPP会话。LAC/PE路由器接收和发送去往批发服务提供商RADIUS服务器(即远程认证拨入用户服务器)的用户名@服务名称和密码信息。在服务提供商RADIUS服务器处,“服务名称”被用于在包含关于用于“服务名称”服务提供商(例如ISP-A.com)的RADIUS服务器的IP地址的信息的配置文件中进行索引。然后,用户名@服务名称和密码被从服务提供商RADIUS服务器(其充当“代理RADIUS”)转发到ISP RADIUS服务器。ISP RADIUS服务器认证接收到的信息,并分配和返回供发出请求的订户使用的IP地址。
在认证之后,所谓的“访问-接受”被从ISP RADIUS服务器发回批发服务提供商RADIUS服务器。批发服务提供商RADIUS服务器将授权信息添加到访问-接受分组(基于服务名称或域名),并将访问-接受分组转发回LAC/PE路由器,在LAC/PE路由器中,用于用户的临时虚拟访问接口(与/32IP地址相关联)被置于适当的用于路由选择目的的VRF(虚拟路由选择&转发实例)中。
发明内容
不幸的是,存在很多与在PE网络节点处利用和维护VRF信息以基于上述中心&辐条式拓扑来路由数据分组的传统方法相关联的缺陷。考虑中心和辐条式拓扑,在这种拓扑中,多个订户通过支持MPLS的核心订户网络的公共PE(提供商边缘)节点(例如边缘路由器)来建立网络会话。根据传统方法,在PE节点处的VRF信息可获得,从而使接收自被耦合以通过PE节点通信的第一客户端的流量可能被直接转发回同样被耦合以通过PE节点通信的第二客户端,而使该流量不会穿过上行流ISP或批发服务提供商网络。
在如上所述在提供商边缘节点处处理VRF信息的传统设计中存在缺陷。例如,与连接到同一批发服务提供商PE路由器的公共服务相关联的客户端(例如已经建立了网络会话的订户)可能通过PE路由器(例如通过使用PE路由器处的VRF信息)直接向彼此发送分组,而不必将分组发送到上行流ISP(因特网服务提供商)节点。更具体而言,第一客户端可能向PE路由器发送网络消息。该网络消息可能具有同样被耦合以通过同一PE路由器通信的第二客户端的目的地地址。为了转发网络消息,传统的PE路由器可能使用其VRF信息将该网络消息直接转发回耦合到PE节点的第二客户端,这是因为PE路由器中的路由选择方针信息可用于将数据分组直接路由回其多个所支持的客户端中的任意客户端。因此根据传统技术,由于在服务的VRF内可获得每个订户虚拟访问接口的/32IP地址,因此订户之间的流量能够在PE路由器处以本地方式交换。
由于多个原因,用于处理VRF信息的传统机制和技术中的这种情况的发生是不合需要的。例如,两个这样的订户之间的流量不会穿过服务提供商批发网络和ISP域之间的中心链路。这是不合需要的,因为在很多情况下,ISP需要为在中心链路上传输的数据向批发服务提供商付款。相反,ISP更希望处理(或至少能够监控)由其订户发送的流量。
另外,某些规则要求订户之间的IP流量必须能够在可访问的网络节点处被监控或截取。例如,银行机构可能需要来自客户(例如银行的拨入顾客)的每个通信都通过位于订户网络上的特定银行设施处的中央监控和记录设施。但是,顾客想要连接的银行分行可能碰巧在本地耦合到与顾客所连接的提供商边缘节点相同的提供商边缘节点。这样一来,由于在此传统提供商边缘节点示例中的VRF信息将用于顾客和其希望连接的银行分行两者的路由选择信息都组合或混合在同一VRF路由选择信息表中,因此提供商边缘路由器可能直接通过其自身将外出或上行流顾客连接路由到下行流连接所需要的银行分支,而完全绕过了银行机构的监控设施。大多数批发服务提供商(例如上述由MPLS支持的网络)更喜欢在ISP网络处执行任意监控。因此,任意订户到订户流量最好行进穿过ISP网络中用于监控的节点(例如中心节点)。如果这能够实现,批发服务提供商则将提供“真正的”传输服务。
维护分离的路由选择方针信息条目,从而根据网络流量的方向而通过网络节点转发网络流量是本领域中的一项进步。例如,注意,上述示例中的提供商边缘节点使第一客户端发送的网络流量能够被直接转发到第二客户端,而不穿过网络中的其他节点(或特定节点)。从而,由于网络流量沿着受限路径流动,因此可能无法监控通过提供商边缘节点的网络流量。与这种传统技术相对照,根据本发明针对不同方向的流量维护分离的路由选择方针信息(例如半双工VRF信息)的做法确保这种流量可以被转发通过特定节点并最终到达目标,即使网络流量根据传统方法能够穿越更短、更直接路径到达目标也会如此。
因此,本发明的一个实施例涉及在支持网络流量的输入输出的第一网络节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息。在第一节点处的上行流路由选择方针信息用于识别用于转发接收自第一客户端的通过第一节点传输的上行流流量(例如接收自一个或多个源的在第一方向上行进的网络流量)的第二节点。在第一节点处的下行流路由选择方针信息用于将接收自另一节点的下行流网络流量(例如接收自一个或多个源的在第二方向上行进的网络流量,但是该网络流量不一定在与上行流流量相反的方向上)转发到第一客户端。于是,一般而言,分离的路由选择方针条目被维护,以支持取决于流量方向的流量路由和转发。通过避免使用下行流路由选择方针信息来路由选择上行流网络流量,第一节点可以沿着网络流量以其他方式不会通过的路径来转发或路由流量。于是,可以强制通过第一节点传输的网络流量行进通过在下行流方针信息被用于路由网络流量的情况下,网络流量将不会通过的网络节点(例如第二节点)。
应该注意,相关术语上行流和下行流的使用仅仅指示在不同方向上的网络流量。例如,在支持客户端和服务提供商网络之间的消息传输的服务提供商网络的上下文中,上行流流量可以是接收自客户端的想发送到目标设备的网络消息,所述目标设备例如是提供商边缘“中心”节点或用户边缘“中心”节点。下行流流量可以是在第一节点处从批发服务提供商网络接收到的网络流量(或至少通过服务提供商网络路由的流量)。
在本发明的其他实施例以及其他独立实施例中,第一网络节点可被配置用于接收来自想要建立会话以通过第一节点通信的客户端的会话发起请求。该客户端可能尚未分配用于发送和接收数据消息的网络地址。在接收到会话发起请求之后,第一节点可以从网络地址服务器(例如用于分配供发出请求的客户端使用的IP地址的RADIUS服务器)获得用于生成该会话发起请求的第一客户端的网络地址分配信息。该分配信息(包括网络地址信息)可以被转发到第一节点和其他网络节点以用于创建路线。例如,已分配的网络地址可以在网络中的其他节点处唯一地标识客户端。
除了将其分配的网络地址信息告知客户端之外,第一节点还填充其下行流路由选择方针信息,以将标识发出请求的客户端节点的网络地址信息包括进来。一般而言,在下行流路由选择方针信息中包括客户端的网络地址信息使第一节点能够将接收自其他上游节点的信息路由回客户端。在一种应用中,第一节点利用与给定服务相关联的每个新客户端的网络地址信息来填充下行流方针信息(例如用于向客户端路由数据分组的VRF信息)。这样,可以根据客户端网络会话的建立和终止来动态更新所支持的客户端节点的列表。
由于上行流和下行流路由选择方针信息依赖于它们支持的流量方向而变化,因此它们中的每一个都可以包括与多个客户端相关联的信息。例如,下行流路由选择方针信息可以是包括了由第一节点所支持或耦合到第一节点的多个客户端的列表的VRF。相对照,传统方法需要跟踪多个客户端中的每个客户端的分离的VRF实例。如果针对几万个客户端的每个维护分离的VRF条目,则将需要管理几万个相应的VRF实例(每个客户端有一个实例)。根据本发明的实施例,一个用于上行流信息的VRF包括用于路由上行流流量的默认地址(或汇聚)或目标(例如中心),而另一用于下行流流量的VRF包括多个客户端的网络地址信息的列表。基于分离的VRF实例的数量减少,可以减小维护VRF的开销以及为存储VRF对存储器资源的占用。
在针对新客户端在第一节点中填充了下行流方针信息之后,第一节点可以通过使用根据诸如BGP(边界网关协议)之类的系统路由选择协议分发的通知消息来将填充在下行流方针信息(在第一节点处)中的网络地址信息分发到其他节点。例如,第一节点可以是多个客户端耦合到的网络中的第一提供商边缘节点。第一提供商边缘节点可以将与相应客户端相关联的每个新网络地址分发给第二节点,例如支持MPLS的核心网络的第二提供商边缘节点。一般而言,发送到第二节点(或批发服务提供商网络中的多个相关节点)的网络地址信息被用于在第二节点处更新路由选择方针信息。在第二节点处的路由选择方针信息进而被用于识别用于适当地转发想去往耦合到第一提供商边缘节点的客户端的流量的路线。
如上所述,对于接收自客户端的流量(例如上行流流量),第一节点利用上行流路由选择方针信息来识别用于转发流量的目标节点,而不管与流量相关的目的地地址。更具体而言,第一节点可以从被耦合以通过第一节点通信的客户端接收网络消息。第一节点利用第一节点中的上行流路由选择方针信息来识别转发网络流量的路径或默认路线。即使网络流量的目的地地址是耦合到第一节点的另一客户端,第一节点也要在上行流路由选择方针信息中查找目标路线以识别用于转发流量的默认路线或节点(例如提供商边缘中心节点或用户边缘中心节点)。这种避免在第一节点处使用下行流路由选择方针信息的技术强迫网络流量沿着它在下行流路由选择方针信息可用于(例如在同一VRF表中)路由上行流流量的情况下不会通过的路径行进。例如,如果耦合到第一节点的第一客户端向耦合到第一节点的第二客户端发送消息,那么如果下行流路由选择方针信息可用于路由数据,第一节点则可能将接收自第一客户端的消息直接路由到第二客户端。根据本发明的原理,该消息沿着由上行流路由选择方针信息指定的路线或目标(例如默认路线或目标)转发,即使可能存在直接返回第二客户端的更短路径也是如此。
根据一个实施例,在第一节点处的上行流路由选择方针信息和下行流路由选择方针信息能够实现第一节点和第二节点(例如默认中心节点)之间的VPN(虚拟专用网络)连接的建立,在该连接上,来自第一客户端的流量被转发。基于在第二节点处的路由选择方针信息,可以在第二节点和第一节点之间建立返回路径(例如另一VPN),在该返回路径上,网络消息通过第一节点被转发到第一客户端。
强迫流量行进通过它以其他方式将不会通过的节点可实现传统技术不支持的用途。例如,可以在第二节点(例如ISP网络的节点)处实现用于监控数据分组流的目标专用(target-specific)分组处理技术,以监控与特定客户端相关联的流量的量。于是,服务提供商可以识别出要对通过网络传输数据的客户端收取多少费用。另外,诸如代理等监控机构可以在第二节点处监控数据分组的内容,以识别网络是否正被用于非法目的。
本发明的一个实施例提供了包括计算机可读介质的计算机程序产品,所述计算机可读介质上存储有指令,所述指令用于将网络节点配置为支持网络消息的路由选择。指令在被数据通信设备的处理器执行时致使处理器执行以下步骤(i)在所述第一节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息,所述上行流路由选择方针信息在所述第一节点处被用于识别用于转发至少接收自通过所述第一节点通信的第一客户端的上行流流量的第二节点,所述下行流路由选择方针信息在所述第一节点处被用于将接收自一个节点的下行流流量转发到至少所述第一客户端;以及(ii)对于由所述第一客户端通过所述第一节点发送的流量,避免使用所述下行流路由选择方针信息来路由所述流量,而是利用所述第一节点中的所述上行流路由选择方针信息来确保将由所述第一客户端发送的流量从所述第一节点转发到所述第二节点。这里公开的本发明的其他实施例布置包括用于执行以上概括并在下面详细公开的方法实施例步骤和操作中的任意一个的软件程序。
本发明的实施例可以由任意类型的计算装置中的计算机软件和/或硬件机制来实现。将会理解,本发明的实施例可以严格地作为软件程序实现、作为软件和硬件实现,或者作为例如服务提供商网络中的提供商边缘路由器中的单独的硬件和/或电路来实现。如这里说明的,本发明的特征可以在数据通信设备、计算机化设备和或这种设备的软件系统中采用,所述设备例如是由加州San Jose的Cisco Systems公司制造的设备。
从以下对在附图中示出的本发明的优选实施例的更具体描述中,本发明的前述和其他目的、特征和优点将变得明显,在附图中的不同视图的相同标号指代相同的部分。附图不一定是按比例绘制的,相反重点在于示出本发明的原理。
图1是根据本发明的实施例,用于在网络的边缘节点处维护分离的路由选择方针信息的通信系统的图。
图2是根据本发明的实施例,用于在边缘节点处维护分离的路由选择方针信息的通信系统的图。
图3是示出根据本发明的实施例,路由选择方针信息和流量流的使用的详细图。
图4是根据本发明的实施例,支持路由选择方针信息的维护和使用的计算机系统及其功能组件的图。
图5、6和7组合构成一张流程图,该流程图示出根据本发明的实施例,用于支持路由选择方针信息的维护和使用的技术。
具体实施例方式
MPLS/VPN的中心&辐条式拓扑的一种传统实现方式要求针对通过相同PE节点通信的多个客户端中的每个客户端具有单独的VRF条目,以便强制来自客户端的网络流量行进通过中心站点。否则,如果辐条(针对多个客户端)在PE节点处的同一VRF中被维护(如在传统系统中所实现的),辐条之间的流量则可能在本地被交换,而将不会行进通过中心站点,例如上述ISP网络。这种跟踪每个客户端(例如辐条)的单独的VRF条目的实现方式对于少量辐条的情况是可以接受的,但在针对与同一PE节点相关联的多个幅条(例如很多客户端)中的每个幅条维护、利用和存储单独的VRF条目的传统设计中,这是非常麻烦的。
由于对MPLS/VPN(例如端接DSL用户)网络的远程访问通常要求所有流量都行进通过中心站点(例如ISP网络),因此可以在传统系统设计中实现的针对每个订户使用单独的VRF条目的做法会导致可扩展性的问题。根据本发明的实施例,这个问题通过支持用于多个客户端的辐条而得以解决,在一个实施例中,这是通过创建两个VRF以支持属于同一“中心&辐条”组的用户来实现的。VRF之一(例如上行流VRF)可用于通过核心MPLS网络(例如批发提供商网络)向诸如ISP节点之类的中心转发接收自客户端的分组。另一个单独的VRF条目可被用于将接收自MPLS核心网络的分组(例如从中心通过核心MPLS网络发送的分组)路由到相应的客户端。因此,该技术根据去往或来自订户的数据分组的方向而利用不同的VRF向提供商边缘节点转发或路由数据。利用本发明的实施例,不再需要针对多个订户中的每个订户维护单独的VRF(包括上行流和下行流信息)。因此,根据方向而使用不同的VRF条目的做法(与针对每个客户端维护一个VRF相比)减少了在PE路由器处维护的VRF条目的数量,并且还大大减小了远程访问的复杂性。
因此,本发明的实施例可以包括第一PE网络节点。第一PE网络节点维护单独的路由选择方针信息,以根据网络流量的方向转发网络流量。在第一节点处的上行流路由选择方针信息(例如第一VRF)标识用于转发通过第一节点传输的接收自第一客户端的上行流流量的中心。在第一节点处的下行流路由选择方针信息(例如第二VRF)标识如何将接收自中心的下行流网络流量转发到第一客户端。通过避免第一客户端使用下行流路由选择方针信息路由上行流网络流量,第一节点能够沿着网络流量以其他方式不会行进通过的路径来转发流量。例如,通过第一节点传输的网络流量可被强制行进通过中心节点,其中如果在第一PE节点处利用下行流方针信息来转发网络流量,则网络流量将不会通过中心节点。
虽然这里描述的技术可被用在例如由RFC 2547(请求注释2547)支持的联网应用中,并且尤其可用于通过网络链路提供到很多远程设备的连通性的通信设备(例如路由器)中,但是这些技术也适用于其他应用。
图1是根据本发明的实施例,支持配置信息的动态更新的通信系统100的图。如图所示,通信系统10包括客户端110-1、110-2、...110-N、网络接入服务器(NAS)125、核心网络112、RADIUS服务器140、CE(用户边缘)节点150、服务提供商网络160和监控器170。在其外围,核心网络112包括PE(提供商边缘)节点132和中心PE节点134。
在一个实施例中,客户端110拨入网络接入服务器125以通过PE节点132建立网络会话。例如,PE节点132可以接收由客户端110提供的用户名和密码信息,并将它们转发到RADIUS服务器140。在认证了用户之后,RADIUS服务器140(可能与其他RADIUS服务器设备协作)生成网络地址信息,例如供客户端110使用的IP地址。如图所示,各个客户端110-1、110-2、...110-N已被分配了IP网络地址1.1.1.1、1.1.1.2、...1.1.1.N。基于网络地址,通信系统100中的流量可以被路由到被唯一标识的客户端110。
PE节点132维护VRF信息130以支持对诸如TCP/IP(传输控制协议/因特网协议)数据分组之类的网络消息的适当路由选择。如图所示,VRF信息130包括上行流VRF信息130-1和下行流VRF信息130-2。一般而言,VRF信息130支持基于传入流量的方向(或源)对流量的转发或路由。例如,诸如通过PE节点132从客户端110(订户)发送的网络消息之类的流量基于上行流VRF信息130-1的使用被路由或转发。诸如通过核心网络112(例如MPLS服务提供商)发送和接收自核心网络112的网络消息之类的流量基于下行流VRF信息130-2的使用通过PE节点132被路由或转发到客户端110。
更具体而言,在从客户端110到诸如支持VPN(虚拟专用网络)连接的MPLS主干网络之类的核心网络112的上行流方向中,PE节点132截取分组,并基于与传入接口(例如来自客户端110,例如在相应主机计算机处的用户)相关联的上行流VRF 130-1来转发分组。上行流VRF130-1包括指向中心PE节点134的默认路线,该中心PE节点134可以是中心和辐条式拓扑的一部分。例如,PE节点132可以被看作辐条,而PE节点134和CE节点与中心相关联。注意,通信系统100可以包括通过核心网络112耦合到中心PE节点134的多个辐条(例如其他PE节点)。
在上行流VRF 130-1中的默认路线可以从中心PE节点134动态获知。VRF 130-1中的默认路线指向附接到上行流ISP(因特网服务提供商)(例如服务提供商网络160)的接口(例如CE节点150)。该路线可以是非汇聚型路线,以避免中心PE节点134的VRF 144内的IP查找。
对于在从核心网络112到客户端110的下行流方向上的网络消息,下行流VRF 130-2包括下行流VRF 130-2服务于的给定服务的所有订户(例如客户端110)的/32路线。PE节点132用基于RADIUS服务器140提供的网络地址信息(例如分配给客户端的IP地址)的路线来填充下行流VRF 130-2。来自下行流VRF 130-2的路线一般被正常重新分发到MP-BGP(多协议-边界网关协议)中,并在核心网络112中广告。这些路线在中心PE节点134(例如中心PE路由器)处被导入到VRF 144中。
这种使用(例如“半双工”)VRF信息130的技术防止流量在不穿越其他网络节点的情况下在PE节点132处被在本地交换。例如,由客户端110-1发送的想被客户端110-2接收的网络流量可以被PE节点132基于VRF信息130-1转发到中心PE节点134,而不会根据传统方法,在PE节点132处被本地交换而直接返回客户端110-2。因此,监控设备170可以监控由客户端110-2生成的通过服务提供商网络160去往客户端110-2的内容或流量的量。
每个VRF(例如上行流VRF 130-1和下行流VRF 130-2)都可以在建立PPPoA或PPPoE客户端连接之前在LAC/PE路由器上预先创建。在上行流VRF 130-1中,可以利用路线目标导入陈述(route-target importstatement)导入来自中心PE节点144的默认路线167。在下行流VRF130-2中,可以利用路线目标导出命令向中心PE节点134导出所有/32虚拟访问接口地址。
根据本发明的实施例,当诸如PPP客户端之类的客户端110通过NAS 125拨入时,PE节点132在与接口相关联的VRF中安装PPP对等路线(并且如果被限定在AAA[认证、授权和计费]服务器上的话还要安装每个用户的静态路线)。例如,PE节点132在下行流VRF 130-2中安装PPP对等路线,并使用该信息来转发接收自MPLS核心的分组。与PPP接口相关联的VRF(例如上行流VRF 130-1)包括上述默认路线。注意,上行流VRF信息130-1可以包括到中心PE节点144(或多个中心PE节点)的更具体限定的路线。
图2是根据本发明实施例的通信系统200的框图。如图所示,该通信系统类似于通信系统100所示出的。但是,耦合到网络245的主机计算机260(例如客户端)在此中心&辐条拓扑中通过CE节点250和PE节点132通信。通信系统200的操作方面类似于通信系统100,除了用户不是拨入PE节点132,而是通过网络245和辐条CE节点250与PE节点132通信。
图3是更具体示出根据本发明实施例的数据流的框图。一般而言,PE节点132基于PE节点132中的VRF信息130(例如半双工VRF信息)和PE节点134中的VRF信息144(例如传统的VRF信息)的使用来转发数据分组305。
如果中心PE节点134不具有任何连接到其上的辐条CE节点(参见图1),中心PE节点134则不需要支持半双工VRF。例如,中心PE节点134无论辐条PE节点132是否配置了半双工VRF,都以同样方式工作。
中心PE节点134可以利用用于中心CE节点150的单个VRF(以及单个链路)来配置。这是对于拨号/DSL汇聚的典型配置。可替换地,中心PE节点134可以包括两个分离的VRF,这两个VRF支持中心PE节点134和中心CE节点150之间的两条链路。这仅在将利用完整的路由选择信息填充辐条CE节点时需要。例如,中心CE节点150可以获知所有辐条路线,并将路线重新告知辐条节点;辐条节点随后看到完整的路由选择信息,但是所有一切都是从中心PE节点134获知的。但是,在很多应用中,不一定支持这种配置。
如上所述,VRF 144可以利用传统的支持单个中心PE-CE链路的VRF来实现(例如中心PE节点144不需要配置以半双工VRF)。出于举例说明的目的,我们假设在中心PE节点134中仅有单个VRF 144是利用从中心CE节点150获知的默认路线来填充的(并在可应用的情况下被传播到诸如PE节点132之类的辐条PE节点和其他节点)。VRF 144包括从辐条PE节点132获知的已告知中心CE节点150的特定路线。
在客户端110发起会话之后,相应的辐条PE节点(例如PE节点132)在下行流VRF 130-2中安装相关的前缀(例如客户端的IP地址),并将该前缀告知(例如经由BGP消息)中心PE节点134。中心PE节点134将该前缀转发到中心CE节点150。随后,由客户端110-1生成的去往客户端110-2的网络流量(例如数据分组305)可以基于以下数据流被路由。
例如,客户端110-1生成并向PE节点132(即辐条PE节点)发送消息305。如上所述,PE节点132基于它从其接收到消息305的设备来转发消息305。因此,由于消息305是接收自客户端110的上行流流量,因此PE节点132执行IP查找,并利用上行流VRF 130-1来转发消息305。如上所述,上行流VRF包括指向中心PE节点134的默认路线167(由中心PE节点134提供)。PE节点132通过核心网络112将带有适当的用于传输的MPLS标签栈的消息305转发到中心PE节点134。
中心PE节点134经由MPLS接收分组305。分组305的顶部标签包括默认路线167。中心PE节点134从分组305中删除MPLS标签,并基于相应的MPLS转发代码将分组305转发到中心CE节点150。于是,在中心PE节点134上不需要对分组305进行IP查找。
中心CE节点150从中心PE节点134接收分组305。在一个实施例中,中心CE节点150可被配置用于执行任意的过滤、计费等等,例如通过外部/内部防火墙、ACL过滤器等等来路由分组305。中心CE节点150将分组305转发到其目的地,该目的地或者在本地,或者从中心PE节点134获知。在此示例中,中心CE节点150将分组305转发回中心PE节点134,因为相关的目的地地址是客户端110-2。
中心PE节点134接收来自中心CE节点150的分组305(例如IP分组),并在相应的VRF 144中执行IP查找以找到从辐条PE节点132获知的路线。中心PE节点以MPLS封装分组305,并通过核心网络112将其转发到辐条PE节点132。
辐条PE节点132接收MPLS分组305,并基于传入MPLS标签在下行流VRF 130-2中识别前缀(例如IP地址)。在删除了MPLS标签之后,辐条PE节点132基于MPLS转发代码向分组305的目的地目标(例如客户端110-2)转发分组305。如果PE节点132汇聚CE地址,分组305的传入标签则在下行流VRF 130-2中识别汇聚前缀。在该实例中,PE节点132删除MPLS标签,并在下行流VRF 130-2转发表中执行IP查找。
如前所述,术语上行流和下行流的使用标识出不同方向的流量,所述不同方向的流量不一定是彼此相反的。例如,上行流和下行流方向的流量可以是彼此正交的。此外,应该注意,上行流VRF 130-1(例如从辐条PE/CE的视角来看)可被用于通过PE节点132“转发”分组。在下行流方向上,下行流VRF 130-2可被更特别地用于通过PE节点132向相应的目标客户端110“路由”数据分组。因此,“路由选择”可以基于下行流VRF 130-2,在下行流VRF 130-2中安装有从CE获知的路线,并且辐条PE-CE路由选择协议在其中工作(包括静态路由选择和所连接的接口)。
图4是根据本发明实施例的PE节点132的框图。如图所示,PE节点132是计算机化的设备,它包括内连线415,例如将存储器412、处理器413和通信接口460互连在一起的数据总线或其他电路。根据这里说明的本发明的实施例,处理器413可以是能够访问VRF数据库维护应用405以执行、运行、解释或以其他方式操作VRF数据库维护应用405的任意类型的中央处理单元、微处理器、处理设备或其他电子电路的控制器,用于维护和利用对VRF信息130的动态更新。换句话说,VRF数据库维护应用405可被实现为使PE节点132(以及相似类型的节点)能够基于与客户端110之间的会话的建立来动态更新其VRF信息130的软件程序。
存储器412存储VRF数据库维护应用405以及与相应PE节点132相关联的VRF数据库406(例如VRF信息130)。一般而言,应用405代表由处理器413执行的软件代码、数据和/或逻辑指令。当执行这样的代码时,处理器413创建包括半双工VRF利用430进程的半双工VRF更新420,该半双工VRF更新420在PE节点132处被执行以更新VRF信息130并利用VRF信息130来路由作为其名称建议的数据。与这些进程相关联的方面将结合图5、6和7来更具体地描述。
图5、6和7包括根据本发明实施例的流程图500的图。一般而言,流程图500示出了利用和动态维护与通信系统100、200(更具体而言是PE节点132)相关联的VRF信息130的技术。
如上所述,PE节点132可被配置用于接收来自渴望建立会话以通过PE节点132通信的客户端110的会话发起请求。客户端110可能尚未分配用于发送和接收数据消息的网络地址。在步骤510中,在接收到会话发起请求之后,PE节点132从网络地址服务器(例如用于分配供发出请求的客户端110使用的IP地址的RADIUS服务器140)获得(在步骤520中)针对生成该会话发起请求的第一客户端110的网络地址分配信息。该分配信息(包括网络地址信息)被转发到诸如中心PE节点134之类的其他节点,以用于创建通过核心网络112的CE节点150和PE节点132之间的路线。已分配的网络地址(例如IP地址)在通信系统100中的其他节点处唯一地标识客户端110。
除了将其分配的网络地址信息告知客户端之外,第一节点还填充(在步骤530中)其下行流VRF 130-2(例如下行流路由选择方针信息)以将标识发出请求的客户端节点110的网络地址信息包括进来。一般而言,在下行流VRF 130-2中包括客户端10的网络地址信息使PE节点132能够将接收自其他节点的信息路由回客户端110。
以与上述针对单个客户端110讨论的类似的方式,PE节点132可以在步骤540中利用与给定服务相关联的每个新客户端110的网络地址信息来填充下行流方针信息(例如用于向客户端路由数据分组的VRF信息)。这样,下行流VRF 130-2可以基于多个客户端110的会话建立来动态创建。当客户端会话终止时,PE节点132通过删除相应的网络地址和相应的路线来修改下行流VRF 130-2。诸如PE节点134之类的其他节点可以经由适当的BGP消息来通知。
由于上行流VRF 130-1和下行流VRF 130-2存储了根据它们支持的流量方向来利用的信息,因此它们各自可以包括与多个客户端110相关联的信息。例如,下行流VRF 130-2可以包括由PE节点132支持的多个客户端110的列表(基于IP地址和相关路线)。对照来看,传统方法需要跟踪针对多个客户端中的每个客户端的分离的VRF条目。如果根据传统方法维护每个客户端的分离的VRF条目,那么当PE节点132支持几万个客户端110时,将需要管理几万条相应的VRF条目(每个客户端一个)。根据本发明的实施例,用于上行流信息的一个VRF(例如上行流VRF130-1)包括了用于路由上行流流量的默认路线(例如到中心),而另一个用于下行流流量的VRF(例如下行流VRF 130-2)包括了每个客户端的网络地址信息和相关路线的条目。基于这种减少到两个VRF的情况,减少了维护VRF的开销以及用于存储VRF的存储资源的占用。
在步骤550中,在下行流VRF 130-2在PE节点132中被填充,从而包括了关于新客户端的信息之后,PE节点132经由根据诸如BGP(边界网关协议)之类的系统路由选择协议分发的通知消息的使用将填充在下行流VRF 130-2中的网络地址信息分发到其他节点。例如,PE节点132可以是多个客户端110耦合到的网络的第一提供商边缘节点。PE节点132可以将与客户端相关联的每个新的网络地址告知其他节点,例如支持MPLS的核心网络112的中心PE节点134。一般地,发送到PE节点134的网络地址信息被用于在中心PE节点134处更新路由选择方针信息。
现在参考图6和步骤610,PE节点132维护分离的上行流VRF 130-1和下行流VRF 130-2以支持网络流量的输入输出。PE节点132利用上行流VRF 130-1来识别第二节点(例如PE节点134),以转发通过PE节点132传输的接收自第一客户端110-1的上行流流量(例如接收自一个或多个源的在第一方向上行进的网络流量)。PE节点132利用下行流VRF130-2将接收自另一节点的下行流网络流量(例如接收自一个或多个源的在第二方向上行进的网络流量,但是该网络流量不一定在与上行流流量相反的方向上)转发到第一客户端。于是,一般而言,分离的路由选择方针条目被维护,以支持取决于流量方向的流量路由选择和转发。通过在步骤620中避免使用下行流VRF 130-2路由上行流网络流量(例如接收自客户端110的网络流量),PE节点132可以沿着网络流量以其他方式尚未行进的路径来转发或路由流量。于是,可以强制通过PE节点132传输的网络流量行进通过服务提供商网络160(例如中心CE节点150),其中如果在PE节点132处改用或也使用下行流VRF 130-2来路由网络流量,则网络流量将不会以其他方式行进通过服务提供商网络160。
对于在步骤630中接收自客户端110的流量(例如上行流流量),PE节点132在步骤640中利用上行流VRF 130-1来识别目标节点(例如默认路线),以在不考虑与流量相关的最初目的地地址的情况下转发流量。更具体而言,PE节点132可以接收来自客户端110的网络消息,该客户端110被耦合为通过PE节点132通信。PE节点132利用上行流VRF 130-1来识别转发网络流量的路径。即使网络流量的目的地地址是另一客户端(耦合到PE节点132),PE节点132也要在上行流路由选择方针信息中查找目标路线以识别网络流量的默认路线。这种避免在PE节点132处使用下行流VRF 130-2的技术强迫网络流量沿着它在下行流VRF 130-2可用于路由选择上行流流量的情况下不会通过的路径行进。例如,如果耦合到PE节点132的客户端110-1向耦合到PE节点132的第二客户端110-2发送消息,那么如果下行流VRF 130-2可用于路由上行流方向的流量,PE节点132则可能将接收自第一客户端110-1的消息直接路由到第二客户端110-2。根据本发明的原理,该消息沿着由上行流路由选择方针信息指定的路线或目标(例如默认路线或目标)转发。
在步骤650中,在PE节点132处的上行流VRF 130-1和下行流VRF130-2能够实现PE节点132和中心PE节点134(例如默认中心节点)之间的VPN(虚拟专用网络)连接的建立,在步骤710(图7)中,来自第一客户端110的流量在该VPN连接上被转发。基于在中心PE节点134处的路由选择方针信息,在步骤720中,可以在中心PE节点134和PE节点132之间建立返回路径(例如另一VPN或与上述VPN相同的VPN),在该返回路径上,网络消息通过PE节点132被转发到第一客户端110。
强迫流量行进通过它以其他方式将不会通过的节点可实现传统技术不支持的用途。例如,在步骤730中,可以在中心CE节点150(例如与ISP网络相关的节点)处实现用于监控数据分组流的目标专用分组处理技术,以监控与特定客户端110相关联的流量的量。于是,服务提供商可以识别出要对通过网络传输数据的客户端收取多少费用。另外,诸如监控代理等机构可以在服务提供商网络160处监控数据分组的内容,以识别网络是否正被用于非法目的。
虽然已经参考本发明的优选实施例具体示出并描述了本发明,但是本领域技术人员将理解,在不脱离所附权利要求书所限定的本发明的精神和范围的情况下,可以在形式和细节上对本发明执行各种修改。
权利要求
1.一种用于下述网络中的方法,该网络支持与通过第一节点通信的客户端相关联的虚拟网络连接,该方法包括在所述第一节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息,所述上行流路由选择方针信息在所述第一节点处被用于识别用于转发至少接收自通过所述第一节点通信的第一客户端的上行流流量的第二节点,所述下行流路由选择方针信息在所述第一节点处被用于将接收自一个节点的下行流流量转发到至少所述第一客户端;以及对于由所述第一客户端通过所述第一节点发送的流量,避免使用所述下行流路由选择方针信息来路由所述流量,而是利用所述第一节点中的所述上行流路由选择方针信息来确保将由所述第一客户端发送的流量从所述第一节点转发到所述第二节点。
2.如权利要求1所述的方法,其中由所述第一客户端通过所述第一节点发送的希望被第二客户端接收的流量被转发到所述第二节点。
3.如权利要求1所述的方法,还包括接收来自第二客户端的会话发起请求以建立用于通过所述第一节点通信的会话;从地址服务器获得生成所述会话发起请求的所述第一客户端的网络地址分配信息,该分配信息包括用于标识所述第二客户端的网络地址信息;以及在所述第一节点处填充所述下行流路由选择方针信息,以将所述标识第二客户端的网络地址信息包括进来。
4.如权利要求3所述的方法,还包括从被耦合以通过所述第一节点通信的所述第二客户端接收网络消息,该网络消息希望被所述第一客户端所接收;利用所述第一节点中的所述上行流路由选择方针信息来识别转发所述网络消息的路径;以及沿着所述路径将所述网络消息从所述第一节点转发到所述第二节点。
5.如权利要求4所述的方法,还包括基于在所述第二节点处的路由选择方针信息,在所述第二节点和所述第一节点之间建立通过所述第一节点将所述网络消息转发到所述第一客户端的返回路径。
6.如权利要求1所述的方法,还包括基于在所述第一节点处的所述上行流路由选择方针信息和所述下行流路由选择方针信息的使用,在所述第一节点和所述第二节点之间建立转发来自所述第一客户端的流量的VPN(虚拟专用网络)连接。
7.如权利要求1所述的方法,其中所述第二节点是服务提供商网络的一部分,并且所述第一和第二节点之间的流量至少部分地被支持标签交换协议的核心网络所支持。
8.如权利要求1所述的方法,其中在所述第一节点处的所述上行流路由选择方针信息和所述下行流路由选择方针信息中的每一个都是半双工VRF(虚拟路由选择和转发实例),所述半双工VRF支持通过所述第一节点和所述第二节点转发由彼此通信的多个客户端生成的网络消息。
9.如权利要求1所述的方法,还包括在所述第二节点处,对通过所述第二节点转发的来自所述第一客户端的流量应用目标专用分组处理技术。
10.如权利要求1所述的方法,还包括利用与由相应服务提供商支持的给定服务相关联的每个新客户端的网络地址信息来填充在所述第一节点处的所述下行流路由选择方针信息。
11.如权利要求10所述的方法,还包括在所述第一节点中的所述下行流路由选择方针信息针对新客户端而被填充之后,通过使用根据系统路由选择协议分发的通知消息将填充在所述第一节点处的所述下行流路由选择方针信息中的网络地址信息分发到所述第二节点。
12.如权利要求11所述的方法,其中所述系统路由选择协议基于BGP(边界网关协议)。
13.一种在至少部分支持虚拟网络连接的网络中的第一节点处的计算机系统,该计算机系统包括处理器;存储与由所述处理器执行的应用相关联的指令的存储器单元;支持与物理网络中的其他节点通信的通信接口;以及耦合所述处理器、所述存储器单元和所述通信接口的内连线,从而使所述计算机系统能够执行所述应用并执行以下操作在所述第一节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息,所述上行流路由选择方针信息在所述第一节点处被用于识别用于转发至少接收自通过所述第一节点通信的第一客户端的上行流流量的第二节点,所述下行流路由选择方针信息在所述第一节点处被用于将接收自一个节点的下行流流量转发到至少所述第一客户端;以及对于由所述第一客户端通过所述第一节点发送的流量,避免使用所述下行流路由选择方针信息来路由所述流量,而是利用所述第一节点中的所述上行流路由选择方针信息来确保将由所述第一客户端发送的流量从所述第一节点转发到所述第二节点。
14.如权利要求13所述的计算机系统,其中由所述第一客户端通过所述第一节点发送的希望被第二客户端接收的流量被转发到所述第二节点。
15.如权利要求13所述的计算机系统,还执行以下操作接收来自第二客户端的会话发起请求以建立用于通过所述第一节点通信的会话;从地址服务器获得生成所述会话发起请求的所述第一客户端的网络地址分配信息,该分配信息包括用于标识所述第二客户端的网络地址信息;以及填充在所述第一节点处的所述下行流路由选择方针信息,以将所述标识第二客户端的网络地址信息包括进来。
16.如权利要求13所述的计算机系统,还执行以下操作从被耦合以通过所述第一节点通信的所述第二客户端接收网络消息,该网络消息希望被所述第一客户端所接收;利用所述第一节点中的所述下行流路由选择方针信息来识别转发所述网络消息的路径;以及沿着所述路径将所述网络消息从所述第一节点转发到所述第二节点。
17.如权利要求13所述的计算机系统,还执行以下操作基于在所述第二节点处的路由选择方针信息,在所述第二节点和所述第一节点之间建立通过所述第一节点将所述网络消息转发到所述第一客户端的返回路径。
18.如权利要求13所述的计算机系统,还执行以下操作基于在所述第一节点处的所述上行流路由选择方针信息和所述下行流路由选择方针信息的使用,在所述第一节点和所述第二节点之间建立转发来自所述第一客户端的流量的VPN(虚拟专用网络)连接。
19.如权利要求13所述的计算机系统,其中所述第二节点是服务提供商网络的一部分,并且所述第一和第二节点之间的流量至少部分地被支持标签交换协议的核心网络所支持。
20.如权利要求13所述的计算机系统,其中在所述第一节点处的所述上行流路由选择方针信息和所述下行流路由选择方针信息中的每一个都是半双工VRF(虚拟路由选择和转发实例),所述半双工VRF支持通过所述第一节点和所述第二节点转发由彼此通信的多个客户端生成的网络消息。
21.如权利要求13所述的计算机系统,还执行以下操作在所述第二节点处,对通过所述第二节点转发的来自所述第一客户端的流量应用目标专用分组处理技术。
22.如权利要求13所述的计算机系统,还执行以下操作利用与由相应服务提供商支持的给定服务相关联的每个新客户端的网络地址信息来填充在所述第一节点处的所述下行流路由选择方针信息。
23.如权利要求22所述的计算机系统,还执行以下操作在所述第一节点中的所述下行流路由选择方针信息针对新客户端而被填充之后,通过使用根据系统路由选择协议分发的通知消息将填充在所述第一节点处的所述下行流路由选择方针信息中的网络地址信息分发到所述第二节点。
24.如权利要求22所述的计算机系统,其中所述系统路由选择协议基于BGP(边界网关协议)。
25.一种在至少部分支持虚拟网络连接的网络中的第一节点处的计算机系统,该计算机系统包括用于在所述第一节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息的装置,所述上行流路由选择方针信息在所述第一节点处被用于识别用于转发至少接收自通过所述第一节点通信的第一客户端的上行流流量的第二节点,所述下行流路由选择方针信息在所述第一节点处被用于将接收自一个节点的下行流流量转发到至少所述第一客户端;以及对于由所述第一客户端通过所述第一节点发送的流量,用于避免使用所述下行流路由选择方针信息来路由所述流量,而是利用所述第一节点中的所述上行流路由选择方针信息来确保将由所述第一客户端发送的流量从所述第一节点转发到所述第二节点的装置。
26.一种包括计算机可读介质的计算机程序产品,在所述计算机可读介质上存储有指令,所述指令用于处理数据信息,以使所述指令被处理设备所执行时,使所述处理设备能够执行以下步骤在所述第一节点处维护分离的上行流路由选择方针信息和下行流路由选择方针信息,所述上行流路由选择方针信息在所述第一节点处被用于识别用于转发至少接收自通过所述第一节点通信的第一客户端的的上行流流量的第二节点,所述下行流路由选择方针信息在所述第一节点处被用于将接收自一个节点的下行流流量转发到至少所述第一客户端;以及对于由所述第一客户端通过所述第一节点发送的流量,避免使用所述下行流路由选择方针信息来路由所述流量,而是利用所述第一节点中的所述上行流路由选择方针信息来确保将由所述第一客户端发送的流量从所述第一节点转发到所述第二节点。
全文摘要
在支持虚拟专用网络(VPN)连接的网络中,第一网络节点(132)维护分离的路由选择方针信息(130)以根据网络流量的方向来转发网络流量。在第一节点处的上行流路由选择方针信息(130-1)标识用于转发至少接收自通过第一节点通信的第一客户端(110-1)的上行流流量的第二节点(134)。在第一节点处的下行流路由选择方针信息(130-2)标识如何将接收自另一节点的下行流网络流量转发到第一客户端。通过避免第一客户端使用下行流路由选择方针信息来路由选择上行流网络流量,第一节点能够沿着网络流量以其他方式不会通过的路径来转发流量。例如,可以强迫通过第一节点传输的网络流量行进通过另一网络节点,而这一网络节点在可使用下行流方针信息路由网络流量的情况下,网络流量是不会通过的。
文档编号H04L12/56GK1823506SQ200480020340
公开日2006年8月23日 申请日期2004年9月29日 优先权日2003年9月29日
发明者詹姆斯·N·古伊查德, 罗伯特·汉兹 申请人:思科技术公司