The major role of a network provider is to ensure quality of service (QoS) in the network. In order to do so, acquiring and testing new physical devices are routinely required. Provisioning new physical devices typically introduces high capital expenditure (CAPEX) and operational expenditure (OPEX) for the network provider. Therefore, finding a cost-effective method that can reduce the cost of testing and implementation cycle is critically required. In this regard, network function virtualization (NFV) can be one of the most suitable approaches to solve those problems. The main idea of NFV is decoupling the network functions from the physical equipment so that the functions can be installed into the physical commodity devices. The purpose of NFV is to reduce the deployment cost of a large network. NFV also gives flexibility to the network provider to do the service provisioning. Compared to NFV, Software-defined networking decouples data plane and control plane. SDN uses the centralized controller to manage all information that has been exchanged in the data plane. SDN gives open interfaces and brings unified programmable control that can be used to automatically configure the network. One of the main challenges in the NFV is resource allocation. Resource allocation is the method that explains how to compose and allocate network function into the physical substrate network efficiently. The problem is assigning virtual resources to substrate physical network. There are many types of NFVs. In this thesis, extensive experimental studies were conducted to characterize the CPU resources of firewall, proxy, web application firewall, and intrusion detection system (IDS) as a function of input load and configuration rules. Moreover, we use iptables as a firewall and NAT gateway, Squid as a proxy, ModSecurity as a web application firewall, and Snort as an IDS. From the experiment, we modeled CPU resource utilization as a function of input load and VNF configuration rules, which was used in the proposed heuristic algorithm to solve the resource allocation problem. We also compared the performance of the proposed heuristic algorithm with the ILP-based algorithm using an ILP-solver.
네트워크 관리자는 네트워크의 일정한 서비스 질을 제공해야 한다 이를 위해서 새로운 장비 사용이나 테스트는 필수불가결하며, 새로운 장비의 CAPEX의 OPEX를 예측하는 것도 필요하다. 따라서 비용 효율적인 테스트, 구현 방법이 필요하다. 네트워크 기능 가상화는 이 문제를 해결하기 위한 가장 적절한 방법이라 할 수 있다. 네트워크 기능 가상화는 네트워크 기능을 물리 장비와부터 분리해 각각의 네트워크 기능이 일반적인 물리 장비에 설치될 수 있도록 해 큰 네트워크를 설정할 때 비용을 줄일 수 있도록 한다. 네트워크 기능 가상화는 서비스 관리자에게 서비스 제공 시 확장가능성을 제공할 수 있다. 소프트웨어 정의 네트워크의 경우 데이터 플레인과 제어 플레인을 분리하는 것이다. 소프트웨어 정의 네트워크는 중앙화된 컨트롤러를 사용하여 데이터 플레인의 모든 정보를 관리한다. 소프트웨어 정의 네트워크는 개방형 인터페이스를 제공하며 자동으로 네트워크를 구성할 수 있는 통합된 프로그램 가능 제어 기능을 제공한다. 네트워크 기능 가상화의 어려움 중 하나는 자원 할당인데, 이는 네트워크 기능들을 실제 네트워크에 효율적으로 구성하고 할당하는 것을 목표로 한다. 다양한 종류의 가상화된 네트워크 기능들을 실제 네트워크에 할당하는 것이 가장 큰 문제이다. 이 논문에서는 실험을 통해 방화벽, 침입 감지 시스템, 프록시, 웹 응용프로그램 방화벽의 자원 정의를 수행하였다. 방화벽과 NAT로는 iptables, 프록시로는 squid, 웹 응용 방화벽으로는 ModSecurity, 침입감지 시스템으로는 Snort를 사용하였다. 이 실험에서 네트워크 기능들의 규칙 개수와 입력 부하에 따른 CPU 사용량을 모델링했다. 실험에서 가장 큰 링크 코스트와 모델을 사용하여 휴리스틱 알고리즘을 통해 자원 할당 문제를 푸는 방법을 제시하고, 휴리스틱 알고리즘과 정수 선형 계획법의 성능을 비교했다.