Fixing My Network after expanding the LAN
March 26, 2020
Somewhat recently, I finalized the purchase of some computers and computer parts on Craigslist. I was able to bargain for some cheap discounts - and I wanted to plug these computers into my network. Little did I know that I would be in for a wild ride…
					At the time, my LAN did not consist of much: just an old (but
					still great!) MacBook Pro 2012, a Raspberry Pi 3B+ and a Surface
					Pro 5, which is my daily driver. The Pi was the only computer on
					the network with a statically set IP (10.0.0.2)
					because it was running my DHCP, DDNS, and DNS servers.
				
When it came to hooking up the new computers to my switch and router, I had no choice to unplug and rearrange all my computers (space is pretty tight in a college dorm room). I had to get creative and hang my router from some hangers…

So I plugged in everything, and turned all the machines on all at once. Of course, several problems popped up. At the time, I only saw one problem, which eventually caused me to misdiagnose some problems down the line.
					Immediately, I ran into problems. I could not ICMP ping my router
					from my Surface Pro, even though I was able to do so from my
					Raspberry Pi. Both were connected directly to the router (not the
					switch). I checked the ARP table, and the mapping (for my router,
					10.0.0.1) was in a FAILED state on my Surface, but
					REACHABLE from my Pi. After testing the CAT 6 ethernet cable (it
					was still functional), I wasn’t sure what else to do - so i just
					reset the router, which seemed to work.
				
But then there was another problem. I was not able to ping my Raspberry Pi from my Surface. I think I was able to ping other hosts from my Raspberry Pi though, but that doesn’t make too much sense now that I think about it. It’s because the Raspberry Pi’s static IP address conflicted with another computer. I had planned to move the DHCP, DDNS, and DNS servers from the Pi to another computer (my trusty Macintosh G5 Tower), and I forgot the operating system I installed onto it had the same IP address. Changing the Pi’s IP to prevent collisions fixed this issue.
But, you guessed it! - there were more problems. These were related to the services I was running on the Pi. The Kea DHCP4 server would no longer start. However, the issue was a simple one to fix. The configuration specified the wrong IP to listen to
{
	"interfaces-config": {
		"interfaces": ["eth0/10.0.0.2"],
		"dhcp-socket-type": "raw"
	}
}
				
					It was no longer 10.0.0.2, but a separate one that
					did not collide with my Mac G5 Tower. Because specifying the IP
					address was optional in the first place, I just fixed it to
					"eth0".
				
Frustratingly, BIND9 DNS also stopped working, for a similar reason.
include "/usr/local/etc/bind/named.conf.log";
options {
  directory "/usr/local/var/cache/bind";
  listen-on port 53 { 10.0.0.2; };
  listen-on-v6 port 53 { ::1; };
}
...
				
					At first, I changed the IP address to the loopback interface
					127.0.0.1. That didn’t work because I forgot the
					loopback interface is not associated with an actual hardware
					component that can be connected to from the reset of the network.
					I changed it to the actual IP address of the Pi
					(10.0.0.10).
				
					And lastly, there is one more issue that I almost forgot to
					mention. Inside of some option-data in my Kea DHCP
					server, it was configured to continue broadcasting the old Domain
					Name Server IP.
				
{
	"name": "domain-name-servers",
	"code": 6,
	"space": "dhcp4",
	"csv-format": true,
	"data": "10.0.0.2"
}
				Of course, I did not want to give the clients to my DHCP server the wrong IP address, so I had to change that as well.
So in conclusion, after changing my network topology, I faced several issues:
- Could not ping my router (router bugged?)
 - Two devices on the network had the same IP address
 - DHCP servers were listening on the correct interface, but at the wrong (old) IP address
 - DNS servers were listening on the wrong (old) IP address
 - DHCP servers were broadcasting the old IP of the DNS servers
 
The one key takeaway I learned is that it’s a terrible idea to update / change operating systems (especially multiple at once!) while simultaneously changing the network topology.