HOMELAB / SANITISED ARCHITECTURE

Homelab network design and troubleshooting

An anonymised description of the physical network, VLANs, firewall rules, fail-open routing, current features, known limitations and planned upgrades.

DESIGN BRIEF

Network location does not grant access

The MikroTik switch is the internal core. Cisco handles edge routing and selects either the normal inspected route or the restricted fail-open route. Separate PA-220 and FortiGate HA clusters provide firewall platforms, while Proxmox hosts the main virtual workloads.

FEATURES IN USE

Configured functions and the platforms running them

This list covers the features currently used or actively tested. Items that only appear in the roadmap are not counted here.

Cisco edge

Routing and fail-open

  • Layer-3 routed handoffs
  • Static route preference and a higher-distance fail-open route
  • OSPF with passive interfaces except where adjacency is required
  • Extended ACLs for coarse traffic boundaries
  • Route, ARP and interface-state verification from the CLI
MikroTik

Core switching

  • 802.1Q VLAN switching and tagged trunks
  • Separate client, service, management, lab, storage and transit VLANs
  • Unused native VLAN for unexpected untagged traffic
  • LACP towards the Palo Alto Networks aggregate Ethernet interface
  • VLAN and MAC-table checks during path troubleshooting
Palo Alto Networks PA-220 HA pair

Primary firewall stack

  • Active/passive high availability
  • Aggregate Ethernet and VLAN subinterfaces
  • Security zones and a virtual router
  • Application-aware, purpose-based security rules
  • Source and destination NAT
  • Threat, vulnerability, anti-malware, URL and file inspection profiles
  • IPsec tunnels and tunnel monitoring where supported
  • Session, traffic and threat logging
FortiGate HA pair

Alternative firewall stack

  • A separate high-availability cluster
  • VLAN interfaces, routing and firewall policies
  • NAT and controlled outbound access
  • IPS, application control and web filtering
  • IPsec testing and cross-vendor policy comparison
Cisco and MikroTik

Layer-2 protection

  • Explicit allowed-VLAN lists on trunks
  • PVST on the Cisco switching path
  • PortFast and BPDU Guard on suitable edge ports
  • Sticky MAC port security with restricted violations
  • LACP state and member-link checks
UniFi

Wireless access

  • Controller-managed access points
  • Dedicated access-point management VLAN
  • SSIDs mapped to separate client and guest VLANs
  • Tagged management after adoption
  • DHCP, ARP and MAC-table checks during adoption faults
Proxmox

Virtualisation

  • Virtual machines and Linux containers
  • Linux bridges with VLAN-aware target design
  • Separate workload roles for services and security testing
  • Host firewalling and restricted management access
  • Current shared uplink documented for later management/data separation
Mixed

Infrastructure services

  • DHCP scopes and exclusions
  • DNS and NTP dependencies
  • SSH and HTTPS management
  • Central traffic and security logging
  • Traffic, threat, route, ARP and DHCP log/state review
Cisco ASA firewall · Juniper SRX firewall · Cisco Catalyst switch · Check Point firewall · HPE / Aruba switch

Reserve device testing

  • Configuration access and platform comparison
  • Firewall, routing, switching and management-access tests
  • Legacy SSH compatibility testing on the isolated management path
  • Isolated testing without placing reserve devices in the main traffic path

VIRTUALISED SERVICES / SANITISED

How hosted services are organised

Two ProDesk-class hosts provide separate Linux and Windows virtualisation paths. Public documentation shows the platform roles, but withholds hostnames, addresses, ports, exact models, software versions and VM names.

LINUX SERVICESProxmox and Docker
  1. ProDesk-class host
  2. Proxmox
  3. Ubuntu Server VM
  4. Docker Engine
  5. Docker Compose
  6. Dockge

Container workloads

  • Pi-hole
  • UniFi OS / controller
  • Nginx web server
  • Homepage dashboard
  • Other internal services
WINDOWS SERVICES / PLANNEDHyper-V
  1. ProDesk-class host
  2. Hyper-V
  3. Windows service VMs

This separate path is intended for Windows infrastructure services. It is shown as planned work rather than as a currently deployed feature.

