Abstract
Middleboxes have become a vital part of modern networks by providing service functions such as content filtering, load balancing and optimization of network traffic. An ordered sequence of middleboxes composing a logical service is called service chain. Service Function Chaining (SFC) enables us to define these service chains. Recent optimization models of SFCs assume that the functionality of a middlebox is provided by a single software appliance, commonly known as Virtual Network Function (VNF). This assumption limits SFCs to the throughput of an individual VNF and resources of a physical machine hosting the VNF instance. Moreover, typical service providers offer VNFs with heterogeneous throughput and resource configurations. Thus, deploying a service chain with custom throughput can become a tedious process of stitching heterogeneous VNF instances. In this paper, we describe how we can overcome these limitations without worrying about underlying VNF configurations and resource constraints. This prospect is achieved by distributed deploying multiple VNF instances providing the functionality of a middlebox and modeling the optimal deployment of a service chain as a mixed integer programming problem. The proposed model optimizes host and bandwidth resources allocation, and determines the optimal placement of VNF instances, while balancing workload and routing traffic among these VNF instances. We show that this problem is NP-Hard and propose a heuristic solution called Kariz. Kariz utilizes a tuning parameter to control the trade-off between speed and accuracy of the solution. Finally, our solution is evaluated using simulations in data-center networks