Post

I Would Like To Receive Feedback About My Network

I Would Like To Receive Feedback About My Network

Introduction

“I’d love to share my network diagram. Please give me feedback :)” - this Reddit plea resonates with every engineer who’s ever questioned their network design. In homelabs and production environments alike, network configuration remains one of the most consequential yet least visible aspects of infrastructure architecture.

When self-hosted services mysteriously disconnect, VPN tunnels fail to establish, or routing tables behave unexpectedly, the culprit often lies in fundamental network design choices. The Reddit comment highlighting subnet conflicts (“Avoid subnet 192.168.0.0 or 192.168.1.0”) exemplifies how seemingly minor decisions can create major operational headaches.

This guide examines professional network design principles through the lens of real-world peer feedback. You’ll learn:

  • Why default IP ranges create conflict nightmares
  • How to implement future-proof subnetting strategies
  • VLAN segmentation techniques for security and performance
  • Essential diagnostic tools every network engineer needs
  • Documentation standards that enable effective peer review

Whether you’re configuring a homelab Kubernetes cluster or enterprise-grade infrastructure, these battle-tested practices will transform how you approach network architecture.

Understanding Network Design Fundamentals

The Hidden Costs of Default Configurations

The Reddit commenter’s warning about 192.168.0.0/24 and 192.168.1.0/24 subnets stems from RFC 1918’s designation of these ranges as:

IP RangeDefault Use CasesConflict Risk
192.168.0.0/24Consumer routers, IoT devicesExtreme
192.168.1.0/24Enterprise SOHO equipmentHigh
192.168.100.0/24ISP modems, VPN concentratorsModerate

These conflicts manifest in two critical scenarios:

  1. VPN Tunnel Collisions: When connecting to a remote network that uses identical IP ranges
  2. Device Provisioning Failures: When factory-default devices clash with existing addresses

Subnetting Strategies for Scalability

Instead of default ranges, consider these RFC 1918-compliant alternatives:

1
2
3
4
5
6
7
8
# High-density networks
10.42.0.0/16 -> 10.42.0.0/24 (User VLAN)
            -> 10.42.1.0/24 (Server VLAN)
            -> 10.42.2.0/24 (IoT VLAN)

# Medium networks
172.21.32.0/20 -> 172.21.32.0/24 (Core Services)
              -> 172.21.33.0/24 (DMZ)

The Diagram Imperative

Network diagrams serve three critical functions:

  1. Troubleshooting Acceleration: Visualize traffic flow during outages
  2. Security Auditing: Identify unintended exposure points
  3. Capacity Planning: Map device density to broadcast domains

Top tools for network visualization:

  • Diagram-as-Code: Diagrams.net (formerly draw.io) VSCode extension
  • Automated Discovery: NetBox IPAM with Graphviz export
  • Professional Suites: Lucidchart, Microsoft Visio

Prerequisites for Professional Networking

Hardware Requirements

Device TypeHomelab SpecificationProduction Specification
Routerx86 w/ AES-NI (pfSense/OPNsense)ASIC-based (Cisco ASR, Juniper MX)
SwitchManaged L2 (VLAN support)L3 with 10G uplinks
FirewallIntegrated in routerDedicated appliance (Palo Alto, Fortinet)

Software Tooling

Essential network utilities:

1
2
3
4
5
6
7
8
9
# Debian-based install
sudo apt install -y \
  nmap \          # Network discovery
  tcpdump \       # Packet analysis
  iperf3 \        # Bandwidth testing
  net-tools \     # Legacy utilities (ifconfig)
  iproute2 \      # Modern ip commands
  wireguard \     # VPN implementation
  bridge-utils    # Linux bridging

Security Considerations

  1. Airgap Critical Networks: Isolate SCADA/IoT devices from management interfaces
  2. Implement RFC 4193: Use ULAs (fc00::/7) for IPv6 internal networks
  3. Certificate Authority: Deploy private PKI for device authentication

Network Implementation Guide

VLAN Configuration Example

pfSense VLAN setup (/etc/config.xml):

1
2
3
4
5
6
7
8
<vlans>
  <vlan>
    <if>em1</if>
    <tag>42</tag>
    <vlanif>vlan42</vlanif>
    <descr>SERVER_VLAN</descr>
  </vlan>