PHYSICAL TOPOLOGY / SANITISED

Platforms and physical roles

LOGICAL TOPOLOGY / PROTECT SURFACES

How traffic is allowed or blocked

SEGMENT REGISTER / SYNTHETIC IDENTIFIERS

Anonymised VLAN plan

The letters do not correspond to deployed VLAN IDs or subnets.

AliasFunctionProtect surfacePurpose
VLAN-AManagementInfrastructure control planesIsolate administrative access and admit only authorised management workflows.
VLAN-BUser devicesInteractive client systemsProvide required home and lab services without treating network location as trust.
VLAN-CConnected devicesIoT and embedded systemsConstrain devices to named controllers, DNS, time and approved external services.
VLAN-DGuest accessUnmanaged visitor devicesOffer internet access while denying private, management and service protect surfaces.
VLAN-EComputeVirtual machines and containersSeparate workload traffic from hypervisor administration and limit workload dependencies.
VLAN-FCore servicesIdentity, DNS, time and platform servicesExpose each shared service only to its documented consumers and applications.
VLAN-GSecurity labDefensive tooling and analysis workloadsContain elevated tooling and control which telemetry sources it may ingest.
VLAN-HCyber rangeDisposable adversarial test workloadsPrevent test traffic from reaching production-like services or management planes.
VLAN-IStorageNAS and virtualisation storagePermit storage protocols only between authorised hosts; deny general client routing.
VLAN-TFirewall transitCore-to-NGFW routed handoffCarry routed traffic between enforcement points; host no endpoints or services.
VLAN-XEdge recovery transitCore-to-edge recovery handoffProvide a monitored degraded path with a deliberately reduced permission set.
VLAN-NNative / blackholeUnexpected untagged framesTerminate untagged traffic without a gateway, clients or useful services.

ZERO TRUST / RULEBASE DESIGN

Firewall rules are based on a stated need

Protect surfaces, not trusted networks

Management, identity, storage, workloads and public services are defined as small protect surfaces. A device does not become trusted because it joined a particular VLAN.

Verify explicitly

Rules consider source, destination, application, user, device or workload context wherever the platform supports it. Broad port-only access is an exception to justify.

Least-privilege rulebases

Every allow rule has a named purpose, owner and expected consumers. Inter-zone traffic finishes at an explicit deny rule and temporary exceptions have review dates.

Inspect permitted traffic

Allowed flows receive appropriate anti-malware, vulnerability, DNS, URL and file controls. Inspection depth follows risk, privacy and platform capability.

Assume compromise

High-value management and storage paths remain isolated even from ordinary user systems. Logs are centralised so unexpected east-west behaviour can be investigated.

Continuously validate

Rule hit counts, stale objects, shadowed rules and denied-flow logs feed periodic recertification. A syntactically valid configuration is not accepted as proof of enforcement.

Rule purposePathApplication scopeDecision and controls
AdministrationAdmin endpoint → management planeHTTPS / SSH to named assetsAllow with strong identity, restricted source and complete logging
User servicesUser devices → core servicesDNS, NTP and named applicationsAllow only documented consumers and application identities
Connected devicesConnected devices → controller / infrastructureExact controller, DNS and NTP flowsAllow narrow destinations; block lateral and management access
Guest egressGuest devices → internetApproved outbound applicationsAllow via inspection; deny all internal protect surfaces
Workload dependenciesCompute workloads → service or update endpointsPer-workload applicationsAllow by workload need; attach threat and URL profiles where suitable
Public webInternet → reverse proxy / applicationTLS onlyPublish through the security boundary; never expose a management interface
CleanupAny remaining source → any protect surfaceAnyDeny and log at session end

TRANSIT + EDGE

Normal and fail-open internet paths

Normal traffic crosses one of the firewall HA clusters before it reaches the Cisco edge. A separate routed handoff lets Cisco use a lower-priority path which bypasses the firewall when the inspected route is unavailable. Both handoffs are infrastructure-only and contain no client devices or services.

