iac-mikrotik

IAC do zarządzania routerami MikroTik przy użyciu OpenTofu.

Repozytorium: iac-mikrotik

Repozytorium zawiera kompletną konfigurację Infrastructure as Code (IaC) umożliwiającą automatyczne, deklaratywne zarządzanie konfiguracją routerów MikroTik działających na systemie RouterOS przy użyciu OpenTofu.

Projekt umożliwia:

  • pełne zarządzanie warstwą L2/L3 w sposób deklaratywny,
  • automatyzację konfiguracji interfejsów, VLAN, bridge oraz bondingu (LACP),
  • centralne zarządzanie serwerami DHCP i DNS,
  • utrzymanie statycznych rekordów DNS dla infrastruktury krytycznej,
  • eliminację ręcznej konfiguracji przez interfejs graficzny RouterOS,
  • wersjonowanie, audyt oraz szybki rollback zmian przez Git.

Cel projektu iac-mikrotik

Celem projektu jest zbudowanie spójnego, audytowalnego i w pełni zautomatyzowanego modelu zarządzania konfiguracją sieciową, obejmującego:

  • routing,
  • switching,
  • adresację IP,
  • segmentację VLAN,
  • serwery DHCP,
  • centralny resolver DNS.

Projekt stanowi fundament całej warstwy sieciowej dla środowisk:

  • Proxmox,
  • usług serwerowych,
  • środowisk developerskich,
  • sieci Wi-Fi,
  • stref DMZ i management.

Zakres dokumentacji

Dokumentacja obejmuje pełen cykl życia konfiguracji RouterOS:

  • Interfaces – Ethernet, Bonding (LACP), Bridge, VLAN (każdy typ jako osobny moduł i katalog konfiguracyjny),

  • Serwery DHCP – sieci, pule adresowe, serwery DHCP, statyczne rezerwacje, integracja z DNS,

  • Serwer DNS – centralny resolver, cache, parametry upstream, bezpieczeństwo,

  • Rekordy DNS – statyczne wpisy:

    • A, AAAA,
    • CNAME,
    • TXT,
    • MX,
    • NS, utrzymywane centralnie w mapie dns_records.

Struktura katalogów w repozytorium

Uproszczona struktura projektu:

router.rachuna-net.pl/
├── interfaces/         # ethernet, bonding, bridge, vlan (*.tf)
├── dhcp-servers/       # każdy serwer DHCP w osobnym pliku
├── dns-server/         # main.tf z konfiguracją resolvera
└── dns-records/        # mapa statycznych rekordów DNS

Zasady organizacyjne:

  • ✅ jeden plik = jeden element logiczny,
  • ✅ brak plików „kombajnów”,
  • ✅ pełna czytelność konfiguracji,
  • ✅ jednoznaczne mapowanie kod → element infrastruktury.

Moduły OpenTofu wykorzystywane w projekcie

Warstwa interfejsów:

  • routeros-ethernet
  • routeros-bonding
  • routeros-bridge
  • routeros-vlan

Warstwa usług IP:

  • routeros-dhcp-server – sieci, pule, serwery DHCP oraz statyczne leases,
  • routeros-dns – resolver, cache, serwery upstream oraz statyczne dns_records.

Każdy moduł odpowiada za jedną, ściśle określoną funkcję logiczną, co umożliwia:

  • precyzyjny audyt zmian,
  • łatwą rozbudowę,
  • bezpieczny rollback.

Kolejność wdrażania konfiguracji

Zalecana kolejność wdrożeń w iac-mikrotik:

  1. Interfaces Ethernet → Bonding → Bridge → VLAN
  2. Serwery DHCP Na gotowych interfejsach L3
  3. Serwer DNS Resolver + cache
  4. Rekordy DNS Statyczne wpisy dla infrastruktury krytycznej

Taka kolejność eliminuje błędy zależności między warstwami.


Wspólne zasady projektowe

  • Zero konfiguracji w GUI – całość wyłącznie przez IaC,
  • Jeden moduł = jedna funkcja logiczna,
  • DHCP zawsze wskazuje lokalny DNS,
  • Krytyczne hosty zawsze posiadają statyczne rekordy DNS,
  • Każda zmiana przechodzi przez Git (review, audyt, rollback),
  • ❌ Brak ręcznych modyfikacji w RouterOS,
  • ❌ Brak przechowywania konfiguracji poza repozytorium.

Konfiguracja Interfaces

Konfiguracja Interfaces

Serwery DHCP

Konfiguracja Serwerów DHCP

Serwer DNS

Konfiguracja Serwera DNS

Rekord DNS

Konfiguracja Rekordów DNS

Last modified December 19, 2025: docs: Update (72bba37)