掌桥专利:专业的专利平台
掌桥专利
首页

分解式边界网关协议(BGP)

文献发布时间:2024-01-17 01:21:27


分解式边界网关协议(BGP)

背景技术

边界网关协议(BGP)为面向外部网络的网关提供了一种用于与网络,尤其是互联网上的计算机系统交换路由信息的标准化方法。路由信息可以以路径向量的形式共享。可以基于管理员指定的路径、网络策略或规则集合做出路由决策。用于网络内路由的BGP被称为内部BGP(iBGP)。用于与外部共享路由信息的BGP被称为外部BGP(eBGP)。

本领域的进步在于改进了BGP在网络环境中的实施方案。

附图说明

为了使本发明的优点更容易被理解,下面将参照附图中所示的具体实施例对以上简要描述的本发明进行更具体的描述。要理解的是,这些附图仅描绘了本发明的典型实施例并且因此不应被认为是对其范围的限制,将通过使用附图以额外的特性和细节来描述和解释本发明,其中:

图1是根据本发明的实施例的用于实施分解式BGP的网络环境的示意性框图;

图2是示出根据本发明的实施例的通过分解式BGP发言者反射内部生成的路由的示意性框图;

图3是示出根据本发明的实施例的将BGP流量从外部客户端路由到分解式BGP发言者的示意性框图;

图4是示出根据本发明的实施例的通过分解式BGP发言者将内部生成的路由反射到外部客户端的示意性框图;

图5是示出根据本发明的实施例的通过分解式BGP发言者转换来自外部客户端的路由的示意性框图;

图6是示出根据本发明的实施例的通过分解式BGP发言者处理外围路由器之间的故障转移(failover)的示意性框图;

图7是示出根据本发明的实施例的通过分解式BGP发言者将从外部客户端接收到的路由分布(distribution)到外围路由器的示意性框图;并且

图8是根据本发明的实施例的适用于实施方法的计算机系统的示意性框图。

具体实施方式

将容易理解的是,如本文附图中总体上描述和示出的,本发明的组件可以以多种不同的配置来布置和设计。因此,如图所示,以下对本发明实施例的更详细的描述,并非旨在限制所要求保护的本发明的范围,而是仅表示根据本发明的当前设想的实施例的某些示例。目前描述的实施例将通过参照附图得到最好的理解,其中相同的部件自始至终由相同的附图标记表示。

根据本发明的实施例可以实现为装置、方法或计算机程序产品。因此,本发明可以采用全硬件实施例、全软件实施例(包括固件、驻留软件、微代码等)或者在本文中总体上全部可以被称为“模块”或“系统”的合并软件和硬件方面的实施例的形式。此外,本发明可以采用任意有形表达介质中实现的计算机程序产品的形式,其具有实现在该介质中的计算机可用程序代码。

可以利用一种或多种计算机可用或计算机可读介质的任意组合。例如,计算机可读介质可以包括便携式计算机软盘、硬盘、随机存取存储器(RAM)设备、只读存储器(ROM)设备、可擦除可编程只读存储器(EPROM或闪速存储器)设备、便携式光盘只读存储器(CDROM)、光存储设备和磁存储设备中的一个或多个。在所选择的实施例中,计算机可读介质可以包括任意非暂时性介质,其可以包含、存储、通信、传播或传输程序以供指令运行系统、装置或设备使用或与其组合使用。

可以以一种或多种编程语言的任意组合来编写用于执行本发明的操作的计算机程序代码,包括诸如Java、Smalltalk、C++等面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言的常规过程编程语言,并且还可以使用诸如HTML、XML、JSON等的描述性或标记语言。程序代码可以作为独立的软件包完全在计算机系统上运行,在独立的硬件单元上运行,部分在与计算机隔开一定距离的远程计算机上运行,或者全部在远程计算机或服务器上运行。在后一情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接到计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。

下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明。应当理解的是,流程图和/或框图的每个块以及流程图和/或框图中的块的组合可以由计算机程序指令或代码来实施。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以生产机器,使得经由计算机或其他可编程数据处理装置的处理器运行的指令建立用于实施流程图和/或框图块中指定的功能/步骤的手段。

