KR102564871B1 - Design of interconnect architecture for secure disaggregated system - Google Patents

Design of interconnect architecture for secure disaggregated system Download PDF

Info

Publication number
KR102564871B1
KR102564871B1 KR1020210064081A KR20210064081A KR102564871B1 KR 102564871 B1 KR102564871 B1 KR 102564871B1 KR 1020210064081 A KR1020210064081 A KR 1020210064081A KR 20210064081 A KR20210064081 A KR 20210064081A KR 102564871 B1 KR102564871 B1 KR 102564871B1
Authority
KR
South Korea
Prior art keywords
router
interconnect
separation system
pool
individual separation
Prior art date
Application number
KR1020210064081A
Other languages
Korean (ko)
Other versions
KR20220099081A (en
Inventor
강병훈
김대경
김건우
최원우
김은진
이호준
임창일
한영광
Original Assignee
한국과학기술원
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원, 성균관대학교산학협력단 filed Critical 한국과학기술원
Priority to PCT/KR2021/010071 priority Critical patent/WO2022149680A1/en
Publication of KR20220099081A publication Critical patent/KR20220099081A/en
Application granted granted Critical
Publication of KR102564871B1 publication Critical patent/KR102564871B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Abstract

안전한 개별분리 시스템을 위한 인터커넥트 설계 및 구현방법이 개시된다. 일 실시예에 따른 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법은, 계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하는 단계; 및 상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리하는 단계를 포함할 수 있다. An interconnect design and implementation method for a secure individual separation system is disclosed. An interconnect design and implementation method for an individual separation system according to an embodiment includes configuring an interconnect for an individual separation system using a layer-based topology; and managing components of an individual separation system through a plurality of routers included in the configured interconnect.

Description

안전한 개별분리 시스템을 위한 인터커넥트 설계 및 구현방법{DESIGN OF INTERCONNECT ARCHITECTURE FOR SECURE DISAGGREGATED SYSTEM}Interconnect design and implementation method for safe individual separation system {DESIGN OF INTERCONNECT ARCHITECTURE FOR SECURE DISAGGREGATED SYSTEM}

아래의 설명은 안전한 개별분리 시스템에서 필요한 인터커넥트를 설계 및 구현하는 기술에 관한 것이다. The description below relates to techniques for designing and implementing the necessary interconnects in a secure discrete system.

개별분리 시스템이란 클라우드, 데이터 센터 등에서 머신 중심의 구조가 가지는 네트워크 자원(예를 들면, 메모리, CPU, 가속기 등)의 낭비 문제를 해결하기 위한 자원 중심 접근의 아키텍처를 의미한다. 개별분리 시스템은 다수의 자원을 여러 머신이 공유하여, 자원 접근에 대한 효율성을 높일 수 있다. 이러한 특징으로 인해 개별분리 시스템은 클라우드, 데이터 센터 등의 분야에서 차세대 기술로 주목을 받고 있다. 클라우드 환경에서는 고객 및 사용자의 데이터 저장 및 처리를 서비스 제공자가 위탁하며, 사용자의 데이터를 보호하기 위하여 서비스에 대한 기밀성, 무결성, 가용성 등의 보안 중요 과제를 선제적으로 대응하는 것이 필요하다.An individual separation system refers to a resource-oriented approach architecture to solve the problem of wasting network resources (eg, memory, CPU, accelerator, etc.) of a machine-oriented structure in a cloud or data center. In the individual separation system, a plurality of resources can be shared by several machines, thereby increasing the efficiency of resource access. Due to these characteristics, the individual separation system is attracting attention as a next-generation technology in the field of cloud and data center. In the cloud environment, the storage and processing of customer and user data is entrusted to service providers, and it is necessary to preemptively respond to important security tasks such as confidentiality, integrity, and availability of services to protect user data.

개별분리 시스템은 현재까지 공개된 사례는 없으며, 여러 산학 단체가 모여 설립한 Gen-Z 컨소시엄, 그 외에 HP, Intel 등의 기업에서 개발 중에 있다. 그 중 Gen-Z 컨소시엄은 개발자를 위하여 개별분리 시스템 중 하나인 Gen-Z 시스템에 대한 상세기술명세를 공개한 바 있다. 그러나, 이러한 Gen-Z의 상세 명세서 또한 실제로 구현된 바 없기 때문에 실제로 Gen-Z의 명세를 따라 구현된 시스템에서 어떤 고려사항이 추가로 필요한 지, 어떤 보안문제가 발생할지 알 수 없다. 더욱이, 많은 부분을 시스템 설계자의 선택으로 맡기고 있어 더욱 구체적인 형태의 개별분리 시스템에 대한 고민이 요구된다. There are no cases of individual separation systems that have been disclosed so far, and Gen-Z consortium, which was established by several industry-academia organizations, and other companies such as HP and Intel are developing. Among them, the Gen-Z Consortium has disclosed detailed technical specifications for the Gen-Z system, one of the individual separation systems, for developers. However, since these detailed specifications of Gen-Z have not been actually implemented, it is unknown what additional considerations are required and what security problems may occur in a system actually implemented according to Gen-Z specifications. Moreover, many parts are left to the system designer's choice, so it is required to think about a more specific form of an individual separation system.

개별분리 시스템에서 사용되는 인터커넥트를 안전하게 설계하고 구현하는 방법 및 시스템을 제공할 수 있다. It is possible to provide a method and system for safely designing and implementing an interconnect used in an individual separation system.

개별분리 시스템의 보안을 향상시키기 위한 인터커넥트의 구성을 제안하고, 보안 모니터를 통해 보안 위협을 탐지하는 방법 및 시스템을 제공할 수 있다. It is possible to propose an interconnect configuration for improving the security of an individual separation system, and to provide a method and system for detecting security threats through a security monitor.

개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법은, 계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하는 단계; 및 상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리하는 단계를 포함할 수 있다. An interconnect design and implementation method for an individual separation system includes configuring an interconnect for an individual separation system using a layer-based topology; and managing components of an individual separation system through a plurality of routers included in the configured interconnect.

상기 관리하는 단계는, 상기 인터커넥트에 포함된 복수의 라우터에 연결 가능한 보안 모니터를 이용하여 개별분리 시스템에 대한 이상 징후와 공격을 탐지하는 단계를 포함할 수 있다. The managing may include detecting anomalies and attacks on the separate systems using a security monitor connectable to a plurality of routers included in the interconnect.

상기 구성하는 단계는, 팻트리 형식을 이용하여 계층 기반의 토폴로지를 구성함에 따라 복수의 라우터를 연결하는 인터커넥트를 생성하는 단계를 포함하고, 상기 복수의 라우터는, 루트 라우터 및 리프 라우터를 포함할 수 있다. The configuring may include generating interconnects connecting a plurality of routers by configuring a layer-based topology using a fat tree format, wherein the plurality of routers may include root routers and leaf routers. there is.

상기 구성하는 단계는, 상기 루트 라우터에서 상기 리프 라우터로 초기화 명령을 전송하고, 상기 루트 라우터가 저장하고 있는 리프 라우터 정보를 초기화함에 따라 상기 루트 라우터의 메시지 큐를 비운 후, 루트 라우터의 상태를 초기화하고, 상기 초기화된 루트 라우터에 대한 상태 점검을 실행하여 이상 여부를 판단하는 동작을 통해 루트 라우터부터 리프 라우터까지 초기화하고, 상기 인터커넥트에 연결된 라우터의 정보를 등록하여 토폴로지를 구성하는 단계를 포함할 수 있다. The configuring may include transmitting an initialization command from the root router to the leaf router, clearing the message queue of the root router as the leaf router information stored in the root router is initialized, and then initializing the state of the root router. and initializing the root router to leaf routers through an operation of performing a state check on the initialized root router to determine whether or not there is an abnormality, and configuring a topology by registering information on routers connected to the interconnect. there is.

상기 구성하는 단계는, 상기 인터커넥트에 연결된 라우터가 각각의 라우터에게 라우터 ID 할당 요청 패킷을 전송하고, 상기 전송된 라우터 ID 할당 요청 패킷이 루트 라우터에 도달됨에 따라 상기 루트 라우터에서 새롭게 연결된 리프 라우터를 감지하고, 상기 감지된 리프 라우터에 대한 라우터 ID를 할당하고, 상기 할당된 라우터 ID를 응답 패킷에 기록하여 상기 감지된 리프 라우터에 전송하고, 상기 루트 라우터에서 상기 할당된 라우터 ID와 라우터 정보를 저장하는 단계를 포함할 수 있다. The configuring may include: a router connected to the interconnect transmits a router ID allocation request packet to each router, and when the transmitted router ID allocation request packet reaches the root router, the root router detects a newly connected leaf router. and allocating a router ID for the detected leaf router, recording the allocated router ID in a response packet and transmitting the detected leaf router to the detected leaf router, and storing the allocated router ID and router information in the root router. steps may be included.

상기 구성하는 단계는, 목적지까지의 경로가 지정되는 수동 라우팅 방법 또는 리프 라우터에서 시작하여 팻트리 토폴로지를 따라 역순으로 순회하여 경로를 탐색하는 자동 라우팅 방법을 이용하여 라우팅 테이블을 구성하는 단계를 포함할 수 있다. The configuring may include configuring a routing table using a manual routing method in which a route to a destination is specified or an automatic routing method in which a route is searched by traversing in reverse order along a fat tree topology starting from a leaf router. can

상기 관리하는 단계는, 상기 인터커넥트의 리프 라우터에 의해 수행되는 풀 컨트롤러(Pool Controller)의 역할을 통해 상기 개별분리 시스템의 구성요소들을 종류별로 분류함에 따라 풀을 구성하고, 상기 구성된 풀에 분류된 구성요소들의 특성에 따라 풀을 관리하는 단계를 포함할 수 있다. In the managing step, a pool is formed by classifying components of the individual separation system by type through a role of a pool controller performed by a leaf router of the interconnect, and components classified in the configured pool are configured. It may include managing pools according to characteristics of elements.

상기 관리하는 단계는, 상기 풀 컨트롤러와 상기 풀 컨트롤러에 포함된 구성요소들의 초기화를 통해 풀 초기화를 수행하고, 상기 풀 컨트롤러에서 상기 풀에 분류된 구성요소로부터 전송된 구성요소 ID 할당 요청에 따라 각 구성요소마다 구성요소 ID를 할당하고, 상기 할당된 구성요소 ID를 포함한 응답 패킷을 상기 구성요소에게 전송하고, 상기 구성요소 ID 할당 요청과 관련된 패킷으로부터 획득된 구성요소의 정보를 저장하고, 상기 저장된 구성요소의 정보를 상위 라우터에게 통보하는 단계를 포함할 수 있다. In the managing step, pool initialization is performed through initialization of the pool controller and components included in the pool controller, and each component ID allocation request transmitted from components classified in the pool is received by the pool controller. Allocates a component ID to each component, transmits a response packet including the allocated component ID to the component, stores component information obtained from a packet related to the component ID allocation request, and stores the stored component ID. A step of notifying the information of the component to the upper router may be included.

상기 관리하는 단계는, 상기 풀 컨트롤러에서 출발지 구성요소로부터 전송된 패킷을 이용하여 도착지 구성요소가 상기 풀 컨트롤러에 구성된 풀에 포함되는지 여부를 확인하고, 상기 확인을 통해 상기 풀 컨트롤러에 구성된 풀에 상기 도착지 구성요소가 존재할 경우, 상기 출발지 구성요소로부터 전송된 패킷을 도착지 구성요소에 전달하는 단계를 포함할 수 있다. In the managing step, the pool controller checks whether or not the destination component is included in the pool configured in the pool controller using the packet transmitted from the source component, and the pool configured in the pool controller checks the pool controller. If there is a destination component, forwarding the packet transmitted from the source component to the destination component may be included.

상기 관리하는 단계는, 상기 확인을 통해 상기 풀 컨트롤러에 구성된 풀에 상기 도착지 구성요소가 존재하지 않을 경우, 상위 라우터로 상기 출발지 구성요소로부터 전송된 패킷을 전달하는 단계를 포함할 수 있다. The managing may include forwarding the packet transmitted from the source component to an upper router when the destination component does not exist in the pool configured in the pool controller through the confirmation.

상기 탐지하는 단계는, 상기 보안 모니터에 연결된 저장장치를 읽어 위협 탐지 패턴을 로딩하여 보안 모니터를 초기화하는 단계를 포함할 수 있다. The detecting may include initializing the security monitor by reading a storage device connected to the security monitor and loading a threat detection pattern.

상기 탐지하는 단계는, 상기 보안 모니터에 접근 키 정보를 저장하여 상기 보안 모니터로 입력되는 패킷을 대상으로 접근 키 검증을 수행하는 단계를 포함할 수 있다. The detecting may include storing access key information in the security monitor and performing access key verification on a packet input to the security monitor.

상기 탐지하는 단계는, 패킷 전체 혹은 지정된 영역의 CRC 값을 계산하고, 패킷의 필드에 저장된 CRC 해시값과 상기 계산된 CRC 값과 비교하여 CRC 검증을 수행하는 단계를 포함할 수 있다. The detecting may include calculating a CRC value of the entire packet or a designated area and comparing a CRC hash value stored in a field of the packet with the calculated CRC value to perform CRC verification.

상기 탐지하는 단계는, 패킷의 특정 패킷들의 조합과 값을 패턴으로 하여 비정상 패킷을 탐지하는 단계를 포함할 수 있다. The detecting may include detecting an abnormal packet by using a combination and value of specific packets of packets as a pattern.

개별분리 시스템을 위한 인터커넥트 설계 및 구현을 수행하는 컴퓨터 시스템은, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하고, 상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리할 수 있다. A computer system that performs interconnect design and implementation for discrete systems includes at least one processor configured to execute computer readable instructions contained in a memory, the at least one processor using a layer-based topology An interconnect for an individual separation system may be configured, and components of the individual separation system may be managed through a plurality of routers included in the configured interconnect.

인터커넥트를 팻트리의 형태로 구성함에 따라 루트 라우터에 발생하는 병목현상을 감소시키고, 팻트리의 특성을 이용하여 루트 라우터의 응답 속도를 개선시켜 개별분리 시스템의 성능을 향상시킬 수 있다.By configuring the interconnect in the form of a fat tree, bottlenecks occurring in the root router can be reduced, and the response speed of the root router can be improved by using the characteristics of the fat tree, thereby improving the performance of an individual separation system.

동일한 종류의 장치를 하나의 풀로 구성함으로써 각 장치의 특성에 맞는 기능을 라우터에 추가하여 효율적으로 관리할 수 있다. By configuring devices of the same type as one pool, functions suitable for each device's characteristics can be added to the router for efficient management.

라우터가 담당해야 할 보안 기능을 별도의 하드웨어로 구성함에 따라 라우터의 응답 시간을 높일 수 있으며, 보안 모니터와 라우터가 병렬로 동작함으로써 보안 기능과 경로 탐색이 동시에 이루어 질 수 있다.The response time of the router can be increased by configuring the security function to be responsible for the router as a separate hardware, and the security function and route search can be performed simultaneously as the security monitor and the router operate in parallel.

도 1은 일 실시예에 따른 컴퓨터 시스템의 구성을 설명하기 위한 도면이다.
도 2는 일 실시예에 있어서, 인터커넥트의 구성을 설명하기 위한 도면이다.
도 3은 일 실시예에 있어서, 인터커넥트 초기화 및 라우터 추가 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 있어서, 풀 구성을 설명하기 위한 도면이다.
도 5는 일 실시예에 있어서, 풀 초기화 및 풀 추가 동작을 설명하기 위한 도면이다.
도 6은 일 실시예에 있어서, 인터커넥트 및 풀 내부 경로 탐색 동작을 설명하기 위한 도면이다.
도 7은 일 실시예에 있어서, 인터커넥트의 패킷 검증 코드이다.
도 8은 일 실시예에 있어서, 패킷의 패턴 예시이다.
도 9는 일 실시예에 있어서, 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법을 설명하기 위한 흐름도이다.
1 is a diagram for explaining the configuration of a computer system according to an exemplary embodiment.
2 is a diagram for explaining a configuration of an interconnect according to an exemplary embodiment.
3 is a diagram for describing interconnect initialization and router addition operations, according to an exemplary embodiment.
4 is a diagram for explaining a pool configuration according to an embodiment.
5 is a diagram for describing pool initialization and pool addition operations according to an embodiment.
6 is a diagram for describing interconnect and pool internal path search operations, according to an exemplary embodiment.
7 is packet verification code of an interconnect, in one embodiment.
8 is an example of a packet pattern according to an embodiment.
9 is a flowchart illustrating a method of designing and implementing an interconnect for an individual separation system, according to an exemplary embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings.

실시예에서는 개별분리 시스템의 보안을 향상시키기 위한 인터커넥트의 구성을 제안하고, 보안 위협을 탐지하기 위한 보안 모니터를 설명하기로 한다. (1)인터커넥트 구성 방법, (2)구성요소 풀과 풀 컨트롤러를 이용한 제어 및 관리 방법, (3)인터커넥트에 연결되는 보안 모니터를 이용한 개별분리 시스템에 대한 이상 징후와 공격을 탐지하는 방법을 포함하는 세 가지 동작을 통해 개별분리 시스템에 속한 장치에 적합한 효율적이고 보안 위협에 대응할 수 있는 인터커넥트를 구현하는 동작을 설명하기로 한다. In the embodiment, an interconnect configuration for improving the security of an individual separation system is proposed, and a security monitor for detecting a security threat will be described. (1) interconnect configuration method, (2) control and management method using component pools and pool controllers, (3) method of detecting anomalies and attacks on individual separated systems using security monitors connected to the interconnect. Through three operations, an operation to implement an interconnect suitable for a device belonging to an individual separation system and capable of responding to security threats will be described.

도 1은 일 실시예에 따른 개별분리 시스템의 구성을 설명하기 위한 도면이다. 1 is a diagram for explaining the configuration of an individual separation system according to an embodiment.

컴퓨터 시스템은 개별분리 시스템의 보안을 향상시키기 위한 것으로, 인터커넥트(110), 풀 컨트롤러(Pool controller)(120) 및 보안 모니터(130)를 포함할 수 있다.The computer system is for improving the security of an individual system and may include an interconnect 110 , a pool controller 120 and a security monitor 130 .

개별분리 시스템을 위한 인터커넥트(110)는 성능 부하를 감소시키기 위하여 팻트리(fat tree) 형식을 이용하여 계층이 있는 토폴로지를 구성할 수 있다. 인터커넥트(110)는 구성된 토폴로지에 기초하여 복수 개의 스위치(혹은 라우터)를 연결할 수 있다. The interconnect 110 for an individual separation system may configure a hierarchical topology using a fat tree form to reduce performance load. The interconnect 110 may connect a plurality of switches (or routers) based on the configured topology.

풀 컨트롤러(120)는 개별분리 시스템을 구성하는 장치들(구성요소들)을 종류 별로 모아, 장치(구성요소)의 특성에 따라 관리할 수 있다. 이때, 풀 컨트롤러(120)는 인터커넥트(110)에 연결된 복수 개의 스위치(혹은 라우터)를 의미할 수 있다. The pool controller 120 may collect devices (components) constituting an individual separation system by type and manage them according to the characteristics of the devices (components). In this case, the full controller 120 may refer to a plurality of switches (or routers) connected to the interconnect 110 .

인터커넥트(110)를 구성하는 스위치(혹은 라우터)에 별도의 하드웨어로 구성된 보안 모니터(130)가 연결됨에 따라, 개별분리 시스템에 대한 이상 징후와 공격을 탐지하여 개별분리 시스템을 안전하게 동작시킬 수 있다. As the security monitor 130 composed of separate hardware is connected to the switch (or router) constituting the interconnect 110, it is possible to safely operate the separate system by detecting anomalies and attacks on the separate system.

도 2는 일 실시예에 있어서, 인터커넥트의 구성을 설명하기 위한 도면이다. 2 is a diagram for explaining a configuration of an interconnect according to an exemplary embodiment.

인터커넥트는 복수의 라우터(스위치)에 대하여 팻트리(fat tree) 자료 구조를 이용하여 계층별 라우터(스위치)를 구현할 수 있다. 인터커넥트는 팻트리 토폴로지를 이용하여 구성될 수 있다. 인터커넥트에 스위치 혹은 라우터(router)가 연결될 수 있다. 실시예에서는 복수의 라우터가 연결된 인터커넥트 예를 들어 설명하기로 한다. 또한, 팻트리 토폴로지에서 루트 노드(root node)에 해당하는 라우터를 루트 라우터, 단말 노드에 위치하는 라우터를 리프 라우터(reef router)로 명명하기로 한다. The interconnect may implement routers (switches) for each layer by using a fat tree data structure for a plurality of routers (switches). Interconnects may be constructed using a fat tree topology. A switch or router may be connected to the interconnect. In the embodiment, an interconnect to which a plurality of routers are connected will be described as an example. Also, in the fat tree topology, a router corresponding to a root node is referred to as a root router, and a router located at a terminal node is referred to as a leaf router.

팻트리의 리프 라우터는 장치 풀의 컨트롤러의 역할을 겸한다. 실시예에서는 동일한 종류의 장치를 하나로 모아 풀(pool)을 생성하여 관리할 수 있다. 이러한 풀들은 리프 라우터에 동일한 종류의 장치가 연결됨으로써 구현될 수 있으며, 각 풀의 라우터는 풀 내부의 경로 탐색 및 제어 역할을 수행할 수 있다. 인터커넥트의 범위는 루트 라우터와 풀 컨트롤러를 포함한다.Fattree's leaf router doubles as the controller of the device pool. In an embodiment, a pool may be created and managed by gathering devices of the same type into one. These pools can be implemented by connecting devices of the same type to the leaf routers, and the routers of each pool can search for and control routes within the pool. The interconnect's scope includes root routers and pool controllers.

도 3은 일 실시예에 있어서, 인터커넥트 초기화 및 라우터 추가 동작을 설명하기 위한 도면이다.3 is a diagram for describing interconnect initialization and router addition operations, according to an exemplary embodiment.

인터커넥트는 인터커넥트 초기화 동작, 스위치 추가 및 제거 동작, 라우팅 테이블 구성 및 라우팅 동작을 수행할 수 있다. The interconnect can perform interconnect initialization operations, switch addition and removal operations, routing table configuration, and routing operations.

(1) 인터커넥트 초기화 동작(1) Interconnect initialization operation

인터커넥트의 초기화는 루트 라우터부터 리프 라우터에 이르기까지 순차적으로 진행되는 라우터의 초기화 과정을 의미한다. 루트 라우터를 초기화할 수 있다. 루트 라우터 초기화에서 해야할 제일 첫 번째 동작은 리프 라우터에게 초기화 명령 전송하는 것이다. 그 다음, 루트 라우터가 저장하고 있는 리프 라우터의 정보를 초기화한 후, 루트 라우터의 메시지 큐를 비운 후 루트 라우터의 상태를 초기화할 수 있다. 마지막으로 루트 라우터에 상태 점검을 실행하여 이상 여부를 점검할 수 있다. 추가적으로 루트 라우터에 입력된 설정 파일이 있다면 해당 설정을 적용할 수 있다.Interconnect initialization refers to an initialization process of routers sequentially from a root router to a leaf router. You can initialize the root router. The first thing to do in root router initialization is to send initialization commands to the leaf routers. Next, after initializing leaf router information stored in the root router, the message queue of the root router may be emptied, and then the state of the root router may be initialized. Finally, you can run a health check on the root router to check for anomalies. Additionally, if there is a configuration file entered into the root router, the corresponding configuration can be applied.

루트 라우터가 초기화 중일 때에는 하위 라우터 및 장치는 패킷 전송 등의 작업을 멈추고 대기하여야 한다. 루트 라우터는 초기화 중에 패킷 전달, 하위 라우터 관리 등의 임무를 수행할 수 없다. 이때, 하위 라우터가 여전히 동작 중이라면 메시지 손실 등의 부작용이 일어날 가능성이 있다. 이에, 루트 라우터의 초기화 작업이 끝날 때까지 하위 라우터는 패킷 전달을 하지 않고 대기 상태여야 한다.When the root router is initializing, subordinate routers and devices must stop tasks such as packet transmission and wait. The root router cannot perform tasks such as forwarding packets or managing subordinate routers during initialization. At this time, if the lower router is still operating, side effects such as message loss may occur. Therefore, until the initialization of the root router is completed, the lower router must remain in a standby state without forwarding packets.

인터커넥트를 초기화하면 토폴로지 구성 정보와 각 라우터 역시 초기화되어, 연결된 라우터 및 장치 정보가 제거될 수 있다. 초기화 후에는 연결된 라우터의 정보를 등록하여 토폴로지를 새롭게 구성해야 한다.When the interconnect is initialized, topology configuration information and each router are also initialized, so connected router and device information may be removed. After initialization, the topology must be newly configured by registering the connected router information.

(2) 라우터 추가 및 제거 동작(2) Adding and removing routers

리프 라우터는 스스로 라우터 ID 할당을 요청함으로써 토폴로지에 등록될 수 있다. 토폴로지 정보가 리셋된 상태이거나, 새롭게 연결된 라우터는 전체 토폴로지 구성을 알 수 없다. 따라서, 인터커넥트에 속하는 라우터는 연결된 모든 라우터에게 구성요소 ID 할당 요청 패킷을 전송할 수 있다. 전송된 구성요소 ID 할당 요청 패킷은 최종적으로 루트 라우터에 도달하게 되며, 루트 라우터는 구성요소 ID 할당 요청 패킷을 통하여 새롭게 연결된 리프 라우터를 감지할 수 있다. 루트 라우터는 감지된 리프 라우터에 고유한 라우터 ID를 할당하고, 할당된 리프 라우터에 대한 라우터 ID를 응답 패킷에 기록할 수 있다. 루트 라우터는 라우터 ID가 기록된 응답 패킷을 리프 라우터로 전송할 수 있다. 루트 라우터는 할당된 라우터 ID와 라우터 정보를 저장할 수 있다. 이러한 라우터 ID와 라우터 정보는 인터커넥트에 연결된 장치들의 구성정보를 유지하고, 추후에 패킷의 경로를 탐색하는 용도로 사용될 수 있다.A leaf router can register itself in the topology by requesting a router ID assignment. The topology information is in a reset state or a newly connected router cannot know the entire topology configuration. Accordingly, a router belonging to the interconnect may transmit a component ID assignment request packet to all connected routers. The transmitted component ID allocation request packet finally reaches the root router, and the root router can detect a newly connected leaf router through the component ID allocation request packet. The root router may assign a unique router ID to the detected leaf router and record the router ID for the assigned leaf router in a response packet. The root router may transmit a response packet in which the router ID is recorded to the leaf router. The root router may store the assigned router ID and router information. These router IDs and router information can be used to maintain configuration information of devices connected to the interconnect and to search packet paths later.

(3) 라우팅 테이블 구성 및 라우팅 동작 (3) Routing table composition and routing operation

라우팅 테이블을 구성하는 방법은 목적지까지의 경로가 지정되는 수동 라우팅 방법 또는 리프 라우터에서 시작하여 팻트리 토폴로지를 따라 역순으로 순회하여 경로를 탐색하는 자동 라우팅 방법을 포함할 수 있다. A method of constructing a routing table may include a manual routing method in which a route to a destination is specified or an automatic routing method in which a route is searched by traversing in reverse order along a fat tree topology starting from a leaf router.

수동 라우팅 방법은 설정파일 등을 통하여 목적지까지의 경로를 직접 지정하는 것이다. 자동 라우팅 방법은 라우터에서 시작하여 팻트리를 역순으로 순회하여 경로를 탐색하는 것이다. 실시예에 따른 개별분리 시스템용 인터커넥트의 토폴로지는 팻트리를 사용하고 있으므로, 트리에서 같은 레벨에 존재하는 리프 라우터들은 서로 연결되어 있지 않고 오직 루트 라우터만 연결되어 있다. 따라서 다른 리프 라우터에 연결되어 있는 구성요소에 패킷을 전달하기 위해서는 루트 라우터에 패킷을 전달하여야 한다. The manual routing method directly designates a path to a destination through a configuration file or the like. The automatic routing method starts from a router and traverses the fat tree in reverse order to find a route. Since the topology of the interconnect for an individual separation system according to the embodiment uses a fat tree, leaf routers existing at the same level in the tree are not connected to each other and only root routers are connected. Therefore, in order to deliver packets to components connected to other leaf routers, packets must be forwarded to the root router.

실시예에서 토폴로지는 두 단계로 구성되는 팻트리를 기본 형태로 나타내었다. 그러나 두 단계 이상의 팻트리를 이용하여 토폴로지를 구성하는 경우, 도착지 정보가 존재하는 라우터에게 패킷이 전달될 때까지 상위 라우터에게 패킷을 전달하여야 한다. 루트 라우터(혹은 도착지 정보를 가지고 있는 상위 라우터)가 패킷을 전달 받으면 도착지 구성요소가 연결되어 있는 하위 라우터에게 패킷을 전달할 수 있다. 이러한 과정을 반복하여 도착지 구성요소가 직접 연결된 라우터가 패킷을 전달 받으면, 도착지 구성요소가 직접 연결된 라우터는 최종적으로 도착지 구성요소에게 패킷을 전달하게 된다.In the embodiment, the topology shows a fat tree consisting of two stages in its basic form. However, when a topology is constructed using two or more levels of fat tree, packets must be forwarded to upper routers until the packets are delivered to routers with destination information. When a root router (or an upper router having destination information) receives the packet, it can forward the packet to the lower router to which the destination component is connected. By repeating this process, when the router directly connected to the destination component receives the packet, the router directly connected to the destination component finally delivers the packet to the destination component.

일 실시예에 따르면, 인터커넥트를 팻트리 형태로 구성함으로써 루트 라우터에 발생하는 병목 현상을 감소시킬 수 있다. 루트 라우터는 풀 내부에서 전달되어야 할 패킷을 제외한 모든 패킷을 처리해야 하기 때문에 병목 현상으로 인해 처리지연 시간이 증가할 위험성이 있다. 이를 해결하기 위하여 인터커넥트의 토폴로지로 팻트리를 사용할 수 있다. 네트워크에서 트리는 각 노드의 연결점(link)이 동일한 대역폭을 가지고 있는 토폴로지이다. 이때, 트리의 상위로 올라갈 수록 병목 현상이 발생하여 전체 네트워크의 지연율을 증가시킨다. 팻트리는 트리의 단점을 개선하여 루트 노드에 연결된 연결점에 큰 대역폭을 사용하도록 설정한다. 대역폭의 확장은 루트 노드에 발생하는 병목 현상을 해소시킬 수 있다. 실시예에서는 팻트리의 특성을 이용하여 루트 라우터의 응답 속도를 개선시켜 전체 개별분리 시스템의 성능을 향상시킬 수 있다.According to an embodiment, a bottleneck occurring in a root router may be reduced by configuring an interconnect in a fat tree shape. Since the root router has to process all packets except packets to be forwarded inside the pool, there is a risk of increasing processing delay due to bottlenecks. To solve this problem, a fat tree can be used as the interconnect topology. A tree in a network is a topology in which each node's link has the same bandwidth. At this time, as the tree goes up, a bottleneck occurs, increasing the delay rate of the entire network. The fat tree improves the disadvantages of the tree and sets the connection point connected to the root node to use a large bandwidth. Expansion of bandwidth can solve the bottleneck phenomenon that occurs in the root node. In an embodiment, the performance of the entire individual separation system may be improved by improving the response speed of the root router using the characteristics of the fat tree.

도 4는 일 실시예에 있어서, 풀 구성을 설명하기 위한 도면이다. 4 is a diagram for explaining a pool configuration according to an embodiment.

장치(구성요소)의 특성에 맞는 관리 및 보안을 위하여 장치(구성요소)들을 종류 및 특성에 따라 분류하여 풀(pool)로 구성하고, 구성된 풀에 분류된 장치(구성요소)들을 관리할 수 있다. 예를 들어, 개별분리 시스템에 속한 모든 CPU들을 하나로 묶어 CPU 풀로 관리가 가능하다. 풀은 클러스터(cluster) 자료구조를 이용하고, 각각의 장치(구성요소)를 유지 및 추가할 수 있다. 클러스터는 기본적으로 복수 개의 컴퓨터를 묶어 하나로 동작하게 하는 구조를 의미한다. 클러스터는 일반적으로 단일 컴퓨터에 비하여 뛰어난 성능과 안정성을 보장한다. 실시예에서는 컴퓨터가 아닌 동일한 종류의 장치들을 하나로 묶어 하나의 장치처럼 동작하게 한다. 이는 개별분리 시스템의 자원으로 사용되어 개별분리 시스템에 속한 가상머신의 자원으로 분배될 수 있음을 의미한다. 각각의 풀은 개별분리 시스템용 인터커넥트의 리프 라우터에 의해 관리되며, 각 리프 라우터는 풀 컨트롤러의 역할을 수행한다. 풀 컨트롤러는 루트 라우터로부터 전달받은 패킷을 해석하여 풀에 속한 목적지 장치로 전달하는 역할을 수행할 수 있다. For management and security according to the characteristics of devices (components), devices (components) are classified according to types and characteristics, configured into pools, and devices (components) classified in the configured pool can be managed. . For example, all CPUs belonging to an individual system can be grouped together and managed as a CPU pool. A pool uses a cluster data structure and can maintain and add individual devices (components). A cluster basically means a structure in which multiple computers are grouped together to operate as one. A cluster generally guarantees superior performance and reliability compared to a single computer. In the embodiment, devices of the same type other than computers are bundled together to operate as one device. This means that it can be used as a resource of an individual separation system and distributed as a resource of a virtual machine belonging to an individual separation system. Each pool is managed by a leaf router in the interconnect for each separate system, and each leaf router acts as a pool controller. The pool controller may interpret packets received from the root router and forward them to destination devices belonging to the pool.

도 5는 일 실시예에 있어서, 풀 초기화 및 풀 추가 동작을 설명하기 위한 도면이다. 5 is a diagram for describing pool initialization and pool addition operations according to an embodiment.

장치 풀 구성 및 관리 동작은 풀 초기화 동작, 풀 구성요소 추가 및 제거 동작, 풀 라우팅 동작을 포함할 수 있다. 이하에서는 풀에 포함된 장치를 구성요소로 기재하기로 한다.Device pool configuration and management operations may include pool initialization operations, pool component addition and removal operations, and pool routing operations. Hereinafter, devices included in the pool will be described as components.

(1) 풀 초기화 동작(1) Full initialization operation

풀 초기화는 풀 컨트롤러와 풀에 속한 구성요소를 초기화할 수 있다. 풀 컨트롤러는 인터커넥트 팻트리 토폴로지에서 리프 라우터로, 각각의 풀 구성요소에 대하여 초기화 명령을 내린다. 구성요소의 초기화는 각 구성요소의 리셋과 상태 및 설정을 기본설정으로 변경하는 것을 의미한다. 구성요소에 대한 초기화 동작은 구성요소의 모델, 버전, 제조사에 따라 다르므로, 생략하기로 한다. Pool initialization can initialize pool controllers and components belonging to pools. The pool controller issues initialization commands for each pool component to the leaf routers in the interconnect fat tree topology. Initialization of a component means resetting each component and changing the status and settings to the default settings. Since the initialization operation for the component differs depending on the model, version, and manufacturer of the component, it will be omitted.

(2) 풀 구성요소 추가 및 제거 동작 (2) Actions of adding and removing pool components

각각의 구성요소는 풀 컨트롤러로부터 구성요소 ID를 전달받을 수 있다. 풀 컨트롤러는 풀에 포함된 구성요소로부터 전달된 구성요소 ID 할당 요청에 따라 각 구성요소마다 구성요소 ID를 할당하며, 구성요소 ID 할당 요청을 전송한 구성요소에게 할당된 구성요소 ID를 포함한 응답 패킷을 전송할 수 있다. 또한, 풀 컨트롤러는 구성요소 ID 할당 요청 패킷으로부터 획득한 구성요소의 정보를 저장하고, 구성요소의 정보를 상위의 라우터에게 통보할 수 있다.Each component can receive a component ID from the pool controller. The pool controller allocates a component ID to each component according to the component ID allocation request transmitted from the component included in the pool, and a response packet containing the component ID allocated to the component that sent the component ID allocation request. can transmit. In addition, the pool controller may store component information obtained from the component ID assignment request packet and notify the upper router of the component information.

풀이 초기화 되어 풀에 속한 구성요소가 없거나, 새로 연결된 구성요소는 풀 컨트롤러로부터 구성요소 ID를 할당 받아야 한다. 구성요소는 풀의 구성을 알 수 없으므로, 풀의 모든 구성원에게 구성요소 ID 할당 요청을 전송할 수 있다. 그 결과, 풀 컨트롤러는 구성요소 ID 할당 요청을 전달받을 수 있고, 할당된 구성요소 ID를 응답 패킷에 기록할 수 있다. 풀 컨트롤러는 할당된 구성요소 ID를 기록한 응답 패킷을 구성요소 ID 할당 요청된 구성요소에게 전송할 수 있다. 풀 컨트롤러는 구성요소의 정보를 저장하고, 구성요소의 정보를 상위의 라우터에 보고할 수 있다.If the pool is initialized and there are no components belonging to the pool, or newly connected components must be assigned a component ID from the pool controller. Since the component does not know the composition of the pool, it can send a request to assign a component ID to all members of the pool. As a result, the pool controller can receive the component ID assignment request and record the assigned component ID in the response packet. The pool controller may transmit a response packet in which the allocated component ID is recorded to the component to which component ID allocation is requested. The pool controller can store component information and report the component information to the upper router.

도 6은 일 실시예에 있어서, 인터커넥트 및 풀 내부 경로 탐색 동작을 설명하기 위한 도면이다. 6 is a diagram for describing interconnect and pool internal path search operations, according to an exemplary embodiment.

(3) 풀 내부 경로 찾기(routing)(3) Finding routes inside the pool (routing)

풀 내에서 경로 찾기는 풀 컨트롤러가 전담한다. 출발지 구성요소에서 패킷이 풀 컨트롤러로 전송될 수 있다. 풀 컨트롤러는 도착지 구성요소가 풀에 속해 있는지 확인할 수 있다. 만약, 풀 내부에 도착지 구성요소가 존재할 경우, 패킷을 도착지 구성요소에 전달할 수 있고, 풀 내부에 도착지 구성요소가 존재하지 않을 경우, 풀 내부 라우팅으로 해결할 수 없으므로 상위 라우터로 패킷을 전달할 수 있다.Path finding within a pool is the responsibility of the pool controller. From the source component, packets can be forwarded to the pool controller. A pool controller can check if a destination component belongs to a pool. If a destination component exists in the pool, the packet can be forwarded to the destination component, and if the destination component does not exist in the pool, the packet can be forwarded to the upper router because routing within the pool cannot solve it.

일 실시예에 따르면, 동일한 종류의 구성요소를 하나의 풀로 구성함으로써 각 구성요소의 특성에 맞는 기능을 라우터에 추가하여 효율적으로 관리 가능하다.According to an embodiment, by configuring components of the same type as one pool, functions suitable for characteristics of each component can be added to the router and efficiently managed.

도 7은 일 실시예에 있어서, 인터커넥트의 패킷 검증 코드이다. 7 is packet verification code of an interconnect, in one embodiment.

인터커넥트에 포함된 복수의 라우터에 연결 가능한 보안 모니터를 이용하여 개별분리 시스템에 대한 이상 징후와 공격이 탐지될 수 있다. 라우터 연결식 개별분리 시스템의 보안 모니터에 대하여 설명하기로 한다. 보안 모니터는 FPGA를 이용하여 구성될 수 있으며, 라우터에 도착한 패킷의 필드를 검사하여 접근 키(Access Key) 검증, CRC 검증, 공격 탐지를 수행한다.Anomalies and attacks on individual systems can be detected using a security monitor that can be connected to a plurality of routers included in the interconnect. The security monitor of the router-connected individual separation system will be described. The security monitor can be configured using an FPGA, and performs access key verification, CRC verification, and attack detection by examining fields of packets arriving at the router.

보안 모니터는 라우터에 I/O 장비로 연결될 수 있다. 라우터는 I/O 입출력을 지원해야 한다. 보안 모니터와 라우터는 2개의 입출력을 지원한다. 제1 I/O 입출력은 제어 신호로서, 패킷 전달 이벤트 전송 및 패킷 검사 결과의 전달 의사를 알리는 명령 채널로 사용된다. 제2 I/O 입출력은 데이터 신호로서, 패킷의 전송 및 패킷 검사 결과를 알리는 데이터 교환 채널로 사용된다. 라우터는 큐에 패킷이 들어왔을 때, 제어 신호를 통하여 라우터에게 패킷이 도착하였음을 알린다. 라우터는 신호를 수신하고 데이터 신호를 통하여 패킷을 전달받을 수 있다. 라우터는 패킷을 해석한 후 제어 신호로 라우터에 지정된 영역에 패킷 검사 결과에 대하여 쓰기를 요청하며, 데이터 신호로 검사 결과를 라우터의 지정된 영역에 전달할 수 있다.Security monitors can be connected to routers as I/O devices. The router must support I/O input and output. Security monitors and routers support two inputs and outputs. The first I/O input/output is a control signal and is used as a command channel for notifying the intention to transmit packet delivery events and packet inspection results. The second I/O input/output is a data signal and is used as a data exchange channel for transmitting packets and notifying packet inspection results. When a packet enters the queue, the router notifies the router of the arrival of the packet through a control signal. A router may receive signals and receive packets through data signals. After interpreting the packet, the router requests writing of the packet inspection result to the area designated by the router as a control signal, and transmits the inspection result to the area designated by the router as a data signal.

보안 모니터는 정해진 개수의 패킷의 정보를 기록하는 이벤트 히스토리 버퍼를 가진다. 이벤트 히스토리 버퍼에서는 라우터에 전달되는 패킷 중 지정된 동작의 패킷의 요약 정보를 사전에 설정한 개수만큼 유지할 수 있다. 이벤트 히스토리 버퍼를 관리하는 방법은 오래된 순으로 항목을 삭제하는 방법과, 정해진 시간 초과 후 항목을 삭제하는 방법 등이 있다.The security monitor has an event history buffer that records the information of a set number of packets. In the event history buffer, among the packets delivered to the router, the summary information of the packets of the specified operation can be maintained as many as the previously set number. Methods for managing the event history buffer include a method of deleting items in the oldest order and a method of deleting items after a specified time period has elapsed.

이벤트 히스토리 버퍼는 개별분리 시스템에 가해지는 이상 행위를 탐지하기 위하여 시스템의 상태를 유지하거나, 기능 수행에 필요한 개별분리 시스템의 제어 정보를 식별하는 용도로 사용될 수 있다. 이벤트 히스토리 버퍼는 패킷의 중요도에 따라 복수 개가 존재할 수 있다. 이벤트 히스토리 버퍼를 관리하는 방법은 용도에 따라 선택될 수 있다. 예를 들면, 공격 탐지를 위한 이벤트 히스토리 버퍼는 사전에 설정된 개수만큼 유지하며, 사전에 설정된 개수를 초과할 경우 오래된 항목 순서로 삭제할 수 있다. 개별분리 시스템의 제어 정보를 식별하기 위한 이벤트 히스토리 버퍼는 데드라인 시간을 정하여 정해진 시간이 지나면 버퍼에서 제거하는 방법으로 관리할 수 있다.The event history buffer can be used to maintain the state of the system in order to detect abnormal behaviors applied to the individual system or to identify control information of the system that is necessary for function execution. A plurality of event history buffers may exist according to the importance of a packet. A method of managing the event history buffer may be selected according to a purpose. For example, event history buffers for attack detection are maintained as many as a preset number, and if the preset number is exceeded, older items may be deleted in order. The event history buffer for identifying the control information of the individual separation system can be managed by setting a deadline time and removing it from the buffer after the set time has elapsed.

보안 모니터는 목적에 따라서 루트 라우터에만 설치되거나, 인터커넥트를 구성하는 모든 라우터에 설치될 수 있다. 예를 들어, 전체 인터커넥트를 대상으로 모니터링이 필요할 경우 루트 라우터에 보안 모니터를 설치할 수 있으며, 특정 풀에 대하여 보안 모니터링이 필요할 경우, 풀 컨트롤러에 모니터를 설치할 수 있다.Depending on the purpose, the security monitor can be installed only on the root router or on all routers that make up the interconnect. For example, if you need to monitor the entire interconnect, you can install a security monitor on the root router, and if you need security monitoring for a specific pool, you can install a monitor on the pool controller.

보안 모니터에서는 접근 키 및 구역 키(Region Key) 검증 동작, CRC 검증 동작을 보안 기법이 분리된 환경에서 안전하게 수행할 수 있다. 또한 특정 필드의 패턴을 이용하여 공격을 추가적으로 방어할 수 있다.The security monitor can safely perform access key and region key verification operations and CRC verification operations in an environment where security techniques are separated. In addition, an attack can be additionally defended by using a pattern of a specific field.

(1) 모니터 초기화 동작 (1) Monitor initialization operation

모니터 초기화는 모니터의 상태 및 설정 값이 기본 설정으로 설정될 수 있다. 이때, 모니터 내부에서 관리하고 있는 상태 정보 또한 리셋될 수 있다. 모니터의 초기화 단계에서는 모니터에 연결된 저장장치를 읽어 위협 탐지 패턴을 로딩할 수 있다. 모니터의 초기화는 개별분리 시스템이 멈춰 있을 때 이뤄져야 함으로 인터커넥트의 초기화 직전에 수행해야 한다.Monitor initialization can set the status and settings of the monitor to basic settings. At this time, state information managed inside the monitor may also be reset. In the initialization stage of the monitor, the threat detection pattern can be loaded by reading the storage device connected to the monitor. Since the initialization of the monitor must be done when the individual system is stopped, it must be performed immediately before the initialization of the interconnect.

(2) 접근 키(Access Key) 및 구역 키(Region Key) 검증 동작 (2) Access Key and Region Key Verification Operation

보안 모니터는 패킷의 접근 키 혹은 구역 키 필드를 읽은 후, 유효한 지 검증할 수 있다. 접근 키와 구역 키의 검증 루틴은 시스템의 구성요소마다 달라질 수 있다. 일례로, 보안 모니터는 해당 장치에서의 접근 키 사용 여부를 확인한 후, 요청자 패킷의 접근 키가 응답자 장치의 접근 키와 일치하는지 확인하여, 일치할 경우 접근 키 검증에 성공하고, 불일치할 경우 접근 키 검증이 실패하여 에러를 반환할 수 있다.After reading the access key or zone key field of the packet, the security monitor can verify whether it is valid. Verification routines for access keys and zone keys may vary for each component of the system. For example, the security monitor checks whether the access key is used in the corresponding device, and then checks whether the access key of the requester packet matches the access key of the responder device. Validation may fail and return an error.

실시예에서는 보안 모니터가 접근 키 정보를 저장한 후, 이후에 들어오는 패킷을 대상으로 접근 키 검증을 수행할 수 있다. 보안 모니터는 개별분리 시스템의 제어 쓰기(Control write) 패킷이 들어올 때, 패킷을 분석하여 보안 모니터가 수행하는 기능에 필요한 정보를 기록할 수 있다. 보안 모니터에서 접근 키 정보는 접근 키에 대한 제어 쓰기 요청 및 응답 패킷을 추적하여 획득될 수 있다. 보안 모니터는 접근 키 설정에 관한 응답 패킷이 라우터에 들어왔을 때, 에러 코드를 분석하여 정상일 경우, 이벤트 히스토리 버퍼를 확인하여 접근 키에 대한 제어 쓰기 요청을 탐색할 수 있다. 응답에 대한 요청 패킷이 탐색된 경우, 해당 장치의 영역과 매핑되는 접근 키를 분석한 결과가 보안 모니터에 저장될 수 있다. 이후에 해당 장치의 영역에 대한 요청 패킷이 라우터에 들어왔을 때, 보안 모니터는 저장해둔 접근 키 정보와 비교되어 접근 키 검증이 수행될 수 있다.In an embodiment, after the security monitor stores the access key information, access key verification may be performed for incoming packets thereafter. When a control write packet from an individual system comes in, the security monitor can analyze the packet and record information necessary for the function performed by the security monitor. In the security monitor, access key information may be obtained by tracing control write request and response packets for the access key. The security monitor analyzes the error code when a response packet related to the access key setting enters the router, and if it is normal, it can search the control write request for the access key by checking the event history buffer. When a request packet for a response is searched for, a result of analyzing an access key mapped to an area of a corresponding device may be stored in a security monitor. Later, when a request packet for the area of the corresponding device enters the router, the security monitor compares the stored access key information and verifies the access key.

(3) CRC 검증 동작 (3) CRC verification operation

패킷 전체 혹은 지정된 영역의 CRC 계산을 한 뒤, 계산된 CRC 값이 패킷의 필드에 저장된 CRC 해시 값과 비교되어 CRC 검증이 수행될 수 있다. CRC 값이 일치하지 않을 때, 라우터에게 CRC 메시지 오류를 알려 패킷을 처리할 수 있게 한다.After calculating the CRC of the entire packet or a designated area, the calculated CRC value is compared with the CRC hash value stored in the field of the packet to perform CRC verification. When the CRC values do not match, the CRC message error is notified to the router so that the packet can be processed.

PCRC 필드는 VC와 Len 필드의 CRC 값을 저장한 필드이다. 보안 모니터는 패킷에서 VC와 Len 필드 데이터의 CRC 값을 저장하고, 저장된 CRC 값과 PCRC 필드의 값이 비교될 수 있다. 비교 결과 일치하지 않을 경우, 검증 결과와 실패 에러 코드를 라우터에게 리턴할 수 있다.The PCRC field is a field that stores the CRC values of the VC and Len fields. The security monitor may store CRC values of VC and Len field data in the packet, and may compare the stored CRC values with PCRC field values. If the comparison results do not match, the verification result and failure error code may be returned to the router.

(4) 기타 공격 탐지 동작 (4) Other attack detection operations

도 8을 참고하면, 패킷의 패턴 예시이다. 패킷의 특정 필드들의 조합과 값을 패턴으로 하여 비정상 패킷이 탐지될 수 있다. 패킷의 특정 필드에 특정 값이 포함되어 있을 경우, 특정 값을 기반으로 비정상 패킷 여부가 판단될 수 있다. 패킷을 패턴화하여, 패턴이 일치하는 패킷의 경우 이에 대한 정보와 오류를 라우터에게 알려 패킷을 처리할 수 있게 한다.Referring to FIG. 8, it is an example of a packet pattern. An abnormal packet can be detected by using a combination and value of specific fields of the packet as a pattern. When a specific value is included in a specific field of a packet, whether or not the packet is abnormal may be determined based on the specific value. By patterning packets, in the case of packets matching the pattern, information about this and an error are notified to the router so that the packet can be processed.

보안 모니터는 지정된 개수를 이벤트 히스토리 버퍼에 저장함에 따라 지속성 공격을 탐지할 수 있다. 보안 모니터는 이벤트 히스토리 버퍼를 이용하여 특정기간 동안 일어나는 공격 패턴을 이용하여 지속성 공격을 탐지할 수 있다. 예를 들면, 어떤 기간 동안 접근 키 필드를 제외한 내용이 동일한 패킷이 여러 번 나타나는 경우, 접근 키에 대한 무차별 대입 공격임을 알 수 있다. 이러한 패킷을 패턴으로 만들어, 복수 개(예를 들면, 3000개)의 이벤트 발생시 접근 키 필드 값만 변경된 동일한 패킷이 기 설정된 개수(예를 들면, 5개) 이상 생성되는 경우 비정상으로 판단하는 패턴을 생성할 수 있다.The security monitor can detect persistence attacks by storing the specified number in the event history buffer. A security monitor can detect a persistent attack by using an attack pattern that occurs during a specific period using an event history buffer. For example, if packets with the same contents except for the access key field appear several times during a certain period of time, it can be seen that it is a brute force attack on the access key. These packets are made into a pattern, and when a plurality of events (eg, 3000) occur, a pattern that is judged abnormal is generated when more than a predetermined number (eg, 5) of identical packets with only the access key field value changed are generated. can do.

보안 모니터는 관리자로부터 생성된 패턴을 입력하고, 입력된 패턴을 이용하여 보안 위협을 탐지할 수 있다. 보안 모니터에는 패턴을 저장하는 저장장치가 존재한다. 보안 모니터의 초기화 과정에서는 지정된 포트(예를 들면, USB, SATA, PCIe 등)로 연결된 저장장치를 읽어 패턴을 로드할 수 있다. 사용자 정의 패턴이 저장된 저장장치를 연결함으로써 새로운 보안 위협에 대한 탐지가 가능하다.The security monitor may input a pattern generated by an administrator and detect a security threat using the input pattern. A storage device for storing patterns exists in the security monitor. In the initialization process of the security monitor, a storage device connected to a designated port (eg, USB, SATA, PCIe, etc.) may be read and a pattern may be loaded. It is possible to detect new security threats by connecting a storage device in which user-defined patterns are stored.

패킷 패턴의 형태는 구현 상의 선택에 따라 달라지며, 다양한 방법으로 구현할 수 있다. 도 8을 참고하면, 패킷의 패턴 코드는 Xml형식으로 구현된 예이다.The shape of the packet pattern depends on the implementation choice, and can be implemented in various ways. Referring to FIG. 8 , the pattern code of the packet is an example implemented in an Xml format.

일 실시예에 따르면, 보안 모니터를 별도의 하드웨어로 구성함으로써 성능상의 이점을 노릴 수 있다. 라우터가 담당해야할 보안 기능을 별도의 하드웨어로 수행함에 따라 라우터의 응답 시간을 높일 수 있다. 또한, 보안 모니터와 라우터가 병렬로 동작함에 따라 보안 기능과 경로 탐색이 동시에 이루어 질 수 있어 효율적이다.According to one embodiment, a performance advantage can be achieved by configuring the security monitor as a separate hardware. The response time of the router can be increased by performing the security function that the router should be responsible for with separate hardware. In addition, as the security monitor and the router operate in parallel, the security function and route search can be performed simultaneously, which is efficient.

도 9는 일 실시예에 있어서, 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법을 설명하기 위한 흐름도이다. 9 is a flowchart illustrating a method of designing and implementing an interconnect for an individual separation system, according to an exemplary embodiment.

단계(910)에서 컴퓨터 시스템은 계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성할 수 있다. 컴퓨터 시스템은 팻트리 형식을 이용하여 계층 기반의 토폴로지를 구성함에 따라 복수의 라우터를 연결하는 인터커넥트를 생성할 수 있다. 컴퓨터 시스템은 루트 라우터에서 리프 라우터로 초기화 명령을 전송하고, 루트 라우터가 저장하고 있는 리프 라우터 정보를 초기화함에 따라 루트 라우터의 메시지 큐를 비운 후, 루트 라우터의 상태를 초기화하고, 초기화된 루트 라우터에 대한 상태 점검을 실행하여 이상 여부를 판단하는 동작을 통해 루트 라우터부터 리프 라우터까지 초기화하고, 인터커넥트에 연결된 라우터의 정보를 등록하여 토폴로지를 구성할 수 있다. 컴퓨터 시스템은 인터커넥트에 연결된 라우터가 각각의 라우터에게 라우터 ID 할당 요청 패킷을 전송하고, 전송된 라우터 ID 할당 요청 패킷이 루트 라우터에 도달됨에 따라 루트 라우터에서 새롭게 연결된 리프 라우터를 감지하고, 감지된 리프 라우터에 대한 라우터 ID를 할당하고, 할당된 라우터의 ID를 응답 패킷에 기록하여 감지된 라우터에 전송하고, 루트 라우터에서 할당된 라우터 ID와 라우터 정보를 저장할 수 있다. 컴퓨터 시스템은 목적지까지의 경로를 직접 지정하는 수동 라우팅 방법 또는 리프 라우터에서 시작하여 팻트리 토폴로지를 따라 역순으로 순회하여 경로를 탐색하는 자동 라우팅 방법을 이용하여 라우팅 테이블을 구성할 수 있다.In step 910, the computer system may construct an interconnect for the discrete system using a layer-based topology. The computer system may create an interconnect connecting a plurality of routers by constructing a layer-based topology using a fat tree format. The computer system transmits an initialization command from the root router to the leaf router, clears the message queue of the root router as the root router initializes the leaf router information, initializes the state of the root router, and sends the initialized root router to the initialized root router. It is possible to configure a topology by initializing a root router to a leaf router through an operation of executing a state check to determine whether or not there is an abnormality, and registering information of routers connected to the interconnect. The computer system transmits a router ID assignment request packet to each router from a router connected to the interconnect, detects a newly connected leaf router in the root router as the transmitted router ID assignment request packet reaches the root router, and detects the detected leaf router. It allocates a router ID for , records the assigned router ID in a response packet, transmits it to the detected router, and stores the assigned router ID and router information in the root router. The computer system may configure a routing table using a manual routing method in which a route to a destination is directly specified or an automatic routing method in which a route is searched by traversing in reverse order following a fat tree topology starting from a leaf router.

단계(920)에서 컴퓨터 시스템은 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리할 수 있다. 컴퓨터 시스템은 인터커넥트의 리프 라우터에 의해 수행되는 풀 컨트롤러(Pool Controller)의 역할을 통해 개별분리 시스템의 구성요소들을 종류별로 분류함에 따라 풀을 구성하고, 구성된 풀에 분류된 구성요소들의 특성에 따라 풀을 관리할 수 있다. 컴퓨터 시스템은 풀 컨트롤러와 풀 컨트롤러에 포함된 구성요소들의 초기화를 통해 풀 초기화를 수행하고, 풀 컨트롤러에서 풀에 분류된 구성요소로부터 전송된 구성요소 ID 할당 요청에 따라 각 구성요소마다 구성요소 ID를 할당하고, 할당된 구성요소 ID를 포함한 응답 패킷을 구성요소에게 전송하고, 구성요소 ID 할당 요청과 관련된 패킷으로부터 획득된 구성요소의 정보를 저장하고, 저장된 구성요소의 정보를 상위 라우터에게 통보할 수 있다. 컴퓨터 시스템은 풀 컨트롤러에서 출발지 구성요소로부터 전송된 패킷을 이용하여 도착지 구성요소가 풀 컨트롤러에 구성된 풀에 포함되는지 여부를 확인하고, 확인을 통해 풀 컨트롤러에 구성된 풀에 도착지 구성요소가 존재할 경우, 출발지 구성요소로부터 전송된 패킷을 도착지 구성요소에 전달할 수 있다. 컴퓨터 시스템은 확인을 통해 풀 컨트롤러에 구성된 풀에 도착지 구성요소가 존재하지 않을 경우, 상위 라우터로 출발지 구성요소로부터 전송된 패킷을 전달할 수 있다. In step 920, the computer system may manage the components of the separate system through a plurality of routers included in the configured interconnect. The computer system forms a pool by classifying the components of the individual separation system by type through the role of the pool controller performed by the leaf router of the interconnect, and configures the pool according to the characteristics of the components classified in the configured pool. can manage The computer system performs pool initialization by initializing the pool controller and the components included in the pool controller, and obtains a component ID for each component according to the component ID assignment request transmitted from the components classified in the pool in the pool controller. Allocate, transmit a response packet including the assigned component ID to the component, store component information obtained from a packet related to the component ID allocation request, and notify the upper router of the stored component information. there is. The computer system uses the packet transmitted from the source component in the pool controller to check whether the destination component is included in the pool configured in the pool controller, and if the destination component exists in the pool configured in the pool controller through the check, the source component Packets sent from a component can be forwarded to the destination component. The computer system may forward the packet transmitted from the source component to the upper router if the destination component does not exist in the pool configured in the pool controller through confirmation.

단계(930)에서 컴퓨터 시스템은 인터커넥트에 포함된 복수의 라우터에 연결 가능한 보안 모니터를 이용하여 개별분리 시스템에 대한 이상 징후와 공격을 탐지할 수 있다. 컴퓨터 시스템은 보안 모니터에 연결된 저장장치를 읽어 위협 탐지 패턴을 로딩하여 보안 모니터를 초기화할 수 있다. 컴퓨터 시스템은 보안 모니터에 접근 키 정보를 저장하여 보안 모니터로 입력되는 패킷을 대상으로 접근 키 검증을 수행할 수 있다. 컴퓨터 시스템은 패킷 전체 혹은 지정된 영역의 CRC 값을 계산하고, 패킷의 필드에 저장된 CRC 해시값과 상기 계산된 CRC 값과 비교하여 CRC 검증을 수행할 수 있다. 컴퓨터 시스템은 패킷의 특정 패킷들의 조합과 값을 패턴으로 하여 비정상 패킷을 탐지할 수 있다. In step 930, the computer system may detect anomalies and attacks on the separate systems using a security monitor connectable to a plurality of routers included in the interconnect. The computer system may initialize the security monitor by reading the storage device connected to the security monitor and loading the threat detection pattern. The computer system may store access key information in the security monitor and perform access key verification for packets input to the security monitor. The computer system may perform CRC verification by calculating a CRC value of the entire packet or a designated area and comparing a CRC hash value stored in a field of the packet with the calculated CRC value. The computer system can detect an abnormal packet by using a combination and value of specific packets of the packet as a pattern.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. can be embodied in Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (15)

개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법에 있어서,
계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하는 단계; 및
상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리하는 단계
를 포함하고,
상기 구성하는 단계는,
팻트리 형식을 이용하여 계층 기반의 토폴로지를 구성함에 따라 루트 라우터 및 리프 라우터를 포함하는 복수의 라우터를 연결하는 인터커넥트를 생성하고, 상기 루트 라우터에서 상기 리프 라우터로 초기화 명령을 전송하고, 상기 루트 라우터가 저장하고 있는 리프 라우터 정보를 초기화함에 따라 상기 루트 라우터의 메시지 큐를 비운 후, 루트 라우터의 상태를 초기화하고, 상기 초기화된 루트 라우터에 대한 상태 점검을 실행하여 이상 여부를 판단하는 동작을 통해 루트 라우터부터 리프 라우터까지 초기화하고, 상기 인터커넥트에 연결된 라우터의 정보를 등록하여 토폴로지를 구성하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
In the interconnect design and implementation method for an individual separation system,
configuring an interconnect for an individual separation system using a layer-based topology; and
Managing components of an individual separation system through a plurality of routers included in the configured interconnect.
including,
The configuration step is
By constructing a layer-based topology using a fat tree format, an interconnect connecting a plurality of routers including a root router and a leaf router is created, an initialization command is transmitted from the root router to the leaf router, and the root router After clearing the message queue of the root router as the leaf router information stored in is initialized, the state of the root router is initialized, and the state of the initialized root router is checked to determine whether or not there is an abnormality in the root router. configuring a topology by initializing routers to leaf routers and registering information of routers connected to the interconnect;
Interconnect design and implementation method for an individual separation system comprising a.
제1항에 있어서,
상기 관리하는 단계는,
상기 인터커넥트에 포함된 복수의 라우터에 연결 가능한 보안 모니터를 이용하여 개별분리 시스템에 대한 이상 징후와 공격을 탐지하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 1,
The management step is
Detecting anomalies and attacks on individual systems using a security monitor connectable to a plurality of routers included in the interconnect.
Interconnect design and implementation method for an individual separation system comprising a.
삭제delete 삭제delete 제1항에 있어서,
상기 구성하는 단계는,
상기 인터커넥트에 연결된 라우터가 각각의 라우터에게 라우터 ID 할당 요청 패킷을 전송하고, 상기 전송된 라우터 ID 할당 요청 패킷이 루트 라우터에 도달됨에 따라 상기 루트 라우터에서 새롭게 연결된 리프 라우터를 감지하고, 상기 감지된 리프 라우터에 대한 라우터 ID를 할당하고, 상기 할당된 라우터 ID를 응답 패킷에 기록하여 상기 감지된 리프 라우터에 전송하고, 상기 루트 라우터에서 상기 할당된 라우터 ID와 라우터 정보를 저장하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 1,
The configuration step is
A router connected to the interconnect transmits a router ID allocation request packet to each router, detects a newly connected leaf router in the root router as the transmitted router ID allocation request packet reaches the root router, and detects the detected leaf router. Allocating a router ID for a router, recording the allocated router ID in a response packet and transmitting the detected leaf router to the detected leaf router, and storing the allocated router ID and router information in the root router.
Interconnect design and implementation method for an individual separation system comprising a.
제5항에 있어서,
상기 구성하는 단계는,
목적지까지의 경로가 지정되는 수동 라우팅 방법 또는 리프 라우터에서 시작하여 팻트리 토폴로지를 따라 역순으로 순회하여 경로를 탐색하는 자동 라우팅 방법을 이용하여 라우팅 테이블을 구성하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 5,
The configuration step is
Configuring a routing table using the manual routing method in which a route to the destination is specified or the automatic routing method in which a route is searched by traversing in reverse order along the fat tree topology starting from a leaf router
Interconnect design and implementation method for an individual separation system comprising a.
개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법에 있어서,
계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하는 단계; 및
상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리하는 단계
를 포함하고,
상기 관리하는 단계는,
상기 인터커넥트의 리프 라우터에 의해 수행되는 풀 컨트롤러(Pool Controller)의 역할을 통해 상기 개별분리 시스템의 구성요소들을 종류별로 분류함에 따라 풀을 구성하고, 상기 구성된 풀에 분류된 구성요소들의 특성에 따라 풀을 관리하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
In the interconnect design and implementation method for an individual separation system,
configuring an interconnect for an individual separation system using a layer-based topology; and
Managing components of an individual separation system through a plurality of routers included in the configured interconnect.
including,
The management step is
Through the role of the pool controller performed by the leaf router of the interconnect, a pool is formed by classifying the components of the individual separation system by type, and a pool is formed according to the characteristics of the components classified in the configured pool. steps to manage
Interconnect design and implementation method for an individual separation system comprising a.
제7항에 있어서,
상기 관리하는 단계는,
상기 풀 컨트롤러와 상기 풀 컨트롤러에 포함된 구성요소들의 초기화를 통해 풀 초기화를 수행하고, 상기 풀 컨트롤러에서 상기 풀에 분류된 구성요소로부터 전송된 구성요소 ID 할당 요청에 따라 각 구성요소마다 구성요소 ID를 할당하고, 상기 할당된 구성요소 ID를 포함한 응답 패킷을 상기 구성요소에게 전송하고, 상기 구성요소 ID 할당 요청과 관련된 패킷으로부터 획득된 구성요소의 정보를 저장하고, 상기 저장된 구성요소의 정보를 상위 라우터에게 통보하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 7,
The management step is
Pool initialization is performed by initializing the pool controller and the components included in the pool controller, and the component ID for each component according to the component ID allocation request transmitted from the components classified in the pool in the pool controller. Allocates, transmits a response packet including the assigned component ID to the component, stores component information obtained from a packet related to the component ID allocation request, and transfers the stored component information to a higher level. Steps to notify the router
Interconnect design and implementation method for an individual separation system comprising a.
제8항에 있어서,
상기 관리하는 단계는,
상기 풀 컨트롤러에서 출발지 구성요소로부터 전송된 패킷을 이용하여 도착지 구성요소가 상기 풀 컨트롤러에 구성된 풀에 포함되는지 여부를 확인하고, 상기 확인을 통해 상기 풀 컨트롤러에 구성된 풀에 상기 도착지 구성요소가 존재할 경우, 상기 출발지 구성요소로부터 전송된 패킷을 도착지 구성요소에 전달하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 8,
The management step is
The pool controller checks whether the destination component is included in the pool configured in the pool controller using the packet transmitted from the source component, and if the destination component exists in the pool configured in the pool controller through the check, , forwarding the packet transmitted from the source component to the destination component.
Interconnect design and implementation method for an individual separation system comprising a.
제9항에 있어서,
상기 관리하는 단계는,
상기 확인을 통해 상기 풀 컨트롤러에 구성된 풀에 상기 도착지 구성요소가 존재하지 않을 경우, 상위 라우터로 상기 출발지 구성요소로부터 전송된 패킷을 전달하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 9,
The management step is
When the destination component does not exist in the pool configured in the pool controller through the confirmation, forwarding the packet transmitted from the source component to an upper router.
Interconnect design and implementation method for an individual separation system comprising a.
제2항에 있어서,
상기 탐지하는 단계는,
상기 보안 모니터에 연결된 저장장치를 읽어 위협 탐지 패턴을 로딩하여 보안 모니터를 초기화하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 2,
The detection step is
Initializing the security monitor by reading a storage device connected to the security monitor and loading a threat detection pattern.
Interconnect design and implementation method for an individual separation system comprising a.
제2항에 있어서,
상기 탐지하는 단계는,
상기 보안 모니터에 접근 키 정보를 저장하여 상기 보안 모니터로 입력되는 패킷을 대상으로 접근 키 검증을 수행하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 2,
The detection step is
Storing access key information in the security monitor and verifying the access key for packets input to the security monitor
Interconnect design and implementation method for an individual separation system comprising a.
제2항에 있어서,
상기 탐지하는 단계는,
패킷 전체 혹은 지정된 영역의 CRC 값을 계산하고, 패킷의 필드에 저장된 CRC 해시값과 상기 계산된 CRC 값과 비교하여 CRC 검증을 수행하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 2,
The detection step is
Calculating the CRC value of the entire packet or a designated area and comparing the CRC hash value stored in the field of the packet with the calculated CRC value to perform CRC verification
Interconnect design and implementation method for an individual separation system comprising a.
제2항에 있어서,
상기 탐지하는 단계는,
패킷의 특정 패킷들의 조합과 값을 패턴으로 하여 비정상 패킷을 탐지하는 단계
를 포함하는 개별분리 시스템을 위한 인터커넥트 설계 및 구현 방법.
According to claim 2,
The detection step is
Detecting an abnormal packet by using a combination and value of specific packets of the packet as a pattern
Interconnect design and implementation method for an individual separation system comprising a.
개별분리 시스템을 위한 인터커넥트 설계 및 구현을 수행하는 컴퓨터 시스템에 있어서,
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
계층 기반의 토폴로지를 이용하여 개별분리 시스템을 위한 인터커넥트를 구성하고, 상기 구성된 인터커넥트에 포함된 복수의 라우터를 통해 개별분리 시스템의 구성요소들을 관리하고, 팻트리 형식을 이용하여 계층 기반의 토폴로지를 구성함에 따라 루트 라우터 및 리프 라우터를 포함하는 복수의 라우터를 연결하는 인터커넥트를 생성하고, 상기 루트 라우터에서 상기 리프 라우터로 초기화 명령을 전송하고, 상기 루트 라우터가 저장하고 있는 리프 라우터 정보를 초기화함에 따라 상기 루트 라우터의 메시지 큐를 비운 후, 루트 라우터의 상태를 초기화하고, 상기 초기화된 루트 라우터에 대한 상태 점검을 실행하여 이상 여부를 판단하는 동작을 통해 루트 라우터부터 리프 라우터까지 초기화하고, 상기 인터커넥트에 연결된 라우터의 정보를 등록하여 토폴로지를 구성하는
것을 특징으로 하는 컴퓨터 시스템.
A computer system that performs interconnect design and implementation for discrete systems,
at least one processor configured to execute computer readable instructions contained in memory;
including,
The at least one processor,
Configure an interconnect for an individual separation system using a layer-based topology, manage components of the individual separation system through a plurality of routers included in the configured interconnect, and configure a layer-based topology using a fat tree format Accordingly, an interconnect connecting a plurality of routers including a root router and a leaf router is created, an initialization command is transmitted from the root router to the leaf router, and leaf router information stored in the root router is initialized. After emptying the message queue of the root router, initializing the state of the root router, performing a state check on the initialized root router to determine if there is an abnormality, and initializing from the root router to the leaf routers, and Configures the topology by registering router information.
A computer system characterized in that.
KR1020210064081A 2021-01-05 2021-05-18 Design of interconnect architecture for secure disaggregated system KR102564871B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2021/010071 WO2022149680A1 (en) 2021-01-05 2021-08-02 Method for safely designing and implementing interconnect for disaggregated system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210001091 2021-01-05
KR20210001091 2021-01-05

Publications (2)

Publication Number Publication Date
KR20220099081A KR20220099081A (en) 2022-07-12
KR102564871B1 true KR102564871B1 (en) 2023-08-09

Family

ID=82420198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210064081A KR102564871B1 (en) 2021-01-05 2021-05-18 Design of interconnect architecture for secure disaggregated system

Country Status (1)

Country Link
KR (1) KR102564871B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231888B2 (en) * 2012-05-11 2016-01-05 Oracle International Corporation System and method for routing traffic between distinct InfiniBand subnets based on source routing
US9130858B2 (en) * 2012-08-29 2015-09-08 Oracle International Corporation System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment
KR102022626B1 (en) * 2017-08-21 2019-09-19 국방과학연구소 Apparatus and method for detecting attack by using log analysis

Also Published As

Publication number Publication date
KR20220099081A (en) 2022-07-12

Similar Documents

Publication Publication Date Title
US9684450B2 (en) Profile-based lifecycle management for data storage servers
US11936731B2 (en) Traffic priority based creation of a storage volume within a cluster of storage nodes
US10089128B2 (en) Application aware service policy enforcement and autonomous feedback-based remediation
CN109417496A (en) Automation services functional verification in virtual network environment
US10922112B2 (en) Application aware storage resource management
EP3956771B1 (en) Timeout mode for storage devices
US20190334990A1 (en) Distributed State Machine for High Availability of Non-Volatile Memory in Cluster Based Computing Systems
US20180205612A1 (en) Clustered containerized applications
Suminto et al. Pbse: A robust path-based speculative execution for degraded-network tail tolerance in data-parallel frameworks
US11615181B2 (en) Methods for managing verification and validation of third-party code and devices thereof
US20230205868A1 (en) Methods for managing verification and validation of third-party code and devices thereof
JP2014182576A (en) Configuration management device, configuration management method and configuration management program
JP6179119B2 (en) Management device, management method, and management program
US11726684B1 (en) Cluster rebalance using user defined rules
JP5186555B2 (en) Method, apparatus and computer program for implementing bandwidth capping at the logical port level for a shared Ethernet port
KR102564871B1 (en) Design of interconnect architecture for secure disaggregated system
WO2015019488A1 (en) Management system and method for analyzing event by management system
AU2021266891B2 (en) Fencing non-responding ports in a network fabric
JP6244496B2 (en) Server storage system management system and management method
WO2022149680A1 (en) Method for safely designing and implementing interconnect for disaggregated system
US20160269246A1 (en) Method and apparatus for managing computer system
RU2718215C2 (en) Data processing system and method for detecting jam in data processing system
US8996911B2 (en) Core file limiter for abnormally terminating processes
US8402177B2 (en) Inferring host storage topology

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right