Hello and welcome to a blog of mixed nature. Originally, this will most likely turn out to accommodate a wide variety of topics in two different languages – Lithuanian and English. That is mainly due to one reason – I’m interested to further research in the field of MIDI equipment being used in general music education during my master’s studies and further down the line (most likely). I’d like to create an online resource that would be somewhat up-to-date because literature on the topic of MIDI keyboard/equipment integration into the learning / teaching process in Lithuania is rather scarce and old.
However, as it turned out, I also wanted to provide insights on my experiences and how various skills and knowledge allowed me to shape my journey through my studies and various other topics aside education. That might cover servers, experiences with AI and networking, etc.
1. Server and network management experience
This first somewhat serious post will serve to provide some insights. As a matter of fact, I have various experience managing my own servers. Currently, my main hypervisor of choice is Proxmox, under which I run some containers / virtual machines. Setting up a server eventually bugged me enough to upgrade my networking infrastructure, as I initially had only a simple TP-Link router with OpenWRT flashed on it, which eventually turned out to be not capable enough, especially after becoming old enough to not be able to produce gigabit speeds. Thus, became time to upgrade to some more capable router brands, such as MikroTik, Ubiquity, Cisco and so on. However, the more opportunities you get, the more you want to explore and find things to set up.
At first, before I had a more complex setup, I had some very simple things done on the TP-Link: two separate SSIDs for 2.4GHz and 5GHz WiFi frequencies, on-router VPN server, packet prioritisation and some firewall rules for port-forwarding. However, once I upgraded to MikroTik, there were some things that needed to be addressed:
- Learning to understand some networking concepts, such as how traffic comes and goes (a routing chain diagram definitely helps), how traffic is treated, how firewall rules take effect, how NAT rules take effect, how to actually do port-forwarding with dst-nat rules and so on.
- Learning to navigate a whole new interface as well as understanding what functions / options do what.
- After learning some networking concepts, make a simple VPN setup that would allow secure remote access and management.
These were the main points, but while trying to set up various things, there were many times where I managed to break things down. However, these routers are awesome in the way that you can connect via MAC address to them, which bypasses any rules that may have taken effect as you were editing things. Only learnt about it after I broke things down the first couple times.
Wireless setup
As I got more comfortable with the new network setup, I then decided to get things going with my wireless setup as well, because the main router does not have WiFi capabilities. That was the main goal since the start as well, as I now had two free routers that I could use as APs. The setup is very simple – have two routers that broadcast identical SSIDs on both frequencies. Both of them would only pass data over to the main router and wouldn’t do any DHCP themselves, which should improve speed and latency considering these devices are on the older side at this point. This took a while at first since I’ve never set up anything like that before, but after several tries of trial and error as well as experimenting with various setups to get the best out of these things. It took some time until I managed to set it up in a way so that I could manage all of the routers from both of their broadcasted networks without issue.
VPN
And at some point, I began my VPN journey. Oh boy was it painful, it took ages to get it sorted because there were some things that I couldn’t even overcome due to a bug that was only fixed after updating. My primary choice was WireGuard as it was pretty much integrated natively into MT at the time. It took a while to set up and understand, because at first I was unaware of bugs, and once I got a good understanding of how it works, only then did I manage to point out the issue. Overall, it is rather unstable at times, there were issues with WG clients not being able to access certain services on the local network, but eventually after adding needed firewall and NAT rules, things turned out okay. I might move to ZeroTier at some point though.
A few concerns
However, there were things that needed to be addressed on the server. Some of those were:
- Adding more storage and looking out for which option would be best (LVM/LVM-Thin, ZFS, CephFS, etc.). Also sort out how to properly expand storage on already existing VMs/CTs, because I had to do it by hand at first by adding the free space and then extending the volume to the end of the free space, which was harder than it sounds and not as easy to realise for a first timer.
- Adding another VM for hosting game servers and other non-standard uses.
- At some point I thought it would be fun to set up VLANs, but that is yet to be done.
Overall, things took a while, especially extending/expanding storage on existing CTs/VMs at first. Eventually I found an approach that seemed to just work. Assigning an appropriate amount of resources to a VM/CT and then adding more if needed, which automatically lets you utilize the added storage after a restart. Also figuring out a proper backup/snapshot plan, especially because you need quite a lot of storage for a full backup, and starting a backup on a rather small LVM-Thin storage that’s tagged as a VZdump backup location is not very smart.
2. Understanding of the internet, name servers, etc.
After all the networking and server issues, came a time where facing the public internet had to be understood and taken into account as well. That means, understanding how DNS works, how to manage DNS, do I setup my own DNS server or use something else. At first, I needed proper rDNS entries, and at some point, in order to face the internet, I had to secure various aspects of the servers, such as have some services only accessible via local domains, while others could be accessible publicly, but certain URIs wouldn’t be accessible / blocked by Cloudflare or Nginx. Let me tell you though, region-blocking/IP-blocking is a godsend and probably the best practice there is. As they say, security by obscurity. DNS is definitely a wild aspect of networking and even to this day I don’t really delve deep into some aspects of it as well as understand some of it. However, what matters is that things work.
Well then, what we have at this point:
- A public facing server with stable DNS / firewall settings.
- Segregated traffic for security both via Nginx and Cloudflare just in case.
- Local facing services and public facing services.
- Understanding of backups and snapshots.
- Somewhat okay-ish understanding on how to use Proxmox for basic server management.
- Somewhat okay-ish understanding on how to use MT for basic network management.
- Somewhat okay-ish understanding on how to configure DNS for servers.
- Somewhat okay-ish understanding on how networks work.
Closing remarks
It was a very long ride of managing a server, probably about a year or two now, but it has given me many opportunities to learn and save money as well. That is, I was able to store various non-relevant data that otherwise occupied space on the cloud, and you can’t just casually store hundreds of gigabytes of data without paying a single penny. I was also able to delve into owning a mail server and various networking aspects related to having one. Network and uptime monitoring has helped me in discussions with ISPs, when I needed to provide proof for certain incidents.
In terms of education, it has helped me with transfers on-the-go and in dire situations when networks in schools and other educational institutions were down or were experiencing issues. It was great to be able to access information quickly without having to rely on an external drive for once. It was also great being able to share / distribute larger files quickly without having to wonder about costs. It was also a great fun to be able to experience some teaching platforms such as Moodle on my own.
I still believe that I lack knowledge in many areas, but as a result of this experience, I have managed to reach a level where I am able to hypothesise possible causes to certain issues and am able to find information in regards to that. That holds true for hardware and software issues for computers, phones and other devices, as well as servers, operating systems and such. However, I would like to deepen my understanding further, especially in terms of cybersecurity and security measures, understanding of various networking concepts and strategies that I have yet to grasp.
Leave a Reply