这些计算机程序指令也可以存储在非暂时性计算机可读介质中,其可以指示计算机或其他可编程数据处理装置以特定方式运行,使得存储在计算机可读介质中的指令产生包括实施流程图和/或框图块或多个块中指定的功能/步骤的指令装置的制造品。

计算机程序指令也可以加载到计算机或其他可编程数据处理装置上,以在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实施的进程,使得在计算机或其他可编程装置上运行的指令提供用于实施流程图和/或框图块或多个块中指定的功能/步骤的过程。

图1示出了可以实施本文描述的系统和方法的网络环境100的示例。网络环境100可以包括核心网络102和存取网络104。核心网络102和存取网络104可以包括本领域已知的任意联网和计算设备,诸如交换机、路由器、服务器、用户工作站、用户移动设备等。核心网络102可以是实体内部的网络,诸如提供网络存取的实体、通过互联网向用户提供服务的实体。存取网络104在核心网络102的外部并且可以由不同的实体或实体组控制。在示例实施方案中,存取网络104是互联网。

客户端端点(CE)106可以连接到存取网络并与核心网络102的内部的一个或多个设备通信。核心网络102和存取网络104之间的边界可以由一个或多个外围提供商边缘(PE)路由器108a、108b(以下简称为PE路由器108a、108b)来限定。特别地,存取网络104中诸如CE106的设备对核心网络102的存取可以仅通过包括PE路由器108a、108b的外围路由器来执行。

在常规实施方案中,外围PE路由器提供对核心网络102的冗余存取,使得在一个外围PE路由器发生故障时,流量被路由到另一外围PE路由器。在常规实施方案中,外围PE路由器针对从存取网络存取核心网络的客户端设备实施边界网关协议(BGP)。因此,当发生故障转移时,必须在客户端和其他外围PE路由器之间重新建立客户端设备之间的eBGP会话。虽然这较快执行,但它确实会导致流量中断,这是使用核心网络102提供的服务的明显劣化,并且可能导致无法满足提供核心网络102的实体同意的服务质量(QoS)要求和服务水平协议(SLA)。

在所示的实施例中,BGP的实施方案从PE路由器108a、108b中分解出来。BGP发言者110托管在核心网络102的内部的计算机系统上并且不在PE路由器108a、108b上执行。换句话说,对于一组PE路由器108a、108b提供从外部存取网络104到核心网络102的冗余存取(一个PE路由器承担组中另一个的路由功能),通过该组的PE路由器108a、108b路由的流量的BGP会话状态信息的BGP控制和维护不在该组的PE路由器108a、108b中的任意一个上实施,并且管理BGP会话状态信息和生成并响应BGP控制流量的可执行程序也不在该组的任意PE路由器108a、108b上运行。

运行BGP发言者110的计算机系统可以是通用计算机并且不需要是交换机、路由器或其他联网特定设备或者被配置为网络服务器,然而在一些实施方案中可以使用这些选项中的任意一个。例如,运行BGP发言者的计算机系统可以是简单的台式计算机,诸如运行WINDOWS或LINUX操作系统的个人计算机(PC),运行MACOS的APPLE MACINTOSH计算机,或其他类型的计算机系统。

核心网络100可以包括一个或多个内部路由组件,诸如内部PE路由器112和内部BGP路由反射器(RR)114。RR 114可以例如不加修改地重播从一个或多个内部PE路由器112、BGP发言者110或其他组件接收的路由。内部路由器112也可以是RR 114的RR客户端并且接收由RR 114重播的路由。可以存在任意数量的内部PE路由器112和路由反射器RR。同样,在BGP发言者110和PE路由器108a、108b之间可以插入任意数量的内部计算设备,诸如内部路由器112或其他网络组件。

为了便于理解本文中描述的系统和方法,组件106、108a、108b可以实施以下网络会话中的一些或全部:

·BGP发言者110和CE 106实施eBGP会话116。

·BGP发言者110和PE路由器108a利用在iBGP会话118a内用作路由反射器(RR)的BGP发言者110实施iBGP会话118a,并且PE路由器108a是BGP发言者110的RR客户端。

·BGP发言者110和PE路由器108b利用在iBGP会话118b内用作路由反射器(RR)的BGP发言者110实施iBGP会话118b,并且PE路由器108b是BGP发言者110的RR客户端。

