KR101993875B1 - Method, system and computer program for host secretion in software defined networking environment - Google Patents

Method, system and computer program for host secretion in software defined networking environment Download PDF

Info

Publication number
KR101993875B1
KR101993875B1 KR1020170066846A KR20170066846A KR101993875B1 KR 101993875 B1 KR101993875 B1 KR 101993875B1 KR 1020170066846 A KR1020170066846 A KR 1020170066846A KR 20170066846 A KR20170066846 A KR 20170066846A KR 101993875 B1 KR101993875 B1 KR 101993875B1
Authority
KR
South Korea
Prior art keywords
server
virtual address
address
client
name
Prior art date
Application number
KR1020170066846A
Other languages
Korean (ko)
Other versions
KR20180130802A (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 KR1020170066846A priority Critical patent/KR101993875B1/en
Publication of KR20180130802A publication Critical patent/KR20180130802A/en
Application granted granted Critical
Publication of KR101993875B1 publication Critical patent/KR101993875B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 소프트웨어 정의 네트워킹에서의 서버 은닉 방법, 시스템 및 컴퓨터 프로그램에 관한 것이다. 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 클라이언트의 서버 은닉 방법에 있어서, 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록을 네임 서버에 요청하는 단계, 상기 네임 서버로부터 상기 서비스 네임 목록을 수신하는 단계, 사용자로부터 상기 서비스 네임 목록에 포함된 서비스 네임 중 어느 하나에 대한 선택 입력을 수신하는 단계, 상기 네임 서버에 상기 선택 입력에 대응되는 제 1 은닉 서버의 가상 주소를 요청하는 단계, 상기 네임 서버로부터 상기 제 1 은닉 서버의 가상 주소를 수신하는 단계, 상기 제 은닉 서버의 가상 주소를 상기 패킷의 목적지로 설정하여 상기 패킷을 전송하는 단계를 포함하는 것을 일 특징으로 한다. 본 발명에 의하면, 외부에 은닉 서버의 주소를 노출시키지 않고 데이터를 송수신 할 수 있으며, 외부에서 은닉 서버의 실제 주소와 가상 주소를 구분하기 어려워 외부 공격으로부터 서버를 보다 효과적으로 보호할 수 있다. The present invention relates to a server conceal method, system and computer program in software defined networking. The present invention provides a server concealment method of a client operating in a software defined networking environment, the method comprising: requesting a name server for a service name list including at least one service name of a concealed server; receiving the service name list from the name server Receiving a selection input for one of service names included in the service name list from a user, requesting a virtual address of a first hidden server corresponding to the selection input to the name server, Receiving a virtual address of the first concealment server from the first concealment server, and setting the virtual address of the concealment server as a destination of the packet, and transmitting the packet. According to the present invention, it is possible to transmit / receive data without exposing the address of the concealed server to the outside, and it is difficult to distinguish the actual address and the virtual address of the concealed server from the outside.

Figure R1020170066846
Figure R1020170066846

Description

소프트웨어 정의 네트워킹 환경에서의 서버 은닉 방법, 시스템 및 컴퓨터 프로그램{METHOD, SYSTEM AND COMPUTER PROGRAM FOR HOST SECRETION IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}METHOD, SYSTEM AND COMPUTER PROGRAM FOR HOST SECRETION IN SOFTWARE DEFINED NETWORKING ENVIRONMENT IN A SOFTWARE-DEFINED NETWORKING ENVIRONMENT

본 발명은 서버 은닉 방법, 시스템 및 컴퓨터 프로그램에 관한 것으로, 보다 자세하게는 소프트웨어 정의 네트워킹 환경에서의 서버 은닉 방법, 시스템 및 컴퓨터 프로그램에 관한 것이다. The present invention relates to a server concealment method, system and computer program, and more particularly to a server concealment method, system, and computer program in a software defined networking environment.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다. SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.Software Defined Networking (SDN) is a technology that manages all the network devices in the network by an intelligent central management system. In the SDN technology, a controller provided in a form of software can perform processing instead of a control operation related to the packet processing performed by itself in a conventional hardware type network device, so that various functions can be developed and given over the existing network structure. The SDN system generally comprises a controller server for controlling the entire network, a plurality of open flow switches controlled by the controller server for processing packets, and a host corresponding to a lower layer of the open flow switch. Here, the open flow switch is only responsible for transmitting and receiving packets, and routing, management, and control of the packets are all performed in the controller server. In other words, separating the data planes and control planes that form the network equipment is the basic structure of the SDN system.

한편, 공격의 대상이 되는 시스템 자체의 구성을 능동적이고 지속적으로 변화시킴으로써 공격자가 대상 시스템의 취약점 자체를 찾기 어렵게 하기 위한 전략을 MTD(Moving Target Defense)라고 하는데, SDN 환경에서는 컨트롤러가 패킷의 경로를 관리하므로, 컨트롤러를 활용하여 MTD를 구현할 수 있다. On the other hand, MTD (Moving Target Defense) is a strategy that makes it difficult for the attacker to find the vulnerability of the target system by actively and continuously changing the configuration of the attacking system itself. In the SDN environment, Therefore, the MTD can be implemented using the controller.

종래에 제안된 SDN 환경에서의 MTD 적용 기술 중 하나는 컨트롤러가 패킷 목적지의 가상 주소를 생성하고, 오픈플로우 스위치에 가상 주소를 목적지로 하는 플로우 룰을 전송함으로써 호스트의 실제 주소를 은닉하는 방법이다. 이러한 방법에 의하면, 네트워크 상에서 클라이언트의 주소를 은닉할 수 있는데, 클라이언트의 주소 만 은닉될 뿐 서버의 주소는 네트워크 상에 그대로 노출된다는 문제가 있다. 이러한 방법은 실제 네트워크 기반 공격의 타겟이 서버가 된다는 점에서 효과성이 떨어진다. 네트워크 보안에서 가장 문제가 되는 디도스(Ddos)나 웜 확산(worm propagation)의 경우, 공격 시 피해가 큰 서버를 공격 대상으로 삼는 것이 일반적이기 때문이다. One of the MTD application techniques in the SDN environment proposed in the past is a method of concealing the actual address of the host by generating a virtual address of the packet destination and sending a flow rule with the virtual address as a destination to the open flow switch. According to this method, the address of the client can be concealed on the network, and only the address of the client is hidden but the address of the server is exposed on the network. This method is ineffective in that the target of a real network-based attack becomes a server. In the case of Ddos or worm propagation, which is the most problematic in network security, it is common to attack a server with a large amount of damage in an attack.

한편, 종래의 호스트 은닉 방법 중 DNS 서버를 이용하는 방법은 도메인 네임이 없으면 통신이 불가능하고, 컨트롤러가 IP 변환, 플로우 인스톨, DNS 쿼리/응답을 모두 관리하기 때문에 컨트롤러 부하가 과중될 수 밖에 없다. 또한, 이러한 방법은 가상 IP를 현재 미 사용중인 IP 대역에서 설정하고, 중복되는 가상 IP를 허용하지 않는다는 한계를 가지고 있다. On the other hand, in the method of using the DNS server among the conventional host concealment methods, communication can not be performed without the domain name, and the controller is overloaded because the controller performs IP conversion, flow installation, and DNS query / response. In addition, this method has the limitation that the virtual IP is set in the currently unused IP band, and the virtual IP which is not overlapped is not allowed.

따라서 이러한 기존의 호스트 은닉 방법의 문제를 해결하고, 한계를 극복할 수 있는 서버 은닉 기술이 요구된다. Therefore, there is a need for server hiding technology that solves the problem of the conventional host hiding method and overcomes the limit.

본 발명은 전술한 문제점을 해결하기 위한 것으로서, 외부에 은닉 서버의 주소를 노출시키지 않고 데이터를 송수신 할 수 있는 서버 은닉 방법, 시스템 및 컴퓨터 프로그램을 제공하는 것을 일 목적으로 한다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a server concealment method, system, and computer program capable of transmitting and receiving data without exposing the address of a concealed server to the outside.

또한, 본 발명은 은닉 서버와 호스트 클라이언트에 별도의 라이브러리나 모듈을 설치할 필요가 없고, 은닉 서버 또는 클라이언트를 수정하지 않고도 네트워크 상에서 은닉 서버의 정보를 효과적으로 은닉하는 것을 일 목적으로 한다. In addition, it is not necessary to install a separate library or module in the hidden server and the host client, and the object of the present invention is to effectively hide information of the hidden server on the network without modifying the hidden server or client.

또한, 본 발명은 호스트의 정책 위반 여부를 탐지할 수 있고, 네트워크 전역에서 서버의 실제 주소를 은닉할 수 있는 서버 은닉 방법 및 시스템을 제공하는 것을 일 목적으로 한다.It is another object of the present invention to provide a server concealment method and system capable of detecting violation of a policy of a host and concealing an actual address of the server throughout the network.

또한, 본 발명은 호스트에 서비스 네임을 제공하고, 호스트 정보를 이용하여 은닉 서버의 가상 주소를 생성하는 네임 서버를 이용하여 보다 안정적이고 효과적으로 서버를 은닉하는 것을 일 목적으로 한다. Another object of the present invention is to provide a service name to a host and hiding the server more stably and effectively using a name server that generates a virtual address of a hidden server using host information.

이러한 목적을 달성하기 위한 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 클라이언트의 서버 은닉 방법에 있어서, 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록을 네임 서버에 요청하는 단계, 상기 네임 서버로부터 상기 서비스 네임 목록을 수신하는 단계, 사용자로부터 상기 서비스 네임 목록에 포함된 서비스 네임 중 어느 하나에 대한 선택 입력을 수신하는 단계, 상기 네임 서버에 상기 선택 입력에 대응되는 제 1 은닉 서버의 가상 주소를 요청하는 단계, 상기 네임 서버로부터 상기 제 1 은닉 서버의 가상 주소를 수신하는 단계, 상기 제 1 은닉 서버의 가상 주소를 상기 패킷의 목적지로 설정하여 상기 패킷을 전송하는 단계를 포함하는 것을 일 특징으로 한다. According to another aspect of the present invention, there is provided a server concealment method for a client operating in a software defined networking environment, the method comprising: requesting a name server for a service name list including at least one service name of a concealed server; Receiving a selection input for one of service names included in the service name list from a user, receiving a virtual address of a first hidden server corresponding to the selection input from the name server, Receiving the virtual address of the first concealment server from the name server, and setting the virtual address of the first concealment server as the destination of the packet to transmit the packet .

또한, 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 네임 서버의 서버 은닉 방법에 있어서, 임의의 클라이언트로부터 서비스 네임 목록 요청을 수신하면, 상기 클라이언트에 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록을 전송하는 단계, 상기 클라이언트로부터 제 1 서비스 네임을 포함하는 가상 주소 요청이 수신되면, 상기 제 1 서비스 네임에 대응되는 제 1 은닉 서버의 가상 주소를 생성하는 단계, 상기 제 1 은닉 서버의 가상 주소를 상기 클라이언트에 전송하는 단계, 상기 클라이언트의 식별 정보, 상기 제 1 서비스 네임 및 상기 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성하여 컨트롤러에 전송하는 단계를 포함하는 것을 일 특징으로 한다. In addition, the present invention provides a server concealment method of a name server operating in a software defined networking environment, comprising the steps of: receiving a service name list request from an arbitrary client, receiving a service name list including at least one service name of the concealment server Generating a virtual address of a first hidden server corresponding to the first service name when a virtual address request including a first service name is received from the client, And transmitting the generated management information to the client; and generating host management information including the identification information of the client, the first service name, and the virtual address of the first secret server, and transmitting the generated management information to the controller.

또한 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 컨트롤러의 서버 은닉 방법에 있어서, 임의의 네트워크 장비로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 상기 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 단계, 상기 실제 주소를 이용하여 상기 패킷-인 메시지에 대응되는 패킷의 경로를 계산하는 단계, 상기 가상 주소를 포함하며, 상기 계산된 경로에 따라 상기 패킷의 처리를 정의하는 플로우 룰을 생성하는 단계, 상기 컨트롤러와 연결된 하나 이상의 네트워크 장비에 상기 플로우 룰을 전송하는 단계를 포함하며, 상기 매핑 정보는 상기 가상 주소를 생성하는 네임 서버로부터 수신되는 호스트 관리 정보에 의해 갱신되며, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 상기 은닉 서버의 서비스 네임에 대응하는 상기 은닉 서버의 실제 주소 및 상기 은닉 서버의 가상 주소를 포함하는 것을 일 특징으로 한다. The present invention also provides a server concealment method for a controller operating in a software defined networking environment, the method comprising: receiving a packet-in message having a virtual address as a destination from an arbitrary network equipment; Comprising the steps of: identifying an actual address of a concealment server to which the concealment server is connected; calculating a path of a packet corresponding to the packet-in message using the actual address; And transmitting the flow rule to one or more network devices connected to the controller, wherein the mapping information is managed by host management information received from a name server generating the virtual address And the virtual address of the hidden server is updated It characterized in that it comprises one virtual address of the hidden server's physical address, and the hidden server of corresponding to the specific information, service name of the hidden server.

또한 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 네임 서버에 있어서, 임의의 클라이언트로부터 제 1 서비스 네임을 포함하는 가상 주소 요청이 수신되면, 상기 클라이언트의 식별 정보 및 상기 제 1 서비스 네임을 이용하여 상기 제 1 서비스 네임에 대응하는 제 1 은닉 서버의 가상 주소를 생성하는 가상 주소 생성부, 상기 클라이언트의 식별 정보, 상기 제 1 서비스 네임 및 상기 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성하는 호스트 관리부, 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록 및 호스트 관리 정보를 저장하는 저장부, 상기 서비스 네임 목록 및 상기 가상 주소를 상기 클라이언트에 전송하며, 상기 호스트 관리 정보를 컨트롤러에 전송하는 통신부를 포함하는 것을 일 특징으로 한다. In addition, the present invention provides a name server operating in a software defined networking environment, wherein, when a virtual address request including a first service name is received from an arbitrary client, A virtual address generating unit for generating a virtual address of the first hidden server corresponding to the first service name, host management information including the identification information of the client, the first service name, and the virtual address of the first hidden server A host management unit, a storage unit for storing a service name list and host management information including at least one service name of the hidden server, the service name list and the virtual address to the client, and transmits the host management information to the controller And a communication unit.

또한 본 발명은 소프트웨어 정의 네트워킹 환경에서 동작하는 컨트롤러에 있어서, 임의의 네트워크 장비로부터 패킷-인 메시지를 수신하고, 하나 이상의 네트워크 장비에 플로우 룰을 전송하며, 가상 주소를 생성하는 네임 서버로부터 호스트 관리 정보를 수신하는 통신부, 상기 네임 서버로부터 수신되는 호스트 관리 정보를 이용하여 매핑 정보를 생성하고, 상기 매핑 정보를 이용하여 플로우 룰을 생성하는 애플리케이션, 상기 매핑 정보를 저장하는 저장부를 포함하며, 상기 애플리케이션은 상기 네트워크 장비로부터 제 1 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 상기 제 1 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 주소 매핑부, 상기 실제 주소를 이용하여 상기 패킷-인 메시지에 대응되는 패킷의 경로를 계산하고 경로 계산부, 상기 제 1 가상 주소를 포함하며, 상기 계산된 경로에 따라 상기 패킷의 처리를 정의하는 플로우 룰을 생성하는 플로우 룰 생성부를 포함하며, 상기 매핑 정보는 상기 호스트 관리 정보에 의해 갱신되며, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 상기 은닉 서버의 서비스 네임에 대응하는 상기 은닉 서버의 실제 주소, 및 상기 은닉 서버의 가상 주소를 포함하는 것을 일 특징으로 한다. The present invention also relates to a controller operating in a software defined networking environment, the controller comprising: means for receiving a packet-in message from any network device, sending a flow rule to one or more network devices, An application for generating mapping information using the host management information received from the name server and generating a flow rule using the mapping information and a storage unit for storing the mapping information, An address mapping unit for confirming an actual address of a hidden server corresponding to the first virtual address using previously stored mapping information when receiving a packet-in message having a first virtual address as a destination from the network equipment, Corresponding to the packet-in message And a flow rule generation unit for generating a flow rule that defines a processing of the packet in accordance with the calculated route, the mapping information including the first virtual address, And a virtual address of the hidden server, the virtual address of the hidden server being updated by the host management information, the identification information of the client requesting the virtual address of the hidden server, the actual address of the hidden server corresponding to the service name of the hidden server, do.

전술한 바와 같은 본 발명에 의하면, 외부에 은닉 서버의 주소를 노출시키지 않고 데이터를 송수신 할 수 있다. According to the present invention as described above, data can be transmitted and received without exposing the address of the hidden server to the outside.

또한, 본 발명에 의하면, 외부에서 은닉 서버의 실제 주소와 가상 주소를 구분하기 어려워 외부 공격으로부터 서버를 보다 효과적으로 보호할 수 있다. In addition, according to the present invention, it is difficult to distinguish between an actual address and a virtual address of the hidden server from the outside, thereby effectively protecting the server from external attacks.

또한, 본 발명에 의하면, 은닉 서버와 호스트 클라이언트에 별도의 라이브러리나 모듈을 설치할 필요가 없고, 은닉 서버 또는 클라이언트를 수정하지 않고도 네트워크 상에서 은닉 서버의 정보를 효과적으로 은닉할 수 있다. Further, according to the present invention, it is not necessary to install a separate library or module in the hidden server and the host client, and information of the hidden server can be effectively hidden on the network without modifying the hidden server or client.

또한, 본 발명에 의하면, 호스트의 정책 위반 여부를 탐지할 수 있고, 네트워크 전역에서 서버의 실제 주소를 은닉할 수 있다.In addition, according to the present invention, it is possible to detect whether a host is violating a policy, and to hide the actual address of the server from across the network.

또한, 본 발명은 호스트에 서비스 네임을 제공하고, 호스트 정보를 이용하여 은닉 서버의 가상 주소를 생성하는 네임 서버를 이용하므로, 본 발명에 의하면 보다 안정적이고 효율적으로 서버를 은닉할 수 있다. In addition, the present invention uses a name server that provides a service name to a host and generates a virtual address of a hidden server using host information, so that the server can be stably and efficiently concealed according to the present invention.

도 1은 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 따른 컨트롤러를 설명하기 위한 블록도,
도 3은 본 발명의 일 실시 예에 따른 네임 서버를 설명하기 위한 블록도,
도 4는 본 발명의 일 실시 예에 따른 서버 은닉 방법을 설명하기 위한 순서도,
도 5는 본 발명의 일 실시 예에 따른 서버 은닉 방법을 설명하기 위한 도면,
도 6은 본 발명의 일 실시 예에 따른 서버 은닉 방법을 실행하기 위하여 클라이언트, 네임 서버 및 컨트롤러 간 통신을 설명하기 위한 도면,
도 7은 본 발명의 일 실시 예에 따른 서버 은닉 방법을 설명하기 위한 도면,
도 8은 본 발명의 서버 은닉 방법을 실행함에 있어서, 호스트 간 통신의 일 실시 예를 설명하기 위한 도면,
도 9는 본 발명의 서버 은닉 방법을 실행함에 있어서, 호스트 간 통신의 일 실시 예를 설명하기 위한 도면이다.
1 is a diagram illustrating a software defined networking environment in accordance with one embodiment of the present invention;
2 is a block diagram illustrating a controller according to an embodiment of the present invention.
3 is a block diagram illustrating a name server according to an embodiment of the present invention.
FIG. 4 is a flowchart illustrating a server concealment method according to an embodiment of the present invention. FIG.
5 is a view for explaining a server concealment method according to an embodiment of the present invention;
FIG. 6 is a diagram illustrating communication between a client, a name server, and a controller to execute a server concealment method according to an embodiment of the present invention;
7 is a view for explaining a server concealing method according to an embodiment of the present invention;
8 is a diagram for explaining an embodiment of host-to-host communication in executing the server concealment method of the present invention,
9 is a diagram for explaining an embodiment of host-to-host communication in executing the server concealment method of the present invention.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다. The above and other objects, features, and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, which are not intended to limit the scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components, and all combinations described in the specification and claims can be combined in any manner. It is to be understood that, unless the context requires otherwise, references to singular forms may include more than one, and references to singular forms may also include plural forms.

본 발명의 명세서에서 ‘플로우 룰’의 용어는 해당 업계의 통상의 기술자 입장에서 소프트트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 나아가 ‘플로우 룰’의 용어는 오픈플로우 스위치에 대해서는 상기 네트워크 정책에 따른 플로우 엔트리를 의미하는 것으로 해석될 수 있다. 나아가 본 명세서에서 플로우 룰의 전송 또는 변경(updating)은 신 플로우 룰의 추가(add), 구 플로우 룰의 삭제(delete) 또는 수정(modify)을 포함하는 개념으로 이해되어야 한다.The term 'flow rule' in the description of the present invention should be understood to mean a network policy applied by a controller server in a software definition network in the ordinary artisan's field. Further, the term " flow rule " can be interpreted to mean a flow entry according to the network policy for an open flow switch. Further, the transmission or updating of a flow rule in this specification should be understood as including the addition of a new flow rule, the deletion or modification of an old flow rule.

또한, 본 명세서에 기재된 ‘주소’는 호스트, 디바이스 또는 프로세스를 식별하기 위한 것으로, 네트워크 계층에서의 호스트 주소인 IP주소, 호스트 내의 프로세스 주소인 포트 주소와 같은 논리 주소를 포함하며, MAC 주소와 같은 물리 주소를 포함하는 것으로 이해될 수 있다. 또한, 본 명세서의 ‘가상 주소’는 네임 서버가 가상 주소 풀에서 할당하거나 새롭게 생성한 가상의 주소 정보로서, ‘실제 주소’와 구분되는 개념으로 이해되어야 한다. The 'address' described herein is for identifying a host, a device, or a process. The address includes a logical address such as an IP address, which is a host address in a network layer, and a port address, which is a process address in a host. It may be understood to include a physical address. Also, the 'virtual address' in the present specification should be understood as a concept that the name server is allocated in the virtual address pool or newly generated virtual address information and is distinguished from the 'real address'.

도 1은 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워킹 환경(Software Defined Networking Environment)는 컨트롤러(100), 네트워크 장비(200) 및 호스트(300,400)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300,400)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.1 is a diagram for explaining a software defined networking environment according to an embodiment of the present invention. Referring to FIG. 1, a software defined networking environment may include a controller 100, network equipment 200, and hosts 300 and 400. The network equipment 200 and the hosts 300 and 400 may be referred to as a node and a link may mean a connection between two nodes.

