Loading…
Thumbnail Image

Towards Improved Control and Troubleshooting for Operational Networks

Wundsam, Andreas

Während des letzten Jahrzehnts haben Netzwerke, und besonders das Internet als “Netz der Netze”, in hohem Maße an Bedeutung gewonnen. Gleichzeitig ist auch ihre Geschwindigkeit und ihre Ausdehnung stark gewachsen. Dieser Trend wird sich absehbar fortsetzen. Dadurch wird die Zuverlässigkeit der Netze für unser tägliches Leben immer wichtiger. Trotz alledem sind bis heute unsere Möglichkeiten, diese Netze sicher zu verwalten, und Fehler zu beseitigen und zu beheben, stark beschränkt und reichen nicht aus. Häufig haben wir nur eingeschränkten Einblick in das, was in den Netzen passiert. In letzter Zeit gab es mehrere aufsehenerregende Ausfälle von wichtigen Internet-Diensten, die das deutlich gemacht haben. Die Gründe dafür liegen zum Teil in der Natur der Angelegenheit: Netzwerke sind inhärent hoch komplexe verteilte Systeme, und ihr Zustand und Konfiguration verteilen sich auf viele Einzelknoten. Auch in der Zahl ihrer Knoten und ihrer geographischen Ausdehnung sind sie in hohem Maße heterogen. Zusätzlich haben sich weder die Architektur unserer Netze noch unsere Werkzeuge in den letzten Jahren angemessen weiterentwickelt („Verknöcherung des Internet-Cores“). Dies hat zur Folge, dass Fehler in echten Netzen auch heute noch oft nur durch Ausprobieren und Raten gefunden und behoben werden können, weil die Internet-Architektur nur wenige Mechanismen zur Fehlersuche bereitstellt, und Werkzeuge nur grobkörnige statistische Informationen liefern, oder auf einen einzigen Beobachtungspunkt beschränkt sind. In dieser Dissertation untersuche ich, wie die Kontrolle über unsere Netze und unsere Fähigkeit zur Problemfindung und -behebung verbessert werden kann. Wegen der großen Bandbreite der unterschiedlichen Umgebungen suche ich dabei nicht nach einer Einheitslösung. Statt dessen schlage ich szenariospezifische Ansätze vor. Ich konzentriere mich auf netzwerk-zentrische Lösungen, die lokal implementiert werden können und für die Endgeräte transparent sind. Zuerst untersuche ich das Potential von Flow-Routing, einem Ansatz, mit dem End- Benutzer die Zuverlässigkeit und Geschwindigkeit ihres Internet-Anschlusses selbst verbessern können, indem Internet-Anschlüsse in Gruppen geteilt und verbunden werden. Im größeren Maßstab untersuche ich dann Netzwerkvirtualisierung als Möglichkeit, die “Verknöcherung” des Internet-Kerns zu beheben und neue Möglichkeiten für die Fehlerbehebung und Analyse zu schaffen. Ich schlage eine Kontroll-Architektur für Virtuelle Netze vor, die auf eine Umgebung mit mehreren konkurrierenden Akteuren zugeschnitten ist. Danach widme ich mich konkret der Fehlerbehebung. Aufbauend auf Virtuellen Netzen schlage ich Mirror VNets vor, die eine sichere Fortentwicklung und Online-Fehlersuche für komplexe Netzwerkdienste ermöglichen. Dazu wird ein Produktions-VNet mit einem “Spiegelnetz” kombiniert, das in identischer Zu- stand und Konfiguration erzeugt wird. Die Fehlersuche, das Upgrade oder die Rekonfiguration kann dann sicher im Spiegelnetz erfolgen, erst im Erfolgsfall werden die Netze umgeschaltet. Zuletzt untersuche ich, wie neuartige Architekturen für “Software Defined Networks” uns helfen können, Fehler in Netzwerken schneller zu finden und zu beheben. Ich schlage OFRewind vor, das es ermöglicht, Netze aufzunehmen und wieder abzuspielen – sogar dann, wenn diese Netze geschlossene “Black-boxen” enthalten, z.B. kommerzielle Router und Switches. Ich präsentiere mehrere Fallstudien, die die Anwendbarkeit von OFRewind zeigen. Außerdem untersuche ich seine Skalierbarkeit und zeige, dass es mindestens so gut wie aktuell übliche Controller-Implmentierungen skaliert, und deshalb die Skalierbarkeit eines OpenFlow-Netzes nicht signifikant beeinflusst. Zusammengefasst schlage ich mehrere einfache, aber effiziente, szenario-spezifische und netzwerk-zentrische Ansätze vor, die die Kontrolle und Fehlerbehebung für Netzwerke verbessern können, vom Heimnetz über die heimische Internet-Leitung bis zum großen Datacenter. Alle Ansätze wurden praktisch implementiert und in echten Netzen evaluiert. Sie können daher als Hinweisgeber dafür dienen, wie Netzwerke sich weiterentwickeln müssen, um ihrer wachsenden Bedeutung für unseren Alltag gerecht werden zu können.
Over the past decade, operational networks, have grown tremendously in size, performance and importance. This concerns particularly the Internet, the ultimate “network of networks.” We expect this trend to continue as more and more services traditionally provided by the local computer move to the cloud, e.g., file storage services and office applications. In spite of this, our ability to control and manage these networks remains painfully inadequate, and our visibility into the network limited. This has been exemplified by several recent outages that have caused significant disruption of important Internet services [24, 14, 148, 126]. Part of the challenges for controlling and troubleshooting networks stem from the nature of the problem: Networks are intrinsically highly distributed systems with distributed state and configuration. Consequently, a consistent view of the network state is often difficult to attain. They are also highly heterogeneous: Their scale ranges from small home-networks to data center networks that transfer enormous amounts of data at high speeds between thousands of hosts. Their geographic spread may be confined to a single rack, or span the globe. The Internet combines all these different kinds of networks, and thus their individual challenges. In addition, the network architecture and the available toolset has evolved little if at all over the past decade. In fact, the Internet core and architecture has been diagnosed with ossification [48]. Thus, debugging problems in an operational network still comes down to guesswork, as the architecture provides little support for fault localization and troubleshooting, and available tools like NetFlow, traceroute and tcpdump provide either only coarse-grained statistical insight, or are confined to single vantage points and do not provide consistent information across the network. In this thesis, we explore how to improve our control over networks and our abilities to debug and troubleshoot problems. Due to the extreme diversity of the environments, we do not strive for a one-size-fits-all solution, but propose and evaluate several approaches tailored to specific important scenarios and environments. We emphasize network centric approaches that can be implemented locally and are transparent to the end hosts. In the spirit of trusting “running code”, we implement all our approaches “on the metal” and evaluate them in real networks. We first explore the Potential of Flow Routing as an approach available to end users to self-improve their Internet Access. We find Flow-Routing to be a viable, cost- efficient approach for communities to share and bundle their access lines for improved reliability and performance. On a wider scale, we explore Network Virtualization as a possible means to to overcome the ossification of the Internet core and also enable new troubleshooting primitives. We propose a Control Architecture for Network Virtualization in a multi-player, multi-role scenario. We next turn to troubleshooting. Based on Network Virtualization, we propose Mirror VNets as a primitive that enables safer evolution and improved debugging abilities for complex network services. To this end, a production VNet is paired with a Mirror VNet in identical state and configuration. Finally, we explore how Software Defined Network architectures, e.g., OpenFlow, can be leveraged to enable record and replay troubleshooting for Networks. We propose and evaluate OFRewind, the first system that enables practical record and replay in operational networks, even in the presence of black-box devices than cannot be modified or instrumented. We present several case studies that underline its utility. Our evaluation shows that OFRewind scales at least as well as current controller implementations and does not significantly impact the scalability of an OpenFlow controller domain. In summary, we propose several simple but effective, scenario-specific and network centric approaches that improve the control and troubleshooting of Operational Net- works, from the residential network and access line to the datacenter. Our approaches have all been implemented and evaluated on real networks, and can serve as a data- point and guidance for how networks may need to evolve to cater to their growing importance.