</vlans>

Corresponding Linux bridge (/etc/netplan/01-bridges.yaml):

1
2
3
4
5
6
7
8
9
network:
  version: 2
  bridges:
    br-vlan42:
      interfaces: [enp3s0.42]
      addresses: [10.42.1.1/24]
      mtu: 9000
      parameters:
        stp: true

BGP Edge Router Configuration

FRRouting (/etc/frr/frr.conf):

1
2
3
4
5
6
7
8
router bgp 65101
 bgp router-id 10.42.0.1
 neighbor 203.0.113.5 remote-as 64496
 !
 address-family ipv4 unicast
  network 10.42.0.0/16
  neighbor 203.0.113.5 activate
 exit-address-family

WireGuard VPN Implementation

wg0.conf server configuration:

1
2
3
4
5
6
7
8
9
[Interface]
Address = 10.99.0.1/24
PrivateKey = server_private_key
ListenPort = 51820

# Client configuration
[Peer]
PublicKey = client_public_key
AllowedIPs = 10.99.0.2/32

Configuration Best Practices

IP Address Management (IPAM)

NetBox inventory structure:

1
2
3
4
5
6
7
8
9
10
11
12
prefixes:
  - prefix: 10.42.0.0/16
    site: Primary DC
    vlan: 42
    status: active
    description: Core infrastructure

ip_addresses:
  - address: 10.42.1.1/24
    device: core-switch-01
    interface: Vlan42
    role: anycast-gateway

Firewall Rule Methodology

OPNsense rule hierarchy:

  1. Anti-Lockout Rule: Allow management access from trusted networks
  2. Default Deny: Block all inbound traffic by default
  3. Explicit Allows: Service-specific rules with logging
  4. IoT Isolation: Block IoT → LAN traffic except DNS/NTP

Routing Table Optimization

1
2
3
# Linux policy routing example
ip route add default via 203.0.113.1 table 100
ip rule add from 10.42.2.0/24 lookup 100

Operational Maintenance

Network Monitoring Stack

Prometheus SNMP exporter configuration:

1
2
3
4
5
6
7
8
9
modules:
  if_mib:
    walk:
      - 1.3.6.1.2.1.2              # interfaces
      - 1.3.6.1.2.1.31.1.1         # ifXTable
    metrics:
      - name: ifInDiscards
        oid: 1.3.6.1.2.1.2.2.1.13
        type: gauge

Backup Strategy

RANCID configuration for network device backups:

1
2
3
4
# /etc/rancid/rancid.conf
LIST_OF_GROUPS="core-switches edge-routers"
BASEDIR="/var/lib/rancid"
LOGDIR="$BASEDIR/logs"

Capacity Planning Metrics

Critical thresholds to monitor:

MetricWarningCriticalCollection Method
ARP table utilization70%90%SNMP ifTable
BGP session flaps5/hr20/hrPrometheus
Broadcast traffic10%25%sFlow sampling

Troubleshooting Methodology

Layer-by-Layer Diagnostics

  1. Physical Layer: ethtool enp3s0
  2. Data Link: bridge fdb show
  3. Network: mtr --report-wide 8.8.8.8
  4. Transport: ss -tulpn
  5. Application: journalctl -u nginx

Packet Capture Techniques

1
2
3
4
5
6
# Capture DNS traffic on VLAN42
tcpdump -ni vlan42 -s0 port 53 -w dns_capture.pcap

# Analyze HTTP requests
tshark -r capture.pcap -Y 'http.request' -T fields \
  -e frame.time -e ip.src -e http.host -e http.request.uri

BGP Failure Scenarios

Common issues and diagnostics:

1
2
3
4
5
# Check session state
vtysh -c "show bgp summary"

# Examine route advertisements
bgpdump -m /var/log/frr/bgp.pcap

Conclusion

Constructing enterprise-grade networks requires moving beyond default configurations and convenience subnets. By implementing deliberate IP allocation strategies, enforcing strict VLAN segmentation, and maintaining comprehensive documentation, you create networks that withstand both technical scrutiny and real-world demands.

For further study:

The next frontier? Automating network validation with tools like Batfish for pre-deployment analysis. Remember - in networking, simplicity emerges from rigorous design, not default configurations.

This post is licensed under CC BY 4.0 by the author.