●BGP发言者110实施RR 114的RR客户端124。

●当PE 108a正在运行时,BGP发言者和CE 106通过PE路由器108a在由PE 108a实施的IP(互联网协议)通道(tunnel)126a上交换eBGP控制数据包。

·当PE 108a正在运行时,BGP发言者和CE 106通过PE路由器108b在由PE路由器108b实施的IP通道126b上交换eBGP控制数据包。

·CE 106和PE路由器108a通过虚拟路由和转发(VRF)接口128a通信。

·CE 106和PE路由器108a通过VRF接口128b通信。

·PE路由器108a和PE路由器108b相对于彼此实施冗余协议,诸如虚拟路由器冗余协议(VRRP)会话130。

在以下描述中使用的网络环境100的组件的地址在表1中概述,所列出的地址是用于解释本文公开的系统和方法的标签,其在实际实施方案中将被替换为真实的可路由IP地址。例如,内部地址可以在一个域中(例如,10.0.0.x),而外部地址可以在不同域中(10.1.1.x)。根据本文中描述的系统和方法,每个地址可以另外包括与该地址相关联的端口编号,其用于传送路由信息和载荷数据包。

表1:组件的地址

图2至图7示出了在使用分解式BGP发言者110实施BGP时遇到的各种情况以及可以如何处理这些情况以确保正确实施BGP。

图2示出了使用BGP发言者110作为路由反射器将由内部节点(诸如来自PE路由器112)发起的外部地址(例如,C2)分布到外围PE路由器108a、108b的情况。如图2所示,在核心网络102内,BGP发言者110与每个PE路由器108a、108b建立iBGP会话118a、118b。BGP发言者110还可以与核心网络102中的RR114建立iBGP会话,以便用作RR 114的RR客户端124。如上所述,一个或多个其他PE路由器112也可以是RR 114的路由反射器客户端。并且如上所述,每个PE路由器108a、108b可以是BGP发言者110的路由反射器客户端。

在核心网络102内,PE路由器112可以通告200路由,其定义到PE路由器112的数据包的路由,诸如使用PE路由器112的外部地址(C2)作为所通告路由中的下一跳(nexthop)。BGP发言者110可以直接接收该路由或通过在一个或多个路由反射器(例如,RR 114)通告202路由时接收该路由。然后,作为路由反射器操作的BGP发言者110可以将由PE路由器112发起(直接或通过一个或多个RR,例如RR 114)的VPN路由分布204、206到作为BGP发言者110的RR客户端操作的PE路由器108a、108b。可以使用iBGP会话118a、118b将路由从BGP发言者分布到PE路由器108a、108b。起源于其他PE节点112(除了PE路由器108a、108b)的VPN路由可以通过BGP发言者110被分布204、206到PE路由器108a、108b而无需修改。

在这个和关于图2至图7讨论的其他情况中,示出了所通告和所分布的路由信息流。根据所通告和所分发的路由信息传输的流量将沿着相反方向的路径。例如,由PE路由器112发起的根据分发给PE路由器108a的信息的流量传输路由将从PE路由器108a路由到PE路由器112的外部地址(C2)。由于RR 114和BGP发言者110各自仅作为反射器运行(即,不修改经反射的路由),通过PE路由器108a、108b接收的路由可以直接指向PE路由器112。因此,根据分布式路由传输的流量可以绕过BGP发言者110直接传输到核心网络102内的PE路由器112。

参照图3,CE 106可以与BGP发言者110进行eBGP会话116,并且因此可以通过PE路由器108a向BGP发言者110发送300个BGP控制数据包。如表1所示,BGP发言者110、PE路由器108a和PE路由器108b可以具有相同的外部IP地址C1,使得由CE 106发送到BGP发言者110的数据包将被PE路由器108a、108b接收。PE路由器108a、108b可以撷取这些BGP控制数据包并且将BGP控制数据包转发302到BGP发言者110。例如,无论PE路由器108a、108b中的哪一个正在运行,都会将BGP控制数据包转发302到BGP发言者110。

