Staff Training Lab 5 - Networking
Facilitator: Ben Cuan
4 min readTable of contents
Introduction
Welcome to week 5 of staff training!
This week, we’ll dive into the wonderful world of networking- specifically, how we make it possible for you to access OCF services, and how we make things available to users on human-friendly domain names.
About IP/DNS
The following sections are copied from the Networking lab from the decal. Feel free to skip if you have taken the decal, or have taken CS161/168 and are familiar with the concepts below.
IP
IP addresses are means of identifying devices connected to a network under Internet Protocol. There are two versions of the internet protocol, IPv4 and IPv6, that which differ on the size of their addresses. An example IPv6 address is 2001:0db8:85a3:0000:0000:8a2e:0370:7334
which is considerably longer than an IPv4 address like 127.0.0.1
. For the sake of time we will only go over IPv4, but IPv6 is certainly gaining ground and worth checking out!
IPv4 addresses are 32 bits, i.e. 4 bytes, long and are delimited by a dot (.) every byte. An example IPv4 address is 127.0.0.1
. Coincidentally this address is known as the loopback address which maps to the loopback interface on your own machine. This allows network applications to communicate with one another if they are running on the same machine, in this case your machine. But why 127.0.0.1
and not 127.0.0.0
or 127.0.0.2
?
The answer is that 127.0.0.1
is simply convention, but technically any address in the network block 127.0.0.0/8
is a valid loopback address. But what exactly is a network block?
In IPv4 we can partition a block of addresses into a subnet. This is written in a format known as CIDR. Let’s take the subnet above as an example 127.0.0.0/8
. The number that comes after the slash (/
), in this case 8, is the subnet mask. This represents how many bits are in the network address, the remaining bits identify a host within the network. In this case the network address is 127.0.0.0
and the Mask is 255.0.0.0
. So 127.0.0.1
would be the first host in the 127.0.0.0/8
network and so on and so forth.
This diagram provides a visual breakdown of CIDR addressing
DNS
We’ve gone over IP addresses and how they are means of communicating with a host over IP, but while IP addresses are machine friendly (computers love numbers) they aren’t exactly human friendly. It’s hard enough trying to remember phone numbers, memorizing 32 bit IP addresses isn’t going to be any easier.
But it’s much easier for us to remember names like www.google.com, www.facebook.com, or coolmath-games.com. So out of this conflict the Domain Name System (DNS) was born as a compromise between machine friendly IP addresses and human friendly domain names.
DNS is a system that maps a domain name like google.com to 172.217.6.78
. When you query for google.com your computer sends out a DNS query for google.com to a DNS server. Assuming things are properly configured and google.com has a valid corresponding address you will receive a response from an authoritative server that essentially says “google.com has IP address x.x.x.x
”.
DNS servers store data in the form of Resource Records (RR). Resource records are essentially a tuple of (name, value, type, TTL). While there are a wide variety of types of DNS Records the ones we are most concerned with are
-
A records name = hostname value = IP address
This record is very simply the record that has the IP address for a given hostname, essentially the information we want to end up with.
-
NS records name = domain value = name of dns server for domain
This record points to another dns server that can provide an authoritative answer for the domain. Think of this as redirecting you to another nameserver.
-
CNAME records name = alias value = canonical name
These records point to the canonical name for a given alias for example docs.google.com would be an alias which simply points to documents.google.com try www.facebook.com
-
MX records The record used by mail service.
The OCF’s IP block
The OCF has a /24 IPv4 subnet, which is part of the university’s IPv4 allocation. Specifically, all of OCF’s public IPv4 addresses follow the format 169.229.226.XXX
.