컨트롤러(100)은 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)은 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 애플리케이션(소프트웨어, 130)가 탑재된 형태로 구현될 수 있다. The controller 100 functions to manage the network equipment 200 and centrally manages and controls the plurality of network equipment 200. Specifically, the controller 100 is an application (software, firmware, etc.) that performs functions such as topology management, path management related to packet processing, link discovery, and packet flow in- 130 may be mounted.

스위치(200)는 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 도면에 도시된 스위치(200)는 패킷 처리를 위한 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 라우터 등과 같은 네트워크 장비로도 교환 가능하다. 다만 설명의 편의를 위해 네트워크 장비가 스위치(200)인 경우를 도시하였으며, 본 발명의 일 실시 예에 따른 스위치(200)는 오픈플로우 스위치(200)인 경우를 중심으로 설명한다.The switch 200 functions to process packets under the control of the controller 100. The switch 200 shown in the figure can be exchanged with a network device such as a mobile communication base station, a base station controller, a gateway device, a router, etc. for packet processing. For convenience of explanation, a network device is a switch 200, and a switch 200 according to an embodiment of the present invention will be described with reference to an open flow switch 200.

소프트웨어 정의 네트워크에서 컨트롤러(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러(100)과 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In the software-defined network, the controller 100 and the open flow switch 200 exchange information with each other, and the open flow protocol is widely used as a protocol for the exchange. That is, the open flow protocol is a standard that allows the controller 100 and the open flow switch 200 to communicate with each other.

보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)과 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러(100) 간 통신 채널이며, 컨트롤러(100)과 오픈플로우 스위치(200)간 교환되는 정보는 암호화된다.More specifically, the open flow switch 200 is largely divided into a software layer and a hardware layer. The software layer exchanges information with the controller 100 through a secure channel. The secure channel is a communication channel between the open flow switch 200 and the remote controller 100. Information exchanged between the controller 100 and the open flow switch 200 is encrypted.