PE路由器108a、108b可以实施控制平面监管(COPP)304。COPP 304可以被编程为拦截来自存取网络104(例如,CE 106)的BGP控制数据包。实施COPP 304可以包括对COPP 304进行编程以撷取寻址到由BGP使用的TCP端口编号(例如,根据互联网编号分配机构(IANA)的端口179)的数据包。无论PE路由器108a和PE路由器108b中哪一个正在运行,都将通过正在运行的PE路由器108a的IP通道126a将这些BGP控制数据包转发302到BGP发言者,使得CE106不获知任何中间跳,并且CE和BGP发言者之间的eBGP会话可以通过PE路由器108a或通过PE路由器108b建立。BGP发言者110被分配与PE路由器108a、108b相同的外部IP地址(C1),并且因此从CE 106的角度来看,可以显性地(transparently)发送和接收寻址到该IP地址的流量。

虚拟路由器冗余协议(VRRP)130可以由PE路由器108a、108b实施,使得它们具有相同的外部地址(C1)。维持通过PE路由器108a或PE路由器108b到BGP发言者110的连接,使得CE 106在发生故障转移时不需要重新启动与BGP发言者的eBGP会话。在发生故障的情况下,如上文关于PE路由器108a所述,PE路由器108b将开始处理寻址到共享外部地址(C1)的数据包,包括通过IP通道126b将BGP控制数据包转发302到BGP发言者110。

参照图4,当通告从内部PE路由器(例如,PE路由器112)到CE 106的VPN路由时,因为BGP发言者110和CE 106之间的eBGP会话是在C1和A1(CE 106的外部地址)之间建立的,所以BGP发言者110可以使用其外部地址(C1,其在所示示例中是PE A和PE B的相同外部地址)作为下一跳。而且,共享地址(C1)可以分配给PE路由器108a、108b上的VRF接口128a、128b。

在所示示例中,PE路由器112通告400路由(“原始路由”),诸如包括其外部地址(C2)作为下一跳的路由。原始路由可以由RR 114接收并分布402到作为RR 114的RR客户端的BGP发言者110。作为与路由反射器不同的BGP发言者,BGP发言者110可以将其自身外部地址(C1)作为下一跳添加到原始路由,以获得拓展路由。拓展路由可以被传输404到CE 106,诸如通过如上所述用于BGP控制流量的IP通道126a。BGP发言者110或其他路由反射器114也可以不加修改地将原始路由分布到PE路由器108a、108b,即下一跳将保持PE路由器112的外部地址(C2)。

响应于接收到拓展路由,CE 106可以将寻址到PE路由器112(例如,可通过PE路由器11到达的端点)的流量传输406到PE路由器108a、108b,因为它们具有被记录为拓展路由中的下一跳的与BGP发言者110相同的外部地址(C1)。正在运行的PE路由器108a可以通过分配有共享外部地址C1的VRF接口128接收该流量。如上文关于图3所述,由于此流量不是BGP控制流量,因此它不会使用COPP被而撷取并转发到BGP发言者110。相反,正在运行的PE路由器将此流量转发406到PE路由器114的地址(例如,分配给PE路由器114的外部地址C2)在原始路由中被称为下一跳。由于RR 114作为反射器操作,因此RR 114不添加到从PE路由器112接收的路由和在步骤402分布的路由。因此在步骤406转发的流量可以绕过RR 114。

参照图5,诸如VPN路由的路由可以由CE 106生成,其限定CE 106和内部节点(例如,PE路由器112)之间的路由。这些路由可以通过正在运行的PE路由器108a传输500到BGP发言者110(例如,通过PE路由器108a撷取并通过IP通道126a传输到BGP发言者110)。

响应于该路由,BGP发言者110可以获得通过其接收路由的正在运行的IP通道126a的源地址。在这种情况下,源地址可以是PE路由器108a的内部地址(B1)。BGP发言者110可以用正在运行的通道的源地址作为下一跳(在所示示例中,PE路由器108a的内部地址B1)替换该路由中对BGP发言者的内部地址(B3)的参考,以获得修改后的路由并将修改后的路由分布502到一个或多个内部节点(例如,然后RR 114将路由分布504到PE路由器112)。可选地,BGP发言者110将正在运行的通道的源地址作为下一跳添加到路由中,以获得修改后的路由,而不是使用其自己的内部地址。在任一情况下,修改后的路由可以包括作为下一跳的PE路由器108a(B1)的内部地址。

