Virtualizing Routers at IXPs, Moritz Beck

Virtualizing Routers at IXPs

Moritz Beck

Abstract

IXPs can virtualize multiple routers on a single system and provide them as a value added Service to their customers. For smaller organizations, these routers reduce capital and operational expenditures compared to purchasing their own hardware, lowering the barrier of entry. On hardware routers, VRFs can be used to separate the route tables of different customers. Due to the limited FIB size, common routes, such as those received from the route server, must be stored centrally in a VRF shared between all customers. However, this creates a need for a second route lookup in the shared VRF. Due to architectural limitations, changes in the packet flow are needed for this. It also has implications on the ability to use a transit provider. As a consequence, this service must be provided through the IXP if wanted by the customer. On commodity servers, VPP provides a fast alternative data plane to the the kernel. Through VPP’s linux-cp plugin, routing daemons can be used for control plane functionality. Using linuxcp’s netns capability, integration with container virtualization is possible. However, there can only be a single instance of the Netlink listener. This can be circumvented by simply running multiple instances of VPP. Because each instance binds exclusively to the NIC, SR-IOV is needed. One physical NIC is represented as multiple virtual NICs, to which each instance of VPP can then bind. In summary, commodity servers are more suitable for this task than hardware routers due to their more flexible configuration.