Networking

Just as my curiosity for developing websites started from the ground up through trial, error, research, and - eventually - useful applications, I also became curious about the systems operations side of things.

I wanted to study all the components between the browser and the web page that is returned. What physically powers a server, what application actually listens to the request and how, what port forwarding is, how packets get routed, how SSL works - all of it.

Before “the cloud,” there was young me - building franken-servers from my hoard of computer parts, hooking up to routers, switches and modems; playing with Linux and getting acquainted with port forwarding and setting hostnames in whatever low-powered GUI that the router provided me.

Nowadays, for production applications, I am all about cloud deployment. I have load balancers configured for every site I host and, in fact, host all of my instances through Amazon Web Services. Read about my cloud experience, here.

At home, however, I host a server-rack that holds five servers (including my PC) and is plugged into a mountable switch. Internally, my router is equipped with OpenWRT and defers DNS to a utility server, which configures DNS through Bind9 zoning. That same server is also equipped with OpenVPN, SSH and other utilities so I can virtually sneak home from abroad.

Generally speaking, the network configuration I manage is mostly unnecessary and overpowered in terms of the actual functionality I need. But I stand by it, as it provides - in some ways - a sandbox for practicing and learning the ways of networking on all levels.