KR101345095B1 - Method and system for bgp routing data processing based on cluster - Google Patents
Method and system for bgp routing data processing based on cluster Download PDFInfo
- Publication number
- KR101345095B1 KR101345095B1 KR1020120065698A KR20120065698A KR101345095B1 KR 101345095 B1 KR101345095 B1 KR 101345095B1 KR 1020120065698 A KR1020120065698 A KR 1020120065698A KR 20120065698 A KR20120065698 A KR 20120065698A KR 101345095 B1 KR101345095 B1 KR 101345095B1
- Authority
- KR
- South Korea
- Prior art keywords
- routing information
- bgp
- cluster
- bgp routing
- record
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 분산 시스템에서 라우팅 정보를 각 클러스터 노드에서 병렬로 처리할 수 있도록 구현한 클러스터 기반의 BGP 라우팅 정보 분석 시스템 및 분석 방법에 관한 것이다.
The present invention relates to a cluster-based BGP routing information analysis system and method for implementing routing information in parallel in a distributed system.
네트워크의 성능을 판단할 수 있는 기능적인 성능 요소를 검출 및 분석하는 것에 의해 현재 네트워크에 존재하는 물리적 또는 논리적인 문제점을 조치할 수 있을 뿐 아니라, 추후 네트워크에 심각한 장애를 초래할 수 있는 잠재적인 문제점을 드러내어 해결할 수 있다. 또한 네트워크 성능 요소에 대한 분석자료를 장기간에 걸쳐 확보함으로써 네트워크 개선에 대한 방향을 제시할 수 있다.By detecting and analyzing functional performance factors that can determine the performance of a network, you can not only address the physical or logical problems that exist in the network today, but also identify potential problems that can cause serious network failures in the future. It can be revealed and solved. In addition, the analysis data on network performance factors can be secured over a long period of time, thus providing direction for network improvement.
네트워크의 최적화를 위해서는 네트워크에 흐르는 트래픽의 측정, 모니터링, 필터링 등 네트워크의 성능을 측정하는 방법과 라우팅 테이블을 분석 및 관리하여 라우팅을 효율적으로 관리하는 방법으로 나누어 볼 수 있다. In order to optimize the network, it can be divided into methods of measuring network performance such as measuring, monitoring, and filtering traffic flowing through the network, and analyzing and managing routing tables to efficiently manage routing.
인터넷이 전세계로 확대되면서 네트워크간 라우팅의 중요성은 날로 커지고 있다. BGP(Border Gateway Protocol)는 규모가 큰 망을 지원할 수 있는 path-vector 라우팅에 기초한 외부 라우팅 프로토콜로 현재 AS(Autonomous System) 간의 라우팅 프로토콜로 널리 사용되고 있다. 따라서 BGP 라우팅 데이터를 측정하고 분석하는 일은 인터넷 환경의 안정성을 판단할 수 있는 중요한 척도이며, 그 측정 결과를 보다 효율적으로 분석하여 진보된 라우팅 정책을 설정할 수 있는 툴의 개발이 필요하다.As the Internet expands worldwide, the importance of inter-network routing is growing. Border Gateway Protocol (BGP) is an external routing protocol based on path-vector routing that can support large networks, and is widely used as a routing protocol between AS (Autonomous System). Therefore, measuring and analyzing BGP routing data is an important measure to determine the stability of the Internet environment, and it is necessary to develop a tool that can analyze the measurement results more efficiently and set advanced routing policies.
실시간으로 발생되는 BGP 라우팅 정보는 BGP 라우터와의 피어링을 통해서 수집하거나 RouteView나 RIPE와 같은 BGP 아카이빙 프로젝트를 통해서 파일 형태로 제공되는 정보를 수집할 수 있다. 인터넷의 라우터 간에 주고받은 BGP 라우팅 정보는 각 라우터 마다 수집이 가능하고 인터넷을 구성하고 있는 수많은 AS 간의 라우팅 정보를 포함하므로 BGP 라우팅 정보를 이용하여 인터넷의 안정성을 판단하는 데는 많은 시간과 노력이 필요하다.BGP routing information generated in real time may be collected through peering with a BGP router, or information provided in a file format through a BGP archiving project such as RouteView or RIPE. Since BGP routing information exchanged between routers of the Internet can be collected for each router and includes routing information between a large number of ASs constituting the Internet, it takes a lot of time and effort to determine the stability of the Internet using BGP routing information. .
BGP 라우팅 정보를 안정적으로 분석하기 위한 방법은 단일 클러스터 노드를 이용하는 방법이 가능하나, 처리 능력에 한계가 있다. 따라서 이러한 문제를 해결하기 위한 방법으로 여러 대의 분산된 컴퓨터가 각각 별도의 BGP 라우팅 정보를 나누어 분석하여 태깅하고, 공용 큐를 두어 분석한 결과를 넣어 두고 다시 큐로부터 분산하여 처리하는 방법의 대용량 분석 방법이 제안되었다. 이러한 방법의 문제점은 각 클러스터 노드가 하나의 일관된 설정이나 제어 하에 존재하지 않기 때문에 필요에 따라 전체 컴퓨팅 작업을 전환하는 등의 일이 어렵고, 하나의 클러스터 노드가 문제가 발생할 경우, 전체적인 결과에 영향을 미치게 된다는 것이다..The method for stably analyzing BGP routing information may be performed using a single cluster node, but there is a limitation in processing power. Therefore, in order to solve this problem, a large-scale analysis method of a method in which a plurality of distributed computers analyze and tag separate BGP routing information separately, put a result of analyzing the public queue, put it in the queue, and distribute it from the queue and process it again. This has been proposed. The problem with this approach is that each cluster node does not exist under one consistent setup or control, making it difficult to switch the entire computing task as needed, and if one cluster node fails, it affects the overall outcome. Is going crazy.
하둡(Hadoop)은 너치(Nutch)의 분산처리를 지원하기 위해 개발된 것으로, 수백 기가바이트~테라바이트 혹은 페타바이트 크기의 데이터를 처리할 수 있는 어플리케이션을 제작하고 운영할 수 있는 기반을 제공해 주는 데이터 처리 플랫폼이다. 하둡이 처리하는 데이터의 크기가 통상 최소 수백 기가바이트 수준이기 때문에 데이터는 하나의 컴퓨터에 저장되는 것이 아니라 여러 개의 블록으로 나누어져 여러 개의 컴퓨터에 분산 저장된다. 따라서 하둡은 입력되는 데이터를 나누어 처리할 수 있도록 하는 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)을 포함하며, 분산 저장된 데이터들은 대용량 데이터를 클러스터 환경에서 병렬 처리하기 위해 개발된 MapReduce 과정에 의해 처리되어진다. 하둡은 대용량의 데이터 처리를 요하는 여러 분야에 널리 응용되어 사용되고 있으나, 아직까지 이를 이용한 BGP 라우팅 정보에 대한 분석 시스템과 방법에 대해서는 개발된 바 없다.
Hadoop was developed to support Nutch's distributed processing, providing the foundation for building and operating applications that can handle hundreds of gigabytes to terabytes or petabytes of data. Processing platform. Because Hadoop's data is typically at least several hundred gigabytes in size, data is not stored on a single computer, but divided into blocks and distributed across multiple computers. Therefore, Hadoop includes the Hadoop Distributed File System (HDFS), which allows the processing of incoming data separately. The distributed data is processed by the MapReduce process developed for parallel processing of large data in a cluster environment. It is done. Hadoop is widely used in various fields requiring large data processing. However, there has not been developed a system and method for analyzing BGP routing information using Hadoop.
상기와 같은 종래기술의 문제점을 해소하기 위한 본 발명의 목적은 대량의 BGP 라우팅 정보를 처리할 수 있는 프레임워크로써 분산시스템을 이용하여, BGP 라우팅 정보를 다수의 서버에 분산하여 저장하고 다수의 서버에서 병렬연산에 의해 분석할 수 있는 시스템 및 방법을 제공하는 것이다.
An object of the present invention for solving the problems of the prior art as described above is to use a distributed system as a framework that can process a large amount of BGP routing information, distributed BGP routing information to a plurality of servers and stores a plurality of servers To provide a system and method that can be analyzed by parallel operation in.
전술한 목적을 달성하기 위한 본 발명은 (A) BGP 라우팅 정보를 수집하는 수집부; 상기 수집한 라우팅 정보를 파일시스템에 저장하는 저장부; 상기 저장된 라우팅 정보를 분산하여 병렬처리하는 분석부;를 포함하는 하나 이상의 클러스터 노드; (B) 상기 각 클러스터 노드를 관리하는 노드관리부; 및 (C) 사용자로부터의 질의를 노드관리부에 전달하고, 처리된 결과를 사용자에게 전달하는 질의처리부;를 포함하여 구성되는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 시스템에 관한것이다.The present invention for achieving the above object (A) a collecting unit for collecting BGP routing information; A storage unit which stores the collected routing information in a file system; At least one cluster node comprising: an analyzer configured to distribute and store the stored routing information in parallel; (B) a node manager for managing each of the cluster nodes; And (C) a query processor for transmitting a query from the user to the node manager and delivering the processed result to the user. The present invention relates to a cluster environment-based BGP routing information analysis system.
본 발명의 다른 일양태는 (A) 하나 이상의 컴퓨팅 장치를 포함하여 구성된 클러스터 시스템이 BGP 라우팅 정보가 저장된 서버 또는 BGP 라우팅을 담당하는 서버로 부터 라우팅 정보를 분산 수신하고 파일시스템에 저장하는 단계; (B) 상기 라우팅 정보를 상기 클러스터 시스템의 클러스터 노드에 분산하여 처리하는 단계; (C) 상기 단계에서 처리한 라우팅 정보를 상기 클러스터 시스템을 구성하는 하나 이상의 컴퓨팅 장치가 공유하는 저장장치에 저장하는 단계; 및 (D) 외부로부터의 라우팅 정보 질의에 대해 상기 저장장치에 저장된 라우팅 정보를 가공하여 전달하는 단계;를 포함하는 것을 특징으로 하는 클러스터 기반의 BGP 라우팅 정보 분석 방법에 관한 것이다.
Another aspect of the present invention provides a method comprising the steps of: (A) receiving, by a cluster system configured with one or more computing devices, routing information from a server storing BGP routing information or a server responsible for BGP routing and storing the routing information in a file system; (B) distributing and processing the routing information among cluster nodes of the cluster system; (C) storing the routing information processed in the step in a storage device shared by one or more computing devices constituting the cluster system; And (D) processing the routing information stored in the storage device and transmitting the routing information stored in the storage device to the query for routing information from the outside.
본 발명의 BGP 라우팅 정보 분석 시스템에 의하면, 대규모의 BGP 라우팅 정보를 저가의 컴퓨터를 이용하여 분산하여 수집, 정제, 저장할 수 있다. According to the BGP routing information analysis system of the present invention, large-scale BGP routing information can be distributed, collected, purified, and stored using a low cost computer.
또한 본 발명의 BGP 라우팅 정보 분석 방법은 특히 포렌식(Forensic) 분석과 실시간 분석을 위해 클러스터 파일 시스템과 컴퓨팅 장치를 이용함으로써 지속적으로 생성되는 BGP 라우팅 정보를 노드를 추가함으로써 안정적으로 분석할 수 있도록 한다.
In addition, the BGP routing information analysis method of the present invention makes it possible to stably analyze BGP routing information continuously generated by using a cluster file system and a computing device for forensic analysis and real-time analysis by adding nodes.
도 1은 본 발명의 일실시예에 의한 BGP 라우팅 정보 분석 시스템의 구성을 보여주는 블록도.
도 2는 Hadoop과 MapReduce를 이용한 본 발명의 일실시예에 의한 클러스터 기반의 BGP 라우팅 정보 분석 시스템에서 단일 노드의 구성을 보여주는 블록도.
도 3은 Hadoop과 MapReduce를 이용한 본 발명의 일실시예에 의한 클러스터 기반의 BGP 라우팅 정보 분석 시스템의 구성을 보여주는 구조도.
도 4는 MRT 바이너리 형태의 BGP 라우팅 정보 파일을 처리하는 입력부의 처리절차의 일실시예를 보여주는 순서도.
도 5는 MRT 바이너리 형태의 BGP 라우팅 정보 파일을 처리하는 입력부의 레코드 식별절차의 일실시예를 보여주는 순서도.
도 6은 BGP 라우팅 정보 입력부의 일 실시예를 보여주는 처리 흐름도.
도 7은 BGP 라우팅 정보 분석부의 정보 처리의 일 실시예를 보여주는 처리 흐름도.1 is a block diagram showing the configuration of a BGP routing information analysis system according to an embodiment of the present invention.
Figure 2 is a block diagram showing the configuration of a single node in a cluster-based BGP routing information analysis system according to an embodiment of the present invention using Hadoop and MapReduce.
Figure 3 is a structural diagram showing the configuration of a cluster-based BGP routing information analysis system according to an embodiment of the present invention using Hadoop and MapReduce.
4 is a flowchart illustrating an embodiment of a processing procedure of an input unit for processing a BGP routing information file in MRT binary form.
5 is a flowchart illustrating an embodiment of a record identification procedure of an input unit that processes a BGP routing information file in an MRT binary form.
6 is a process flow diagram showing an embodiment of the BGP routing information input unit.
7 is a processing flowchart showing an embodiment of information processing of a BGP routing information analyzer.
이하 첨부된 도면을 참조하여 본 발명을 보다 상세히 설명한다. 그러나 이러한 도면은 본 발명의 기술적 사상의 내용과 범위를 쉽게 설명하기 위한 예시일 뿐, 이에 의해 본 발명의 기술적 범위가 한정되거나 변경되는 것은 아니다. 또한 이러한 예시에 기초하여 본 발명의 기술적 사상의 범위 안에서 다양한 변형과 변경이 가능함은 당업자에게는 당연할 것이다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in detail with reference to the accompanying drawings. However, these drawings are only examples for easily describing the content and scope of the technical idea of the present invention, and thus the technical scope of the present invention is not limited or changed. It will be apparent to those skilled in the art that various changes and modifications can be made within the scope of the technical idea of the present invention based on these examples.
본 발명은 클러스터 환경을 기반으로 한 분산 시스템에서 대량의 BGP 라우팅 정보를 각 클러스터 노드에서 병렬 처리할 수 있도록 구현한 BGP 라우팅 정보 분석 시스템에 관한 것으로, 도 1은 본 발명의 일실시예에 의한 BGP 라우팅 정보 분석 시스템의 구성을 보여주는 블록도이다.
The present invention relates to a BGP routing information analysis system implemented to enable parallel processing of a large amount of BGP routing information in each cluster node in a distributed system based on a cluster environment. FIG. 1 is a BGP according to an embodiment of the present invention. A block diagram showing the configuration of a routing information analysis system.
도 1은 하나 이상의 클러스터 노드를 포함하여 구성된 클러스터 환경을 기반으로 구축한 본 발명의 BGP 라우팅 정보 분석 시스템의 일실시예로서, 하나 이상의 클러스터 노드(300), 클러스터의 각 노드를 관리하고 제어하는 노드관리부(100), 사용자로부터 질의를 받아 노드관리부(100)에 넘겨주고 처리된 결과를 받아 사용자에게 전달하는 질의처리부(100)로 구성된다. 각 클러스터 노드(300)는 BGP 라우팅 정보를 수집하는 수집부(310)와 수집한 정보를 파일시스템에 파일형태로 저장하는 저장부(320), 저장된 BGP 라우팅 정보를 분산하여 병렬처리하는 분석부(330)를 포함한다.1 is an embodiment of a BGP routing information analysis system of the present invention constructed based on a cluster environment including one or more cluster nodes, and includes one or
본 발명의 클러스터 기반의 BGP 라우팅 정보 분석시스템은 하둡프레임워크를 기반으로 구성할 수 있다. 도 2는 하둡과 맵리듀스를 이용한 본 발명의 일실시예에 의한 클러스터 기반의 BGP 라우팅 정보 분석 시스템의 단일 노드의 구성을 보다 구체적으로 도시한 블록도이며, 도 3은 하둡과 맵리듀스를 이용한 본 발명의 일실시예에 의한 클러스터 기반의 BGP 라우팅 정보 분석 시스템의 구성을 보여주는 구조도이다.Cluster-based BGP routing information analysis system of the present invention can be configured based on the Hadoop framework. 2 is a block diagram illustrating in more detail the configuration of a single node of the cluster-based BGP routing information analysis system according to an embodiment of the present invention using Hadoop and MapReduce, and FIG. 3 is a view using Hadoop and MapReduce. A structure diagram showing a configuration of a cluster-based BGP routing information analysis system according to an embodiment of the present invention.
도 2와 도 3에 도시된 바와 같이 하둡과 맵리듀스를 이용한 본 발명의 BGP 라우팅 정보 분석 시스템의 각 클러스터 노드에서 상기 저장부(320)는 상기 수집한 라우팅 정보를 HDFS(하둡 분산 파일시스템)에 분산 저장하며, 상기 입력부(330)는 저장된 HDFS 상의 대용량의 BGP 라우팅 정보를 하둡의 각 클러스터 노드에서 맵리듀스 방식으로 분산하여 처리한다. 보다 구체적으로 BGP 라우팅 정보 입력부(330)는 HDFS에 저장된 대용량의 BGP 라우팅 정보를 맵리듀스 방식으로 처리할 수 있도록 분산처리부(332)에 전달하는 입력처리부(331) 및 입력처리부로부터 전달받은 라우팅 정보를 맵리듀스 방식에 의해 분산 처리하는 분산처리부(332)로 이루어진다, 상기 질의처리부(200)는 사용자로부터의 질의를 받아 각 노드가 이해할 수 있는 분산 작업 형태인 MapReduce Job으로 구성하여 노드관리부(100)에 전달하고 전달된 MapReduce Job을 클러스터 노드가 실행한 결과를 받아 사용자에게 전달한다. 도 2에는 편의를 위해 하나의 클러스터 노드만을 도시하였으나, 본 발명의 클러스터 기반의 BGP 라우팅 정보 분석 시스템은 하나 이상의 클러스터 노드를 포함하는 것으로 도 1과 같이 다수개의 클러스터 노드를 포함할 수 있음은 당연하다.
As illustrated in FIGS. 2 and 3, the
본 발명은 또한 상기 시스템을 이용한 BGP 라우팅 정보 분석 방법에 관한 것이다. 보다 상세하게 본 발명의 클러스터 기반의 BGP 라우팅 정보 분석 방법은 (A) 하나 이상의 컴퓨팅 장치를 포함하여 구성된 클러스터 시스템이 BGP 라우팅 정보가 저장된 서버 또는 BGP(Border Gateway Protocol) 라우팅을 담당하는 서버로 부터 라우팅 정보를 분산 수신하고 파일시스템에 저장하는 단계; (B) 상기 라우팅 정보를 상기 클러스터 시스템의 클러스터 노드에 분산하여 처리하는 단계; (C) 상기 단계에서 처리한 라우팅 정보를 상기 클러스터 시스템을 구성하는 하나 이상의 컴퓨팅 장치가 공유하는 저장장치에 저장하는 단계; 및 (D) 외부로부터의 라우팅 정보 질의에 대해 상기 저장장치에 저장된 라우팅 정보를 가공하여 전달하는 단계;를 포함하여 이루어질 수 있다.The present invention also relates to a method for analyzing BGP routing information using the system. More specifically, in the cluster-based BGP routing information analysis method of the present invention, (A) a cluster system including one or more computing devices is routed from a server storing BGP routing information or a server in charge of Border Gateway Protocol (BGP) routing. Receiving and distributing information in a file system; (B) distributing and processing the routing information among cluster nodes of the cluster system; (C) storing the routing information processed in the step in a storage device shared by one or more computing devices constituting the cluster system; And (D) processing and forwarding routing information stored in the storage device in response to a routing information query from the outside.
특히 상기 (A) 단계의 파일시스템과 (C) 단계의 저장장치는 HDFS(하둡 분산 파일시스템)이며, 상기 (B) 단계는 맵리듀스 방식에 의해 라우팅 정보를 분산하여 처리하도록 하여 하둡프레임워크를 기반으로 구성할 수 있다.In particular, the file system of step (A) and the storage device of step (C) are HDFS (Hadoop Distributed File System), and step (B) distributes routing information by a map reduce method to process the Hadoop framework. Can be configured based on.
상기의 BGP 라우팅 정보는 Quagga와 같은 라우팅 소프트웨어 모듈을 구동하여 실제 운용되는 BGP 라우터와의 피어링을 통해 실시간 스트리밍 형태로 전달되는 라우팅 정보를 수집할 수도 있으며, RouteView나 RIPE과 같은 BGP 라우팅 정보 아카이빙 프로젝트 상에 생성된 파일 형태로 존재하는 라우팅 정보로부터 수집할 수도 있다. 수집되는 라우팅 정보는 RIB 정보가 될 수도 있고 BGP 피어링 노드간 에 주고받는 BGP 업데이트 메시지와 같은 정보일 수도 있다. 또한 파일 형태의 BGP 라우팅 정보는 MRT(Multi-threaded Routing Toolkit) 형태의 바이너리 파일 형태일 수도 있고 텍스트형의 파일 형태일 수도 있으며, 이 둘의 압축 형태로 존재하는 파일일 수도 있다.
The BGP routing information may collect routing information delivered in real-time streaming form through peering with a BGP router in operation by running a routing software module such as Quagga. You can also collect from routing information that exists in the form of a file created in. The collected routing information may be RIB information or may be information such as a BGP update message exchanged between BGP peering nodes. In addition, the BGP routing information in the form of a file may be a binary file in the form of a multi-threaded routing tooling (MRT), a file in the form of a text, or a file existing in both compression forms.
도 4는 MRT 바이너리 형태의 BGP 라우팅 정보 파일을 처리하는 입력부의 처리절차의 일실시예를 보여주는 순서도로, MRT 바이너리 형태의 BGP 라우팅 정보 파일이 존재할 때 대용량 패킷 trace 파일을 읽고 하둡 맵리듀스에 의해 패킷을 분석하기 위해 입력포맷에 의해 각 클러스터 노드들이 데이터 블록을 읽어 처리하는 절차를 보여준다. 도 4에서는 잡(Job) 실행 전에 BGP 라우팅 정보를 수집한 시간을 configuration property나 클러스터 노드들이 공유할 수 있는 저장소에서 획득하였음을 가정한다.4 is a flowchart illustrating an embodiment of a processing procedure of an input unit for processing a BGP routing information file in MRT binary format. When a BGP routing information file in MRT binary format exists, the packet is read by Hadoop MapReduce. In order to analyze the data, each cluster node reads and processes data blocks by input format. In FIG. 4, it is assumed that the time for collecting BGP routing information before the job execution is obtained from a configuration property or a storage that can be shared by cluster nodes.
데이터 처리를 위해 블록을 열면, 블록의 시작점이 MRT 레코드의 시작점인지 확인한다. 먼저, 해당 블록이 패킷 MRT 레코드의 첫 블록이라면 시작점은 MRT 레코드의 시작점이 될 것이므로 그 지점을 InputSplit의 시작점으로 정의한다. 블록의 시작점이 BGP 라우팅 정보 파일의 첫 블록이 아니라면, 블록의 시작점과 라우팅 정보의 시작점이 일치하지 않을 수 있으므로 라우팅 정보를 가진 MRT 레코드의 시작점을 찾는 과정(201)을 거쳐야 한다. When you open a block for data processing, make sure the start of the block is the start of the MRT record. First, if the block is the first block of the packet MRT record, the starting point will be the starting point of the MRT record, so the point is defined as the starting point of the InputSplit. If the starting point of the block is not the first block of the BGP routing information file, since the starting point of the block and the starting point of the routing information may not coincide, the process of finding the starting point of the MRT record having the routing information must be performed (201).
도 5는 MRT 바이너리 형태의 BGP 라우팅 정보 파일을 처리하는 입력부의 레코드 식별절차의 일실시예를 보여주는 순서도이다. 5 is a flowchart illustrating an embodiment of a record identification procedure of an input unit that processes a BGP routing information file in an MRT binary form.
먼저 (A) 블록의 시작 바이트를 MRT 레코드의 시작이라고 가정하고 가정한 지점에서 MRT 헤더로부터 timestamp, MRT 레코드의 길이(Length)를 포함한 헤더정보를 추출한다. 이하, 각각을 TS1, Lengh1으로 각각 기재한다. 통상 MRT 레코드의 헤더r에는 첫 번째 4 바이트에 timestamp가, 다음 2 바이트에 레코드의 Type과 2바이트의 SubType, 4바이트 Length가 기록되므로 블록의 시작 바이트로부터 12 바이트를 읽는 것에 의해 상기 정보를 추출할 수 있다. First, (A) Assuming that the start byte of the block is the start of the MRT record, the header information including the timestamp and the length of the MRT record is extracted from the MRT header. Hereinafter, each is described as TS1 and Lengh1, respectively. Normally, the header r of an MRT record records the timestamp in the first 4 bytes, the record type, the 2 bytes of SubType, and the 4-byte length in the next 2 bytes. Can be.
(B) 첫 MRT 레코드에 대한 데이터를 추출하면, 마찬가지 방법으로 두 번 째 레코드의 시작점으로 가정되는 곳으로부터 두 번째 MRT 레코드에 대한 헤더정보를 추출한다. 이하, 각각을 TS2, Type2, SubType2, Length2 각각 기재한다. 두 번째 MRT 레코드의 시작점은 첫 레코드의 MRT 헤더의 길이(통상 12바이트)와 MRT 헤더에 기록된 Length 값을 더한 값만큼 이동한 지점이 될 것이다. (B) When extracting the data for the first MRT record, the header information for the second MRT record is extracted in the same manner from where it is assumed to be the starting point of the second record. Hereinafter, TS2, Type2, SubType2, and Length2 will be described respectively. The starting point of the second MRT record will be the point shifted by adding the length of the MRT header (usually 12 bytes) of the first record plus the Length value recorded in the MRT header.
(C) 상기 (A) 와 (B)에서 각각 얻은 첫 번째 레코드와 두 번째 레코드의 헤더정보로부터 데이터 블록의 첫 번째 바이트가 첫 번째 MRT 레코드의의 시작점이 맞는지를 검증한다. 보다 상세하게는 a) TS1과 TS2가 configuration property로부터 획득한 레코드의 수집시작시간으로부터 종료시간까지의 범위 내에 있는 유효한 값인지 확인한다. b) 두 레코드의 Type과 SubType이 유효한 식별 값을 가지는지를 검사한다. 또한 레코드의 Length 정보에 대해 유효한 값(즉 양수인지, 지나치게 큰 값을 넘지 않는지 등을 검사한다)가정한다. c) TS1과 TS2가 연속되어 유입된 레코드라고 확인할 수 있는지 검증한다. 이를 위해 TS1과 TS2의 차를 구해 연속된 레코드라고 인정되는 delta time을 정하여 그 값의 범위 내에 해당하는지 확인한다. 통상 delta time은 5초 이내인 것이 바람직하나, 네트워크 환경이나 다른 변수들을 고려하여 적절히 조절될 수 있음은 당연하다. 위의 a), b), c)의 과정 모두 만족하면 현재 가정한 레코드의 시작 바이트를 실제 MRT 레코드의 바이트로 인정한다. 반면, a), b), c) 중 어느 하나라도 만족하지 않을 경우, 다음 바이트로 이동하여 레코드의 시작점으로 가정하고 a), b), c)의 과정을 반복하여 다시 시작점을 검증하는 것에 의해 해당 데이터 블록에서 첫 패킷의 시작점을 검색한다.(C) From the header information of the first record and the second record obtained in (A) and (B), respectively, verify whether the first byte of the data block is the starting point of the first MRT record. More specifically, a) it is checked whether TS1 and TS2 are valid values within the range from the collection start time to the end time of the record acquired from the configuration property. b) Check that the Type and SubType of the two records have valid identification values. It also assumes valid values for the record length information (that is, checking whether they are positive or not too large). c) Verify that TS1 and TS2 can be identified as incoming records in succession. To do this, the difference between TS1 and TS2 is determined, and the delta time, which is considered to be a continuous record, is determined and checked to be within the range of the value. In general, the delta time is preferably within 5 seconds, but can be properly adjusted in consideration of the network environment or other variables. If all the above steps a), b) and c) are satisfied, the start byte of the currently assumed record is regarded as the byte of the actual MRT record. On the other hand, if any one of a), b) and c) is not satisfied, go to the next byte and assume the beginning of the record and repeat the process of a), b) and c) to verify the starting point again. Search for the start of the first packet in the data block.
도 5에서는 레코드 시작점 검증을 위해 a), b), c) 모두를 사용하였으나, 이는 일 예에 관한 것으로 이들 중 하나 또는 두 가지 조건만을 기준으로 레코드의 시작점을 검증할 수 있으며, 이외에도 추가적인 정보를 부가하여 레코드의 시작점을 검증할 수 있다. 상기 검증에 사용되는 조건의 수가 많을수록 레코드의 시작점 검증이 더욱 정확할 수 있음은 당연하다.In FIG. 5, a), b), and c) are all used to verify the starting point of the record. However, this is related to an example, and the starting point of the record may be verified based on only one or two conditions. In addition, you can verify the starting point of a record. Naturally, the larger the number of conditions used for the verification, the more accurate the starting point verification of the record can be.
도 4와 5에 의해 예시된 방법에 의해 데이터 블록에서의 첫 레코드의 시작점으로 이동하면, 이를 InputSplit의 시작점으로 정의한다. 즉, 데이터 블록의 InputSplit은 첫 레코드의 시작점으로부터 다음 데이터 블록에 대한 InputSplit 시작점 전까지를 해당 데이터 블록에 대한 InputSplit로 정의한다.When moving to the start of the first record in the data block by the method illustrated by Figs. 4 and 5, it is defined as the start of the InputSplit. That is, InputSplit of a data block defines InputSplit for the data block from the start of the first record until the start of InputSplit for the next data block.
도 6은 하둡 HDFS나 하둡이 인식할 수 있는 파일시스템 내에 존재하는 파일로부터 하나의 레코드를 추출하여 분석부(332)에 전달하는 일을 수행하는 입력부(331)의 내부 모듈의 일 실시예로서 압축형태의 MRT 바이너리 포맷이나 압축이 되지 않은 MRT 바이너리 포맷의 BGP 라우팅 정보 파일로부터 레코드의 시작 위치를 식별하고 하나의 레코드씩 추출하여 전달하기 위한 내부 시스템 모듈을 도시한다.6 is an embodiment of an internal module of the
MRT BGP 라우팅 정보 파일을 읽어 파일이 압축된 파일인 경우 하둡이 제공하는 압축 코덱을 통해 읽은 파일로부터 MRT 포맷이 제공하는 MRT 레코드 길이 정보를 앞에서부터 읽어 하나의 레코드씩 추출하여 맵에 전달한다. 이 때 추출된 바이너리 형태의 MRT 레코드를 입력부 내에서 텍스트 형태로 전환하여 분석부에 전달할 수도 있다.
If the file is compressed by reading the MRT BGP routing information file, the MRT record length information provided by the MRT format is read from the file read through the compression codec provided by Hadoop, and each record is extracted and transmitted to the map. In this case, the extracted binary MRT record may be converted into text form in the input unit and transferred to the analysis unit.
상기 라우팅 정보다 압축되거나 압출되지 않은 텍스트 형태의 파일인 경우에는 MRT 레코드 길이 대신 하나의 레코드를 식별할 수 있는 문자열을 이용하여 레코드를 식별할 수 있다.
If the routing information is a file in a compressed or uncompressed text format, the record may be identified using a string that can identify one record instead of the MRT record length.
도 7은 BGP 라우팅 정보 분석부의 내부 모듈의 일실시 예이다. 분석부는 입력부로부터 전달받은 라우팅 정보(예를 들면, RIB 정보와 BGP 엡데이트 메시지)를 읽어 맵 단계에서 텍스트 형태의 필드들을 추출하고 리듀스 단계에서 추출된 필드들로부터 키 값에 의한 그룹 형태로 전달되는 레코드들을 처리한다. 상기 key는 BGP RIB 또는 업데이크 메시지를 구성하는 필드 값 중 하나 이상의 값의 조합을 사용할 수 있으며, 그 결과 총 announcement 수, withdrawal 수, 같은 prefix 목적지에 대해 다른 AS 경로 정보를 전달한 수, 같은 prefix 목적지에 대해 같은 AS 경로 정보를 전달한 수 등의 결과를 추출할 수 있다. 또한 추출한 결과로부터 하둡기반의 데이터웨어하우징 솔루션인 Hive를 통해서 테이블 형태로 변환하여 쿼리형태로 전달되는 사용자의 질의에 대해 라우팅 정도를 가공하여 전달할 수 있다.7 is an embodiment of an internal module of the BGP routing information analyzer. The analysis unit reads routing information (for example, RIB information and BGP update message) received from the input unit, extracts text fields in the map step, and delivers them in group form by key values from the fields extracted in the reduce step. Processes records The key may use a combination of one or more of the field values constituting the BGP RIB or the update message, and as a result, the total number of announcements, the number of withdrawal, the number of different AS route information for the same prefix destination, the same prefix destination For example, we can extract the result of the same number of AS path information. Also, from the extracted result, it converts into a table form through Hive, which is a Hadoop-based data warehousing solution, and processes and delivers a routing degree for a user's query delivered in a query form.
상기 맵리듀스를 이용한 라우팅 정보의 분석은 병렬 BGP 라우팅 정보 처리의 하나의 예시이고, 이러한 잡은 분석하고자 하는 대상에 따라 필요한 맵과 리듀스 함수를 구현하여 수행할 수 있다. 또한 하나 이상의 잡으로 구성하여 이전 잡의 결과를 다음 잡의 입력으로 연결하여 좀 더 복잡하고 정제된 분석 결과를 얻을 수 있다.The analysis of the routing information using the map reduce is an example of parallel BGP routing information processing, and this job may be performed by implementing a necessary map and a reduce function according to a target to be analyzed. You can also configure more than one job to link the results of the previous job to the input of the next job to get more complex and refined analysis results.
예를 들어 BGP 업데이트 메시지 파일로부터 대한 Prefix 별 메시지의 수를 구하기 위해서, 첫 번째 잡에서 맵단계에서 MRT 레코드에서 추출된 Prefix 값을 Key로, 메시지의 수인 '1' 값을 Value로 리듀스 단계로 전달하고, 리듀스 단계에서는 Prefix 인 Key 값에 따라 그루핑되어 전달되는 메시지 수 '1' 값을 합하여 출력하는 것에 의해 Prefix 별 메시지 수를 구하는 것이 가능하다. 이 방법은 Prefix 별 Withdrawal의 수나 Announcement 수를 구하는 방법, 또는 그 외에서도 비슷하게 적용될 수 있다. 이렇게 계산된 값은 AS나 국가별로 그루핑한 정보를 얻기 위해 두 번째 잡의 입력 정보로 사용될 수 있다. 이 때 Prefix에 대한 AS의 매핑정보, AS에 대한 국가의 매핑정보 파일을 함께 입력으로 받아 그루핑하는 처리를 추가의 두 개의 Job을 통해 완성할 수 있다. 이 경우 두 종류의 파일로부터 맵 단계를 거치면서 공유할 수 있는 키, 즉 Prefix를 키로하여 레코드를 출력하면 리듀스 단계에서는 Prefix에 대한 AS 정보와 국가 정보, 메시지 수의 리스트가 그룹핑되어 전달되므로 메시지 수를 합하여 Prefix에 대한 국가, AS, 메시지의 수를 구할 수 있다. 이런 결과를 국가나 AS 별로 그루핑 하기 위해서 다음 잡의 입력으로 전달하여 그루핑 하고자 하는 값, 즉 AS번호나 국가명을 키로 하여 맵의 결과를 내 보내면 리듀스 단계에서 맵 결과의 키 값으로 그루핑 되어 전달되는 값을 합하여 AS번호나 국가명을 기준으로 총 메시지 수, 추가로 Prefix의 수, Prefix 값을 이용한 관리되는 인터넷 주소 공간의 크기 등을 구할 수 있다.
For example, to find the number of messages per prefix for the BGP update message file, use the prefix value extracted from the MRT record in the map step as the key and the value '1' as the value in the reduce step as the reduce step. In the reduce step, the number of messages per prefix can be obtained by summing and outputting the message number '1', which is grouped and delivered according to the key value, which is a prefix. This method can be applied similarly to obtaining the number of Withdrawal or Announcement per prefix, or the like. This calculated value can be used as input for the second job to get information grouped by AS or country. At this time, the mapping process of AS to Prefix and the country's mapping information file to AS can be received as two inputs. In this case, if you output the record with the key that can be shared while going through the map phase from two kinds of files, that is, Prefix as a key, in the reduce step, the AS information, the country information, and the number of messages for the prefix are grouped and delivered. You can sum the numbers to get the number of countries, ASs, and messages for the prefix. In order to group these results by country or AS, it is passed to the input of the next job to send the result of the map with the value to be grouped, that is, the AS number or the country name, and when the reduce step is grouped as the key value of the map result. By adding the values, you can get the total number of messages based on the AS number or country name, the number of prefixes, and the size of the managed Internet address space using the prefix values.
Claims (10)
(B) 상기 각 클러스터 노드를 관리하는 노드관리부; 및
(C) 사용자로부터의 질의를 노드관리부에 전달하고, 처리된 결과를 사용자에게 전달하는 질의처리부;
를 포함하여 구성되는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 시스템.
(A) a collection unit for collecting Border Gateway Protocol (BGP) routing information; a storage unit for storing the collected routing information in HDFS (Hadoop Distributed File System); At least one cluster node comprising: and an analysis unit configured to receive routing information from the input processing unit and distribute the data in parallel with the map reduce method in each cluster node.
(B) a node manager for managing each of the cluster nodes; And
(C) a query processing unit for transmitting a query from the user to the node management unit and delivering the processed result to the user;
Cluster environment-based BGP routing information analysis system, characterized in that comprises a.
(B) 상기 라우팅 정보를 상기 클러스터 시스템의 클러스터 노드에 분산하여 처리하는 단계;
(C) 상기 단계에서 처리한 라우팅 정보를 상기 클러스터 시스템을 구성하는 하나 이상의 컴퓨팅 장치가 공유하는 저장장치에 저장하는 단계; 및
(D) 외부로부터의 라우팅 정보 질의에 대해 상기 저장장치에 저장된 라우팅 정보를 가공하여 전달하는 단계;
를 포함하는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
(A) distributedly receiving and storing routing information from a server in which BGP routing information is stored or a server in charge of Border Gateway Protocol (BGP) routing in a cluster system including one or more computing devices and storing them in a file system;
(B) distributing and processing the routing information among cluster nodes of the cluster system;
(C) storing the routing information processed in the step in a storage device shared by one or more computing devices constituting the cluster system; And
(D) processing and forwarding routing information stored in the storage device for querying routing information from outside;
Cluster environment-based BGP routing information analysis method comprising a.
상기 (A) 단계의 BGP 라우팅 정보는 BGP 라우팅 정보 아카이빙 서버에 파일 형태로 존재하는 라우팅 정보이거나 BGP 라우터와의 피어링을 통해 실시간 스티리밍 형태로 전달되는 라우팅 정보인 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method of claim 3, wherein
The BGP routing information of step (A) is routing information existing in the form of a file in the BGP routing information archiving server or routing information delivered in real-time streaming through peering with the BGP router. How to analyze routing information.
상기 (A) 단계의 파일시스템과 (C) 단계의 저장장치는 HDFS(하둡 분산 파일시스템)이며,
상기 (B) 단계는 맵리듀스 방식에 의해 라우팅 정보를 분산하여 처리하는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method according to claim 3 or 4,
The file system of step (A) and the storage device of step (C) are HDFS (Hadoop Distributed File System),
Step (B) is a cluster environment-based BGP routing information analysis method, characterized in that for distributing and processing the routing information by the map reduce method.
상기 (A) 단계의 라우팅 정보는 텍스트, 압축된 텍스트, MRT 바이너리 또는 압축된 MRT 바이너리 형태인 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method of claim 5, wherein
The routing information of step (A) is a cluster environment-based BGP routing information analysis method, characterized in that the form of text, compressed text, MRT binary or compressed MRT binary.
상기 라우팅 정보가 MRT 또는 압축된 MRT 형태인 경우 상기 (B) 단계는,
HDFS의 블록으로부터 MRT 레코드의 길이 정보로 하나의 레코드를 식별하여 맵에 전달하는 단계;
맵에 전달된 레코드로부터 (Key, Value)를 생성하여 출력하는 맵단계; 및
상기 출력된 (Key, Value)로부터 Key를 기준으로 Value를 처리하는 리듀스 단계;
를 포함하여 이루어지는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method according to claim 6,
When the routing information is in the form of MRT or compressed MRT, step (B) may include:
Identifying one record from the block of the HDFS with the length information of the MRT record and passing it to the map;
A map step of generating and outputting (Key, Value) from the record transferred to the map; And
A reduce step of processing a value based on a key from the output (Key, Value);
Cluster environment-based BGP routing information analysis method comprising a.
상기 Key는 BGP RIB 또는 UPDATE 메세지를 구성하는 필드 값 중 하나 이상의 값의 조합으로 구성되는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method of claim 7, wherein
The key is a cluster environment-based BGP routing information analysis method characterized in that the combination of one or more of the field values constituting the BGP RIB or UPDATE message.
상기 라우팅 정보가 텍스트 또는 압축된 텍스트 형태인 경우 상기 (B) 단계는,
HDFS의 블록으로부터 문자열에 의해 하나의 레코드를 식별하여 맵에 전달하는 단계;
맵에 전달된 레코드로부터 (Key, Value)를 생성하여 출력하는 맵단계; 및
상기 출력된 (Key, Value)로부터 Key를 기준으로 Value를 처리하는 리듀스 단계;
를 포함하여 이루어지는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.
The method according to claim 6,
When the routing information is in the form of text or compressed text, the step (B) may include:
Identifying one record by string from the block of HDFS and passing it to the map;
A map step of generating and outputting (Key, Value) from the record transferred to the map; And
A reduce step of processing a value based on a key from the output (Key, Value);
Cluster environment-based BGP routing information analysis method comprising a.
상기 Key는 BGP RIB 또는 UPDATE 메세지를 구성하는 필드 값 중 하나 이상의 값의 조합으로 구성되는 것을 특징으로 하는 클러스터 환경 기반의 BGP 라우팅 정보 분석 방법.The method of claim 9,
The key is a cluster environment-based BGP routing information analysis method characterized in that the combination of one or more of the field values constituting the BGP RIB or UPDATE message.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120065698A KR101345095B1 (en) | 2012-06-19 | 2012-06-19 | Method and system for bgp routing data processing based on cluster |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120065698A KR101345095B1 (en) | 2012-06-19 | 2012-06-19 | Method and system for bgp routing data processing based on cluster |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101345095B1 true KR101345095B1 (en) | 2013-12-26 |
Family
ID=49989131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120065698A KR101345095B1 (en) | 2012-06-19 | 2012-06-19 | Method and system for bgp routing data processing based on cluster |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101345095B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160064569A (en) * | 2014-11-28 | 2016-06-08 | 삼육대학교산학협력단 | Sql query processing method using mapreduce |
KR20170052266A (en) * | 2015-11-04 | 2017-05-12 | 에스케이텔레콤 주식회사 | Apparatus and Computer Program for Managing Query Path and Data Path |
-
2012
- 2012-06-19 KR KR1020120065698A patent/KR101345095B1/en active IP Right Grant
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160064569A (en) * | 2014-11-28 | 2016-06-08 | 삼육대학교산학협력단 | Sql query processing method using mapreduce |
KR101638048B1 (en) | 2014-11-28 | 2016-07-20 | 삼육대학교산학협력단 | Sql query processing method using mapreduce |
KR20170052266A (en) * | 2015-11-04 | 2017-05-12 | 에스케이텔레콤 주식회사 | Apparatus and Computer Program for Managing Query Path and Data Path |
KR102233380B1 (en) | 2015-11-04 | 2021-03-26 | 에스케이텔레콤 주식회사 | Apparatus and Computer Program for Managing Query Path and Data Path |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681678B2 (en) | Fast circular database | |
US10560465B2 (en) | Real time anomaly detection for data streams | |
US10756949B2 (en) | Log file processing for root cause analysis of a network fabric | |
Khare et al. | Big data in IoT | |
CN107634848B (en) | System and method for collecting and analyzing network equipment information | |
US20160359701A1 (en) | Parallel coordinate charts for flow exploration | |
US11755531B1 (en) | System and method for storage of data utilizing a persistent queue | |
CN109379390B (en) | Network security baseline generation method based on full flow | |
JP7081658B2 (en) | Information processing equipment, data management system, data management method and data management program | |
US11188443B2 (en) | Method, apparatus and system for processing log data | |
CN112632129A (en) | Code stream data management method, device and storage medium | |
CN104378234A (en) | Cross-data-center data transmission processing method and system | |
CN112347501A (en) | Data processing method, device, equipment and storage medium | |
CN111740868A (en) | Alarm data processing method and device and storage medium | |
Yang et al. | On construction of a network log management system using ELK Stack with Ceph | |
US20140344418A1 (en) | Dynamic configuration analysis | |
CN113794719B (en) | Network abnormal traffic analysis method and device based on elastic search technology and electronic equipment | |
KR101345095B1 (en) | Method and system for bgp routing data processing based on cluster | |
US9705906B2 (en) | Method and system for combining fiber optic link hierarchical stream metadata with internet protocol metadata | |
CN117892348A (en) | Management method and device for application program interface assets and electronic equipment | |
CN110830416A (en) | Network intrusion detection method and device | |
Saavedra et al. | A comparison between text, parquet, and PCAP formats for use in distributed network flow analysis on Hadoop | |
KR20220001606A (en) | Real-time packet data storing method and apparatus for mass network monitoring | |
Zhang et al. | Efficient online surveillance video processing based on spark framework | |
Deshpande et al. | An open-source framework unifying stream and batch processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161125 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171122 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20191202 Year of fee payment: 7 |