The Internet is a fantastic creature. I’m not speaking of the information you can find on the internet. Nor am I speaking of the entertainment that is available on the Internet.
The mere fact that you can ask for information at your desk or on your phone and somehow that request gets there, and the response gets back, is mind bogglingly complex.
Here is the dirty little secret about computers. It is all zeros and ones. There are no pictures, there are no videos, there are no songs nor even text, it is all zeros and ones.
We group these zeros and ones into units of different sizes. The three primary sizes are 8, 32, and 64, with a spattering of 16. At the lowest level, we think about these in groups of 8, called octets.
You might know them as “Bytes”.
Now, zeros and ones are a bit difficult to read and write. So we use base 16 to read and write bytes.
Base 16 has 16 digits, just like base 10 has 10 digits. 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. are the digits of base 10.
For base 16, we add A, B, C, D, E, and F as the six extra digits.
So we have a 32-bit number that looks like this: 4C4F5645 in hex (base 16) and 1280267845 in base 10, and “LOVE” as ASCII.
It is all zeros and ones. It takes meaning when we decide how those bits will be interpreted.
When you ask Google to search for “The Vine of Liberty”, your browser starts with a name, which it needs to convert to an address. The name is “www.google.com”. Depending on where you are, one of the addresses will be 142.250.69.68.
This is a different representation of a 32-bit word. In this “dotted quad”, each number represents the decimal value of an 8-bit byte.
For you, the simple household, your device asks, “How can I get this message to 142.250.69.68?”
Your device looks up the address in the “routing table”. Your device likely only has a single entry in the routing table. The route of last resort, or default route.
When no other table entries match, then send the request to a default router
A router has a single job, to move packets (requests and responses) from one network to another. When your default router receives your device’s request, it looks up the IP address (142.250.69.68) in its routing table. Again, it is likely that there is only a single entry in that table, the default route.
This is the simple way that things work in simple networks. It continues to work until the moment when a router has to make a choice. Does it send the packet from network H (your home network) to network A or to network B.
That router will have a routing table. It will find a match for 142.250.69.68 in that table, which will tell that router which network to forward your request to.
If nothing about the Internet ever changed, that would be all that was needed. Every router would know how to get to every address and that would be it.
But it isn’t that easy. The Internet changes, constantly. This means that we need to be able to change those routing tables quickly and easily.
The answer to that issue is a routing protocol. The oldest was RIP. It doesn’t work well today as it sends too much data too often. Back in slower networking times, RIP was taking up nearly 70% of my bandwidth. We stopped that.
There are two major types of routing protocols, external and internal. The primary external protocol, today, is the Border Gateway Protocol, or BGP. I don’t have to worry about that.
What I do need to worry about is internal routing. For internal routing, I use a combination of static routes and OSPF.
And this is where it gets complex. The data center has two physical networks. A management network and a production network.
The management network runs on a single subnet, with each host having a unique address on that subnet.
The production network runs on multiple subnets, each subnet serving to isolate problems. In addition, traffic on the production network needs to be able to reach the Internet.
The management network requires zero routing. One network space. No connection to the outside world.
On top of the physical network are layered multiple other networks. There is the OVN NAS network. This is how each of the hypervisors gets access to block storage (and shared file systems). There is the OVN NAS data network. There is the OVN VM network, the container network.
In addition, there are other networks used inside the container environment.
Some of these networks exist in isolation. Others are used as transport networks. No traffic originates nor terminates in these transport networks.
But other networks need to be able to speak to each other.
That means that every device needs to know how to reach every address. This means that OSPF is doing magic all the time to make things work.
Why? Redundancy. Every device has at least two paths to the next hop. If the primary link fails, the secondary link takes over.
This is done by rebuilding the routing table.
OVN links don’t fail (unless the idiot driving the keyboard does something stupid). The physical network can fail. When this happens, OVN just routes the tunnels in different directions.
So why this rant?
Because I can’t get parts of this to work!
My need is to move the containers into the OVN.
And I can’t get routing to work consistently. ARGH!
Oh well. Filler done.