BGP发言者110可以向一个或多个内部节点通告502修改后的路由,诸如向RR 114通告RR 114将修改后的路由分布504给PE 112。因此,由PE路由器112传输506并寻址到CE106的流量可以通过正在运行的PE路由器108a来路由,正在运行的PE路由器108a是修改后的路由中的下一跳。

图6示出了响应于从正在运行的PE路由器108a到备用PE路由器108b的故障转移而执行的操作。如上所述,诸如通过在PE路由器108a、108b上实施COPP,从CE 106传输600的BGP控制数据包可以被撷取并通过IP通道126a或126b路由到BGP发言者110。BGP发言者110因此可以检查接收到BGP控制数据包的IP通道126a或126b的源IP地址。BGP发言者可以检测何时发现BGP控制数据包的源地址与先前接收到的BGP控制数据包的源地址不同。例如,可以通过IP通道126a从源地址B1接收到第一数据包,随后通过IP通道126b从源地址B2接收到第二数据包,从而指示发生从PE路由器108a到PE路由器108b的VRRP故障转移。

响应于检测到故障转移,BGP发言者110可以向CE 106通告新路由,以替换先前通告的路由。特别地,到CE 106的修改后的路由可能先前已经根据图5的方法通告并且所参考的PE路由器108a作为下一跳。因此,更新后的路由可以由BGP发言者110生成并向一个或多个内部节点通告602,更新后的路由使用PE路由器108b(B2)的内部地址代替参考PE路由器108a(B1)的内部地址作为下一跳。这些更新后的路由可以由RR 114接收,然后RR 114将更新后的路由分布604到一个或多个其他内部节点,例如PE路由器112。

因此,由PE路由器112处理的寻址到CE 106的流量可以被传输606到PE路由器108b,PE路由器108b通过CE 106和PE路由器108b之间的VRF连接128b将流量转发到CE 106。

要注意的是,通过故障转移过程,BGP发言者110和CE 106之间的eBGP会话没有中断。BGP控制数据包的路由从PE路由器108a、108b显性地过渡到CE 106,CE 106继续向由两个PE路由器108a、108b的VRF接口128共享的同一外部地址(C1)发送和接收BGP控制数据包。由于BGP状态信息和执行BGP管理的可运行文件驻留在与发生故障的PE路由器108a不同的节点上,因此eBGP会话未中断,并且在PE路由器108b接管先前由PE路由器108a执行的路由之前,除了可能丢失一些数据包之外,CE 106未察觉到中断。

当备用PE路由器108b在故障转移之后正在运行时,它可以执行本文中归于正在运行的PE路由器108a的任意和全部功能。当PE路由器108a被替换、重启或以其他方式变得起作用时,PE路由器108a可以再次变为正在运行并且PE路由器108b可以再次成为备用路由器。如上所述,BGP发言者110可以基于通过其接收BGP控制流量的IP通道的源地址的变化来检测该转变。可以通过以与上述相同的方式通告参考PE路由器108a的更新后的路由来处理该转变。

图7示出了CE 106通告700到BGP发言者110的路由的情况,诸如如上所述无论通过正在运行的PE路由器108a、108b中的哪一个转发到BGP发言者110的BGP控制数据包。图7示出了与诸如PE路由器108a和PE路由器108b的外围节点相比,BGP发言者110如何修改和分布路由到诸如PE 112和RR 114的内部节点。

从CE 106接收到的路由可以包括作为下一跳的CE 106(A1)的外部地址。在常规方法中,BGP发言者110将其自身内部地址(B3)添加为下一跳,以获得更新后的路由并将更新后的路由传输到一个或多个内部节点。

在所示方法中,BGP发言者110向PE路由器108a和108b通告702第一更新路由,第一更新路由是从步骤700接收的路由,下一跳被保存为CE 106的外部地址(A1)。第一更新路由可以附加地或可选地包括VRF标识符(路由区分符),其指示参考应当使用的CE 106的VRF表。因此指示PE路由器108a使用正在运行的PE路由器108a的VRF接口128a来将数据包传输到CE 106。

