Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Colorado Boulder

Network Principles in Practice: Linux Networking

University of Colorado Boulder via Coursera

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Welcome! In this course, titled "Network Principles in Practice: Linux Networking," we delve into the dynamic domain of Linux Networking, featuring a robust set of features essential for contemporary networked systems. Departing from traditional approaches, our emphasis is on practical application over foundational knowledge. Throughout the course, you'll explore the integration of concepts into Linux, gaining hands-on experience in architecting and implementing complex networks and systems. From understanding the Linux kernel's role to building gateways and navigating virtual networking and container orchestration with Kubernetes, each week offers valuable insights and practical skills. Join us on this journey where understanding meets real-world application, providing a comprehensive exploration of network systems. This course can be taken for academic credit as part of CU Boulder’s Masters of Science in Computer Science (MS-CS) degrees offered on the Coursera platform. This fully accredited graduate degree offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more: MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder Course logo by Jordan Harrison on Unsplash.

Syllabus

  • Introduction to Linux Networking
    • In this course, we delve into Linux Networking, a domain with a robust set of features crucial in contemporary networked systems. The course is titled "Network Principles in Practice" to emphasize a departure from traditional approaches. Unlike typical network systems courses that focus on foundational knowledge—protocols and concepts—our emphasis is on reinforcing these concepts. We explore how they are integrated into a widely adopted system like Linux. The goal is not just understanding but also practical application, providing hands-on experience in architecting and implementing complex networks and network systems. We'll start our journey into Linux networking be learning how the Linux kernel serves as the data plane and how control and management plane software interacts with it. This week will also review the lab environment and introduce some useful tools for troubleshooting. We’ll end by looking at Linux’s support for layer 2 and set up some network devices.
  • IP Layer with Linux Networking
    • This week you will dive into IP networking within the Linux environment. We kick off by exploring the utilities designed for managing forwarding tables in Linux. From there, we progress to the intricacies of running routing software, illustrating how to transform Linux into a fully functional open-source router. The week concludes with a comprehensive discussion on resources, paving the way for more extensive and realistic experiments in Linux routing.
  • Creating a Gateway with Linux
    • This week we expand the scope and see how to build a gateway using the capabilities inherent in Linux. Here, a gateway functions at the network's edge, executing tasks such as filtering, address translation, load balancing, and enforcement of quality of service policies. We’ll learn some background for each topic, followed by an exploration of relevant Linux utilities that can achieve that functionality.
  • Virtual Networking in Linux
    • This week, we examine Linux's robust support for Virtual Networking, aligning with the trend of containerization. We begin by unraveling the core construct in Linux—the network namespace—and subsequently explore tools for effective network namespace management. Practical application of earlier concepts will illustrate the networking of containerized applications. Furthermore, we will delve into the intricacies of Docker networking, providing a comprehensive understanding of its functionality.
  • Kubernetes Networking with Linux
    • In this final week, our focus broadens to encompass a comprehensive container orchestration system, namely Kubernetes. We will begin with an overview to ensure everyone has a foundational understanding of using Kubernetes. Then, we delve into the architecture of Kubernetes, both at a holistic level and with a detailed focus on networking intricacies. The week concludes with a hands-on approach, as we embark on creating our own network plugin for Kubernetes.

Taught by

Eric Keller

Reviews

4.9 rating at Coursera based on 13 ratings

Start your review of Network Principles in Practice: Linux Networking

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.