The Cisco device runs IP Base. The IP SLA probing and policy-based routing needed for automatic health-based forwarding require a paid higher-tier feature licence, but the device is out of contract. The recovery path therefore uses normal route preference and external monitoring rather than Cisco probing or policy-based routing.

PRIMARYMikroTik core → firewall HA cluster → Cisco edge → upstreamStateful policy, security profiles, NAT and normal logging
RECOVERYMikroTik core → Cisco fail-open path → ISP edge → upstreamFloating route; restricted permissions and reduced inspection

SANITISED CONFIGURATION / NON-DEPLOYABLE

Sanitised configuration examples

Cisco IOS-style recovery

! IP Base installed
! IP SLA and policy-based routing unavailable
ip route 0.0.0.0 0.0.0.0 <PAN_TRANSIT> <PRIMARY_DISTANCE>
ip route 0.0.0.0 0.0.0.0 <EDGE_RECOVERY> <HIGHER_DISTANCE>

Palo Alto Networks policy model

rule <PURPOSE_BASED_NAME>
  from <SOURCE_SURFACE>
  to <DESTINATION_SURFACE>
  application <APP_IDS>
  source-user <AUTHORISED_IDENTITIES>
  action allow + inspect + log

rule <INTERZONE_DEFAULT>
  action deny + log

Proxmox target bridge

bridge <DATA_PLANE>
  vlan-aware yes
  allow <WORKLOAD_VLANS>

bridge <MANAGEMENT_PLANE>
  access <VLAN-A>
  host-management only

These examples show the type of configuration used without publishing the real addresses, interface names, object names or complete commands. They are not intended to be pasted into a device.

PLATFORM INVENTORY

Active, reserve and test platforms

Palo Alto NetworksA pair of PA-220 firewalls running as an HA cluster
FortinetA separate pair of FortiGate firewalls running as an HA cluster
MikroTikCore switching and the main internal VLAN trunks
CiscoEdge routing and the decision between the inspected and fail-open paths
ProxmoxVirtualisation and container host platform
F5 BIG-IPOptional application delivery and load-balancing path
Reserve / testingCisco ASA firewallJuniper SRX firewallCisco Catalyst switchCheck Point firewallHPE / Aruba switch

Reserve equipment is identified by vendor and device role only. Exact models, software versions and management details are withheld.

CONSTRAINTS / WORKAROUNDS

Known limitations and workarounds

ConstraintEngineering impactCurrent or planned workaround
Cisco IP Base licenceThe installed IP Base licence does not provide the required IP SLA probing or policy-based routing features. The higher-tier IP feature licence is paid, and the device is out of contract.Use normal routing, a documented floating static recovery route and external monitoring. Move probing and policy-based forwarding to a capable platform when the edge is replaced.
Core-owned gatewaysTraffic between local gateways can route on the MikroTik core without traversing either firewall cluster.Use tightly scoped controls now and move high-value protect-surface gateways or selected flows to firewall enforcement where inspection is required.
Recovery path bypassDirect edge recovery can restore connectivity without the full policy, NAT and inspection guarantees of the primary NGFW path.Treat it as monitored degraded mode, minimise its rule set and rehearse restoration to the inspected path.
Stateful path asymmetryParallel inspected and recovery paths can produce different forward and return paths, invalidating state and obscuring troubleshooting.Keep route preference deterministic, test both directions and capture at each enforcement boundary during failover validation.
Single-uplink hypervisor bootstrapManagement and early workload traffic currently share part of the Proxmox host path, increasing blast radius.Move the control plane to VLAN-A and use VLAN-aware bridges for workload and storage networks.
Legacy management cryptoOlder platforms may require SSH algorithms that current clients reject.Contain compatibility access to a dedicated admin path while firmware, re-keying or retirement removes the exception.
Cross-vendor Layer 2 semanticsTrunk, native VLAN and aggregation terminology differs across MikroTik, Cisco and the separate HPE/Aruba test environment.Document the intended forwarding behaviour first, then validate tagging, allowed lists and LAG state independently at both ends.

ROADMAP

Next changes and later upgrades

