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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network 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/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping 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.
Description
본 발명은 서버 은닉 방법, 시스템 및 컴퓨터 프로그램에 관한 것으로, 보다 자세하게는 소프트웨어 정의 네트워킹 환경에서의 서버 은닉 방법, 시스템 및 컴퓨터 프로그램에 관한 것이다. 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
컨트롤러(100)은 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)은 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 애플리케이션(소프트웨어, 130)가 탑재된 형태로 구현될 수 있다. The
스위치(200)는 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 도면에 도시된 스위치(200)는 패킷 처리를 위한 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 라우터 등과 같은 네트워크 장비로도 교환 가능하다. 다만 설명의 편의를 위해 네트워크 장비가 스위치(200)인 경우를 도시하였으며, 본 발명의 일 실시 예에 따른 스위치(200)는 오픈플로우 스위치(200)인 경우를 중심으로 설명한다.The
소프트웨어 정의 네트워크에서 컨트롤러(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러(100)과 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In the software-defined network, the
보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)과 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러(100) 간 통신 채널이며, 컨트롤러(100)과 오픈플로우 스위치(200)간 교환되는 정보는 암호화된다.More specifically, the
상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(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
상기 플로우 테이블은 크게 세 가지 정보, 즉 플로우를 정의하는 패킷 헤더 정보(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
일반적으로 클라이언트(300)가 서버(400)로 패킷을 송신하고자 할 때, 클라이언트(300)는 서버(400)의 식별 주소를 목적지로 설정하고, 클라이언트(300)의 식별 주소를 출발지로 하는 패킷을 생성하고, 패킷을 클라이언트(300)과 연결된 오픈플로우 스위치(200)로 전송한다. 오픈플로우 스위치(200)에 상기 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우에는 오픈플로우 스위치(200)가 해당 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200)에 상기 패킷에 관한 플로우 테이블이 없는 경우, 오픈플로우 스위치(200)는 컨트롤러(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다. 컨트롤러(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 상기 패킷의 처리를 규정하는 플로우 테이블을 생성하여 오픈플로우 스위치(200)로 전송하고, 오픈플로우 스위치(200)는 상기 플로우 테이블을 수신하고 이에 기반하여 상기 패킷을 처리한다. In general, when the
본 발명은 클라이언트(300)가 서버(400)로 패킷을 송신할 때, 패킷의 전송 과정에서 서버(400)의 실제 주소가 노출되는 것을 방지할 수 있다. 서버(400)의 실제 주소는 컨트롤러(100)에만 저장되어 있으며, 컨트롤러(100)는 서버(400)의 실제 주소를 경로 계산에만 이용할 뿐, 각 오픈플로우 스위치(200)에 전송되는 플로우 룰에는 서버(400)의 가상 주소만 포함되어 네트워크의 외부 또는 내부에서 서버(400)의 정보를 알 수 없다. 또한, 각 오픈플로우 스위치(200)를 통해 전달되는 패킷에는 서버(400)의 가상 주소가 목적지로 설정되어 있는 바, 패킷이 탈취되더라도 탈취자는 서버(400)의 실제 주소를 포함한 서버(400) 정보를 확인할 수 없다. The present invention can prevent the actual address of the
본 발명은 가상 주소를 생성하는 네임 서버(500)를 포함하는데, 네임 서버의 주소는 공개되는 정보 일 수 있으나, 정기 및/또는 비정기적으로 주소가 변경될 수 있다. 따라서 클라이언트(300)는 설치된 애플리케이션을 통해 네임 서버(500)에 접속할 수 있으며, 네임 서버(500)의 주소가 정기 및/또는 비정기적으로 변경되어지도록 설정된 경우, 상기 애플리케이션은 컨트롤러(100) 및 네임 서버(500)와 공유되는 주소 변경 알고리즘을 사용하여 네임 서버(500)에 접속할 수 있다. The present invention includes a
이하에서는 보다 구체적으로 본 발명의 일 실시 예에 의한 컨트롤러(100)와 클라이언트(300), 네임 서버(500)의 동작을 살펴보기로 한다. Hereinafter, the operation of the
도 2를 참조하면, 본 발명의 일 실시 예에 의한 컨트롤러(100)는 애플리케이션(130), 통신부(150), 저장부(170)를 포함하며, 애플리케이션(130)은 주소매핑부(133), 경로 계산부(135), 플로우 룰 생성부(137)를 포함할 수 있다. 2, the
애플리케이션(130)은 상기 네임 서버로부터 수신되는 호스트 관리 정보를 이용하여 매핑 정보를 생성하고, 상기 매핑 정보를 이용하여 플로우 룰을 생성한다. 또한, 통신부(150)가 플로우 룰에 따른 플로우 테이블 변경 사항을 오픈플로우 스위치(200)에 전송하도록 제어한다. 애플리케이션(130)은 오픈플로우 스위치(200)에 플로우 테이블 변경을 위한 플로우-모드 메시지를 전송할 수 있으며, 일부 오픈플로우 스위치(200)에 전송되는 플로우-모드 메시지에는 셋-필드 액션(Set-field Action)이 포함될 수 있다. The
셋-필드 액션은 플로우 엔트리(또는 플로우 테이블을 구성하는 플로우 룰)의 헤더 필드를 변경(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
주소 매핑부(133)는 클라이언트(300)로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인한다. When the address mapping unit 133 receives the packet-in message having the virtual address as a destination from the
여기서 매핑 정보는 호스트 관리 정보에 의해 갱신되는 정보로, 은닉 서버의 가상 주소를 요청한 클라이언트(300)의 식별 정보, 은닉 서버(400)의 서비스 네임에 대응하는 은닉 서버(400)의 실제 주소, 및 은닉 서버(400)의 가상 주소를 포함할 수 있다. The mapping information is information updated by the host management information. The mapping information includes identification information of the
호스트 관리 정보는 네임 서버(500)에서 생성되어 수신되는 정보로, 은닉 서버(400)의 가상 주소를 요청한 클라이언트(300)의 식별 정보, 은닉 서버(400)의 서비스 네임, 은닉 서버의 가상 주소를 포함할 수 있다. The host management information is information generated and received by the
경로 계산부(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
플로우 룰 생성부(137)는 가상 주소를 포함하며, 계산된 경로에 따라 패킷의 처리를 정의하는 플로우 룰을 생성한다. 실제 주소를 이용하여 계산된 경로를 따르되, 플로우 룰에 포함되는 목적지에 실제 주소 대신 가상 주소가 포함되도록 플로우 룰을 생성함으로써 네트워크 상에서 은닉 서버(400)의 실제 주소가 노출되지 않도록 한다. The flow
통신부(150)는 오픈플로우 스위치(200)로부터 서버의 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하고, 생성되는 플로우 룰을 컨트롤러(100)가 관리하는 하나 이상의 오픈플로우 스위치(200)에 전송한다. 보다 구체적으로는 플로우 룰에 따른 플로우 테이블 변경 사항을 전송하며, 컨트롤러(100)는 플로우 모드 메시지(Flow-Mod Message)를 이용하여 플로우 테이블 변경 사항을 전송할 수 있다.The
오픈플로우 스위치(200)는 컨트롤러(100)에서 수신한 플로우 모드 메시지에 따라 플로우 테이블에 포함된 플로우 룰을 수정, 삭제할 수 있고, 플로우 테이블에 새로운 플로우 룰을 추가 할 수 있다. 그리고 오픈플로우 스위치(200)는 변경된 플로우 테이블, 즉 가상 주소를 포함하는 플로우 룰을 참조하여 패킷을 처리할 수 있다. The
또한 통신부(150)는 가상 주소를 생성하는 네임 서버로부터 호스트 관리 정보를 수신할 수 있다. Also, the
저장부(170)는 애플리케이션(130)의 상태와 애플리케이션(130)의 운영에 필요한 정보, 컨트롤러(100)가 스위치(200)에 전송한 명령, 스위치(200)의 상태 등을 포함하는 다양한 정보를 저장한다. 특히, 본 발명의 일 실시 예에서 저장부(170)는 매핑 정보를 저장할 수 있다. 저장부(170)는 도면에 도시된 바와 같이 컨트롤러(100)에 포함될 수도 있으나, 분산 저장부로 구현되거나 외부 저장부를 활용할 수도 있다. The
도 3은 본 발명의 일 실시 예에 따른 네임 서버(500)를 설명하기 위한 블록도이다. 도 3을 참조하면, 본 발명의 일 실시 예에 따른 네임 서버(500)는 가상 주소 생성부(510), 호스트 관리부(530), 통신부(550), 저장부(570)를 포함할 수 있다. 3 is a block diagram illustrating a
가상 주소 생성부(510)는 임의의 클라이언트로부터 제 1 서비스 네임을 포함하는 가상 주소 요청이 수신되면, 클라이언트의 식별 정보 및 제 1 서비스 네임을 이용하여 제 1 서비스 네임에 대응하는 제 1 은닉 서버의 가상 주소를 생성한다. When a virtual address request including a first service name is received from an arbitrary client, the virtual
본 명세서에서 '가상 주소의 생성'은 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
가상 주소 생성부(510)는 클라이언트(300)의 기 접속 시각과 현재 접속 시각의 차이가 가상 주소 변경 주기보다 작으면 기 생성된 주소를 제 1 은닉 서버의 가상 주소로 유지하고, 차이가 가상 주소 변경 주기보다 크면 새로운 주소를 제 1 은닉 서버의 가상 주소로 생성할 수 있다. If the difference between the connection time of the
호스트 관리부(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
이는 컨트롤러(100)가 은닉 서버(400)의 가상 IP와 실제 IP 주소를 매핑할 수 있도록 하기 위한 것으로, 컨트롤러(100)는 은닉 서버(400)에서 수신한 호스트 관리 정보를 이용하여 매핑 정보를 생성할 수 있다. The
저장부(570)는 은닉 서버의 서비스 네임을 하나 이상 포함하는 서비스 네임 목록과 호스트 관리 정보를 저장할 수 있다. The
이하에서는 도 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
네임 서버가 서비스 네임 목록을 전송하면(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
클라이언트는 단계 100 내지 단계 300을 수행하지 않고, 단계 400에서 기 저장되었거나 알려진 서비스 네임을 이용하여 가상 주소를 요청할 수 있다. The client can request the virtual address using the previously stored or known service name in
또 다른 실시 예로, 은닉 서버가 하나만 존재하는 경우에는 별도의 가상 주소 요청 없이 네임 서버(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
전술한 클라이언트(300)의 서비스 네임 목록 요청(S100) 및 가상 주소 요청(S400)은 클라이언트에 설치된 애플리케이션을 통해 이루어질 수 있으며, 이러한 애플리케이션은 인증된 호스트에 한하여 설치 및 동작 가능한 것일 수 있다. The service name list request (S100) and the virtual address request (S400) of the
또한, 클라이언트(300)는 단계 100 또는 단계 400에서 네임 서버(500)의 가상 주소를 이용하여 네임 서버에 접속할 수 있는데, 네임 서버(500)의 가상 주소는 네임 서버(500)의 실제 주소에 랜덤값을 부가하여 생성되고, 랜덤값은 컨트롤러와 공유되는 알고리즘에 의해 결정되는 값일 수 있다. 예를 들어, 네임 서버(500)의 주소가 NS_RIP일 때, 클라이언트(300)가 네임 서버에 접속하기 위해 사용하는 네임 서버(500)의 가상 주소 NS_VIP = NS_RIP+랜덤값일 수 있으며, 이 랜덤값은 접속 시각, 출발지 주소(클라이언트 주소) 등을 이용하여 설정되는 값일 수 있다. In
네임 서버(500)는 단계 400에서 클라이언트로부터 가상 주소 요청을 수신하면 가상 주소 요청에 포함된 서비스 네임에 대응하는 은닉 서버(이하, 제 1 은닉 서버라 한다.)의 가상 주소를 생성할 수 있으며(S500), 이를 가상 주소를 요청한 클라이언트에 전송할 수 있다(S600).When the
네임 서버(500)가 가상 주소를 생성하는 단계 500을 보다 구체적으로 살펴보자. 네임 서버(500)는 CIDR을 이용하여 미리 설정된 IP 대역 내의 임의의 값을 할당할 수 있다. 특히, 네임 서버(500)는 네임 서버(500)의 주소와 같은 대역의 주소를 상기 제 1 은닉 서버의 가상 주소로 생성할 수 있는데, 이는 외부에서 은닉 서버의 실제 주소와 가상 주소를 구별할 수 없도록 하기 위함이다. Let's look more specifically at
네임 서버(500)는 서비스 네임이 동일하다면, 표 1에 도시된 바와 같이 서로 다른 호스트(클라이언트)에 중복되는 가상 주소를 할당할 수 있다.If the service names are the same, the
만약, 동일 호스트(클라이언트)로부터 서로 다른 서비스 네임을 포함하는 가상 주소 요청을 수신하였다면, 네임 서버(500)는 표 2에 도시된 바와 같이 각 은닉 서버에 중복되지 않는 가상 IP를 할당할 수 있다. If a virtual address request including a different service name is received from the same host (client), the
단계 500에서 네임 서버(500)는 접속 정보를 이용하여 클라이언트(300)의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단할 수 있다. 그리고 판단 결과 차이가 가상 주소 변경 주기보다 작으면 기 생성된 주소를 제 1 은닉 서버의 가상 주소로 유지하고, 차이가 가상 주소 변경 주기보다 크면 새로운 주소를 제 1 은닉 서버의 가상 주소로 생성할 수 있다. In
네임 서버(500)는 제 1 은닉 서버의 가상 주소를 생성하고 이를 클라이언트에 전송할 뿐 아니라, 가상 주소를 요청한 클라이언트(300)의 식별 정보, 가상 주소 요청에 포함된 서비스 네임(이하, 제 1 서비스 네임이라 한다.), 제 1 은닉 서버의 가상 주소를 포함하는 호스트 관리 정보를 생성할 수 있으며(S800), 호스트 관리 정보를 네임 서버에 저장하거나(S850) 컨트롤러에 전송할 수 있다(S900). The
호스트 관리 정보에는 클라이언트(300)가 네임 서버에 접속한 시각을 나타내는 접속 정보가 더 포함될 수 있는데, 이는 네임 서버(500)가 접속 정보를 이용하여 기 설정된 시간 동안 클라이언트(300)의 접속이 없는 것으로 판단되면 호스트 관리 정보를 삭제하는 데 이용될 수 있다. 또한 접속 정보는 단계500에서 네임 서버(500)가 가상 주소를 갱신할지 여부를 판단하는데 이용될 수 있다. The host management information may further include connection information indicating the time at which the
한편, 클라이언트(300)는 단계 600에서 네임 서버로부터 제 1 은닉 서버의 가상 주소를 수신하면 제 1 은닉 서버의 가상 주소를 패킷의 목적지로 설정하여 패킷을 전송할 수 있다(S700). If the virtual address of the first hidden server is received from the name server in
클라이언트(300)로부터 제 1 은닉 서버의 가상 주소를 목적지로 하는 패킷을 수신한 오픈플로우 스위치(200)는 다음과 같은 동작을 수행할 수 있다. 전술한 바와 같이 오픈플로우 스위치(200)에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재하고, 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow rule)로 구성된다. 오픈플로우 스위치(200)에는 제 1 은닉 서버의 가상 주소에 대한 플로우 룰이 존재하지 않을 것이므로, 오픈플로우 스위치(200)는 컨트롤러(100)에 패킷-인 메시지(packet-in message)를 송신함으로써 제 1 은닉 서버의 가상 주소를 목적지로 하는 패킷의 경로를 컨트롤러(100)에 문의한다(S1000). 패킷-인 메시지는 패킷의 헤더 정보로 구성되어 있으므로, 패킷-인 메시지에는 제 1 은닉 서버의 가상 주소가 목적지로, 클라이언트(300)의 식별 주소가 출발지로 설정되어 있다.The
컨트롤러(100)는 임의의 네트워크 장비로부터 가상 주소를 목적지로 하는 패킷-인 메시지를 수신하면, 기 저장된 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하고(S1100), 실제 주소를 이용하여 패킷-인 메시지에 대응되는 패킷의 경로를 계산한다(S1200). 여기서 매핑 정보는 가상 주소를 생성하는 네임 서버로부터 수신되는 호스트 관리 정보에 의해 갱신되는 정보로, 은닉 서버의 가상 주소를 요청한 클라이언트의 식별 정보, 은닉 서버의 서비스 네임에 대응하는 은닉 서버의 실제 주소 및 은닉 서버의 가상 주소를 포함할 수 있다. When the
단계 1100에서 컨트롤러(100)는 가상 주소의 유효성을 확인하고, 가상 주소가 유효한 경우에 한하여 매핑 정보를 이용하여 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인할 수 있다. 만약 가상 주소가 유효하지 않으면 이후 단계를 수행하지 않음으로써, 호스트(클라이언트)의 정책 위반 여부를 탐지할 수 있다. In step 1100, the
컨트롤러(100)는 가상 주소를 포함하며 계산된 경로에 따라 패킷의 처리를 정의하는 플로우 룰을 생성하며(S1300), 컨트롤러와 연결된 하나 이상의 네트워크 장비에 플로우 룰을 전송할 수 있다(S1400). 네트워크 장비가 오픈플로우 스위치(200)인 경우, 단계 1400에서 오픈플로우 스위치(200)로 전송되는 플로우 룰은 플로우 룰에 따른 플로우 테이블 변경 사항으로 이해될 수 있으며, 오픈플로우 프로토콜이 지원하는 플로우-모드 메시지(flow-mod message)를 통해 전송될 수 있다. The
컨트롤러(100)는 가상 주소를 목적지로 하는 패킷-인 메시지를 수신한 이후에 가상 주소에 기 설정된 랜덤값을 연산하는 단계를 더 포함할 수 있으며, 연산 결과에 따른 목적지 주소가 네임 서버(500)의 실제 주소에 대응되면, 단계 1200에서 컨트롤러(100)는 네임 서버의 실제 주소를 이용하여 패킷의 경로를 계산하고, 각 오픈플로우 스위치(200)가 상기 패킷을 네임 서버(500)로 전송 처리하도록 하는 플로우 룰을 생성할 수 있다. 즉, 가상 주소가 네임 서버의 가상 주소인 경우, 해당 패킷이 네임 서버로 전송되도록 처리하는 것이다. 네임 서버의 주소는 외부에 노출되어 있으나, 정기 및/또는 비정기적으로 변경될 수 있으므로, 컨트롤러(100)는 네임 서버의 주소 변경 알고리즘을 네임 서버 및/또는 클라이언트의 애플리케이션과 공유할 수 있으며, 공유된 알고리즘 또는 랜덤값을 이용하여 네임 서버의 주소의 변경 여부를 식별할 수 있다. The
컨트롤러(100)는 단계 1300 내지 단계 1400에서 네트워크 장비(200)가 은닉 서버(400)와 연결된 네트워크 장비(200)이면, 플로우 테이블 변경 사항에 은닉 서버(400)의 가상 주소를 목적지로 하는 패킷의 목적지를 은닉 서버(400)의 실제 주소로 변경하는 액션 및 은닉 서버(400)의 식별 주소를 출발지로 하는 패킷의 출발지를 은닉 서버(400)의 가상 주소로 변경하는 액션(Set-field Action)을 포함시킬 수 있다. If the
도 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
도 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
이후 단계는 도 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
플로우-모드 메시지를 수신한 각 스위치(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
따라서 본 발명에 의하면, 컨트롤러(100) 외에는 은닉 서버의 실제 주소를 알 수 없을 뿐 아니라, 은닉 서버의 실제 주소 정보가 노출되지 않으므로, 효과적으로 은닉 서버의 정보를 은닉할 수 있으며, 동적으로 은닉 서버의 주소 정보가 변경되므로 불확실성과 공격복잡도가 높아져 공격자로부터 시스템을 안정적으로 보호할 수 있다. Therefore, according to the present invention, since the actual address of the hidden server is not known other than the
전술한 도 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
컨트롤러(100)는 패킷-인 메시지가 ARP(Address Resolution Protocol) 요청 패킷에 관한 패킷-인 메시지이면, ARP 요청 패킷에 포함된 가상 주소를 실제 주소(90.10.10.10)로 변환하고, 실제 주소가 포함된 재생성 ARP 요청 패킷을 컨트롤러와 연결된 하나 이상의 네트워크 장비에 브로드캐스트 할 수 있다(S2000). The
그 결과, 도 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-
다음으로 컨트롤러(100)는 ARP 응답 패킷에 포함된 실제 주소를 가상 주소로 변환하여, 가상 주소를 포함하는 재생성 ARP 응답 패킷을 생성하고, 재생성 ARP 응답 패킷을 클라이언트 Host A(300)에 유니캐스트로 전송할 수 있다(S2500). Next, the
한편, 전술한 서버 은닉 방법은 각 실시 예 중 어느 하나를 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 서버 은닉 애플리케이션을 통해 호스트(300) 또는 컨트롤러(100)에서 구현될 수 있다. On the other hand, the server concealment method described above can be implemented in the
본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.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 서비스 네임은 상기 선택 입력에 대응되는 서비스 네임인 서버 은닉 방법.
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.
상기 클라이언트가 상기 서비스 네임 목록을 네임 서버에 요청하는 단계는 상기 네임 서버의 가상 주소를 이용하여 상기 네임 서버에 접속하는 단계를 포함하며,
상기 네임 서버의 가상 주소는 상기 네임 서버의 실제 주소에 랜덤값을 부가하여 생성되고, 상기 랜덤값은 컨트롤러와 공유되는 알고리즘에 의해 결정되는 값인 서버 은닉 방법.
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.
상기 네임 서버는 상기 클라이언트가 상기 네임 서버에 접속한 시각을 나타내는 접속 정보를 이용하여, 기 설정된 시간 동안 상기 클라이언트의 접속이 없는 것으로 판단되면 상기 호스트 관리 정보를 삭제하는 단계를 더 포함하는 서버 은닉 방법.
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 은닉 서버의 가상 주소로 생성하는 단계를 포함하는 서버 은닉 방법.
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 은닉 서버의 가상 주소로 생성하는 단계를 포함하는 서버 은닉 방법.
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.
상기 은닉 서버의 실제 주소를 확인하는 단계는,
상기 가상 주소의 유효성을 확인하는 단계;
상기 가상 주소가 유효하면, 상기 매핑 정보를 이용하여 상기 가상 주소에 대응되는 은닉 서버의 실제 주소를 확인하는 단계를 포함하는 서버 은닉 방법.
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.
상기 은닉 서버의 실제 주소를 확인하는 단계는
상기 가상 주소에 기 설정된 랜덤값을 연산하여 상기 연산 결과에 따른 목적지 주소가 상기 은닉 서버의 실제 주소에 대응되는지 확인하는 단계를 포함하는 서버 은닉 방법.
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.
상기 은닉 서버와 연결된 네트워크 장비에 전송되는 플로우 룰은
상기 은닉 서버의 가상 주소를 목적지로 하는 패킷의 목적지를 상기 은닉 서버의 실제 주소로 변경하는 액션을 포함하는 서버 은닉 방법.
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.
상기 패킷-인 메시지가 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.
상기 호스트 관리 정보는 상기 클라이언트가 상기 네임 서버에 접속한 시각을 나타내는 접속 정보를 더 포함하고,
상기 호스트 관리부는 상기 접속 정보를 이용하여 기 설정된 시간 동안 상기 클라이언트의 접속이 없는 것으로 판단되면 상기 호스트 관리 정보를 삭제하는 네임 서버.
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.
상기 가상 주소 생성부는
상기 클라이언트가 상기 네임 서버에 접속한 시간을 나타내는 접속 정보를 이용하여 상기 클라이언트의 기 접속 시각과 현재 접속 시각의 차이가 기 설정된 가상 주소 변경 주기 이내인지 판단하여 상기 차이가 상기 가상 주소 변경 주기보다 작으면 기 생성된 주소를 상기 제 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.
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102345559B1 (en) * | 2020-04-23 | 2021-12-31 | 스콥정보통신 주식회사 | Method and system for host management |
Citations (2)
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)
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 |
-
2017
- 2017-05-30 KR KR1020170066846A patent/KR101993875B1/en active IP Right Grant
Patent Citations (2)
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 |