상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다.The hardware layer has a flow table that defines and processes packets and includes statistical information related to the packets. The flow table includes a flow rule that defines packet processing. The flow rule is generated by a flow mode message (Flow-Mode Message) generated by the controller 100 and transmitted to the open flow switch 200 Added, modified or deleted. The open flow switch 200 processes the packet with reference to the flow table.

상기 플로우 테이블은 크게 세 가지 정보, 즉 플로우를 정의하는 패킷 헤더 정보(Rule), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계 정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭한다.The flow table can largely include three pieces of information: packet header information (Rule) defining a flow, operation information (Action) defining processing of a packet, and stat information (Stats) per flow. Each row constituting the flow table is referred to as a flow entry.

호스트(300,400)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트(300) 및 서버(400)를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다. 본 명세서에서는 설명의 편의를 위해 임의의 서비스를 사용하는 사용자 또는 사용자의 단말인 클라이언트(300)와, 서비스를 제공하는 컴퓨터인 서버(400)를 구분하여 설명한다. 다만, 본 발명의 일 실시 예에 따른 클라이언트(300)의 구성 및 기능은 서버(400)를 포함하는 모든 종류의 호스트에 적용 가능하며, 본 발명은 네트워크에서 서버의 정보를 은닉하는 방법에 관한 것이므로, 본 명세서에서 서버(400)는 은닉 서버(400)로 명명되기도 한다. The hosts 300 and 400 refer to a terminal or the like corresponding to a lower layer of the open flow switch 200 and can be used to mean a client 300 and a server 400 collectively. The host 300 can generate a packet for sending to another host via a software defined network and transmit the packet to the open flow switch 200 through a port of the network interface. In this specification, for convenience of description, a client 300, which is a user using a certain service or a terminal of a user, and a server 400, which is a computer providing a service, are separately described. However, the configuration and functions of the client 300 according to an embodiment of the present invention are applicable to all kinds of hosts including the server 400, and the present invention relates to a method of concealing server information in a network Herein, the server 400 is also referred to as a concealed server 400.

