KR20110064539A - Apparatus and method for virtual network simulation using multiple virtual machines - Google Patents
Apparatus and method for virtual network simulation using multiple virtual machines Download PDFInfo
- Publication number
- KR20110064539A KR20110064539A KR1020090121200A KR20090121200A KR20110064539A KR 20110064539 A KR20110064539 A KR 20110064539A KR 1020090121200 A KR1020090121200 A KR 1020090121200A KR 20090121200 A KR20090121200 A KR 20090121200A KR 20110064539 A KR20110064539 A KR 20110064539A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- virtual
- network
- machine
- network simulation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
본 발명은 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 외부 클라이언트로부터의 명령에 따라 소정 운영체제하에서 동작하면서 네트워크 장비의 기능을 수행하며 자신의 호스트머신내 실제 네트워크 드라이버와 연결된 가상머신을 생성하여 네트워크 시뮬레이션을 수행하기 위한, 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법에 관한 것이다.The present invention relates to a network simulation apparatus and a method using a plurality of virtual machines, and more particularly, to perform a function of the network equipment while operating under a predetermined operating system according to a command from an external client, the actual network driver in its own host machine The present invention relates to a network simulation apparatus using a plurality of virtual machines and a method for generating a virtual machine connected to the network simulation.
가상머신은 하나의 PC(Personal Computer) 또는 서버에 다수의 가상 하드웨어를 구성하고 이를 이용하여 새로운 운영체제를 실행하는 기술이다.A virtual machine is a technology that configures a plurality of virtual hardware in one personal computer (PC) or server and executes a new operating system using the same.
이때 가상의 하드웨어가 생성되는 실제 PC 또는 서버를 호스트머신이라 하고, 그 안에서 가상의 하드웨어를 구성해 주는 프로그램을 가상머신 모니터 또는 하이퍼바이저(Hypervisor)라 하며, 가상머신 모니터가 생성한 가상의 하드웨어와 그에 상응하는 운영체제를 가상머신이라 한다. 가상머신 모니터에는 상용 제품으로 유명한 'Vmware'가 있고, 오픈소스로 제작된 'QEMU' 및 'Virtualbox' 등이 있다.At this time, the actual PC or server where virtual hardware is created is called a host machine, and the program that configures the virtual hardware therein is called a virtual machine monitor or a hypervisor, and the virtual hardware generated by the virtual machine monitor The corresponding operating system is called a virtual machine. Virtual machine monitors include Vmware, a popular commercial product, and open source, QEMU and Virtualbox.
가상 네트워크 시뮬레이션 시스템은 라우터로 동작하는 다수의 가상머신들을 생성하고, 가상 라우터 간의 연결을 통해서 하나의 가상화된 네트워크를 구축하여 시뮬레이션할 수 있다.The virtual network simulation system generates a plurality of virtual machines that operate as routers, and builds and simulates one virtualized network through the connection between the virtual routers.
일반적인 네트워크 시뮬레이션 툴인 'NS2'나 'Opnet'과 같은 프로그램은 네트워크 모델링을 통해서 실제 라우터나 PC와 같은 동작을 수행하도록 한다. 따라서 정확도 및 시뮬레이션 속도에 한계가 있다.Programs such as 'NS2' and 'Opnet', which are general network simulation tools, perform network modeling to perform the same operations as a real router or PC. Therefore, there is a limit in accuracy and simulation speed.
또한 라우터와 서버 등을 실제로 구성하는 테스트베드를 구축하여 테스트하는 방법은 막대한 비용 문제를 야기한다.In addition, building and testing a testbed that actually configures routers and servers creates enormous cost problems.
이를 해결하기 위한 종래의 기술로 가상화 기술을 이용하여 하나의 PC나 서버에 다수의 가상머신을 생성한 후 시뮬레이션하는 방법이 시도되었으나, 가상머신간의 원할한 통신을 보장하기 위한 구체적인 방안을 제시하지 못하였다.As a conventional technique for solving this problem, a method of simulating after creating a plurality of virtual machines on a single PC or server using virtualization technology has been attempted, but it has not been suggested a specific method for ensuring smooth communication between virtual machines. It was.
다른 한편으로, 종래의 기술은 하나의 PC나 서버에 생성되는 가상머신들을 대상으로 시뮬레이션하기 때문에, 그 확장성에 한계가 있는 문제점이 있었다.On the other hand, since the conventional technology simulates a virtual machine generated on one PC or server, there is a problem in that scalability is limited.
상기와 같은 종래 기술의 문제점을 해결하고자 하는 것이 본 발명의 과제이다.It is a problem of the present invention to solve the problems of the prior art as described above.
따라서 본 발명은 외부 클라이언트로부터의 명령에 따라 소정 운영체제하에서 동작하면서 네트워크 장비의 기능을 수행하며 타 가상머신과의 통신용 소켓을 구비한 가상머신을 생성하여 네트워크 시뮬레이션을 수행함으로써, 가상머신간의 원할한 통신을 제공하고, 여러 장애를 인위적으로 발생시켜 그에 대한 대응방안을 사전에 개발할 수 있도록 하기 위한, 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention performs network simulation while operating under a predetermined operating system according to a command from an external client, and creates a virtual machine having a socket for communication with another virtual machine to perform network simulation, thereby smoothly communicating between virtual machines. The purpose of the present invention is to provide a network simulation apparatus and method using a plurality of virtual machines in order to provide a system, and to artificially generate various obstacles so as to develop a countermeasure in advance.
또한 본 발명은 외부 클라이언트로부터의 명령에 따라 소정 운영체제하에서 동작하면서 네트워크 장비의 기능을 수행하며 자신의 호스트머신내 실제 네트워크 드라이버와 연결된 가상머신을 생성하여 네트워크 시뮬레이션을 수행함으로써, 가상머신간의 원할한 통신을 제공할 뿐만 아니라, 상용망과 유사한 대용량의 가상 네트워크를 구축할 수 있고, 여러 장애를 인위적으로 발생시켜 그에 대한 대응방안을 사전에 개발할 수 있도록 하기 위한, 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법을 제공하는데 다른 목적이 있다.In addition, the present invention performs the function of the network equipment while operating under a predetermined operating system according to a command from an external client, and creates a virtual machine connected to the actual network driver in its host machine to perform network simulation, thereby smoothly communicating between the virtual machines. Network simulation apparatus using multiple virtual machines, and the like, to construct a large-capacity virtual network similar to a commercial network, and to artificially generate various obstacles and to develop countermeasures in advance. There is another purpose in providing a method.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention which are not mentioned can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.
상기 목적을 달성하기 위한 본 발명의 장치는, 하나의 호스트머신상에 적어도 두개의 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 장치에 있어서, 운영체제하에서 동작하는 네트워크 장비의 기능을 수행하며, 타 가상머신과의 통신용 소켓을 생성하기 위한 가상머신; 클라이언트의 명령에 따라 상기 가상머신을 생성하기 위한 가상머신 모니터; 및 상기 클라이언트로부터의 명령을 상기 가상머신 모니터로 전달하여 상기 가상머신을 생성하도록 하기 위한 호스트머신을 포함한다.The apparatus of the present invention for achieving the above object is a network simulation apparatus in an environment in which at least two virtual machines are created on one host machine, and performs functions of network equipment operating under an operating system, and another virtual machine. A virtual machine for creating a socket for communication with the network; A virtual machine monitor for generating the virtual machine according to a command of a client; And a host machine for transmitting the command from the client to the virtual machine monitor to generate the virtual machine.
또한 상기 목적을 달성하기 위한 본 발명의 방법은, 하나의 호스트머신상에 적어도 두개의 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 방법에 있어서, 제 1 운영체제하에서 동작하면서 제 1 네트워크 장비의 기능을 수행하는 제 1 가상머신을 생성하는 제 1 가상머신 생성단계; 상기 제 1 가상머신이 제 2 가상머신과의 통신용 소켓을 생성하는 단계; 제 2 운영체제하에서 동작하면서 제 2 네트워크 장비의 기능을 수행하는 제 2 가상머신을 생성하는 제 2 가상머신 생성단계; 상기 제 2 가상머신이 제 1 가상머신과의 통신용 소켓을 생성하는 단계; 및 상기 생성한 통신용 소켓을 통해 상호 통신하면서 해당 기능을 수행하는 단계를 포함한다.In addition, the method of the present invention for achieving the above object, in a network simulation method in an environment in which at least two virtual machines are created on one host machine, performing the function of the first network equipment while operating under the first operating system Generating a first virtual machine to generate a first virtual machine; Creating, by the first virtual machine, a socket for communication with a second virtual machine; A second virtual machine generating step of generating a second virtual machine operating under a second operating system and performing a function of a second network equipment; Generating, by the second virtual machine, a socket for communication with the first virtual machine; And performing a corresponding function while communicating with each other through the created communication socket.
한편 상기 다른 목적을 달성하기 위한 본 발명의 장치는, 각기 다른 호스트머신상에 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 장치에 있어서, 운영체제하에서 동작하는 네트워크 장비의 기능을 수행하며, 해당 호스트머신의 네트워 크 드라이버를 통해 타 호스트머신상의 가상머신과 통신하기 위한 가상머신; 클라이언트의 명령에 따라 상기 가상머신을 생성하기 위한 가상머신 모니터; 및 상기 클라이언트로부터의 명령을 상기 가상머신 모니터로 전달하여 상기 가상머신을 생성하도록 하기 위한 호스트머신을 포함한다.On the other hand, the apparatus of the present invention for achieving the above object, in the network simulation apparatus in the environment in which the virtual machine is created on different host machine, performs the function of the network equipment operating under the operating system, A virtual machine for communicating with a virtual machine on another host machine through a network driver; A virtual machine monitor for generating the virtual machine according to a command of a client; And a host machine for transmitting the command from the client to the virtual machine monitor to generate the virtual machine.
또한 상기 다른 목적을 달성하기 위한 본 발명의 방법은, 각기 다른 호스트머신상에 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 방법에 있어서, 제 1 운영체제하에서 동작하면서 제 1 네트워크 장비의 기능을 수행하는 제 1 가상머신을 생성하는 제 1 가상머신 생성단계; 상기 제 1 가상머신이 자신의 호스트머신 내 네트워크 드라이버와 연결하는 제 1 연결단계; 제 2 운영체제하에서 동작하면서 제 2 네트워크 장비의 기능을 수행하는 제 2 가상머신을 생성하는 제 2 가상머신 생성단계; 상기 제 2 가상머신이 자신의 호스트머신 내 네트워크 드라이버와 연결하는 제 2 연결단계; 및 각기 연결한 네트워크 드라이버를 통해 서로 통신하면서 해당 기능을 수행하는 단계를 포함한다.In addition, the method of the present invention for achieving the above another object, in the network simulation method in the environment where the virtual machine is created on different host machine, performing the function of the first network equipment while operating under the first operating system Generating a first virtual machine; A first connection step of connecting the first virtual machine with a network driver in its host machine; A second virtual machine generating step of generating a second virtual machine operating under a second operating system and performing a function of a second network equipment; A second connection step of connecting the second virtual machine with a network driver in its host machine; And performing a corresponding function while communicating with each other through the connected network drivers.
상기와 같은 본 발명은, 외부 클라이언트로부터의 명령에 따라 소정 운영체제하에서 동작하면서 네트워크 장비의 기능을 수행하며 타 가상머신과의 통신용 소켓을 구비한 가상머신을 생성하여 네트워크 시뮬레이션을 수행함으로써, 가상머신간의 원할한 통신을 제공하고, 여러 장애를 인위적으로 발생시켜 그에 대한 대응방안을 사전에 개발할 수 있도록 하는 효과가 있다.The present invention as described above, by operating under a predetermined operating system according to a command from an external client to perform the function of the network equipment and to create a virtual machine having a socket for communication with other virtual machines to perform network simulation, It has the effect of providing smooth communication and artificially generating various obstacles to develop countermeasures in advance.
또한 본 발명은 외부 클라이언트로부터의 명령에 따라 소정 운영체제하에서 동작하면서 네트워크 장비의 기능을 수행하며 자신의 호스트머신내 실제 네트워크 드라이버와 연결된 가상머신을 생성하여 네트워크 시뮬레이션을 수행함으로써, 가상머신간의 원할한 통신을 제공할 뿐만 아니라, 상용망과 유사한 대용량의 가상 네트워크를 구축할 수 있고, 여러 장애를 인위적으로 발생시켜 그에 대한 대응방안을 사전에 개발할 수 있도록 하는 효과가 있다.In addition, the present invention performs the function of the network equipment while operating under a predetermined operating system according to a command from an external client, and creates a virtual machine connected to the actual network driver in its host machine to perform network simulation, thereby smoothly communicating between the virtual machines. In addition to providing a large amount of virtual network similar to the commercial network, it is possible to artificially generate a number of failures and to develop countermeasures in advance.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, It can be easily carried out. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1 은 본 발명이 적용되는 다수의 가상머신을 이용한 네트워크 시뮬레이션 시스템에 대한 일실시예 구성도이다.1 is a configuration diagram of an embodiment of a network simulation system using a plurality of virtual machines to which the present invention is applied.
도 1에 도시된 바와 같이, 본 발명이 적용되는 다수의 가상머신을 이용한 네트워크 시뮬레이션 시스템은 제어 단말에 위치한 클라이언트 프로그램(이하, 클라이언트라 함)(10) 및 다수의 네트워크 시뮬레이션 장치(20)를 포함한다.As shown in FIG. 1, a network simulation system using a plurality of virtual machines to which the present invention is applied includes a client program (hereinafter referred to as a client) 10 and a plurality of
클라이언트(10)는 다수의 호스트머신과 통신하여 가상머신의 생성을 지시하고 제어한다. 이때 클라이언트(10)는 각 호스트머신내 가상머신과 가상머신 제어 인터페이스(VM API)를 통해 통신한다.The
네트워크 시뮬레이션 장치(20)는 가상머신 제어 인터페이스를 통해 클라이언트(10)로부터 받은 명령을 가상머신 모니터로 전달하여 해당 네트워크 장비의 기능을 수행하는 가상머신(24)을 생성하도록 하기 위한 호스트머신, 및 네트워크 장비의 기능을 수행하기 위한 다수의 가상머신을 포함한다.The
이러한 구성을 가지는 네트워크 시뮬레이션 시스템은 서버/클라이언트 모델을 이용함으로써, 네트워크 장비의 기능을 수행하는 가상머신의 수를 증가시키는데 매우 용이한 장점이 있다.The network simulation system having such a configuration has a very easy advantage of increasing the number of virtual machines performing the functions of network equipment by using the server / client model.
즉, 클라이언트(10)로부터의 가상머신 생성 명령에 따라 하나의 호스트머신내에 적어도 하나의 가상머신을 생성하여 네트워크 시뮬레이션 테스트를 수행할 수도 있고, 다수의 호스트머신내에 가상머신을 생성하여 네트워크 시뮬레이션 테스트를 수행할 수도 있어 그 확장이 매우 용이하다.That is, the network simulation test may be performed by generating at least one virtual machine in one host machine according to the virtual machine creation command from the
이를 위해서는 종류가 서로 다른 각 가상머신간에 동일한 방식의 통신 기능을 제공해야 한다. 이에 대한 상세한 설명은 하기에서 언급하기로 한다.To do this, it is necessary to provide the same type of communication between virtual machines of different types. Detailed description thereof will be made later.
도 2 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치의 일실시예 구성도이다.2 is a diagram illustrating an embodiment of a network simulation apparatus using a plurality of virtual machines according to the present invention.
도 2에 도시된 바와 같이, 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치는, 가상머신 제어 인터페이스(VM API)(21)를 통해 클라이언트(10)로부터 받은 명령을 각 가상머신 모니터(23)로 전달하여 각 가상머신 모니터(23)로 하여금 해당 네트워크 장비의 기능을 수행하는 가상머신(24)을 생성 및 제어하도록 하기 위한 호스트머신(22), 호스트머신(22)으로부터 전달받은 명령에 따라 해당 네트워크 장비의 기능을 수행하는 가상머신(24)을 생성하기 위한 가상머신 모니터(23), 가상머신 모니터(23)에 의해 생성되어 네트워크 장비의 기능을 수행하기 위한 적어도 하나의 가상머신(24)을 포함한다.As shown in FIG. 2, the network simulation apparatus using a plurality of virtual machines according to the present invention receives a command received from the
또한 가상머신 제어 인터페이스(21)는 호스트머신(22)상에서 동작하여 클라이언트(10)와 호스트머신(22) 내에 생성된 모든 가상머신과의 인터페이스를 제공한다.The virtual
아울러, 가상머신(24)은 타 가상머신과 통신하기 위해 통신용 소켓을 생성하거나 해당 호스트머신 내 네트워크 드라이버와 연결한다.In addition, the
이하, 가상머신 모니터(23)의 종류 및 각 가상머신 모니터(23)가 생성하는 가상머신(24)에 대해 살펴보기로 한다.Hereinafter, the type of the virtual machine monitor 23 and the
먼저 가상머신 모니터(23)의 종류는 'Xen', 'Dynamips', 'QEMU' 등이 있다. 'Xen' 및 'QEMU'는 일반 PC(Personal Computer) 하드웨어를 가상화할 수 있는 소스로 윈도우, 리눅스, 솔라리스, 주니퍼 라우터 등과 같은 장비를 가상화할 수 있고, 'Dynamips'는 'MIPS CPU'를 가상화할 수 있는 소스로 시스코 라우터 7200 시리즈, 시스코 라우터 3800 시리즈, 시스코 라우터 2800 시리즈를 가상화할 수 있다.First, the types of the virtual machine monitor 23 include 'Xen', 'Dynamips', and 'QEMU'. 'Xen' and 'QEMU' are the sources of virtualization of general personal computer (PC) hardware. Virtual machines such as Windows, Linux, Solaris, and Juniper routers can be virtualized, and 'Dynamips' is used to virtualize 'MIPS CPU'. It can be used to virtualize the Cisco Router 7200 Series, the Cisco Router 3800 Series, and the Cisco Router 2800 Series.
따라서 'Xen' 또는 'QEMU'은 네트워크 장비인 주니퍼 라우터와 운영체제인 'Junos' 및 네트워크 드라이버인 NIC(Network Interface Card) 드라이버를 가상화하여, 'Junos'에서 동작하면서 주니퍼 라우터의 기능을 수행하는 제 1 가상머신을 생성한다. 이때, 본 발명에서는 제 1 가상머신이 타 가상머신과 원할히 통신할 수 있도록 UDP(User Datagram Protocol) 소켓을 생성하되, 이는 가상 NIC 드라이버가 수행한다.Therefore, 'Xen' or 'QEMU' virtualizes Juniper routers, which are network devices, Junos, which is an operating system, and Network Interface Card (NIC) drivers, which are network drivers. Create a virtual machine. In this case, the present invention creates a UDP (User Datagram Protocol) socket so that the first virtual machine can communicate with other virtual machines smoothly, which is performed by the virtual NIC driver.
또한, 'Dynamips'는 네트워크 장비인 시스코 라우터와 운영체제인 'IOS' 및 네트워크 드라이브인 가상 NIC 드라이버를 가상화하여, 'IOS'에서 동작하는 시스코 라우터의 기능을 수행하는 제 2 가상머신을 생성한다. 이때, 본 발명에서는 제 2 가상머신이 타 가상머신과 원할히 통신할 수 있도록 UDP 소켓을 생성하되, 이는 가상 NIC 드라이버가 수행한다.In addition, 'Dynamips' virtualizes a Cisco router, which is a network device, an operating system, 'IOS', and a virtual NIC driver, which is a network drive, to create a second virtual machine that performs a function of a Cisco router operating in the 'IOS'. In this case, in the present invention, a UDP socket is created so that the second virtual machine can communicate with other virtual machines smoothly, which is performed by the virtual NIC driver.
도 3 은 본 발명에 따른 가상 네트워크를 구성 및 제어하는 클라이언트에 대한 일예시도이다.3 is an exemplary view of a client configuring and controlling a virtual network according to the present invention.
도 3에 도시된 바와 같이, 클라이언트 프로그램이 적용된 클라이언트 단말은 호스트머신에서 제공하는 가상머신의 종류를 관리하기 위한 가상머신 카테고리(31), 가상 네트워크를 구축하기 위한 토폴로지 관리(32), 가상머신을 제어하기 위한 클라이언트 API(33)를 포함한다.As shown in FIG. 3, the client terminal to which the client program is applied includes a
따라서 사용자는 클라이언트 프로그램이 실행된 화면에서 가상머신의 카테고리 내에서 원하는 가상머신을 토폴로지 영역으로 드래그 앤 드롭(Drag & Drop)함으로써 가상의 네트워크를 구성할 수 있다.Therefore, the user can configure a virtual network by dragging and dropping a desired virtual machine into the topology area in the category of the virtual machine on the screen where the client program is executed.
이때 사용자는 토폴로지 관리(32) 영역에 존재하는 가상머신의 하드웨어 종류를 선택할 수 있고, 각 가상머신들은 네트워크로 상호 연결된다.At this time, the user can select a hardware type of the virtual machine existing in the
도 4 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치에서의 가상머신간 통신 과정에 대한 일실시예 설명도로서, 하나의 호스트머신상 에 생성된 두개의 가상머신간의 통신 과정을 나타낸다. 이해를 돕기 위해 두개의 가상머신을 예로 들어 설명하지만, 가상머신의 수는 본 발명에 아무런 영향을 미치지 않는다.4 is a diagram illustrating an embodiment of a communication process between virtual machines in a network simulation apparatus using a plurality of virtual machines according to the present invention, and illustrates a communication process between two virtual machines generated on one host machine. For the sake of understanding, two virtual machines are described as examples, but the number of virtual machines has no influence on the present invention.
도 4에 도시된 바와 같이, 하나의 호스트머신상에 'Junos' 운영체제하에서 동작하는 주니퍼 라우터의 기능을 수행하기 위한 제 1 가상머신(41)과 'IOS' 운영체제하에서 동작하는 시스코 라우터의 기능을 수행하기 위한 제 2 가상머신(42)이 생성되어 있다.As shown in FIG. 4, the first
이때 각 가상머신내의 가상 NIC 드라이버는 타 가상머신과 통신하기 위한 UDP 소켓을 생성한다. 즉, 제 1 가상머신(41)의 가상 NIC 드라이버는 제 2 가상머신(42)과 통신하기 위한 UDP 소켓을 생성한 후 UDP 패킷을 통해 통신하고, 제 2 가상머신(42)의 가상 NIC 드라이버는 제 1 가상머신(41)과 통신하기 위한 UDP 소켓을 생성한 후 UDP 패킷을 통해 통신한다.At this time, the virtual NIC driver in each virtual machine creates a UDP socket for communicating with another virtual machine. That is, the virtual NIC driver of the first
결국 제 1 가상머신(41)의 가상 NIC 드라이버와 제 2 가상머신(42)의 가상 NIC 드라이버는 UDP 소켓을 통해 상호 연결된다. 일예로 제 1 가상머신(41)에서 제 2 가상머신(42)으로 전송되는 UDP 패킷은 서버포트 10000을 사용하고, 제 2 가상머신(42)에서 제 1 가상머신(41)으로 전송되는 UDP 패킷은 서버포트 1001을 사용한다.As a result, the virtual NIC driver of the first
이때 각 가상머신의 네트워크 드라이버(가상 NIC 드라이버)는 UDP 서버로 동작하며, IP 주소는 'Loopback address'인 127.0.0.1을 사용한다.At this time, the network driver (virtual NIC driver) of each virtual machine operates as a UDP server, and the IP address uses 127.0.0.1, a 'Loopback address'.
도 5 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장 치에서의 가상머신간 통신 과정에 대한 다른 실시예 설명도로서, 각기 다른 호스트머신내에 생성된 가상머신간의 통신 과정을 나타낸다.5 is a diagram illustrating another embodiment of a communication process between virtual machines in a network simulation device using a plurality of virtual machines according to the present invention, and illustrates a communication process between virtual machines generated in different host machines.
도 5에 도시된 바와 같이, 제 1 호스트머신상에 'Junos' 운영체제하에서 동작하는 주니퍼 라우터의 기능을 수행하기 위한 제 1 가상머신(41)이 생성되어 있고, 제 2 호스트머신상에 'IOS' 운영체제하에서 동작하는 시스코 라우터의 기능을 수행하기 위한 제 2 가상머신(42)이 생성되어 있다.As shown in FIG. 5, a first
이때 제 1 가상머신(41)내의 가상 NIC 드라이버와 제 2 가상머신(42)내의 가상 NIC 드라이버는 상호 통신하기 위해 자신의 호스트머신 내 TAP 인터페이스를 통해 실제 NIC 드라이버와 연결한다.At this time, the virtual NIC driver in the first
즉, 제 1 호스트머신상에 생성된 제 1 가상머신(41)의 가상 NIC 드라이버는 TAP 인터페이스(51)를 통해 제 1 호스트머신상의 실제 NIC 드라이버(52)와 연결하고, 제 2 호스트머신상에 생성된 제 2 가상머신(42)의 가상 NIC 드라이버는 TAP 인터페이스(53)를 통해 제 2 호스트머신상의 실제 NIC 드라이버(54)와 연결한다.That is, the virtual NIC driver of the first
결국 제 1 가상머신(41)과 제 2 가상머신(42)은 인터넷에 연결되어 상호 통신이 가능하다. 이때, IP 주소는 TAP 인터페이스에 할당한 공인 IP를 사용한다.As a result, the first
여기서 TAP 인터페이스는 커널과 어플리케이션이 통신하기 위한 가상의 네트크 인터페이스로서, 어플리케이션은 TAP 인터페이스에 패킷을 송신하는 것으로 커널에 패킷을 전달할 수 있고, 커널이 TAP 인터페이스로 송신한 패킷을 어플리케이션이 수신할 수 있다. 주로 이더넷(Ethernet) 프레임을 처리하는데 이용된다.In this case, the TAP interface is a virtual network interface for communication between the kernel and the application. The application can transmit a packet to the kernel by sending a packet to the TAP interface, and the application can receive a packet transmitted by the kernel to the TAP interface. have. It is mainly used to process Ethernet frames.
도 6 은 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 방 법에 대한 일실시예 흐름도로서, 하나의 호스트머신상에 적어도 두개의 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 과정을 나타낸다.6 is a flowchart illustrating a network simulation method using a plurality of virtual machines according to the present invention, and illustrates a network simulation process in an environment in which at least two virtual machines are generated on one host machine.
먼저 제 1 운영체제하에서 동작하면서 제 1 네트워크 장비의 기능을 수행하는 제 1 가상머신을 생성한다(601).First, in
그리고 상기 제 1 가상머신이 제 2 가상머신과의 통신용 소켓을 생성한다(602).The first virtual machine creates a socket for communication with the second virtual machine (602).
그리고 제 2 운영체제하에서 동작하면서 제 2 네트워크 장비의 기능을 수행하는 제 2 가상머신을 생성한다(603).In
그리고 상기 제 2 가상머신이 제 1 가상머신과의 통신용 소켓을 생성한다(604).The second virtual machine creates a socket for communication with the first virtual machine (604).
이후, 상기 생성한 통신용 소켓을 통해 상호 통신하면서 해당 기능을 수행한다(605). 즉, 제 1 가상머신과 제 2 가상머신은 통신용 소켓을 통해 상호 통신하면서 네트워크 시뮬레이션을 수행한다.Subsequently, the corresponding function is performed while communicating with each other through the created communication socket (605). That is, the first virtual machine and the second virtual machine perform network simulation while communicating with each other through a communication socket.
이러한 과정을 통해 하나의 호스트머신상에 적어도 두개의 가상머신이 생성된 환경에서 각 가상머신간의 원할한 통신이 가능하여 최적의 네트워크 시뮬레이션을 수행할 수 있다.Through this process, smooth communication between virtual machines is possible in an environment in which at least two virtual machines are created on one host machine, and thus, optimal network simulation can be performed.
도 7 은 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 방법에 대한 다른 실시예 흐름도로서, 각기 다른 호스트머신상에 가상머신이 생성된 환경에서의 네트워크 시뮬레이션 과정을 나타낸다.7 is a flowchart illustrating a network simulation method using a plurality of virtual machines according to the present invention, and illustrates a network simulation process in an environment in which virtual machines are generated on different host machines.
먼저 제 1 운영체제하에서 동작하면서 제 1 네트워크 장비의 기능을 수행하 는 제 1 가상머신을 생성한다(701).First, in
그리고 상기 제 1 가상머신이 자신의 호스트머신 내 네트워크 드라이버와 연결한다(702).The first virtual machine connects with the network driver in its host machine (702).
그리고 제 2 운영체제하에서 동작하면서 제 2 네트워크 장비의 기능을 수행하는 제 2 가상머신을 생성한다(703).In
그리고 상기 제 2 가상머신이 자신의 호스트머신 내 네트워크 드라이버와 연결한다(704).The second virtual machine connects with the network driver in its host machine (704).
그리고 각기 연결한 네트워크 드라이버를 통해 서로 통신하면서 해당 기능을 수행한다(705). 즉, 제 1 가상머신과 제 2 가상머신은 자신의 호스트머신 내 TAP 인터페이스를 통해 네트워크 드라이버에 연결하여 인터넷 환경에서 상호 통신하면서 네트워크 시뮬레이션을 수행한다.In
이러한 과정을 통해 각기 다른 호스트머신상에 가상머신이 생성된 환경에서 각 가상머신간의 원할한 통신이 가능하여 최적의 네트워크 시뮬레이션을 수행할 수 있음은 물론 상용망과 유사한 대용량의 가상 네트워크를 구축할 수 있다.Through this process, it is possible to perform smooth network communication between virtual machines in an environment where virtual machines are created on different host machines, and to perform an optimal network simulation and to build a large-capacity virtual network similar to a commercial network. .
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.On the other hand, the method of the present invention as described above can be written in a computer program. And the code and code segments constituting the program can be easily inferred by a computer programmer in the art. In addition, the written program is stored in a computer-readable recording medium (information storage medium), and read and executed by a computer to implement the method of the present invention. The recording medium may include any type of computer readable recording medium.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.
도 1 은 본 발명이 적용되는 다수의 가상머신을 이용한 네트워크 시뮬레이션 시스템에 대한 일실시예 구성도,1 is a configuration diagram of an embodiment of a network simulation system using a plurality of virtual machines to which the present invention is applied;
도 2 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치의 일실시예 구성도,2 is a configuration diagram of an embodiment of a network simulation apparatus using a plurality of virtual machines according to the present invention;
도 3 은 본 발명에 따른 가상 네트워크를 구성 및 제어하는 클라이언트에 대한 일예시도,3 is an exemplary view of a client configuring and controlling a virtual network according to the present invention;
도 4 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치에서의 가상머신간 통신 과정에 대한 일실시예 설명도,4 is a diagram illustrating an embodiment of a communication process between virtual machines in a network simulation apparatus using a plurality of virtual machines according to the present invention;
도 5 는 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치에서의 가상머신간 통신 과정에 대한 다른 실시예 설명도,5 is a diagram illustrating another embodiment of a communication process between virtual machines in a network simulation apparatus using multiple virtual machines according to the present invention;
도 6 은 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 방법에 대한 일실시예 흐름도,6 is a flowchart illustrating an embodiment of a network simulation method using multiple virtual machines according to the present invention;
도 7 은 본 발명에 따른 다수의 가상머신을 이용한 네트워크 시뮬레이션 방법에 대한 다른 실시예 흐름도이다.7 is a flowchart illustrating another embodiment of a network simulation method using multiple virtual machines according to the present invention.
* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings
21 : VM API 22 : 호스트머신21: VM API 22: Host Machine
23 : 가상머신 모니터 24 : 가상머신23: virtual machine monitor 24: virtual machine
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090121200A KR20110064539A (en) | 2009-12-08 | 2009-12-08 | Apparatus and method for virtual network simulation using multiple virtual machines |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090121200A KR20110064539A (en) | 2009-12-08 | 2009-12-08 | Apparatus and method for virtual network simulation using multiple virtual machines |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110064539A true KR20110064539A (en) | 2011-06-15 |
Family
ID=44397963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090121200A KR20110064539A (en) | 2009-12-08 | 2009-12-08 | Apparatus and method for virtual network simulation using multiple virtual machines |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110064539A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140099873A (en) * | 2012-01-30 | 2014-08-13 | 엘지전자 주식회사 | Method for managing virtual machine and device therefor |
KR101716715B1 (en) * | 2016-12-27 | 2017-03-15 | 주식회사 티맥스클라우드 | Method and apparatus for handling network I/O apparatus virtualization |
CN106776398A (en) * | 2016-12-20 | 2017-05-31 | 广州视源电子科技股份有限公司 | The method and apparatus of dual system double-direction control |
US10367714B2 (en) | 2016-04-27 | 2019-07-30 | Electronics And Telecommunications Research Institute | Apparatus for testing and developing products of network computing based on open-source virtualized cloud |
WO2024087810A1 (en) * | 2022-10-27 | 2024-05-02 | 深圳云豹智能有限公司 | Cloud data center management system and electronic device |
-
2009
- 2009-12-08 KR KR1020090121200A patent/KR20110064539A/en not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140099873A (en) * | 2012-01-30 | 2014-08-13 | 엘지전자 주식회사 | Method for managing virtual machine and device therefor |
US9891937B2 (en) | 2012-01-30 | 2018-02-13 | Lg Electronics Inc. | Method for managing virtual machine and device therefor |
US10367714B2 (en) | 2016-04-27 | 2019-07-30 | Electronics And Telecommunications Research Institute | Apparatus for testing and developing products of network computing based on open-source virtualized cloud |
CN106776398A (en) * | 2016-12-20 | 2017-05-31 | 广州视源电子科技股份有限公司 | The method and apparatus of dual system double-direction control |
WO2018113112A1 (en) * | 2016-12-20 | 2018-06-28 | 广州视源电子科技股份有限公司 | Two-system two-way control method and device |
KR101716715B1 (en) * | 2016-12-27 | 2017-03-15 | 주식회사 티맥스클라우드 | Method and apparatus for handling network I/O apparatus virtualization |
US10754679B2 (en) | 2016-12-27 | 2020-08-25 | Tmax Cloud Co., Ltd. | Method and apparatus for handling network I/O device virtualization |
WO2024087810A1 (en) * | 2022-10-27 | 2024-05-02 | 深圳云豹智能有限公司 | Cloud data center management system and electronic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ahrenholz et al. | CORE: A real-time network emulator | |
EP2979180B1 (en) | Methods, systems, and computer readable media for emulating virtualization resources | |
CN108768685B (en) | Large-scale information communication network real-time simulation system | |
US9838294B2 (en) | Network development and testing as a cloud service | |
Ahrenholz | Comparison of CORE network emulation platforms | |
US9286103B2 (en) | Method and apparatus for providing a test network as an IP accessible cloud service | |
TWI588751B (en) | Computer host with a baseboard management controller to manage virtual machines and method thereof | |
CN110995561B (en) | Virtual network data communication interaction method and system based on container technology | |
US8588094B2 (en) | Computer-readable medium storing test environment creation program, test environment creation method, and test device | |
JP5905512B2 (en) | Cyber attack exercise system, exercise environment providing method, and exercise environment providing program | |
JP2015138525A (en) | virtual plant monitoring control device | |
CN104486234A (en) | Method and server for uninstalling service exchanger to physical network card | |
KR20110064539A (en) | Apparatus and method for virtual network simulation using multiple virtual machines | |
US20140040441A1 (en) | System and method for the configuration of a clustered simulation network | |
Tavares et al. | Niep: Nfv infrastructure emulation platform | |
CN111049686A (en) | Safety protection virtual laboratory of power monitoring system and construction method thereof | |
US11546224B2 (en) | Virtual network layer for distributed systems | |
CN108255547B (en) | Application program control method and device | |
Liu et al. | Feasibility analysis of network security teaching platform based on KVM and GNS3 | |
Autefage et al. | NEmu: A distributed testbed for the virtualization of dynamic, fixed and mobile networks | |
Dayanand et al. | A survey on the use of GNS3 for virtualizing computer networks | |
CN113268252A (en) | Mirror image manufacturing method and system based on virtual chemical industry control equipment and storage medium | |
Gallenmüller et al. | Prototyping Prototyping Facilities: Developing and Bootstrapping Testbeds | |
Raychev et al. | Development and Integration of Educational Software Defined Networking Platform in Computer Networking Classes | |
CN111367624B (en) | Method and equipment for establishing simulation platform in SONiC system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |