Network and Address Reference
Purpose
This page documents the addressing, DNS, routing, and network-access model used by the Bytek homelab.
Use this page when:
- Creating a new VM or LXC.
- Adding a Pi-hole reservation.
- Creating a Traefik route.
- Troubleshooting an unreachable service.
- Adding a new public hostname.
- Configuring a firewall rule.
- Diagnosing split-DNS or browser secure-DNS issues.
Home Network
| Setting | Value |
|---|---|
| LAN subnet | 192.168.2.0/24 |
| Default gateway | 192.168.2.1 |
| LAN DNS server | 192.168.2.65 |
| Router | Bell Giga Hub 2.0 |
| Public domain | bytek.ca |
| Public DNS provider | WHC cPanel |
| Public VPS address | 38.29.213.101 |
| Internal HTTPS proxy | 192.168.2.182 |
Service Address Inventory
| Service | Private Address | Primary Ports | Access Scope |
|---|---|---|---|
| WireGuard gateway | 192.168.2.64 |
Existing WireGuard port and SSH | Infrastructure |
| Pi-hole | 192.168.2.65 |
TCP and UDP 53 | LAN |
| Nextcloud AIO | 192.168.2.100 |
TCP 8080 and TCP 11000 | LAN management and Traefik backend |
| Uptime Kuma | 192.168.2.115 |
TCP 3001 | Authentik proxy and monitoring |
| Vikunja | 192.168.2.121 |
TCP 3456 | Traefik backend |
| Authentik | 192.168.2.162 |
TCP 9000 | Traefik and internal services |
| Traefik | 192.168.2.182 |
TCP 443 | LAN and public ingress |
| Proxmox VE | 192.168.2.254 |
TCP 8006 and TCP 22 | LAN or trusted VPN |
| BookStack | Confirm current IP | TCP 6875 | Traefik backend |
Public Hostname Inventory
| Service | Public Hostname | Public DNS Destination |
|---|---|---|
| Nextcloud | cloud.bytek.ca |
38.29.213.101 |
| BookStack | docs.bytek.ca |
38.29.213.101 |
| Authentik | portal.bytek.ca |
38.29.213.101 |
| Vikunja | projects.bytek.ca |
38.29.213.101 |
| Traefik dashboard | proxy.bytek.ca |
38.29.213.101 |
| Uptime Kuma | status.bytek.ca |
38.29.213.101 |
The public application records are managed through the WHC cPanel Zone Editor.
The public DNS destination is the VPS, not the private application address.
Private Hostname Inventory
| Service | Private Hostname | Pi-hole Destination |
|---|---|---|
| Nextcloud | cloud.bytek.ca |
192.168.2.182 |
| BookStack | docs.bytek.ca |
192.168.2.182 |
| Authentik | portal.bytek.ca |
192.168.2.182 |
| Vikunja | projects.bytek.ca |
192.168.2.182 |
| Traefik dashboard | proxy.bytek.ca |
192.168.2.182 |
| Uptime Kuma | status.bytek.ca |
192.168.2.182 |
| Proxmox VE | pve.bytek.ca |
192.168.2.254 |
All HTTPS application hostnames point internally to Traefik.
Proxmox is the exception because Proxmox does not sit behind Traefik.
Public DNS Flow
When an external client opens a hosted application:
- The client requests an application hostname such as
docs.bytek.ca. - Public DNS at WHC returns
38.29.213.101. - The client connects to the VPS.
- The VPS forwards permitted traffic through WireGuard.
- The home WireGuard gateway forwards the request to Traefik.
- Traefik routes the request to the matching internal service.
Public DNS must never point directly to a private address such as 192.168.2.121.
Private RFC1918 addresses are not reachable from the public internet.
Internal Split-DNS Flow
When a client on the home LAN opens a hosted application:
- The client queries Pi-hole at
192.168.2.65. - Pi-hole returns Traefikās address,
192.168.2.182. - The client connects directly to Traefik.
- Traefik routes the request to the matching backend.
This allows internal clients to use the same application hostnames and HTTPS certificates as external clients.
Benefits include:
- No unnecessary trip through the VPS.
- Lower latency.
- No dependency on hairpin NAT.
- Consistent HTTPS URLs.
- Consistent Authentik callback addresses.
- Simpler application configuration.
Public and Private DNS Comparison
| Hostname | Public Result | Internal Pi-hole Result |
|---|---|---|
cloud.bytek.ca |
38.29.213.101 |
192.168.2.182 |
docs.bytek.ca |
38.29.213.101 |
192.168.2.182 |
portal.bytek.ca |
38.29.213.101 |
192.168.2.182 |
projects.bytek.ca |
38.29.213.101 |
192.168.2.182 |
proxy.bytek.ca |
38.29.213.101 |
192.168.2.182 |
status.bytek.ca |
38.29.213.101 |
192.168.2.182 |
pve.bytek.ca |
No public record | 192.168.2.254 |
Proxmox DNS Design
The Proxmox host intentionally uses Quad9:
- DNS server:
9.9.9.9
Proxmox does not use Pi-hole as its general resolver.
This design prevents the hypervisor from depending on a guest VM or LXC for DNS.
As a result, the Proxmox host normally resolves:
portal.bytek.cato38.29.213.101
The Proxmox OIDC server-to-server path can therefore travel through:
- Proxmox.
- Public VPS.
- WireGuard.
- Traefik.
- Authentik.
If this public path causes a future OIDC reliability issue, a single entry may be added to the Proxmox /etc/hosts file:
portal.bytek.cato192.168.2.182
This would route only Authentik directly through local Traefik while keeping general Proxmox DNS on Quad9.
Proxmox Private Hostname
The hostname pve.bytek.ca is intentionally private.
Pi-hole resolves it to:
192.168.2.254
No public WHC record should exist for pve.bytek.ca.
The Proxmox interface is accessed at:
Access should be limited to:
- The home LAN.
- A future trusted VPN.
- An emergency SSH tunnel through the VPS if intentionally configured.
TCP port 8006 must not be exposed directly to the public internet.
Application Backend Reference
Traefik connects to each application using a private IP and backend port.
| Hostname | Backend Destination |
|---|---|
cloud.bytek.ca |
192.168.2.100:11000 |
docs.bytek.ca |
BookStack private IP on TCP 6875 |
portal.bytek.ca |
192.168.2.162:9000 |
projects.bytek.ca |
192.168.2.121:3456 |
status.bytek.ca |
Uptime Kuma or Authentik outpost |
proxy.bytek.ca |
Traefik internal dashboard service |
Backend ports should be accessible only from the systems that require them.
For example:
- Vikunja TCP 3456 should be available to Traefik and Uptime Kuma.
- BookStack TCP 6875 should be available to Traefik and Uptime Kuma.
- Nextcloud TCP 11000 should be available to Traefik.
- Authentik TCP 9000 should be available to Traefik and approved internal services.
- Uptime Kuma TCP 3001 should eventually be limited to the Authentik outpost.
DHCP Reservations
Infrastructure services should use DHCP reservations based on their virtual NIC MAC addresses.
Known reservations include:
| Service | Reserved Address |
|---|---|
| Nextcloud | 192.168.2.100 |
| Uptime Kuma | 192.168.2.115 |
| Vikunja | 192.168.2.121 |
Additional infrastructure reservations should be confirmed in Pi-hole before being added to this page.
To locate a VM MAC address on Proxmox, use:
qm config <VMID>
Locate the net0 line and record the MAC address.
For an LXC, use:
pct config <CTID>
Reservations prevent unexpected address changes from breaking:
- Traefik routes.
- Firewall rules.
- Uptime Kuma monitors.
- Authentik providers.
- Pi-hole records.
- Administrative bookmarks.
- Documentation.
Firewall Source Reference
Known infrastructure sources include:
| Source | Address |
|---|---|
| WireGuard gateway | 192.168.2.64 |
| Pi-hole | 192.168.2.65 |
| Uptime Kuma | 192.168.2.115 |
| Authentik | 192.168.2.162 |
| Traefik | 192.168.2.182 |
| Proxmox | 192.168.2.254 |
Typical firewall requirements include:
- Traefik to application backend ports.
- Uptime Kuma to direct health endpoints.
- Authentik outpost to Uptime Kuma.
- LAN administrator devices to SSH.
- Pi-hole DNS from approved LAN clients.
- WireGuard gateway to Traefik.
- Proxmox management access from the LAN or VPN.
Avoid broad any-source rules when a specific infrastructure source can be used.
Browser Secure-DNS Warning
Firefox and Zen can use DNS over HTTPS and bypass Pi-hole.
This can cause private hostnames such as pve.bytek.ca to fail even when Pi-hole is configured correctly.
Recommended browser setting:
- DNS over HTTPS: Off or Default Protection
If an internal hostname fails only in the browser:
- Confirm the hostname resolves from the operating system.
- Query Pi-hole directly.
- Disable forced DNS over HTTPS.
- Clear the operating-system DNS cache.
- Clear the browser DNS cache.
- Close idle browser sockets.
- Completely restart the browser.
Useful Windows commands:
Resolve-DnsName pve.bytek.canslookup pve.bytek.ca 192.168.2.65Test-NetConnection pve.bytek.ca -Port 8006Clear-DnsClientCacheipconfig /flushdns
Expected result:
pve.bytek.caresolves to192.168.2.254.- TCP port 8006 succeeds.
DNS Validation
Verify an Internal Record
Use:
nslookup portal.bytek.ca 192.168.2.65
Expected result:
portal.bytek.caresolves to192.168.2.182.
Verify a Public Record Through Pi-hole
Use:
nslookup google.com 192.168.2.65
Expected result:
- One or more public addresses are returned.
Verify Public WHC DNS
38.29.213.101
Verify a Backend Port
Examples:
nc -zv -w 5 192.168.2.121 3456nc -zv -w 5 192.168.2.162 9000nc -zv -w 5 192.168.2.254 8006
A successful connection confirms TCP reachability but does not prove the application is healthy.
Network Troubleshooting Order
When a hostname is unreachable, troubleshoot in this order:
- Confirm the destination VM or LXC is running.
- Confirm the destination still owns the documented IP.
- Confirm the hostname resolves to the expected address.
- Confirm the required TCP or UDP port is reachable.
- Test the application directly by private IP.
- Test the application through Traefik locally.
- Test the application through the public VPS path.
- Check browser secure-DNS settings.
- Review Proxmox and guest firewall rules.
- Review application and Traefik logs.
Do not change DNS, firewalling, and application configuration simultaneously.
Address-Change Procedure
If a service IP changes:
- Create or update the Pi-hole DHCP reservation.
- Renew the guest lease or restart the guest.
- Confirm the guest owns the new address.
- Update the Traefik backend.
- Update Proxmox firewall source or destination rules.
- Update Uptime Kuma monitors.
- Update Authentik Proxy Provider internal hosts if applicable.
- Update documentation.
- Search service configuration for the old address.
- Test internal and external access.
A stale backend IP previously affected several deployment steps, so the old address should be searched across configuration files after every change.
Document Control
- Owner: Bryan Gagne-Plante
- Last verified: YYYY-MM-DD
- Public DNS provider: WHC cPanel
- Internal DNS provider: Pi-hole
- LAN subnet:
192.168.2.0/24 - Known limitation: Browser DNS over HTTPS can bypass Pi-hole
- Items to confirm: BookStack private IP and remaining DHCP reservations
No comments to display
No comments to display