NEXT
  1. Separate management and data planes on the Proxmox hypervisor.
  2. Implement containerised home services, including Plex.
  3. Publish selected web services through Docker with a hardened reverse proxy.
  4. Build a Hyper-V hypervisor with VMs for Windows services.
  5. Implement Azure Arc, AD FS, AD CS and network-attached storage.
  6. Implement Palo Alto Networks GlobalProtect.
  7. Implement Pi-hole as a controlled DNS service.
FUTURE
  1. Refresh the existing IPsec tunnels and document crypto-lifecycle ownership.
  2. Migrate services to a new, privacy-safe domain structure.
  3. Host dynamic DNS in a container with restricted credentials and update scope.
  4. Replace the locked-down ISP edge router with a configurable, vendor-neutral edge platform.
  5. Use F5 BIG-IP as an optional load balancer in front of the Nginx web tier.
  6. Centralise configuration backups, version control and change evidence.
  7. Add certificate-expiry, route-state and service-health monitoring with useful alert thresholds.
  8. Run scheduled restore tests for identity, configuration and NAS data rather than relying on backup completion alone.

LESSONS LEARNED

What happened and how it was found

01

Check the licence before designing around a feature

Lesson

The failover plan depended on IP SLA tracking and policy-based routing.

How it was learned

The Cisco device was running IP Base, which did not provide the required features. The paid higher-tier licence could not be added because the device was out of contract, so the design changed to normal routing, a floating route and external monitoring.

02

A floating route cannot tell whether the internet works

Lesson

The backup route only reacts when the preferred route is removed.

How it was learned

Route-table checks showed that a route can remain installed while NAT, policy, DNS or upstream forwarding is broken. Service checks are now kept separate from route preference.

03

The gateway location decides whether traffic is inspected

Lesson

Local traffic can be routed by the MikroTik core without crossing a firewall.

How it was learned

Following the packet path and checking each gateway showed that a default route through a firewall does not force local inter-VLAN traffic through it. Sensitive paths are now designed around the real enforcement point.

04

Fail-open needs its own rules

Lesson

The Cisco edge can bypass the normal firewall path when connectivity fails.

How it was learned

Testing the recovery route showed that it changes NAT, logging and inspection, not just the next hop. The bypass is therefore restricted and treated as a temporary degraded state.

05

Return routing matters during failover

Lesson

A session needs the same stateful path in both directions.

How it was learned

Route and session checks showed that traffic could leave through one path and return through another. The failover test now checks forward and return routing for both new and existing sessions.

06

Keep ordinary devices off transit VLANs

Lesson

Transit networks should only join routing and firewall devices.

How it was learned

Packet captures were harder to interpret when several functions shared a path. Keeping DHCP, clients and services off the transit networks made routing faults much clearer.

07

Record which device enforces each control

Lesson

Cisco, MikroTik and the firewall clusters each handle a different part of the path.

How it was learned

CLI checks found cases where the expected result depended on a rule or route on another device. A flow matrix now records the device responsible for each decision.

08

Static aggregation and LACP are not interchangeable

Lesson

The PA-220 aggregate interface stayed down even though both links were connected.

How it was learned

The MikroTik side was configured as a static LAG while the Palo Alto Networks side expected LACP. Changing the MikroTik group to LACP Active allowed the bundle to form.

09

A port can contain trunk settings and still operate as an access port

Lesson

Allowed-VLAN and native-VLAN commands were present, but traffic was not trunking.

How it was learned

The running interface configuration still contained an access-mode command. Checking operational switchport state, rather than reading selected lines, exposed the mismatch.

10

A reset access point may lose its management VLAN

Lesson

An access point stopped adopting after a factory reset even though the trunk had worked before.

How it was learned

Before the reset, the access point already knew to tag management traffic. After the reset it sent untagged traffic into the unused native VLAN. It was adopted on a temporary access VLAN, given the management VLAN, and then returned to the trunk.

11

Use CLI help before assuming a command exists

Lesson

A MAC-table lookup failed with an invalid-input marker.

How it was learned

Context help showed that the command required a real VLAN in the supported range. The failed command was a bad query, not proof that the switch lacked the MAC entry.

12

The Cisco switch cannot act as the backup NAT device

Lesson

The fail-open design could not rely on the Cisco platform translating private addresses.

