The joint deployment of Software Defined Networking (SDN) and Network Function Virtualization (NFV) architectures has enabled modern telecommunications networks and Cloud-Fog-Edge computing to accommodate a wide variety of user and service needs. The NFV architecture aims to virtualize network functions, traditionally implemented through dedicated and expensive hardware, so that they can be executed on general purpose hardware. At the same time, SDN brings programmability to networks by separating the control plane from the data plane. These two technologies are complementary and together define an effective solution to promote the software-based networking paradigm with significant benefits, i.e.: increased scalability, agility and innovation. However, the proper functioning of the entire network infrastructure requires a large amount of state to be stored within the equipment, hence including both edge and core routers. The massive presence of such state information in the network devices increases the complexity and reduces the efficiency of network (re)configuration operations (e.g. recalculation of routes, on-demand creation of VPNs, etc.). Segment Routing for IPv6 (SRv6) is a hybrid SDN architecture based on source routing that avoids or dramatically reduces the need to add state information within core devices for deploying network services. In SRv6, a source node includes an ordered list of instructions (segments) represented by IPv6 addresses inside the Segment Routing Header (SRH). Segments can represent topological instructions used as waypoints to steer packets through a specific path within the network and to its final destination. At the same time SRv6, by implementing the Network Programming Model, considers segments as service-based instructions that can be exploited to indicate the operations to be performed by nodes once they receive packets. Softwarization of network operator and data center infrastructures has paved the way for the use of SRv6, taking advantage of its network programming model. In this context, a key role within next-generation networks is covered by software routers. The majority of them are powered by Linux kernel which offers outstanding features in terms of compatibility of hardware, software, flexibility and programmability. The combination of SRv6 Network Programming Model and programmability of Linux kernel-based network devices is a topic of great interest among researchers as well as network operators and cloud providers. In this thesis work, I investigate and cover several aspects of network programming in software routers, mainly based on the Linux kernel, from various perspectives. Considering use cases of real interest to network operators and cloud providers, I investigate how a Linux-based router can be programmed by taking advantage of two macro concepts: i) the adoption of SRv6 Network Programming Model, providing the ability to encode, within specific headers, programs whose instructions are associated with functions run by routers, after receiving packets; ii) the possibility to extend network functions already offered by the Linux kernel and/or add new ones, either by modifying the source code or by using the packet processing frameworks available in the networking stack. These two concepts are related: having an easily programmable and efficient data plane becomes an enabling factor for the spread of network programmability, especially using SRv6. Efficiency plays a key role in the context of a software router, which is often totally virtualized on general purpose hardware or is implemented using hardware acceleration for only a few specific functions (i.e., checksum, fragmentation) and delegates all other operations to a general purpose CPU. In a software router, it is not only the number of supported network functions and protocols that matters, but also the performance that it is able to attain in executing complex network functions. In this thesis, I dedicate considerable attention to performance analysis. This is intended to determine the efficiency, based on certain metrics, of the architectures and of the implementations proposed to cope with the investigated use cases. The different aspects related to network programming studied in this thesis work are grouped by topic areas and reported hereafter.
Network programmability in software routers
MAYER, ANDREA
2021
Abstract
The joint deployment of Software Defined Networking (SDN) and Network Function Virtualization (NFV) architectures has enabled modern telecommunications networks and Cloud-Fog-Edge computing to accommodate a wide variety of user and service needs. The NFV architecture aims to virtualize network functions, traditionally implemented through dedicated and expensive hardware, so that they can be executed on general purpose hardware. At the same time, SDN brings programmability to networks by separating the control plane from the data plane. These two technologies are complementary and together define an effective solution to promote the software-based networking paradigm with significant benefits, i.e.: increased scalability, agility and innovation. However, the proper functioning of the entire network infrastructure requires a large amount of state to be stored within the equipment, hence including both edge and core routers. The massive presence of such state information in the network devices increases the complexity and reduces the efficiency of network (re)configuration operations (e.g. recalculation of routes, on-demand creation of VPNs, etc.). Segment Routing for IPv6 (SRv6) is a hybrid SDN architecture based on source routing that avoids or dramatically reduces the need to add state information within core devices for deploying network services. In SRv6, a source node includes an ordered list of instructions (segments) represented by IPv6 addresses inside the Segment Routing Header (SRH). Segments can represent topological instructions used as waypoints to steer packets through a specific path within the network and to its final destination. At the same time SRv6, by implementing the Network Programming Model, considers segments as service-based instructions that can be exploited to indicate the operations to be performed by nodes once they receive packets. Softwarization of network operator and data center infrastructures has paved the way for the use of SRv6, taking advantage of its network programming model. In this context, a key role within next-generation networks is covered by software routers. The majority of them are powered by Linux kernel which offers outstanding features in terms of compatibility of hardware, software, flexibility and programmability. The combination of SRv6 Network Programming Model and programmability of Linux kernel-based network devices is a topic of great interest among researchers as well as network operators and cloud providers. In this thesis work, I investigate and cover several aspects of network programming in software routers, mainly based on the Linux kernel, from various perspectives. Considering use cases of real interest to network operators and cloud providers, I investigate how a Linux-based router can be programmed by taking advantage of two macro concepts: i) the adoption of SRv6 Network Programming Model, providing the ability to encode, within specific headers, programs whose instructions are associated with functions run by routers, after receiving packets; ii) the possibility to extend network functions already offered by the Linux kernel and/or add new ones, either by modifying the source code or by using the packet processing frameworks available in the networking stack. These two concepts are related: having an easily programmable and efficient data plane becomes an enabling factor for the spread of network programmability, especially using SRv6. Efficiency plays a key role in the context of a software router, which is often totally virtualized on general purpose hardware or is implemented using hardware acceleration for only a few specific functions (i.e., checksum, fragmentation) and delegates all other operations to a general purpose CPU. In a software router, it is not only the number of supported network functions and protocols that matters, but also the performance that it is able to attain in executing complex network functions. In this thesis, I dedicate considerable attention to performance analysis. This is intended to determine the efficiency, based on certain metrics, of the architectures and of the implementations proposed to cope with the investigated use cases. The different aspects related to network programming studied in this thesis work are grouped by topic areas and reported hereafter.File | Dimensione | Formato | |
---|---|---|---|
22_PhD_thesis_mayer.pdf
accesso solo da BNCF e BNCR
Dimensione
6.54 MB
Formato
Adobe PDF
|
6.54 MB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14242/215209
URN:NBN:IT:UNIROMA2-215209