Quicklearn Networking

09 Oct 2021

Background

I just started a new job! We mostly work with MANET networks. These are wireless networks with non-stationary and unreliable nodes. There are generally no dedicated routers, and all devices are both clients and participate in routing.

Anyway, because this is government contract work, we need to jump through lots of hoops to get certified with some security protocols including network security. The company is just three full-time people, one of those is me, and I probably have the most experience with networks and security, which isn’t much! (besides the two days / week contractor who seems very smart and capable)

So short story, I need to get more familiar with networks. Both for app development and our internal IT.

Side note: for our internal IT required security, there are a few resources we should tap into before trying to do this in-house:

  1. People have had to set up and follow these specific security requirements before. There are probably people we could hire with very deep domain expertise on how to set this up. Likely experts who have worked with companies of similar size before, too
  2. The owners are part of a government incubator group, and they talk to the other companies. We could consult with them how they set up their systems for compliance. Setting up closed-source networking systems meant for large institutions seems daunting and like you can’t solve the problems from first principles.

In the past, I’ve set up what is essentially a home network on steroids, with mesh WiFi over 130 acres, VLANs, a VPN, multiple ISPs, wireless Ethernet connections, etc. I’ve also worked in government cybersecurity for a short contract. That said, I still don’t have a solid grasp of networking and security, and have a lot of knowledge gaps.

Here I’m going to make a stream of consciousness post about what I learn as I quickly read through Julia Evans computer networking posts. I’m choosing to learn this way because she

  1. is an excellent writer
  2. uses both concrete practical examples (with tooling demos) and explains some theory
  3. is very honest about what she knows and doesn’t, which makes it both approachable to learn from, and feels more like I’m learning this with a friend
  4. I’m in a time crunch and they’re generally short posts
  5. I don’t have a specific end goal yet, and this covers lots of topics in a non-abstract way
  6. I want to have seen a lot of problems and solutions / tools before, so when I come across something similar, I know where to look

At work, all I know so far is that we have to setup a physical firewall, and that we can’t get a VPN (currently NordVPN) to work. And that these two combined are likely to cause more issues. This is my third day!

Current questions

I’ll research these more thoroughly if the blog posts I’m reading don’t cover them.

From firewall wiki:

Post summaries

CDNs aren’t just for caching

What are SSL ciphers & session keys?

Why do we use the Linux kernel’s TCP stack?

How do HTTP requests get sent to the right place?

Why do UDP packets get dropped?

What’s interesting about UDP?

Dissecting an SSL certificate

How big can a packet get?

Slow down your internet with tc

netdev conference, day 1

How to filter packets super fast: XDP & eBPF!

I’m going to skip netdev conf day 2 and 3 for now. Mostly because this is a reach for Julia, somebody who’s familiar with networking, so it’s an extra reach for me, and more of a depth than breath approach on these niche topics.

Iptables basics

What’s a network interface?

Finding out if/why a server is dropping packets

A few things I’ve learned about computer networking

Reflections update:

I’m part way through, and I already feel like I’ve learned a ton, especially in my quest to have a framework to understand some of the questions I posted in the beginning. I’ll kinda answer them now

How I use Wireshark