Notice: you're looking at a read-only mirror of our Dokuwiki.
This document outlines the network topology, VLAN segmentation, firewall zone policies, and external IP/NAT allocations configured on the primary router (int-fw-01).
The internal network connects over an 802.3ad LACP bond interface (bond0) across eth2 and eth3, trunking 802.1Q tagged VLANs to core switching infrastructure.
| VLAN | Name / Role | Subnet & Gateway | Notes |
|---|---|---|---|
| 6 | DMZ (ExtService) | 10.20.6.1/24 2602:fa6d:abc:6::1/64 |
External-facing servers and VPN gateways |
| 10 | Management | 10.20.10.1/24 2602:fa6d:abc:10::1/64 |
Hypervisors (Proxmox), IPMI, PDUs, network gear |
| 20 | ArubaMgmt | 10.20.20.1/24 |
Aruba wireless controllers and AP discovery |
| 100 | IntService | 10.20.100.1/24 2602:fa6d:abc:100::1/64 |
Internal LAN servers, TrueNAS, Home Assistant, monitoring |
| 110 | MemberClients | 10.20.110.1/24 2602:fa6d:abc:110::1/64 |
Primary trusted user devices (wired and wireless) |
| 120 | Guests | 10.20.120.1/24 2602:fa6d:abc:120::1/64 |
Untrusted guest access |
| 130 | IoT | 10.20.130.1/24 2602:fa6d:abc:130::1/64 |
Smart home appliances, streaming devices, sensors |
| 140 | DMX | 10.20.140.1/24 2602:fa6d:abc:140::1/64 |
ArtNet and lighting control equipment |
| 300 | Isolated | 10.20.254.1/24 |
Restricted lab / quarantine devices |
| 400 | 5G Backup WAN | DHCP (backup-5g VRF) |
Cellular failover uplink (unused) |
| 412 | Astound Primary WAN | 104.202.86.120/29 |
Primary ISP handoff |
10.20.64.0/22 & 2602:fa6d:abc:64::/64 (Netbird VPN): Routed via next-hop 10.20.6.7 / 2602:fa6d:abc:6::7 on interface peth6 in the DMZ.10.80.216.0/24 (Media Rack Containers, unused): Routed via next-hop 10.20.100.110 on bond0.100.| Zone Name | Member Interfaces | Purpose |
|---|---|---|
Local |
local-zone (VyOS itself) |
Traffic addressed to or originated by the VyOS host itself |
WAN |
bond0.412, tun0, VRF backup-5g |
Untrusted external networks and ISP uplinks |
DMZ |
bond0.6, peth6 |
Public-facing services and VPN termination hosts |
Members |
bond0.100, bond0.110 |
Trusted user workstations and internal infrastructure |
Management |
bond0.10, bond0.20 |
Infrastructure administration and out-of-band management |
Guests |
bond0.120 |
Guest clients with Internet-only access |
Isolated |
bond0.130, bond0.140, bond0.300 |
Untrusted IoT, DMX, and quarantined devices (intra-zone filtered) |
Stateful return traffic is globally accepted. The general communication model between zones is outlined below (individual pinholes and edge cases exist for specific hosts and services):
flowchart TD
WAN["WAN"]
subgraph Zones ["Firewall Zones"]
Management["Management"]
Members["Members"]
Guests["Guests"]
DMZ["DMZ"]
Isolated["Isolated"]
end
%% Outbound to Internet
Management -->|"Outbound"| WAN
Members -->|"Outbound"| WAN
Guests -->|"Outbound"| WAN
DMZ -->|"Outbound"| WAN
Isolated -.->|"Partial (IoT/DMX)"| WAN
%% Inter-Zone Access
Members --> DMZ
Guests -->|"Public services"| DMZ
| SRC...DST | WAN | DMZ | Members | Management | Guests | Isolated | Local |
|---|---|---|---|---|---|---|---|
| WAN | — | Filtered | Drop | Drop | Drop | Drop | Filtered |
| DMZ | Accept | Default Reject | Reject* | Reject* | Drop | Drop | Filtered |
| Members | Accept | Accept | Accept (Intra) | Filtered | Accept | Filtered | Filtered |
| Management | Accept | Accept | Drop | Default Drop | Drop | Drop | Filtered |
| Guests | Accept | Accept | Drop | Drop | Default Drop | Drop | Filtered |
| Isolated | Filtered | Accept | Reject* | Reject* | Drop | Filtered (Intra) | Filtered |
| Local | Accept | Accept | Accept | Accept | Accept | Accept | — |
*: Edge cases exist.
WAN Inbound:
Internet Egress (to WAN):
10.20.130.0/24) and lighting control operator endpoints on DMX. Quarantined devices (bond0.300) cannot reach the Internet.Members Access:
DMZ Access to Internal Zones:
Isolated Access to Internal Zones:
Isolated is filtered to prevent unmanaged lateral movement between IoT, DMX, and quarantine networks.Traffic to Local (Router Services):
The primary WAN interface (bond0.412) is configured with a static /29 subnet from the ISP (Astound Broadband):
104.202.86.120/29104.202.86.121104.202.86.122 (Primary WAN & Egress): Router gateway IP, 6in4 SIT IPv6 tunnel endpoint, and the primary outbound SNAT/masquerade address for internal networks.104.202.86.123 (External Web / Git / VPN Services): Dedicated public IP for Forgejo and Netbird STUN.104.202.86.124 (Pelican Game Hosting): Dedicated public IP for Pelican-Eggs game server ports.tun0) to 199.255.18.160.2602:fa6d:abc:ffff::2/64.2602:fa6d:abc::/48 is assigned natively across internal VLANs as /64 subnets with router advertisements enabled.Destination NAT routes traffic arriving on secondary public IPs to internal DMZ hosts:
| Rule # | External Address | Port(s) & Protocol | Internal Destination | Target Host / Service |
|---|---|---|---|---|
| 67 | 104.202.86.123 |
UDP 3478 | 10.20.6.9:3478 |
Netbird STUN Server |
| 68 | 104.202.86.123 |
TCP 2222 | 10.20.6.101:2222 |
Forgejo Git SSH |
| 69 | 104.202.86.123 |
TCP/UDP 80, 443 | 10.20.6.101:80,443 |
Forgejo Web (HTTP/HTTPS) |
| 72 | 104.202.86.124 |
TCP/UDP 80, 443, 20000–30000 | 10.20.6.132 |
Pelican-Eggs Game Servers |
Note: Mirror hairpin DNAT rules (167, 168, 169, 173) are configured on all Inside-Interfaces to allow internal devices to access these public services transparently via their external IPs.
| Rule # | Source Matching | Outbound Interface | Action / Translation | Purpose |
|---|---|---|---|---|
| 68 | 10.20.6.101 (Forgejo) |
bond0.412 |
Static SNAT to 104.202.86.123 |
1:1 dedicated egress IP matching Forgejo's public address |
| 100 | 10.20.0.0/16 |
bond0.412 |
Masquerade (104.202.86.122) |
General Internet outbound NAT overload |
| 160 | 10.20.0.0/16 $\rightarrow$ 10.20.6.0/24 |
Inside-Interfaces |
Masquerade | Hairpin SNAT ensuring symmetric routing for internal port forward traffic |
| 180 | 10.80.216.0/24 |
bond0.412 |
Masquerade (104.202.86.122) |
Outbound Internet egress for Media Rack Incus containers (unused) |