Network Topology - Because Nobody Wants to Debug This Mess Later#
Networks are complex enough—let’s not make future troubleshooting harder. Proper documentation now saves headaches later.
Note: All IPs are either RFC 5737/4849 test addresses or RFC 1918 private ranges. Don’t expect them to work on the public internet.
Cloud Providers & Colocation#
Track where your infrastructure lives. It’ll save you time when things break.
1
2
3
| # Quick provider lookup
whois 203.0.113.54
whois $(dig +short roll.urown.net)
|
Provider | Nickname |
---|
Amazon Web Services | aws |
Google Cloud | gcp |
Microsoft Azure | azure |
Vultr | vultr |
Scaleway | scale |
Netcup | netcup |
Oracle Cloud | oracle |
Hetzner Cloud | hetzner |
Locations#
Physical presence by city/data center.
Location | Code |
---|
Los Angeles | LAX |
Chicago | CHI |
Paris | PAR |
Tokyo | TYO |
Sydney | SYD |
Madrid | MAD |
Zurich | ZRH |
Johannesburg | JNB |
São Paulo | GRU |
Public IPs & Subnets#
Assigned by upstreams. IPv6 is available in some regions.
Provider | Location | IPv4 Subnet | IPv6 Subnet |
---|
vultr | NYC | 203.0.113.101/32 | 2001:db8:abcd:1::/64 |
scale | AMS | 198.51.100.42/32 | 2001:db8:abcd:2::/64 |
netcup | MUC | 192.0.2.77/32 | 2001:db8:abcd:3::/64 |
oracle | MAD | dynamic | 2001:db8:abcd:4::/48 |
azure | SYD | dynamic | dynamic |
gcp | TYO | dynamic | n/a |
Internal Network Ranges#
RFC 1918 ranges for internal use.
1
2
3
| # Generate random subnets
echo 172.$((RANDOM%16+16)).0.0/24
echo home 172.27.$((RANDOM%255+16)).0/24
|
Site | City | IPv4 Subnet | Mask | CIDR | Notes |
---|
home | Frankfurt | 172.27.88.0 | 255.255.255.0 | 172.27.88.0/24 | Home LAN |
office | Frankfurt | 172.27.126.0 | 255.255.255.0 | 172.27.126.0/24 | Office LAN |
mama | Berlin | 172.27.74.0 | 255.255.255.0 | 172.27.74.0/24 | Mom’s network |
guest | Frankfurt | 172.27.99.0 | 255.255.255.0 | 172.27.99.0/24 | Guest VLAN |
lab | Frankfurt | 172.27.150.0 | 255.255.255.0 | 172.27.150.0/24 | Lab VLAN |
RFC 1918 Private Address Space#
Reference for internal-only addressing.
Network Address | Netmask | CIDR |
---|
10.0.0.0 | 255.0.0.0 | 10/8 |
172.16.0.0 | 255.240.0.0 | 172.16/12 |
192.168.0.0 | 255.255.0.0 | 192.168/16 |
IPv6 ULA (Unique Local Addresses)#
For internal IPv6, use ULA ranges.
Site | City | ULA Suffix | ULA IPv6 Subnet |
---|
home | Frankfurt | 13a6 | fdc1:d89e:b128:13a6::/64 |
office | Frankfurt | 2615 | fdc1:d89e:b128:2615::/64 |
mama | Berlin | 41c5 | fdc1:d89e:b128:41c5::/64 |
VPN Overlay Network#
Overlay connects all sites. Use distinct subnets.
1
2
| # Generate VPN subnet in 10.100.x.x/24
echo 10.100.$((RANDOM%200+20)).0/24
|
Network | Scope | IPv4 Subnet | IPv6 Subnet |
---|
core | Global | 172.27.0.0/16 | fdc1:d89e:b128::/48 |
home | FRA | 172.27.88.0/24 | fdc1:d89e:b128:13a6::/64 |
office | FRA | 172.27.126.0/24 | fdc1:d89e:b128:2615::/64 |
mama | BER | 172.27.74.0/24 | fdc1:d89e:b128:41c5::/64 |
overlay | VPN | 10.100.42.0/24 | fdc1:d89e:b128:6a04::/64 |
Domain Registration#
Own your domain.
DNS Zones by Location#
Organize DNS by site for clarity.
Subdomain | Location | IPv4 Subnet | IPv6 Subnet |
---|
. | Global | 172.27.0.0/16 | fdc1:d89e:b128::/48 |
home | FRA | 172.27.88.0/24 | fdc1:d89e:b128:13a6::/64 |
office | FRA | 172.27.126.0/24 | fdc1:d89e:b128:2615::/64 |
mama | BER | 172.27.74.0/24 | fdc1:d89e:b128:41c5::/64 |
VPN DNS Zone#
Overlay DNS: mesh.example.net
FQDN | IPv4 Address | IPv6 Address |
---|
apollo.mesh.example.net | 10.100.55.10 | fdc1:d89e:b128:7b01::1010 |
cassini.mesh.example.net | 10.100.55.20 | fdc1:d89e:b128:7b01::2020 |
galileo.mesh.example.net | 10.100.55.30 | fdc1:d89e:b128:7b01::3030 |
voyager.mesh.example.net | 10.100.55.40 | fdc1:d89e:b128:7b01::4040 |
Server Naming#
Use neutral names for flexibility. (Halo references.)
Host | Location | Provider | Role |
---|
chief | SFO | hetzner | Server |
cortana | LON | rack | Server |
arbiter | PHO | roller | Server |
keys | FRA | home | Router |
johnson | FRA | home | NAS |
guiltyspark | FRA | home | Wi-Fi AP |
halsey | FRA | home | Server |
miranda | FRA | office | Router |
tartarus | FRA | office | NAS |
truth | BER | mama | Router |
DNS Configuration#
Ensure all hosts are reachable. Dynamic DNS is used for home connections.
Root Domain: example.net
#
FQDN | IPv4 Address | IPv6 Address |
---|
apollo.example.net | 203.0.113.54 | N/A |
cassini.example.net | 198.51.100.7 | 2001:db8:48d1::1 |
galileo.example.net | 192.0.2.14 | 2001:db8:2d07:5b57::0 |
voyager.example.net | dynamic | 2001:db8:3414:6b1d::1 |
pioneer.example.net | dynamic | 2001:db8:3414:6b1d::10 |
kepler.example.net | dynamic | dynamic |
Home Lab: home.example.net
#
FQDN | IPv4 Address | IPv6 Address |
---|
chief.home.example.net | 172.27.88.1 | fdc1:d89e:b128:13a6::1 |
cortana.home.example.net | 172.27.88.10 | fdc1:d89e:b128:13a6::10 |
arbiter.home.example.net | 172.27.88.3 | fdc1:d89e:b128:13a6::3 |
Office: office.example.net
#
FQDN | IPv4 Address | IPv6 Address |
---|
keys.office.example.net | 172.27.126.1 | fdc1:d89e:b128:2615::1 |
johnson.office.example.net | 172.27.126.10 | fdc1:d89e:b128:2615::10 |
Mom’s Place: mama.example.net
#
FQDN | IPv4 Address | IPv6 Address |
---|
guiltyspark.mama.example.net | 172.27.74.1 | fdc1:d89e:b128:41c5::1 |