Network Diagram

graph TD
INTERNET[("Internet")]:::wan
CAMPGROUND_WIFI_SERVICE[("Campground WiFi SSID: NittanMtnKoa")]:::wan
CAMPGROUND_PORTAL[("Captive Portal\n192.168.17.1:3456")]:::security
ISP_MODEM["ISP Modem"]:::device
HEX["MikroTik hEX (GIEDI)\nWAN: DHCP/Static from ISP\nLAN IP: 192.168.88.1\nWG IP: 10.10.10.1\n(RouterOS 7.1B.2 - Upgrade Recommended)"]:::router
CHATEAU["MikroTik Chateau\nWAN: Campground Wi-Fi\nLAN IP: 192.168.69.1\nRVLink Bridge IP: 192.168.10.250\nWG IP: 10.10.10.2"]:::router

INTERNET --- CAMPGROUND_WIFI_SERVICE
CAMPGROUND_WIFI_SERVICE -- Authenticates via --> CAMPGROUND_PORTAL

subgraph NETWORKS [Network Segments]
    direction TB
    subgraph HOME_NETWORK [Home Network]
        direction LR
        HOME_LAN_SUBNET["Home LAN Segment\n192.168.88.0/24"]:::network
        SERVER_NALTHIS["Server NALTHIS\n192.168.88.5"]:::device
        MAIN_PC_HOME["Main PC (Home)"]:::device
        ISP_MODEM --- HEX
        HEX --- HOME_LAN_SUBNET
        HOME_LAN_SUBNET --- SERVER_NALTHIS
        HOME_LAN_SUBNET --- MAIN_PC_HOME
    end
    subgraph CAMPER_NETWORK ["Camper Network (Site 2)"]
        direction LR
        CAMPER_LAN_SUBNET["Camper LAN Segment\n192.168.69.0/24"]:::network
        CAMPER_LAPTOP["Camper Laptop\ne.g. 192.168.69.253"]:::device
        NETWATCH_CHATEAU["Netwatch (on Chateau)\nMonitors Internet"]:::security
        AUTH_SCRIPT_CHATEAU["Auth Script (on Chateau)\nHTTP GET to Portal"]:::security
        subgraph RVLINK_SUBSYSTEM ["RVLink Subsystem "]
            direction TB
            BR_RVLINK_SUBNET["RVLink LAN Segment (br_rvlink)\n192.168.10.0/24 on Chateau"]:::network
            RV2458_INDOOR["RV2458 Indoor Unit\n192.168.10.1\n(Wi-Fi Disabled)"]:::device
            MV2400_ROOF["MV2400 Roof Unit\n192.168.10.254\n(Rooted)"]:::device
            BR_RVLINK_SUBNET --- RV2458_INDOOR
            BR_RVLINK_SUBNET --- MV2400_ROOF
            RV2458_INDOOR -- Still Controlling --> MV2400_ROOF
            MV2400_ROOF -- Via 2.4Ghz Radio --> CAMPGROUND_WIFI_SERVICE
        end
        NETWATCH_CHATEAU -- On Fail --> AUTH_SCRIPT_CHATEAU
        AUTH_SCRIPT_CHATEAU -- Sends Auth --> CAMPGROUND_PORTAL
        CHATEAU -- LAN --> CAMPER_LAN_SUBNET
        CHATEAU -- RVLink Bridge Port --> BR_RVLINK_SUBNET
        CAMPER_LAN_SUBNET --- CAMPER_LAPTOP
    end
end

INTERNET --- ISP_MODEM
HEX <== "WireGuard Tunnel\nNetwork: 10.10.10.0/24\nhEX listens UDP 13231" ==> CHATEAU

classDef router fill:#f9f,stroke:#333,stroke-width:2px,color:#333,font-family:monospace;
classDef switch fill:#ccf,stroke:#333,stroke-width:2px,color:#333,font-family:monospace;
classDef device fill:#fff,stroke:#333,stroke-width:2px,color:#333,font-family:monospace;
classDef network fill:#lightgrey,stroke:#333,stroke-width:1px,color:#333,rx:5,ry:5,font-family:monospace;
classDef wan fill:#lightblue,stroke:#333,stroke-width:1px,color:#333,font-family:monospace;
classDef security fill:#fff0b3,stroke:#333,stroke-width:1px,color:#333,font-family:monospace;
classDef tunnel fill:#c4ffc4,stroke:#333,stroke-width:1px,color:#333,font-family:monospace;

class HEX,CHATEAU router
class SERVER_NALTHIS,MAIN_PC_HOME,CAMPER_LAPTOP,RV2458_INDOOR,MV2400_ROOF,ISP_MODEM device
class HOME_LAN_SUBNET,CAMPER_LAN_SUBNET,BR_RVLINK_SUBNET network
class INTERNET,CAMPGROUND_WIFI_SERVICE wan
class CAMPGROUND_PORTAL,NETWATCH_CHATEAU,AUTH_SCRIPT_CHATEAU security

Wesley Ray · blog · git · resume