相反,BGP发言者110可以通告704到核心网络102的节点而不是PE路由器108a、108b的第二更新路由。第二更新路由可以包括从步骤700接收的路由并添加下一跳,该下一跳是正在运行的PE路由器108a、108b中的任意一个的内部地址(在所示示例中,PE路由器108a的内部地址(B1))。在所示实施例中,第二更新路由通过RR 114接收并由RR 114分布706到PE路由器112。

根据第二更新路由,由PE路由器112寻址到CE 106的流量将被传输到正在运行的PE路由器108a的内部地址(A1)。由正在运行的PE路由器108a接收到的寻址到CE 106的流量将根据第一更新路由通过VRF接口128a直接传输到CE 106的外部地址(A1)。

图8是示出可用于实施本文公开的系统和方法的示例计算设备800的框图。实施根据上述任意实施例的PE路由器108a、108b、112、BGP发言者110、CE 106和RR 114的节点可以具有计算设备800的属性中的一些或全部。同样,云计算平台可以由具有计算设备809的属性中的一些或全部的设备组成。

计算设备800可以用于执行诸如本文所讨论的那些的各种过程。计算设备800可以用作服务器、客户端或任意其他计算实体。计算设备可以执行如本文所讨论的各种监控功能,并且可以运行诸如本文所描述的应用程序的一个或多个应用程序。计算设备800可以是笔记本计算机、服务器计算机、掌上计算机、平板计算机等。

计算设备800包括一个或多个处理器802、一个或多个存储器设备804、一个或多个接口806、一个或多个大容量存储设备808、一个或多个输入/输出(I/O)设备810以及显示设备830,所有这些设备都联接到总线812。处理器802包括一个或多个处理器或控制器,其运行存储在存储器设备804和/或大容量存储设备808中的指令。处理器802还可以包括各种类型的计算机可读介质,诸如高速缓存存储器。

存储器设备804包括各种计算机可读介质,诸如易失性存储器(例如,随机存取存储器(RAM)814)和/或非易失性存储器(例如,只读存储器(ROM)816)。存储器设备804还可以包括可重新写入ROM,例如闪速存储器。

大容量存储设备808包括各种计算机可读介质,例如磁带、磁盘、光盘、固态存储器(例如,闪速存储器)等。如图8所示,特定的大容量存储设备是硬盘驱动器824。各种驱动器也可以包括在大容量存储设备808中,以使能够读取和/或写入各种计算机可读介质。大容量存储设备808包括可移动介质826和/或不可移动介质。

I/O设备810包括允许数据和/或其他信息被输入到计算设备800或从计算设备800检索的各种设备。示例I/O设备810包括光标控制设备、键盘、小键盘、麦克风、监视器或其他显示设备、发言者、打印机、网络接口卡、调制解调器、镜头、CCD或其他图像撷取设备等。

显示设备830包括能够向计算设备800的一个或多个用户显示信息的任意类型的设备。显示设备830的示例包括监视器、显示终端、视频投影设备等。

接口806包括允许计算设备800与其他系统、设备或计算环境交互的各种接口。示例接口806包括任意数量的不同网络接口820,例如到局域网(LAN)、广域网(WAN)、无线网络和互联网的接口。其他接口包括用户接口818和外围设备接口822。接口806还可以包括一个或多个用户接口元件818。接口806还可以包括一个或多个外围接口,例如用于打印机、定点设备(鼠标、触控板等)、键盘等的接口。

总线812允许处理器802、存储设备804、接口806、大容量存储设备808和I/O设备810相互通信,以及与联接到总线812的其他设备或组件通信。总线812表示若干类型的总线结构中的一种或多种,例如系统总线、PCI总线、IEEE 1394总线、USB总线等等。

出于说明的目的,程序和其他可运行程序组件在本文中被示为离散块,但应理解的是,这种程序和组件可在不同时间驻留在计算设备800的不同存储组件中,并由处理器802运行。可选地,本文描述的系统和程序可以以硬件或硬件、软件和/或固件的组合来实现。例如,一个或多个专用集成电路(ASIC)可以被编程以执行本文中描述的一个或多个系统和过程。

相关技术
  • 用于实现边界网关协议(BGP)的分布式软件体系结构
  • 边界网关协议BGP分布式系统中邻居迁移的方法和系统
技术分类

06120116154909