일반적으로 클라이언트(300)가 서버(400)로 패킷을 송신하고자 할 때, 클라이언트(300)는 서버(400)의 식별 주소를 목적지로 설정하고, 클라이언트(300)의 식별 주소를 출발지로 하는 패킷을 생성하고, 패킷을 클라이언트(300)과 연결된 오픈플로우 스위치(200)로 전송한다. 오픈플로우 스위치(200)에 상기 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우에는 오픈플로우 스위치(200)가 해당 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200)에 상기 패킷에 관한 플로우 테이블이 없는 경우, 오픈플로우 스위치(200)는 컨트롤러(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다. 컨트롤러(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 상기 패킷의 처리를 규정하는 플로우 테이블을 생성하여 오픈플로우 스위치(200)로 전송하고, 오픈플로우 스위치(200)는 상기 플로우 테이블을 수신하고 이에 기반하여 상기 패킷을 처리한다. In general, when the client 300 desires to transmit a packet to the server 400, the client 300 sets the identification address of the server 400 as a destination, and transmits a packet having the identification address of the client 300 as its source And transmits the packet to the open flow switch 200 connected to the client 300. When the open flow switch 200 has a flow table defining the processing of the packet, the open flow switch 200 processes the packet according to the rule. However, when there is no flow table related to the packet in the open flow switch 200, the open flow switch 200 transmits a packet-in message informing the controller 100 of the packet flow. The controller 100 generates a flow table for specifying the processing of the packet according to an operator's policy or a predetermined algorithm and transmits the generated flow table to the open flow switch 200. The open flow switch 200 receives the flow table To process the packet.

본 발명은 클라이언트(300)가 서버(400)로 패킷을 송신할 때, 패킷의 전송 과정에서 서버(400)의 실제 주소가 노출되는 것을 방지할 수 있다. 서버(400)의 실제 주소는 컨트롤러(100)에만 저장되어 있으며, 컨트롤러(100)는 서버(400)의 실제 주소를 경로 계산에만 이용할 뿐, 각 오픈플로우 스위치(200)에 전송되는 플로우 룰에는 서버(400)의 가상 주소만 포함되어 네트워크의 외부 또는 내부에서 서버(400)의 정보를 알 수 없다. 또한, 각 오픈플로우 스위치(200)를 통해 전달되는 패킷에는 서버(400)의 가상 주소가 목적지로 설정되어 있는 바, 패킷이 탈취되더라도 탈취자는 서버(400)의 실제 주소를 포함한 서버(400) 정보를 확인할 수 없다. The present invention can prevent the actual address of the server 400 from being exposed in the process of transmitting the packet when the client 300 transmits the packet to the server 400. [ The actual address of the server 400 is stored only in the controller 100 and the controller 100 only uses the actual address of the server 400 for route calculation. Only the virtual address of the server 400 is included and information of the server 400 can not be known outside or inside the network. Since the virtual address of the server 400 is set as a destination in the packet transmitted through each open flow switch 200, even if the packet is captured, the deederator can receive the server 400 information including the actual address of the server 400 Can not be confirmed.

본 발명은 가상 주소를 생성하는 네임 서버(500)를 포함하는데, 네임 서버의 주소는 공개되는 정보 일 수 있으나, 정기 및/또는 비정기적으로 주소가 변경될 수 있다. 따라서 클라이언트(300)는 설치된 애플리케이션을 통해 네임 서버(500)에 접속할 수 있으며, 네임 서버(500)의 주소가 정기 및/또는 비정기적으로 변경되어지도록 설정된 경우, 상기 애플리케이션은 컨트롤러(100) 및 네임 서버(500)와 공유되는 주소 변경 알고리즘을 사용하여 네임 서버(500)에 접속할 수 있다. The present invention includes a name server 500 for generating a virtual address. The address of the name server may be public information, but the address may be periodically and / or irregularly changed. Accordingly, the client 300 can access the name server 500 through an installed application. If the address of the name server 500 is set to be periodically and / or irregularly changed, It is possible to access the name server 500 using an address change algorithm shared with the server 500.

이하에서는 보다 구체적으로 본 발명의 일 실시 예에 의한 컨트롤러(100)와 클라이언트(300), 네임 서버(500)의 동작을 살펴보기로 한다. Hereinafter, the operation of the controller 100, the client 300, and the name server 500 according to an embodiment of the present invention will be described in detail.

도 2를 참조하면, 본 발명의 일 실시 예에 의한 컨트롤러(100)는 애플리케이션(130), 통신부(150), 저장부(170)를 포함하며, 애플리케이션(130)은 주소매핑부(133), 경로 계산부(135), 플로우 룰 생성부(137)를 포함할 수 있다. 2, the controller 100 according to an embodiment of the present invention includes an application 130, a communication unit 150, and a storage unit 170. The application 130 includes an address mapping unit 133, A path calculation unit 135, and a flow rule generation unit 137. [

애플리케이션(130)은 상기 네임 서버로부터 수신되는 호스트 관리 정보를 이용하여 매핑 정보를 생성하고, 상기 매핑 정보를 이용하여 플로우 룰을 생성한다. 또한, 통신부(150)가 플로우 룰에 따른 플로우 테이블 변경 사항을 오픈플로우 스위치(200)에 전송하도록 제어한다. 애플리케이션(130)은 오픈플로우 스위치(200)에 플로우 테이블 변경을 위한 플로우-모드 메시지를 전송할 수 있으며, 일부 오픈플로우 스위치(200)에 전송되는 플로우-모드 메시지에는 셋-필드 액션(Set-field Action)이 포함될 수 있다. The application 130 generates mapping information using the host management information received from the name server, and generates a flow rule using the mapping information. Also, the communication unit 150 controls the flow-table change item to be transmitted to the open-flow switch 200 according to the flow rule. The application 130 may send a flow-mode message for the flow table change to the open flow switch 200 and the flow-mode message sent to some open flow switches 200 may include a set-field action ) May be included.

셋-필드 액션은 플로우 엔트리(또는 플로우 테이블을 구성하는 플로우 룰)의 헤더 필드를 변경(rewrite)하는 액션으로, 스위치(200)로 은닉 서버(400)의 가상 주소를 목적지로 하는 패킷이 수신되면, 패킷 헤더 필드의 목적지를 은닉 서버(400)의 실제 주소로 변경함으로써, 최종적으로 패킷이 은닉 서버(400)에 정확하게 전송될 수 있도록 한다. The set-field action is an action for rewriting the header field of the flow entry (or the flow rule constituting the flow table). When the switch 200 receives a packet whose destination is the virtual address of the hidden server 400 , And changes the destination of the packet header field to the actual address of the concealment server 400 so that the packet can be finally transmitted to the concealment server 400 correctly.

주소 매핑부(133)는 클라이언트(300)로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인한다. When the address mapping unit 133 receives the packet-in message having the virtual address as a destination from the client 300, the address mapping unit 133 identifies the actual address of the hidden server corresponding to the virtual address using the stored mapping information.

여기서 매핑 정보는 호스트 관리 정보에 의해 갱신되는 정보로, 은닉 서버의 가상 주소를 요청한 클라이언트(300)의 식별 정보, 은닉 서버(400)의 서비스 네임에 대응하는 은닉 서버(400)의 실제 주소, 및 은닉 서버(400)의 가상 주소를 포함할 수 있다. The mapping information is information updated by the host management information. The mapping information includes identification information of the client 300 requesting the virtual address of the hidden server, the actual address of the hidden server 400 corresponding to the service name of the hidden server 400, The virtual address of the hidden server 400 may be included.

호스트 관리 정보는 네임 서버(500)에서 생성되어 수신되는 정보로, 은닉 서버(400)의 가상 주소를 요청한 클라이언트(300)의 식별 정보, 은닉 서버(400)의 서비스 네임, 은닉 서버의 가상 주소를 포함할 수 있다. The host management information is information generated and received by the name server 500 and includes identification information of the client 300 requesting the virtual address of the hidden server 400, service name of the hidden server 400, .

경로 계산부(135)는 은닉 서버(400)의 실제 주소를 이용하여 패킷-인 메시지에 대응되는 패킷의 경로를 계산한다. 경로 계산부(135)는 패킷의 목적지가 네임 서버(500)이면, 네임 서버(500)의 실제 주소를 이용하여 패킷의 경로를 계산한다. The route calculation unit 135 calculates the route of the packet corresponding to the packet-in message using the actual address of the concealment server 400. [ If the destination of the packet is the name server 500, the path calculation unit 135 calculates the path of the packet using the actual address of the name server 500. [

플로우 룰 생성부(137)는 가상 주소를 포함하며, 계산된 경로에 따라 패킷의 처리를 정의하는 플로우 룰을 생성한다. 실제 주소를 이용하여 계산된 경로를 따르되, 플로우 룰에 포함되는 목적지에 실제 주소 대신 가상 주소가 포함되도록 플로우 룰을 생성함으로써 네트워크 상에서 은닉 서버(400)의 실제 주소가 노출되지 않도록 한다. The flow rule generation unit 137 includes a virtual address, and generates a flow rule that defines the processing of the packet according to the calculated route. A flow rule is generated so as to include the virtual address in place of the actual address in the destination included in the flow rule following the path calculated using the actual address so that the actual address of the hidden server 400 is not exposed on the network.

통신부(150)는 오픈플로우 스위치(200)로부터 서버의 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하고, 생성되는 플로우 룰을 컨트롤러(100)가 관리하는 하나 이상의 오픈플로우 스위치(200)에 전송한다. 보다 구체적으로는 플로우 룰에 따른 플로우 테이블 변경 사항을 전송하며, 컨트롤러(100)는 플로우 모드 메시지(Flow-Mod Message)를 이용하여 플로우 테이블 변경 사항을 전송할 수 있다.The communication unit 150 receives a packet-in message having a virtual address of the server as a destination from the open flow switch 200 and transmits the generated flow rule to one or more open flow switches 200 managed by the controller 100 do. More specifically, the controller 100 transmits a flow-table change according to a flow rule, and the controller 100 can transmit a flow-table change using a flow-mode message.

오픈플로우 스위치(200)는 컨트롤러(100)에서 수신한 플로우 모드 메시지에 따라 플로우 테이블에 포함된 플로우 룰을 수정, 삭제할 수 있고, 플로우 테이블에 새로운 플로우 룰을 추가 할 수 있다. 그리고 오픈플로우 스위치(200)는 변경된 플로우 테이블, 즉 가상 주소를 포함하는 플로우 룰을 참조하여 패킷을 처리할 수 있다. The open flow switch 200 can modify and delete the flow rules included in the flow table according to the flow mode message received by the controller 100 and add a new flow rule to the flow table. Then, the open flow switch 200 can process the packet with reference to the flow table including the changed flow table, that is, the flow rule including the virtual address.

또한 통신부(150)는 가상 주소를 생성하는 네임 서버로부터 호스트 관리 정보를 수신할 수 있다. Also, the communication unit 150 may receive the host management information from the name server that generates the virtual address.

저장부(170)는 애플리케이션(130)의 상태와 애플리케이션(130)의 운영에 필요한 정보, 컨트롤러(100)가 스위치(200)에 전송한 명령, 스위치(200)의 상태 등을 포함하는 다양한 정보를 저장한다. 특히, 본 발명의 일 실시 예에서 저장부(170)는 매핑 정보를 저장할 수 있다. 저장부(170)는 도면에 도시된 바와 같이 컨트롤러(100)에 포함될 수도 있으나, 분산 저장부로 구현되거나 외부 저장부를 활용할 수도 있다. The storage unit 170 stores various information including the state of the application 130 and information necessary for the operation of the application 130, the command sent by the controller 100 to the switch 200, the state of the switch 200, . In particular, in one embodiment of the present invention, the storage unit 170 may store mapping information. The storage unit 170 may be included in the controller 100 as shown in the figure, but may be implemented as a distributed storage unit or an external storage unit.

도 3은 본 발명의 일 실시 예에 따른 네임 서버(500)를 설명하기 위한 블록도이다. 도 3을 참조하면, 본 발명의 일 실시 예에 따른 네임 서버(500)는 가상 주소 생성부(510), 호스트 관리부(530), 통신부(550), 저장부(570)를 포함할 수 있다. 3 is a block diagram illustrating a name server 500 according to an embodiment of the present invention. 3, the name server 500 according to an exemplary embodiment of the present invention may include a virtual address generator 510, a host manager 530, a communication unit 550, and a storage unit 570.

가상 주소 생성부(510)는 임의의 클라이언트로부터 제 1 서비스 네임을 포함하는 가상 주소 요청이 수신되면, 클라이언트의 식별 정보 및 제 1 서비스 네임을 이용하여 제 1 서비스 네임에 대응하는 제 1 은닉 서버의 가상 주소를 생성한다. When a virtual address request including a first service name is received from an arbitrary client, the virtual address generating unit 510 generates a virtual address using the identification information of the client and the first service name, Create a virtual address.

본 명세서에서 '가상 주소의 생성'은 IP Pool과 같은 가상의 주소 풀을 생성하고 가상 주소 풀 내에서 일 가상 주소를 할당(assigning)하는 방법과 기 설정된 알고리즘에 따라 가상 주소를 생성(generating)하는 방법을 모두 포함하는 의미로 사용되었다.In this specification, 'generating a virtual address' is a method of generating a virtual address pool such as an IP pool, assigning one virtual address in a virtual address pool, and generating a virtual address according to a predetermined algorithm It was used in a sense to include both methods.

가상 주소 생성부(510)는 호스트 관리 정보에 클라이언트가 네임 서버에 접속한 시각을 나타내는 접속 정보가 포함된 경우, 접속 정보를 이용하여 클라이언트의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단할 수 있다. When the host management information includes the access information indicating the time when the client accesses the name server, the virtual address generator 510 uses the access information to determine whether the difference between the client's access time and the current access time is greater than or equal to a preset virtual address It can be determined whether or not the change period is within the change period.

가상 주소 생성부(510)는 클라이언트(300)의 기 접속 시각과 현재 접속 시각의 차이가 가상 주소 변경 주기보다 작으면 기 생성된 주소를 제 1 은닉 서버의 가상 주소로 유지하고, 차이가 가상 주소 변경 주기보다 크면 새로운 주소를 제 1 은닉 서버의 가상 주소로 생성할 수 있다. If the difference between the connection time of the client 300 and the current connection time is less than the virtual address change period, the virtual address generation unit 510 holds the generated address as the virtual address of the first hidden server, If the change period is larger than the change period, the new address can be generated as the virtual address of the first hidden server.

호스트 관리부(530)는 클라이언트의 식별 정보, 제 1 서비스 네임 및 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성한다. 호스트 관리 정보는 클라이언트가 네임 서버에 접속한 시각을 나타내는 접속 정보를 더 포함할 수 있으며, 호스트 관리부(530)는 접속 정보를 이용하여 기 설정된 시간 동안 클라이언트의 접속이 없는 것으로 판단되면 호스트 관리 정보를 삭제할 수 있다. The host management unit 530 generates host management information including the identification information of the client, the first service name, and the virtual address of the first secret server. The host management information may further include connection information indicating a time when the client accesses the name server. If the host management unit 530 determines that there is no client connection for a predetermined period of time using the connection information, Can be deleted.

통신부(550)는 서비스 네임 목록 및 가상 주소를 클라이언트에 전송하며, 호스트 관리 정보를 컨트롤러에 전송할 수 있다. The communication unit 550 may transmit the service name list and the virtual address to the client, and may transmit the host management information to the controller.

예를 들어, 네임 서버(500)는 저장부(570)에 서비스 네임 목록을 요청한 클라이언트(300)의 출발지 IP, 요청 URL과 같은 서비스 네임, 해당 서비스 네임이 가리키는 은닉 서버(400)의 가상 IP, 접속 시간 정보를 호스트 관리 정보에 포함시켜 저장부(570)에 저장할 수 있는데, 통신부(550)는 새로운 클라이언트(300)가 저장부(570)에 저장될 때 마다 해당 정보를 컨트롤러(100)로 전송할 수 있다. For example, the name server 500 stores a service name such as a source IP address and a request URL of the client 300 requesting the service name list in the storage unit 570, a virtual IP address of the concealment server 400 indicated by the service name, The connection time information may be included in the host management information and stored in the storage unit 570. The communication unit 550 transmits the information to the controller 100 every time a new client 300 is stored in the storage unit 570 .

이는 컨트롤러(100)가 은닉 서버(400)의 가상 IP와 실제 IP 주소를 매핑할 수 있도록 하기 위한 것으로, 컨트롤러(100)는 은닉 서버(400)에서 수신한 호스트 관리 정보를 이용하여 매핑 정보를 생성할 수 있다. The controller 100 generates mapping information using the host management information received from the concealment server 400. That is, the controller 100 generates mapping information using the host management information received from the concealment server 400 can do.

저장부(570)는 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록과 호스트 관리 정보를 저장할 수 있다. The storage unit 570 may store a service name list including at least one service name of the hidden server and host management information.

이하에서는 도 4 내지 도 9를 참조하며, 본 발명의 서버 은닉 방법의 실시 예를 설명하기로 한다. Hereinafter, an embodiment of the server concealment method of the present invention will be described with reference to FIGS. 4 to 9. FIG.

도 4는 본 발명의 일 실시 예에 따른 서버 은닉 방법을 설명하기 위한 순서도이다. 도 4를 참조하면, 서버에 패킷을 전송하고자 하는 클라이언트는 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록을 네임 서버에 요청할 수 있다(S100). 서비스 네임은 서버를 구분할 수 있는 가상의 식별 정보로, URL 형식으로 표현될 수도 있고, 숫자 또는 텍스트 형식을 가질 수도 있다. 예를 들어, 도 1에서 은닉 서버(400)의 서비스 네임은 www.test.com과 같은 가상 URL일 수 있으며, 클라이언트가 네임 서버에 서비스 네임 목록을 요청하면, 네임 서버는 미리 설정된 은닉 서버 1의 서비스 네임 ‘www.test.com’, 은닉 서버 2의 서비스 네임 ‘www.test2.com’, 은닉 서버 3의 서비스 네임 ‘server3’, 은닉 서버 A의 서비스 네임 URL A를 포함하는 서비스 네임 목록을 클라이언트에 전송할 수 있다.4 is a flowchart illustrating a server concealment method according to an embodiment of the present invention. Referring to FIG. 4, a client that wishes to transmit a packet to a server may request a name server that includes at least one service name of the hidden server from the name server (S100). A service name is virtual identification information capable of identifying a server, and may be expressed in a URL format or a numeric or text format. For example, in FIG. 1, the service name of the concealment server 400 may be a virtual URL such as www.test.com. When the client requests the service name list from the name server, The service name "www.test.com" of the hidden server 2, the service name "www.test2.com" of the hidden server 2, the service name "server3" of the hidden server 3, Lt; / RTI >

네임 서버가 서비스 네임 목록을 전송하면(S200), 클라이언트는 사용자로부터 서비스 네임 목록에 포함된 서비스 네임 중 어느 하나에 대한 선택 입력을 수신할 수 있다(S300). 위 예시에서 은닉 서버 A에 접속하고자 하는 사용자가 클라이언트에 설치된 애플리케이션을 이용하여 네 개의 서비스 네임 중 은닉 서버 A에 대응하는 URL A를 선택한 경우를 가정하자. 클라이언트(300)는 서비스 네임인 URL A를 포함하는 가상 주소 요청을 네임 서버에 전송할 수 있다(S400). When the name server transmits the service name list (S200), the client can receive a selection input for any one of the service names included in the service name list from the user (S300). In the above example, it is assumed that a user who wants to access the concealment server A selects the URL A corresponding to the concealed server A out of the four service names using an application installed in the client. The client 300 may send a virtual address request including URL A, which is a service name, to the name server (S400).

클라이언트는 단계 100 내지 단계 300을 수행하지 않고, 단계 400에서 기 저장되었거나 알려진 서비스 네임을 이용하여 가상 주소를 요청할 수 있다. The client can request the virtual address using the previously stored or known service name in step 400 without performing steps 100 to 300. [

또 다른 실시 예로, 은닉 서버가 하나만 존재하는 경우에는 별도의 가상 주소 요청 없이 네임 서버(500)에 접속하면 자동으로 가상 주소를 수신할 수도 있으므로, 이러한 경우에는 단계 100 내지 단계 400의 수행 없이 은닉 서버의 가상 주소를 수신하게 될 것이다(S600). According to another embodiment, when there is only one hidden server, a virtual address can be automatically received when accessing the name server 500 without a separate virtual address request. In this case, Lt; / RTI > (S600).

전술한 클라이언트(300)의 서비스 네임 목록 요청(S100) 및 가상 주소 요청(S400)은 클라이언트에 설치된 애플리케이션을 통해 이루어질 수 있으며, 이러한 애플리케이션은 인증된 호스트에 한하여 설치 및 동작 가능한 것일 수 있다. The service name list request (S100) and the virtual address request (S400) of the client 300 may be performed through an application installed in the client, and the application may be installed and operated only for the authorized host.

또한, 클라이언트(300)는 단계 100 또는 단계 400에서 네임 서버(500)의 가상 주소를 이용하여 네임 서버에 접속할 수 있는데, 네임 서버(500)의 가상 주소는 네임 서버(500)의 실제 주소에 랜덤값을 부가하여 생성되고, 랜덤값은 컨트롤러와 공유되는 알고리즘에 의해 결정되는 값일 수 있다. 예를 들어, 네임 서버(500)의 주소가 NS_RIP일 때, 클라이언트(300)가 네임 서버에 접속하기 위해 사용하는 네임 서버(500)의 가상 주소 NS_VIP = NS_RIP+랜덤값일 수 있으며, 이 랜덤값은 접속 시각, 출발지 주소(클라이언트 주소) 등을 이용하여 설정되는 값일 수 있다. In step 100 or 400, the client 300 may access the name server 500 using the virtual address of the name server 500. The virtual address of the name server 500 may be randomly allocated to the real address of the name server 500 Value, and the random value may be a value determined by an algorithm shared with the controller. For example, when the address of the name server 500 is NS_RIP, the virtual address NS_VIP = NS_RIP + of the name server 500 used by the client 300 to access the name server may be a random value, Time, origin address (client address), and the like.

네임 서버(500)는 단계 400에서 클라이언트로부터 가상 주소 요청을 수신하면 가상 주소 요청에 포함된 서비스 네임에 대응하는 은닉 서버(이하, 제 1 은닉 서버라 한다.)의 가상 주소를 생성할 수 있으며(S500), 이를 가상 주소를 요청한 클라이언트에 전송할 수 있다(S600).When the name server 500 receives the virtual address request from the client in step 400, the name server 500 can generate a virtual address of the hidden server corresponding to the service name included in the virtual address request (hereinafter, referred to as the first hidden server) S500), and can transmit the virtual address to the requesting client (S600).

네임 서버(500)가 가상 주소를 생성하는 단계 500을 보다 구체적으로 살펴보자. 네임 서버(500)는 CIDR을 이용하여 미리 설정된 IP 대역 내의 임의의 값을 할당할 수 있다. 특히, 네임 서버(500)는 네임 서버(500)의 주소와 같은 대역의 주소를 상기 제 1 은닉 서버의 가상 주소로 생성할 수 있는데, 이는 외부에서 은닉 서버의 실제 주소와 가상 주소를 구별할 수 없도록 하기 위함이다. Let's look more specifically at step 500 where the name server 500 generates a virtual address. The name server 500 can assign any value in the preset IP band using the CIDR. In particular, the name server 500 can generate an address of a band same as the address of the name server 500 as a virtual address of the first hidden server, which can distinguish the virtual address from the real address of the hidden server It is to be avoided.

네임 서버(500)는 서비스 네임이 동일하다면, 표 1에 도시된 바와 같이 서로 다른 호스트(클라이언트)에 중복되는 가상 주소를 할당할 수 있다.If the service names are the same, the name server 500 can allocate duplicate virtual addresses to different hosts (clients) as shown in Table 1.

클라이언트 IPClient IP 서비스 네임Service name 은닉 서버의 가상 IPVirtual IP of hidden server 접속 시각Connection time 10.0.0.110.0.0.1 www.test1.comwww.test1.com 172.23.255.100172.23.255.100 T1T1 10.0.0.510.0.0.5 www.test1.comwww.test1.com 172.23.255.100172.23.255.100 T2T2 10.0.0.1710.0.0.17 www.test1.comwww.test1.com 172.23.255.100172.23.255.100 T3T3

만약, 동일 호스트(클라이언트)로부터 서로 다른 서비스 네임을 포함하는 가상 주소 요청을 수신하였다면, 네임 서버(500)는 표 2에 도시된 바와 같이 각 은닉 서버에 중복되지 않는 가상 IP를 할당할 수 있다. If a virtual address request including a different service name is received from the same host (client), the name server 500 can assign a virtual IP that is not duplicated to each hidden server as shown in Table 2. [

클라이언트 IPClient IP 서비스 네임Service name 은닉 서버의 가상 IPVirtual IP of hidden server 접속 시각Connection time 10.0.0.110.0.0.1 www.test1.comwww.test1.com 172.23.255.100172.23.255.100 T1T1 10.0.0.110.0.0.1 www.test2.comwww.test2.com 172.23.255.110172.23.255.110 T2T2 10.0.0.110.0.0.1 www.test3.comwww.test3.com 172.23.255.120172.23.255.120 T3T3

단계 500에서 네임 서버(500)는 접속 정보를 이용하여 클라이언트(300)의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단할 수 있다. 그리고 판단 결과 차이가 가상 주소 변경 주기보다 작으면 기 생성된 주소를 제 1 은닉 서버의 가상 주소로 유지하고, 차이가 가상 주소 변경 주기보다 크면 새로운 주소를 제 1 은닉 서버의 가상 주소로 생성할 수 있다. In step 500, the name server 500 can use the connection information to determine whether the difference between the connection time of the client 300 and the current connection time is within a predetermined virtual address change period. If the difference is smaller than the virtual address change period, the generated address is maintained as the virtual address of the first hidden server. If the difference is larger than the virtual address change period, the new address can be generated as the virtual address of the first hidden server have.

네임 서버(500)는 제 1 은닉 서버의 가상 주소를 생성하고 이를 클라이언트에 전송할 뿐 아니라, 가상 주소를 요청한 클라이언트(300)의 식별 정보, 가상 주소 요청에 포함된 서비스 네임(이하, 제 1 서비스 네임이라 한다.), 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성할 수 있으며(S800), 호스트 관리 정보를 네임 서버에 저장하거나(S850) 컨트롤러에 전송할 수 있다(S900). The name server 500 not only generates the virtual address of the first hidden server and transmits the virtual address to the client, but also includes the identification information of the client 300 requesting the virtual address, the service name included in the virtual address request ), The host management information including the virtual address of the first hidden server can be generated (S800), and the host management information can be stored in the name server (S850) or transmitted to the controller (S900).

호스트 관리 정보에는 클라이언트(300)가 네임 서버에 접속한 시각을 나타내는 접속 정보가 더 포함될 수 있는데, 이는 네임 서버(500)가 접속 정보를 이용하여 기 설정된 시간 동안 클라이언트(300)의 접속이 없는 것으로 판단되면 호스트 관리 정보를 삭제하는 데 이용될 수 있다. 또한 접속 정보는 단계500에서 네임 서버(500)가 가상 주소를 갱신할지 여부를 판단하는데 이용될 수 있다. The host management information may further include connection information indicating the time at which the client 300 accesses the name server. This means that the name server 500 does not have access to the client 300 for a predetermined period of time And may be used to delete the host management information if it is determined. The access information may also be used in step 500 to determine whether the name server 500 is to update the virtual address.

한편, 클라이언트(300)는 단계 600에서 네임 서버로부터 제 1 은닉 서버의 가상 주소를 수신하면 제 1 은닉 서버의 가상 주소를 패킷의 목적지로 설정하여 패킷을 전송할 수 있다(S700). If the virtual address of the first hidden server is received from the name server in step 600, the client 300 sets the virtual address of the first hidden server as the destination of the packet and transmits the packet (S700).

클라이언트(300)로부터 제 1 은닉 서버의 가상 주소를 목적지로 하는 패킷을 수신한 오픈플로우 스위치(200)는 다음과 같은 동작을 수행할 수 있다. 전술한 바와 같이 오픈플로우 스위치(200)에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재하고, 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow rule)로 구성된다. 오픈플로우 스위치(200)에는 제 1 은닉 서버의 가상 주소에 대한 플로우 룰이 존재하지 않을 것이므로, 오픈플로우 스위치(200)는 컨트롤러(100)에 패킷-인 메시지(packet-in message)를 송신함으로써 제 1 은닉 서버의 가상 주소를 목적지로 하는 패킷의 경로를 컨트롤러(100)에 문의한다(S1000). 패킷-인 메시지는 패킷의 헤더 정보로 구성되어 있으므로, 패킷-인 메시지에는 제 1 은닉 서버의 가상 주소가 목적지로, 클라이언트(300)의 식별 주소가 출발지로 설정되어 있다.The open flow switch 200 receiving the packet with the virtual address of the first hidden server as the destination from the client 300 can perform the following operations. As described above, the open flow switch 200 defines and processes a packet, and there is one or more flow tables including statistical information related to the packet. The flow table includes a flow rule (Flow rule. Since the open flow switch 200 does not have a flow rule for the virtual address of the first concealment server, the open flow switch 200 transmits a packet-in message to the controller 100, The controller 100 is inquired of the path of the packet whose destination is the virtual address of the first hidden server (S1000). Since the packet-in message is composed of the header information of the packet, the packet-in message has the virtual address of the first hidden server set as the destination and the identification address of the client 300 as the origin.

컨트롤러(100)는 임의의 네트워크 장비로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하고(S1100), 실제 주소를 이용하여 패킷-인 메시지에 대응되는 패킷의 경로를 계산한다(S1200). 여기서 매핑 정보는 가상 주소를 생성하는 네임 서버로부터 수신되는 호스트 관리 정보에 의해 갱신되는 정보로, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 은닉 서버의 서비스 네임에 대응하는 은닉 서버의 실제 주소 및 은닉 서버의 가상 주소를 포함할 수 있다. When the controller 100 receives a packet-in message destined for a virtual address from a certain network device, the controller 100 checks the actual address of the hidden server corresponding to the virtual address using the stored mapping information (S1100) (Step S1200). In step S1200, the path of the packet corresponding to the packet-in message is calculated. Here, the mapping information is information updated by the host management information received from the name server that generates the virtual address. The mapping information includes identification information of the client requesting the virtual address of the hidden server, the actual address of the hidden server corresponding to the service name of the hidden server, And may include the virtual address of the hidden server.

단계 1100에서 컨트롤러(100)는 가상 주소의 유효성을 확인하고, 가상 주소가 유효한 경우에 한하여 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인할 수 있다. 만약 가상 주소가 유효하지 않으면 이후 단계를 수행하지 않음으로써, 호스트(클라이언트)의 정책 위반 여부를 탐지할 수 있다. In step 1100, the controller 100 can check the validity of the virtual address, and use the mapping information only when the virtual address is valid, to confirm the real address of the hidden server corresponding to the virtual address. If the virtual address is not valid, it is possible to detect whether the host (client) is violating the policy by not performing the subsequent step.

컨트롤러(100)는 가상 주소를 포함하며 계산된 경로에 따라 패킷의 처리를 정의하는 플로우 룰을 생성하며(S1300), 컨트롤러와 연결된 하나 이상의 네트워크 장비에 플로우 룰을 전송할 수 있다(S1400). 네트워크 장비가 오픈플로우 스위치(200)인 경우, 단계 1400에서 오픈플로우 스위치(200)로 전송되는 플로우 룰은 플로우 룰에 따른 플로우 테이블 변경 사항으로 이해될 수 있으며, 오픈플로우 프로토콜이 지원하는 플로우-모드 메시지(flow-mod message)를 통해 전송될 수 있다. The controller 100 generates a flow rule including a virtual address and defines the processing of the packet according to the calculated path (S1300), and may transmit the flow rule to one or more network devices connected to the controller (S1400). If the network equipment is the open flow switch 200, the flow rule transmitted to the open flow switch 200 at step 1400 can be understood as a flow table change according to the flow rule, and the flow- Message (flow-mode message).

컨트롤러(100)는 가상 주소를 목적지로 하는 패킷-인 메시지를 수신한 이후에 가상 주소에 기 설정된 랜덤값을 연산하는 단계를 더 포함할 수 있으며, 연산 결과에 따른 목적지 주소가 네임 서버(500)의 실제 주소에 대응되면, 단계 1200에서 컨트롤러(100)는 네임 서버의 실제 주소를 이용하여 패킷의 경로를 계산하고, 각 오픈플로우 스위치(200)가 상기 패킷을 네임 서버(500)로 전송 처리하도록 하는 플로우 룰을 생성할 수 있다. 즉, 가상 주소가 네임 서버의 가상 주소인 경우, 해당 패킷이 네임 서버로 전송되도록 처리하는 것이다. 네임 서버의 주소는 외부에 노출되어 있으나, 정기 및/또는 비정기적으로 변경될 수 있으므로, 컨트롤러(100)는 네임 서버의 주소 변경 알고리즘을 네임 서버 및/또는 클라이언트의 애플리케이션과 공유할 수 있으며, 공유된 알고리즘 또는 랜덤값을 이용하여 네임 서버의 주소의 변경 여부를 식별할 수 있다. The controller 100 may further include a step of calculating a random value preset in the virtual address after receiving the packet-in message having the virtual address as a destination, and when the destination address according to the calculation result is received by the name server 500, The controller 100 calculates the path of the packet using the actual address of the name server and transmits the packet to the name server 500 so that each open flow switch 200 processes the packet A flow rule can be generated. That is, if the virtual address is a virtual address of the name server, the packet is processed to be transmitted to the name server. Since the address of the name server is exposed externally, it can be changed regularly and / or irregularly, so that the controller 100 can share the name server's address change algorithm with the application of the name server and / or client, The algorithm or the random value may be used to identify whether the address of the name server has been changed.

컨트롤러(100)는 단계 1300 내지 단계 1400에서 네트워크 장비(200)가 은닉 서버(400)와 연결된 네트워크 장비(200)이면, 플로우 테이블 변경 사항에 은닉 서버(400)의 가상 주소를 목적지로 하는 패킷의 목적지를 은닉 서버(400)의 실제 주소로 변경하는 액션 및 은닉 서버(400)의 식별 주소를 출발지로 하는 패킷의 출발지를 은닉 서버(400)의 가상 주소로 변경하는 액션(Set-field Action)을 포함시킬 수 있다. If the network device 200 is connected to the concealed server 400 in steps 1300 to 1400, the controller 100 adds the flow table change information of the packet with the virtual address of the concealed server 400 as a destination An action for changing the destination to the actual address of the concealment server 400 and an action for changing the origin of the packet originating from the concealment address of the concealment server 400 to the virtual address of the concealment server 400 Can be included.

도 5 내지 도 7을 도면을 참조하여 전술한 내용을 보다 구체적으로 살펴보자. 도 5를 참조하면, IP 주소가 10.0.0.2인 호스트 클라이언트 Host A(300)는 IP 주소가 90.10.10.20인 네임 서버(500)로 서비스 네임 목록을 요청할 수 있다(S100). 네임 서버(500) 저장된 서비스 네임 목록(URL List)을 Host A(300)로 전송할 수 있다. 도 5의 실시 예에서 네임 서버는 URL A:90.10.10.5, URL B: 90.10.10.6, URL C: 90.10.10.7 세 개의 URL을 서비스 네임으로 저장하고 있다. 5 to 7 will be described in more detail with reference to the drawings. Referring to FIG. 5, a host client A 300 having an IP address of 10.0.0.2 can request a service name list from a name server 500 having an IP address of 90.10.10.20 (S100). The service name list (URL List) stored in the name server 500 can be transmitted to the host A 300. In the embodiment of FIG. 5, the name server stores three URLs as service names: URL A: 90.10.10.5, URL B: 90.10.10.6, and URL C: 90.10.10.7.

도 6은 사용자가 URL A에 해당하는 은닉 서버로의 접속을 선택한 경우의 일 실시 예이다. Host A(300)는 서비스 네임인 URL A에 대응되는 은닉 서버의 가상 주소를 네임 서버에 요청할 수 있다(S400). 네임 서버(500)는 URL A에 대응되는 가상 주소를 생성하며(S500), 도 6의 실시 예에서 네임 서버(500)는 URL A라는 서비스 네임을 갖는 은닉 서버의 가상 주소에 90.10.10.5를 할당하였으며, 이를 Host A(300)에 전송하여(S600), 클라이언트(300)가 가상 주소를 목적지로 하는 패킷을 전송할 수 있도록 한다. 네임 서버는 클라이언트 식별 정보(Host IP), 서비스 네임(URL A), 서비스 네임에 대응하는 가상 주소(90.10.10.5:9999)를 포함하는 호스트 관리 정보(530A)를 생성하여 저장할 수 있으며, 이를 컨트롤러(100)에 전송하여 컨트롤러가 플로우 룰을 생성하는데 호스트 관리 정보를 사용할 수 있도록 한다. 6 shows an embodiment in which the user selects connection to the hidden server corresponding to the URL A. FIG. The host A 300 may request the name server for the virtual address of the hidden server corresponding to the URL A, which is the service name (S400). The name server 500 generates a virtual address corresponding to the URL A (S500). In the embodiment of FIG. 6, the name server 500 assigns 90.10.10.5 to the virtual address of the hidden server having the service name of URL A And transmits it to the Host A 300 (S600) so that the client 300 can transmit a packet having a virtual address as a destination. The name server can generate and store the host management information 530A including the client identification information (Host IP), the service name (URL A), and the virtual address (90.10.10.5: 9999) corresponding to the service name, (100) so that the controller can use the host management information to generate the flow rule.

이후 단계는 도 7을 참조한다. 도 7을 참조하면, Host A(300)는 네임 서버로부터 수신한(S600) 은닉 서버의 가상 주소(90.10.10.5:9999)를 목적지로 설정하여 패킷을 전송한다(S700). 패킷을 수신한 오픈플로우 스위치(200A)는 새롭게 생성된 가상 주소에 대한 플로우 룰을 가지고 있지 않으므로, 이에 대한 패킷-인 메시지를 컨트롤러(100)로 전송하며(S1000), 컨트롤러의 애플리케이션(130)은 기 저장된 매핑 정보를 이용하여 가상 주소에 대응하는 은닉 서버의 실제 주소를 확인한다. 도 7의 실시 예에서, 가상 주소(90.10.10.5)에 대응하는 실제 주소는 90.10.10.10 이며, 컨트롤러(100)는 실제 주소를 이용하여 경로를 계산한 뒤, 가상 주소를 포함시킨 플로우 룰 변경 사항 즉, 플로우-모드 메시지를 각 스위치(200)에 전송한다(S1400). The subsequent steps refer to FIG. Referring to FIG. 7, the Host A 300 sets a virtual address (90.10.10.5: 9999) of the hidden server (S600) received from the name server as a destination and transmits the packet (S700). Since the open flow switch 200A receiving the packet does not have a flow rule for the newly created virtual address, it sends a packet-in message to the controller 100 (S1000), and the application 130 of the controller And confirms the actual address of the hidden server corresponding to the virtual address using the stored mapping information. In the embodiment of FIG. 7, the real address corresponding to the virtual address (90.10.10.5) is 90.10.10.10, and the controller (100) calculates the route using the real address and then updates the flow rule change That is, a flow-mode message is transmitted to each switch 200 (S1400).

플로우-모드 메시지를 수신한 각 스위치(200)는 가상 주소 90.10.10.5를 목적지로 하는 패킷을 수신하면, 플로우 테이블에서 해당 패킷에 대한 처리 규정인 플로우 룰을 참조하여 패킷을 처리한다. 다만, 은닉 서버인 Host B(400)와 연결된 오픈플로우 스위치(200B)로 전송된 플로우-모드 메시지는 Host B(400)의 가상 주소 90.10.10.5를 목적지로 하는 패킷의 목적지를 은닉 서버(400)의 실제 주소 90.10.10.10으로 변경하는 액션(Set-field Action)을 포함하므로, 90.10.10.5를 목적지로 하는 패킷을 수신하면, 목적지 주소를 90.10.10.10으로 변경하여, 패킷을 Host B에 전달할 수 있다.Upon receiving the packet with the destination of the virtual address 90.10.10.5, each of the switches 200 receiving the flow-mode message processes the packet by referring to the flow rule which is a processing rule for the packet in the flow table. However, the flow-mode message transmitted to the open flow switch 200B connected to the host B 400, which is a hidden server, is transmitted to the concealed server 400 as a destination of a packet destined for the virtual address 90.10.10.5 of the host B 400. [ (Set-field Action) to change the destination address to 90.10.10.10 when receiving the packet with the destination of 90.10.10.5, the packet can be transmitted to Host B. .

따라서 본 발명에 의하면, 컨트롤러(100) 외에는 은닉 서버의 실제 주소를 알 수 없을 뿐 아니라, 은닉 서버의 실제 주소 정보가 노출되지 않으므로, 효과적으로 은닉 서버의 정보를 은닉할 수 있으며, 동적으로 은닉 서버의 주소 정보가 변경되므로 불확실성과 공격복잡도가 높아져 공격자로부터 시스템을 안정적으로 보호할 수 있다. Therefore, according to the present invention, since the actual address of the hidden server is not known other than the controller 100, the actual address information of the hidden server is not exposed, so the information of the hidden server can be effectively hidden, As the address information is changed, uncertainty and attack complexity are increased, so that the system can be reliably protected from the attacker.

전술한 도 5 내지 도 7의 설명은 클라이언트와 네임 서버, 컨트롤러 간 통신에 대한 것이며, 이하에서는 도 8 내지 도 9를 참조하여 본 발명의 호스트 간 통신 방법의 일 실시 예를 설명한다. 5 to 7 are for communication between a client, a name server and a controller. Hereinafter, an embodiment of a host-to-host communication method according to the present invention will be described with reference to FIGS. 8 to 9. FIG.

도 8은 은닉 서버의 가상 주소(90.10.10.5)를 수신한 Host A가 가상 주소를 목적지로 하여 ARP 요청 패킷을 전송하는 경우의 일 실시 예이다. 오픈플로우 스위치(200A)는 가상 주소를 목적지로 하는 ARP 요청 패킷을 수신하면(S700A), 이에 대한 패킷-인 메시지를 컨트롤러(100)에 전송한다(S1000A). FIG. 8 shows an embodiment in which the Host A receiving the virtual address (90.10.10.5) of the concealment server transmits the ARP request packet with the virtual address as the destination. When the open flow switch 200A receives the ARP request packet destined for the virtual address (S700A), the open flow switch 200A transmits a packet-in message to the controller 100 (S1000A).

컨트롤러(100)는 패킷-인 메시지가 ARP(Address Resolution Protocol) 요청 패킷에 관한 패킷-인 메시지이면, ARP 요청 패킷에 포함된 가상 주소를 실제 주소(90.10.10.10)로 변환하고, 실제 주소가 포함된 재생성 ARP 요청 패킷을 컨트롤러와 연결된 하나 이상의 네트워크 장비에 브로드캐스트 할 수 있다(S2000). The controller 100 converts the virtual address included in the ARP request packet into the real address (90.10.10.10) if the packet-in message is a packet-in message relating to an ARP (Address Resolution Protocol) request packet, The re-generated ARP request packet may be broadcast to one or more network devices connected to the controller (S2000).

그 결과, 도 9에 도시된 바와 같이 은닉 서버 Host B(400)는 재생성 ARP 요청 패킷에 대응하는 ARP 응답 패킷을 자신과 연결된 오픈플로우 스위치(200B)로 전송하며, ARP 응답 패킷을 수신한 오픈플로우 스위치(200B)는 이에 대한 패킷-인 메시지를 컨트롤러에 전송한다(S2400). 이는 컨트롤러가 은닉 서버 Host B(400)으로부터 재생성 ARP 요청 패킷에 대응하는 ARP 응답 패킷을 수신한 것으로 이해될 수 있다. As a result, as shown in FIG. 9, the concealed-server Host B 400 transmits the ARP response packet corresponding to the regenerating ARP request packet to the open flow switch 200B connected thereto, The switch 200B transmits a packet-in message to the controller 200B (S2400). It can be understood that the controller has received the ARP response packet corresponding to the regenerating ARP request packet from the concealed-server Host B (400).

다음으로 컨트롤러(100)는 ARP 응답 패킷에 포함된 실제 주소를 가상 주소로 변환하여, 가상 주소를 포함하는 재생성 ARP 응답 패킷을 생성하고, 재생성 ARP 응답 패킷을 클라이언트 Host A(300)에 유니캐스트로 전송할 수 있다(S2500). Next, the controller 100 converts the real address included in the ARP response packet into a virtual address, generates a regenerative ARP response packet including the virtual address, and transmits a regenerative ARP response packet to the client Host A 300 as a unicast (S2500).

한편, 전술한 서버 은닉 방법은 각 실시 예 중 어느 하나를 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 서버 은닉 애플리케이션을 통해 호스트(300) 또는 컨트롤러(100)에서 구현될 수 있다. On the other hand, the server concealment method described above can be implemented in the host 300 or the controller 100 through a server concealed application stored in a computer-readable medium in order to execute any one of the embodiments.

본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.Some embodiments omitted in this specification are equally applicable if their implementation subject is the same. It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to be exemplary and explanatory only and are not restrictive of the invention, The present invention is not limited to the drawings.


100: 컨트롤러
200: 스위치
300: 클라이언트
400: 은닉 서버
500: 네임 서버

100: controller
200: Switch
300: Client
400: hidden server
500: Name Server

Claims (19)

소프트웨어 정의 네트워킹 환경에서의 서버 은닉 방법에 있어서,
클라이언트가 네임 서버에 제 1 서비스 네임을 갖는 제 1 은닉 서버의 가상 주소를 요청하는 단계;
상기 네임 서버가 상기 제 1 은닉 서버의 가상 주소를 생성하는 단계;
상기 네임 서버가 상기 제 1 은닉 서버의 가상 주소를 상기 클라이언트에 전송하고, 상기 클라이언트의 식별 정보, 상기 제 1 서비스 네임 및 상기 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성하여 컨트롤러에 전송하는 단계;
상기 클라이언트는 상기 제 1 은닉 서버의 가상 주소를 패킷의 목적지로 설정하여 상기 패킷을 전송하는 단계를 포함하는 서버 은닉 방법.
In a server concealment method in a software defined networking environment,
The client requesting the name server for the virtual address of the first hidden server having the first service name;
Generating a virtual address of the first hidden server by the name server;
The name server transmits the virtual address of the first hidden server to the client, generates host management information including the identification information of the client, the first service name, and the virtual address of the first hidden server, Transmitting;
Wherein the client sets the virtual address of the first concealment server as a destination of the packet and transmits the packet.
제1항에 있어서,
상기 클라이언트가 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록을 네임 서버에 요청하는 단계;
상기 네임 서버가 상기 클라이언트에 상기 서비스 네임 목록을 전송하는 단계;
상기 클라이언트가 사용자로부터 상기 서비스 네임 목록에 포함된 서비스 네임 중 어느 하나에 대한 선택 입력을 수신하는 단계를 더 포함하고,
상기 제 1 서비스 네임은 상기 선택 입력에 대응되는 서비스 네임인 서버 은닉 방법.
The method according to claim 1,
The client requesting a name server for a service name list including at least one service name of the concealed server;
The name server transmitting the service name list to the client;
Further comprising the client receiving from the user a selection input for one of the service names included in the service name list,
Wherein the first service name is a service name corresponding to the selection input.
제2항에 있어서,
상기 클라이언트가 상기 서비스 네임 목록을 네임 서버에 요청하는 단계는 상기 네임 서버의 가상 주소를 이용하여 상기 네임 서버에 접속하는 단계를 포함하며,
상기 네임 서버의 가상 주소는 상기 네임 서버의 실제 주소에 랜덤값을 부가하여 생성되고, 상기 랜덤값은 컨트롤러와 공유되는 알고리즘에 의해 결정되는 값인 서버 은닉 방법.
3. The method of claim 2,
Wherein the step of the client requesting the service name list to the name server includes accessing the name server using the virtual address of the name server,
Wherein the virtual address of the name server is generated by adding a random value to an actual address of the name server, and the random value is a value determined by an algorithm shared with the controller.
제1항에 있어서,
상기 네임 서버는 상기 클라이언트가 상기 네임 서버에 접속한 시각을 나타내는 접속 정보를 이용하여, 기 설정된 시간 동안 상기 클라이언트의 접속이 없는 것으로 판단되면 상기 호스트 관리 정보를 삭제하는 단계를 더 포함하는 서버 은닉 방법.
The method according to claim 1,
Further comprising the step of deleting the host management information if it is determined that there is no connection of the client for a predetermined period of time using the connection information indicating the time when the client accesses the name server .
제1항에 있어서,
상기 네임 서버가 상기 제1 은닉 서버의 가상 주소를 생성하는 단계는,
상기 클라이언트의 상기 네임 서버 접속 시각을 나타내는 접속 정보를 이용하여 상기 클라이언트의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단하는 단계;
상기 판단 결과 상기 차이가 상기 가상 주소 변경 주기보다 작으면 기 생성된 주소를 상기 제 1 은닉 서버의 가상 주소로 유지하고, 상기 차이가 상기 가상 주소 변경 주기보다 크면 새로운 주소를 상기 제 1 은닉 서버의 가상 주소로 생성하는 단계를 포함하는 서버 은닉 방법.
The method according to claim 1,
Wherein the name server generates the virtual address of the first hidden server,
Determining whether a difference between a connection time of the client and a current connection time is within a preset virtual address change cycle using connection information indicating the name server connection time of the client;
If the difference is less than the virtual address change period, the pre-generated address is maintained as a virtual address of the first concealment server. If the difference is larger than the virtual address change period, And generating the virtual address as a virtual address.
제1항에 있어서,
상기 네임 서버가 상기 제 1 은닉 서버의 가상 주소를 생성하는 단계는,
상기 네임 서버의 주소와 같은 대역의 주소를 상기 제 1 은닉 서버의 가상 주소로 생성하는 단계를 포함하는 서버 은닉 방법.
The method according to claim 1,
Wherein the name server generates the virtual address of the first hidden server,
And generating an address of a same band as an address of the name server as a virtual address of the first hidden server.
소프트웨어 정의 네트워킹 환경에서 동작하는 컨트롤러의 서버 은닉 방법에 있어서,
임의의 네트워크 장비로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 상기 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 단계;
상기 실제 주소를 이용하여 상기 패킷-인 메시지에 대응되는 패킷의 경로를 계산하는 단계;
상기 가상 주소를 포함하며, 상기 계산된 경로에 따라 상기 패킷의 처리를 정의하는 플로우 룰을 생성하는 단계;
상기 컨트롤러와 연결된 하나 이상의 네트워크 장비에 상기 플로우 룰을 전송하는 단계를 포함하며,
상기 매핑 정보는 상기 가상 주소를 생성하는 네임 서버로부터 수신되는 호스트 관리 정보에 의해 갱신되며, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 상기 은닉 서버의 서비스 네임에 대응하는 상기 은닉 서버의 실제 주소 및 상기 은닉 서버의 가상 주소를 포함하고,
상기 호스트 관리 정보는 상기 클라이언트의 식별 정보, 상기 서비스 네임 및 상기 은닉 서버의 가상 주소를 포함하는 서버 은닉 방법.
A method of server concealment of a controller operating in a software defined networking environment,
Receiving a packet-in message having a virtual address as a destination from an arbitrary network equipment, confirming an actual address of the hidden server corresponding to the virtual address using the stored mapping information;
Calculating a path of a packet corresponding to the packet-in message using the physical address;
Generating a flow rule that includes the virtual address and defines processing of the packet according to the computed path;
Sending the flow rules to one or more network devices connected to the controller,
Wherein the mapping information is updated by host management information received from a name server that generates the virtual address, and the virtual address of the hidden server is stored in the storage unit according to the identification information of the requesting client, the physical address of the hidden server corresponding to the service name of the hidden server And a virtual address of the hidden server,
Wherein the host management information includes identification information of the client, the service name, and a virtual address of the hidden server.
제7항에 있어서,
상기 은닉 서버의 실제 주소를 확인하는 단계는,
상기 가상 주소의 유효성을 확인하는 단계;
상기 가상 주소가 유효하면, 상기 매핑 정보를 이용하여 상기 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 단계를 포함하는 서버 은닉 방법.
8. The method of claim 7,
The step of verifying the actual address of the hidden server comprises:
Confirming the validity of the virtual address;
And if the virtual address is valid, checking an actual address of the hidden server corresponding to the virtual address using the mapping information.
제7항에 있어서,
상기 은닉 서버의 실제 주소를 확인하는 단계는
상기 가상 주소에 기 설정된 랜덤값을 연산하여 상기 연산 결과에 따른 목적지 주소가 상기 은닉 서버의 실제 주소에 대응되는지 확인하는 단계를 포함하는 서버 은닉 방법.
8. The method of claim 7,
The step of verifying the actual address of the hidden server
And calculating a random value preset in the virtual address to confirm whether a destination address corresponding to the operation result corresponds to an actual address of the hidden server.
제7항에 있어서,
상기 은닉 서버와 연결된 네트워크 장비에 전송되는 플로우 룰은
상기 은닉 서버의 가상 주소를 목적지로 하는 패킷의 목적지를 상기 은닉 서버의 실제 주소로 변경하는 액션을 포함하는 서버 은닉 방법.
8. The method of claim 7,
The flow rule transmitted to the network equipment connected to the hidden server
And changing an address of a packet whose destination is a virtual address of the hidden server to an actual address of the hidden server.
제7항에 있어서,
상기 패킷-인 메시지가 ARP(Address Resolution Protocol) 요청 패킷에 관한 패킷-인 메시지이면,
상기 ARP 요청 패킷에 포함된 상기 가상 주소를 상기 실제 주소로 변환하는 단계;
상기 실제 주소가 포함된 재생성 ARP 요청 패킷을 상기 컨트롤러와 연결된 하나 이상의 네트워크 장비에 브로드캐스트 하는 단계;
상기 은닉 서버로부터 상기 재생성 ARP 요청 패킷에 대응하는 ARP 응답 패킷을 수신하면, 상기 ARP 응답 패킷에 포함된 상기 실제 주소를 상기 가상 주소로 변환하는 단계;
상기 가상 주소를 포함하는 재생성 ARP 응답 패킷을 상기 클라이언트에 유니캐스트로 전송하는 단계를 더 포함하는 서버 은닉 방법.
8. The method of claim 7,
If the packet-in message is a packet-in message regarding an ARP (Address Resolution Protocol) request packet,
Converting the virtual address included in the ARP request packet into the physical address;
Broadcasting a regenerating ARP request packet including the real address to one or more network devices connected to the controller;
Converting the real address included in the ARP response packet into the virtual address when receiving an ARP response packet corresponding to the regenerating ARP request packet from the hidden server;
Further comprising the step of unicasting the regenerating ARP response packet including the virtual address to the client.
소프트웨어 정의 네트워킹 환경에서 동작하는 네임 서버에 있어서,
임의의 클라이언트로부터 제 1 서비스 네임을 포함하는 가상 주소 요청이 수신되면, 상기 클라이언트의 식별 정보 및 상기 제 1 서비스 네임을 이용하여 상기 제 1 서비스 네임에 대응하는 제 1 은닉 서버의 가상 주소를 생성하는 가상 주소 생성부;
상기 클라이언트의 식별 정보, 상기 제 1 서비스 네임 및 상기 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성하는 호스트 관리부;
은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록 및 호스트 관리 정보를 저장하는 저장부;
상기 서비스 네임 목록 및 상기 가상 주소를 상기 클라이언트에 전송하며, 상기 호스트 관리 정보를 컨트롤러에 전송하는 통신부를 포함하는 네임 서버.
For a name server operating in a software defined networking environment,
When receiving a virtual address request including a first service name from an arbitrary client, generates a virtual address of the first hidden server corresponding to the first service name using the identification information of the client and the first service name A virtual address generator;
A host management unit for generating host management information including identification information of the client, the first service name, and the virtual address of the first secret server;
A storage unit for storing a service name list and host management information including at least one service name of the hidden server;
And a communication unit for transmitting the service name list and the virtual address to the client and transmitting the host management information to the controller.
제12항에 있어서,
상기 호스트 관리 정보는 상기 클라이언트가 상기 네임 서버에 접속한 시각을 나타내는 접속 정보를 더 포함하고,
상기 호스트 관리부는 상기 접속 정보를 이용하여 기 설정된 시간 동안 상기 클라이언트의 접속이 없는 것으로 판단되면 상기 호스트 관리 정보를 삭제하는 네임 서버.
13. The method of claim 12,
Wherein the host management information further includes connection information indicating a time when the client accesses the name server,
Wherein the host management unit deletes the host management information when it is determined that the client is not connected for a preset time using the access information.
제12항에 있어서,
상기 가상 주소 생성부는
상기 클라이언트가 상기 네임 서버에 접속한 시간을 나타내는 접속 정보를 이용하여 상기 클라이언트의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단하여 상기 차이가 상기 가상 주소 변경 주기보다 작으면 기 생성된 주소를 상기 제 1 은닉 서버의 가상 주소로 유지하고, 상기 차이가 상기 가상 주소 변경 주기보다 크면 새로운 주소를 상기 제 1 은닉 서버의 가상 주소로 생성하는 네임 서버.
13. The method of claim 12,
The virtual address generating unit
Determining whether a difference between a connection time of the client and a current connection time is within a preset virtual address modification cycle using connection information indicating a time when the client accesses the name server, And stores the generated address as a virtual address of the first hidden server, and generates a new address as a virtual address of the first hidden server if the difference is larger than the virtual address change period.
소프트웨어 정의 네트워킹 환경에서 동작하는 컨트롤러에 있어서,
임의의 네트워크 장비로부터 패킷-인 메시지를 수신하고, 하나 이상의 네트워크 장비에 플로우 룰을 전송하며, 은닉 서버의 가상 주소를 생성하는 네임 서버로부터 호스트 관리 정보를 수신하는 통신부;
상기 호스트 관리 정보를 이용하여 매핑 정보를 생성하고, 상기 매핑 정보를 이용하여 플로우 룰을 생성하는 애플리케이션;
상기 매핑 정보를 저장하는 저장부를 포함하며,
상기 애플리케이션은,
상기 네트워크 장비로부터 제 1 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 상기 제 1 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 주소 매핑부;
상기 실제 주소를 이용하여 상기 패킷-인 메시지에 대응되는 패킷의 경로를 계산하고 경로 계산부;
상기 제 1 가상 주소를 포함하며, 상기 계산된 경로에 따라 상기 패킷의 처리를 정의하는 플로우 룰을 생성하는 플로우 룰 생성부를 포함하며,
상기 매핑 정보는 상기 호스트 관리 정보에 의해 갱신되며, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 상기 은닉 서버의 서비스 네임에 대응하는 상기 은닉 서버의 실제 주소, 및 상기 은닉 서버의 가상 주소를 포함하고,
상기 호스트 관리 정보는 상기 클라이언트의 식별 정보, 상기 서비스 네임 및 상기 은닉 서버의 가상 주소를 포함하는 컨트롤러.
In a controller operating in a software defined networking environment,
A communication unit for receiving a packet-in message from any network equipment, transmitting a flow rule to one or more network devices, and receiving host management information from a name server for generating a virtual address of the hidden server;
An application for generating mapping information using the host management information and generating a flow rule using the mapping information;
And a storage unit for storing the mapping information,
The application comprises:
An address mapping unit for confirming an actual address of a hidden server corresponding to the first virtual address using previously stored mapping information when receiving a packet-in message from the network equipment with a first virtual address as a destination;
Calculating a path of a packet corresponding to the packet-in message using the physical address;
And a flow rule generation unit for generating a flow rule including the first virtual address and defining a processing of the packet according to the calculated path,
The mapping information is updated by the host management information, and includes the identification information of the client requesting the virtual address of the hidden server, the actual address of the hidden server corresponding to the service name of the hidden server, and the virtual address of the hidden server and,
Wherein the host management information includes identification information of the client, the service name, and a virtual address of the secret server.
하드웨어와 결합되어 제1항 내지 제11항의 방법 중 어느 하나의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 서버 은닉 프로그램.
11. A server concealment program in combination with hardware stored in a computer-readable medium for executing the method of any one of claims 1 to 11.
삭제delete 삭제delete 삭제delete
KR1020170066846A 2017-05-30 2017-05-30 Method, system and computer program for host secretion in software defined networking environment KR101993875B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170066846A KR101993875B1 (en) 2017-05-30 2017-05-30 Method, system and computer program for host secretion in software defined networking environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170066846A KR101993875B1 (en) 2017-05-30 2017-05-30 Method, system and computer program for host secretion in software defined networking environment

Publications (2)

Publication Number Publication Date
KR20180130802A KR20180130802A (en) 2018-12-10
KR101993875B1 true KR101993875B1 (en) 2019-06-27

Family

ID=64670422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170066846A KR101993875B1 (en) 2017-05-30 2017-05-30 Method, system and computer program for host secretion in software defined networking environment

Country Status (1)

Country Link
KR (1) KR101993875B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102345559B1 (en) * 2020-04-23 2021-12-31 스콥정보통신 주식회사 Method and system for host management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350154A1 (en) * 2014-06-03 2015-12-03 John Myla Using Distributed Network Elements to Send Authoritative DNS Responses
KR101710385B1 (en) * 2015-10-12 2017-02-27 아토리서치(주) Method, apparatus and computer program for managing arp packet

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524733B1 (en) * 2013-10-22 2015-06-01 에스케이텔레콤 주식회사 A mobile terminal for connecting to website through ip network and a method for reducing connection time to the website

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350154A1 (en) * 2014-06-03 2015-12-03 John Myla Using Distributed Network Elements to Send Authoritative DNS Responses
KR101710385B1 (en) * 2015-10-12 2017-02-27 아토리서치(주) Method, apparatus and computer program for managing arp packet

Also Published As

Publication number Publication date
KR20180130802A (en) 2018-12-10

Similar Documents

Publication Publication Date Title
US7590733B2 (en) Dynamic address assignment for access control on DHCP networks
KR101861201B1 (en) Method, system and computer program for host secretion in software defined networking
US9363207B2 (en) Private virtual local area network isolation
US6684243B1 (en) Method for assigning a dual IP address to a workstation attached on an IP data transmission network
US9912633B2 (en) Selective IP address allocation for probes that do not have assigned IP addresses
WO2018050007A1 (en) Method and apparatus for accessing local network by user terminal and computer storage medium
CN109525601B (en) Method and device for isolating transverse flow between terminals in intranet
CN102132532B (en) Method and apparatus for avoiding unwanted data packets
CN109347784B (en) Terminal access control method, controller, control equipment and system
JP2005252717A (en) Network management method and server
JP4636345B2 (en) Security policy control system, security policy control method, and program
US5845087A (en) Internetwork zone name filtering with selective placebo zone name substitution in a response to a request for zone name information
CN106027491B (en) Separated links formula communication processing method and system based on isolation IP address
KR101786620B1 (en) Method, apparatus and computer program for subnetting of software defined network
KR101922795B1 (en) Apparatus and method for providing of IoT service
KR102136082B1 (en) Server apparatus, client apparatus and method for communicating based on network address mutation
KR20020036504A (en) A method for an Internet Communication
KR101993875B1 (en) Method, system and computer program for host secretion in software defined networking environment
KR101703491B1 (en) Method for providing security service in cloud system and the cloud system thereof
CN114465745B (en) Network topology confusion virtual device and virtual method based on virtual network
US11184325B2 (en) Application-centric enforcement for multi-tenant workloads with multi site data center fabrics
KR101786616B1 (en) Method, apparatus and computer program for subnetting of software defined network
KR102246290B1 (en) Method, apparatus and computer program for network separation of software defined network
JP4094485B2 (en) User terminal connection control method and connection control server
KR102019210B1 (en) Method, apparatus and computer program for managing hosts of software defined network

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