How it was learned

The expected NAT commands were absent from CLI help and rejected by the platform. NAT therefore remains on a firewall or capable edge device instead of being assumed from Layer-3 routing support.

13

Check the operational state, not only the saved configuration

Lesson

Several faults looked correct in the configuration but were wrong at runtime.

How it was learned

Commands showing trunk state, LACP neighbours, route installation, ARP, DHCP bindings and firewall sessions revealed what the devices were actually doing.

14

SSH failure does not automatically mean a routing failure

Lesson

Some devices replied to ping but would not complete an SSH session.

How it was learned

ARP and ICMP proved that the path worked. Testing with a current client then separated algorithm negotiation, device credentials, stale sessions and missing keys from network reachability.

15

Legacy SSH workarounds need a narrow scope

Lesson

The HPE/Aruba test switch required compatibility with older SSH behaviour.

How it was learned

The connection reached the switch but failed during session setup. Server state, keys, logs and negotiated algorithms were checked from the console; compatibility settings were limited to the isolated management path.

16

Do not translate vendor commands word for word

Lesson

Cisco, MikroTik, Palo Alto Networks and HPE/Aruba use different terms for similar jobs.

How it was learned

Comparing MAC tables, tags, LACP state and packet flow showed that matching behaviour is more useful than matching command names.

17

Policy-based routing was not available on the Cisco licence

Lesson

The Cisco equivalent of Palo Alto Networks PBF was considered for sending selected traffic through a firewall.

How it was learned

The required policy-based routing feature was not included with IP Base. The higher feature licence was paid and unavailable on the out-of-contract device, so this design could not be implemented there.

18

List service dependencies before tightening rules

Lesson

DNS, NTP, identity, certificates and updates cross several boundaries.

How it was learned

Blocking tests showed that an application can appear broken because one supporting service was omitted. Dependencies are now listed before the allow rule is narrowed.

19

The current Proxmox uplink affects two planes

Lesson

Management and workload traffic still share part of one physical path.

How it was learned

Bridge and trunk planning showed that one mistake could interrupt both administration and hosted services. Separating management and data is therefore the next major hypervisor change.

20

A saved configuration is not proof

Lesson

A VLAN, ACL, route, tracking object or security profile can exist without being active.

How it was learned

This was seen in the unsupported IP SLA feature, the access-mode trunk and the mismatched LAG. Changes now need a traffic test and log or state evidence from the device expected to enforce them.

21

Test failover from more than one network

Lesson

One successful web request does not prove the recovery design works.

How it was learned

The useful test records the source network, selected route, firewall path, DNS result, application result and return to normal. This catches differences between guest, user, service and management traffic.

22

Check ACL direction from the interface's point of view

Lesson

An SVI ACL can be correct in content but attached in the wrong direction.

How it was learned

The source and reply paths were followed through the SVI, then the inbound and outbound ACL attachments were checked separately. This showed which traffic each ACL was actually evaluating.

23

PBR needs explicit exclusions for local destinations

Lesson

A broad route-map can send internal traffic towards the firewall when it should stay local.

How it was learned

Walking sample packets through the PBR match showed that private and directly connected destinations also matched the source rule. Internal exclusions were required before any internet-only forwarding rule.

24

Check HA state and LACP state separately

Lesson

A healthy firewall pair does not prove that its aggregate data links are working.

How it was learned

The PA-220 peers could report HA state while the aggregate interface remained down. LACP negotiation, member links and the active peer had to be checked as separate parts of the fault.

25

Use DHCP, ARP and MAC tables together

Lesson

A single table only shows one part of an endpoint's connection.

How it was learned

During access-point adoption, the DHCP binding showed the assigned address, ARP showed Layer-3 reachability and the MAC table showed the VLAN and switch port. Together they located the break.

26

A long Layer-2 WAN path is harder to secure and troubleshoot

Lesson

The external handoff crossed more switching infrastructure than was ideal.

How it was learned

Tracing the WAN VLAN hop by hop showed that every trunk and allowed-VLAN list became part of the internet path. The longer-term design terminates the WAN at a configurable edge device as early as possible.