Infrastructure
What I work on day to day at Skynet. Device identities, addresses and site names are left out on purpose.
- 10+
- MikroTik routers
- 10+
- POPs
- 4+
- OLTs, 3 vendors
- 1,000+
- ONUs on TR-069
Topology (generic)
-
Upstream
- Upstream A (metro-Ethernet)
- Upstream B (metro-Ethernet)
-
Core
- Core edge router (carrier DC)
- Main POP router
-
POP links
- Direct metro links
- VLAN + OSPF
- Tunnels over local ISPs
-
Access
- POP routers (PPPoE)
- OLTs (ZTE / Huawei / HiOSO)
-
Customers
- ONUs (FiberHome, TR-069)
Devices and what I did on them
Edge / core routing
-
Core edge router (MikroTik CCR, carrier data center)
Terminates the upstream links and the metro links to POPs. I read and document routing and tunnels before every change.
-
Main POP router (MikroTik x86, RouterOS 7)
PPPoE for 1,000+ sessions, PCC over two upstreams, NAT and DNS redirect. I tuned queues, PCC, NTP and conntrack, with rollback notes for each change.
POP connectivity
-
Direct metro-Ethernet links
Dedicated circuits from the edge to several POPs; I mapped which POP rides which link.
-
VLAN + OSPF to nearby POPs
L2 extension from the main POP with OSPF; documented and checked the routes back to the office.
-
Tunnels over local ISPs (OpenVPN / L2TP)
For remote POPs. Fixed return routes and no-NAT rules so billing, ACS and remote access work over them.
POP router features
-
PPPoE servers, profiles and queues
Package profiles (100 / 200 Mbps), rate limits, multi-queue and an fq_codel trial.
-
Isolation (address-list + HTTP redirect)
Sends unpaid customers to the pay page, driven by the billing app.
-
Forced DNS with failover
Port-53 redirect, exception list, netwatch turns it off if the resolver fails.
-
PPPoE syslog to the server
Connect / disconnect / auth events feed outage detection.
-
Load balancing and failover
PCC by source address + recursive routes keep one customer on one upstream.
OLTs
-
ZTE C300
ONU provisioning and optical reads from the billing app over CLI; OLT clock drift handled in software.
-
Huawei MA5608T
Automated provisioning, rename / delete with service-port clean-up, a session lock shared with installs.
-
HiOSO (legacy)
Customers migrated off it; leftover records cleaned up.
ONU / CPE & TR-069
-
FiberHome ONUs (HG6045F3 / HG6145F3 / HG6145D2)
1,000+ devices managed through GenieACS.
-
GenieACS
DHCP option 43 for inform, routes and no-NAT for connection requests on tunnel sites, versioned provisions for Wi-Fi and optical data with a check and rollback.
Servers & platform
-
Proxmox host with several VMs
Billing app, ACS, WhatsApp gateway, monitoring and a demo instance.
-
Docker + Coolify + Traefik
App, workers, scheduler, syslog listener and reverse proxy; I run deploys and post-deploy checks.
-
MySQL + Redis
App database and queues; backup before every deploy and every data fix.
-
Prometheus + Grafana
Router, upstream and PPPoE metrics.
-
WhatsApp gateway (Evolution API)
Install, migration, report and NOC groups.
-
OCR service (PaddleOCR)
Reads ID card and ONU label photos, with its own worker and CPU / memory limits.
-
Self-hosted GitHub Actions runners
CI for the billing platform.