Πίσω στο blog

English  ·  Ελληνικά

MikroTik / RouterOS  ·  Σεναριο Lab  ·  Σεπτεμβριος 2026

MikroTik Lab
Το Δικτυο Ξενοδοχειου

Το φινάλε της σειράς: κάθε post MikroTik συναρμολογημένο στο δίκτυο που πραγματικά χτίζουμε για να ζήσουμε — ένα μικρό ξενοδοχείο. Ένα gateway RB5009, ένα core switch CRS326, δύο APs στην οροφή, τέσσερα VLANs, απομόνωση επισκεπτών που είναι δοκιμασμένη αντί να θεωρείται δεδομένη, δίκαιη κατανομή bandwidth ανά επισκέπτη, και ένα segment CCTV που οι επισκέπτες δεν μπορούν ποτέ να βρουν. Χτίσ' το σε πραγματικό hardware ή εντελώς σε CHR — μετά σπάσ' το όπως κάνουμε πριν το handover.

RouterOS Lab Hotel / Hospitality VLANs Guest Isolation PCQ CRS3xx

Fibre + Starlink GW — RB5009 routing · firewall · DHCP · queues trunk — ολα τα VLANs tagged SW — CRS326 bridge vlan-filtering + hw offload AP-1 (cAP ax) SSID Hotel-Guest → V20 · Staff → V10 AP-2 (cAP ax) ίδια SSIDs, ίδια VLANs, άλλη πτέρυγα PCs Ρεσεψιον access V10 NVR + καμερες access V30 V10 staff · V20 guest · V30 cctv · V99 mgmt — οι επισκέπτες φτάνουν το internet και απολύτως τίποτα άλλο

Αυτό είναι το δίδυμο MikroTik του Cisco campus lab, ρυθμισμένο για το deployment που κάνουμε πιο συχνά: ένα ακίνητο 10–40 δωματίων όπου το δίκτυο πρέπει να κρατά επισκέπτες, προσωπικό, κάμερες, και management αποδεδειγμένα ξεχωριστά πάνω σε hardware που κοστίζει λιγότερο από τα έσοδα μιας νύχτας. Συνθέτει το post VLAN, το post firewall, και το post QoS σε ένα συνεκτικό build — με τις παγίδες ολοκλήρωσης που εμφανίζονται μόνο όταν τα κομμάτια συναντιούνται.

Δεν έχεις hardware; Κανένα πρόβλημα. Τα πάντα εκτός από τα ραδιόφωνα Wi-Fi τρέχουν πανομοιότυπα σε δωρεάν CHR images σε GNS3/EVE-NG — χτίσε το GW και το SW σαν CHRs, κρέμασε test VMs στα VLANs, και αντικατέστησε το τμήμα AP με tagged virtual NICs. Η επαλήθευση και οι δοκιμές βλάβης στο τέλος δουλεύουν και στις δύο περιπτώσεις — και αυτές, όχι το config, είναι το πραγματικό μάθημα.

Προαπαιτουμενα

01

Το Σχεδιο

Τέσσερα VLANs, τέσσερα subnets, ένας πίνακας. Όπως πάντα: το σχέδιο είναι το design, το config είναι πληκτρολόγηση.

VLAN / subnetΠοιος ζει εδω — και ο κανονας που τον διεπει
10 STAFF — 10.10.10.0/24PCs ρεσεψιόν, Wi-Fi γραφείου. Φτάνει internet + θέαση CCTV· όχι mgmt.
20 GUEST — 10.10.20.0/24SSID επισκεπτών + ethernet δωματίου. Μόνο internet. Τίποτα εσωτερικό, ποτέ.
30 CCTV — 10.10.30.0/24NVR + κάμερες. Καθόλου internet (η απομακρυσμένη θέαση γίνεται μέσω WireGuard).
99 MGMT — 10.10.99.0/24Router, switch, APs. Προσβάσιμο μόνο από το ίδιο το MGMT (+ VPN).
GatewaysΤο GW κατέχει το .1 κάθε subnet σε interfaces VLAN πάνω από το trunk.
UplinksGW ether1 = fibre, ether2 = Starlink (failover κατά το post Starlink).
💡 Γιατι το CCTV Δεν Παιρνει Internet

Οι φθηνές κάμερες κάνουν phone home σε clouds που δεν ελέγχεις, τρέχουν firmware που κανείς δεν κάνει patch, και είναι η κλάση συσκευών με τα περισσότερα compromises που βλέπουμε. Η απάντηση του design είναι δομική, όχι αισιόδοξη: το VLAN 30 δεν έχει καθόλου route προς το internet — μια κάμερα που δεν μπορεί να φτάσει το botnet C2 της είναι μια κάμερα της οποίας οι ευπάθειες ως επί το πλείστον δεν έχουν σημασία. Ο ιδιοκτήτης παρακολουθεί το NVR απομακρυσμένα μέσω WireGuard μέσα στο VLAN 30, που δεν χρειάζεται καμία κάμερα να στείλει ποτέ πακέτο προς τα έξω.

02

Το Core Switch — CRS326

Ένα bridge, vlan-filtering, hardware offload. Trunks προς το GW και τα δύο APs· access ports για ρεσεψιόν και κάμερες. Η σειρά έχει σημασία — χτίσε τον πίνακα VLAN πριν ενεργοποιήσεις το filtering.

SW — bridge, ports, πινακας VLAN (σειρα κατα το post VLAN)
[admin@SW] > /interface/bridge add name=bridge1 vlan-filtering=no   ← ON αργότερα, ΤΕΛΕΥΤΑΙΟ

# Θύρες: trunk προς GW (ether1), trunks προς APs (ether2-3),
#        access για ρεσεψιόν (ether10-12, V10) και NVR/κάμερες (ether20-24, V30)
[admin@SW] > /interface/bridge/port add bridge=bridge1 interface=ether1 hw=yes
[admin@SW] > /interface/bridge/port add bridge=bridge1 interface=ether2 hw=yes
[admin@SW] > /interface/bridge/port add bridge=bridge1 interface=ether3 hw=yes
[admin@SW] > /interface/bridge/port add bridge=bridge1 interface=ether10 pvid=10 frame-types=admit-only-untagged hw=yes
[admin@SW] > /interface/bridge/port add bridge=bridge1 interface=ether20 pvid=30 frame-types=admit-only-untagged hw=yes
# …επανέλαβε για το υπόλοιπο κάθε range

# Πίνακας VLAN: τα trunks tagged για τα πάντα· τα APs χρειάζονται μόνο guest+staff+mgmt
[admin@SW] > /interface/bridge/vlan add bridge=bridge1 vlan-ids=10 tagged=bridge1,ether1,ether2,ether3 untagged=ether10,ether11,ether12
[admin@SW] > /interface/bridge/vlan add bridge=bridge1 vlan-ids=20 tagged=bridge1,ether1,ether2,ether3
[admin@SW] > /interface/bridge/vlan add bridge=bridge1 vlan-ids=30 tagged=bridge1,ether1 untagged=ether20,ether21,ether22,ether23,ether24
[admin@SW] > /interface/bridge/vlan add bridge=bridge1 vlan-ids=99 tagged=bridge1,ether1,ether2,ether3

# Το δικό του mgmt IP του switch ταξιδεύει στο VLAN 99
[admin@SW] > /interface/vlan add name=vlan99-mgmt interface=bridge1 vlan-id=99
[admin@SW] > /ip/address add address=10.10.99.2/24 interface=vlan99-mgmt
[admin@SW] > /ip/route add dst-address=0.0.0.0/0 gateway=10.10.99.1

# Επαληθεύτηκαν όλα τα παραπάνω; ΤΩΡΑ γύρνα τον μεγάλο διακόπτη (από VLAN mgmt ή console):
[admin@SW] > /interface/bridge set bridge1 vlan-filtering=yes
⚠ Παγιδα — Οι Θυρες CCTV Δεν Κανουν Tag Προς τα APs

Πρόσεξε τη λίστα tagged του VLAN 30: μόνο bridge1,ether1. Τα APs δεν έχουν καμία δουλειά να μεταφέρουν κίνηση κάμερας, οπότε ο ορισμός του trunk απλά δεν επεκτείνει το VLAN 30 σε αυτά — segmentation με παράλειψη, επιβεβλημένο σε hardware. Αυτή είναι η ίδια ιδέα "allowed VLAN list" με το switchport trunk allowed vlan της Cisco, και το ίδιο σημείο audit: ένα VLAN φτάνει ακριβώς εκεί που λένε οι λίστες tagged/untagged του, όχι παραπέρα. Ξαναδές αυτές τις λίστες όποτε καλωδιώνεται μια νέα υποδοχή· είναι ο χάρτης του τι μπορεί ποτέ να διαρρεύσει πού.

03

Το Gateway — VLANs, DHCP, Δυο WANs

Το GW τερματίζει και τα τέσσερα VLANs σε μία θύρα trunk, σερβίρει DHCP σε τρία από αυτά, και κάνει NAT δύο από αυτά προς το internet. Το CCTV παίρνει DHCP αλλά όχι NAT — αυτός είναι ο κανόνας χωρίς-internet, υλοποιημένος.

GW — interfaces, διευθυνσεις, DHCP
# Το ether3 είναι το trunk προς το SW — τα interfaces VLAN ταξιδεύουν απευθείας πάνω του
[admin@GW] > /interface/vlan add name=vlan10-staff interface=ether3 vlan-id=10
[admin@GW] > /interface/vlan add name=vlan20-guest interface=ether3 vlan-id=20
[admin@GW] > /interface/vlan add name=vlan30-cctv interface=ether3 vlan-id=30
[admin@GW] > /interface/vlan add name=vlan99-mgmt interface=ether3 vlan-id=99

[admin@GW] > /ip/address add address=10.10.10.1/24 interface=vlan10-staff
# …το ίδιο για .20/.30/.99

# Interface lists — το firewall παρακάτω ταιριάζει σε αυτά, όχι σε ωμά interfaces
[admin@GW] > /interface/list add name=WAN
[admin@GW] > /interface/list add name=LAN
[admin@GW] > /interface/list/member add list=WAN interface=ether1
[admin@GW] > /interface/list/member add list=WAN interface=ether2
[admin@GW] > /interface/list/member add list=LAN interface=vlan10-staff
# …και τα άλλα τρία VLANs μέσα στο LAN

# DHCP ανά VLAN (φαίνεται το guest· staff/cctv ίδιο pattern, mgmt μόνο static)
[admin@GW] > /ip/pool add name=pool-guest ranges=10.10.20.50-10.10.20.250
[admin@GW] > /ip/dhcp-server add name=dhcp-guest interface=vlan20-guest address-pool=pool-guest
[admin@GW] > /ip/dhcp-server/network add address=10.10.20.0/24 gateway=10.10.20.1 dns-server=10.10.20.1

# NAT: staff και guest βγαίνουν έξω· το CCTV λείπει επιδεικτικά
[admin@GW] > /ip/firewall/nat add chain=srcnat action=masquerade src-address=10.10.10.0/24 out-interface-list=WAN
[admin@GW] > /ip/firewall/nat add chain=srcnat action=masquerade src-address=10.10.20.0/24 out-interface-list=WAN
💡 Το Dual WAN Μπαινει Ισια Μεσα

Οι δύο θύρες WAN είναι ακριβώς το writeup Starlink failover: recursive default routes με check-gateway=ping που δοκιμάζουν έναν πραγματικό στόχο internet, distances 1 και 10. Επειδή οι κανόνες NAT παραπάνω κάνουν masquerade πάνω στο out-interface-list=WAN αντί για συγκεκριμένη θύρα, οι μεταφράσεις ακολουθούν όποιο uplink είναι ενεργό με μηδέν επιπλέον config — η παγίδα που η εκδοχή Cisco χρειάζεται route-maps γι' αυτήν απλά δεν υπάρχει εδώ.

04

Το Firewall — Πολιτικη σαν Κανονες

Ο πίνακας του τμήματος 01, μεταφρασμένος μηχανικά στο forward chain. Κάθε πρόταση στο σχέδιο γίνεται ένας ή δύο κανόνες — αυτή η ιχνηλασιμότητα είναι που κάνει το firewall ελέγξιμο.

GW — forward chain (input chain κατα το post firewall)
# Πρώτα το state, όπως πάντα
[admin@GW] > /ip/firewall/filter add chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related comment="fasttrack"
[admin@GW] > /ip/firewall/filter add chain=forward action=accept connection-state=established,related
[admin@GW] > /ip/firewall/filter add chain=forward action=drop connection-state=invalid

# "Οι επισκέπτες φτάνουν το internet και απολύτως τίποτα άλλο"
[admin@GW] > /ip/firewall/filter add chain=forward action=accept in-interface=vlan20-guest out-interface-list=WAN comment="guest to internet"
[admin@GW] > /ip/firewall/filter add chain=forward action=drop in-interface=vlan20-guest comment="guest to anywhere else: NO"

# "Το προσωπικό φτάνει internet + θέαση CCTV" (μόνο web/rtsp του NVR, όχι οι κάμερες)
[admin@GW] > /ip/firewall/filter add chain=forward action=accept in-interface=vlan10-staff out-interface-list=WAN
[admin@GW] > /ip/firewall/filter add chain=forward action=accept in-interface=vlan10-staff dst-address=10.10.30.10 protocol=tcp dst-port=80,443,554 comment="staff to NVR"

# "CCTV: χωρίς internet" δεν χρειάζεται κανόνα — χωρίς NAT + το τελικό drop το κάνει. Ζώνη ΚΑΙ τιράντες:
[admin@GW] > /ip/firewall/filter add chain=forward action=drop in-interface=vlan30-cctv out-interface-list=WAN comment="cctv never phones home"

# Ο τοίχος
[admin@GW] > /ip/firewall/filter add chain=forward action=drop comment="drop all else"
⚠ Παγιδα — Οι Επισκεπτες Δεν Πρεπει να Κανουν Resolve DNS Ενοντιον IPs Router Αλλων VLANs

Ο κανόνας drop για τους επισκέπτες μπλοκάρει κίνηση guest→LAN, αλλά ο ίδιος ο router φτάνεται μέσω του input chain — ένας επισκέπτης μπορεί ακόμα να χτυπήσει το 10.10.10.1 (gateway του staff = ίδιος router!) για DNS ή WinBox εκτός αν το input είναι κι αυτό scoped. Στο input chain, δέξου DNS μόνο in-interface=vlan20-guest dst-address=10.10.20.1, και management μόνο από το MGMT. Ένα VLAN επισκεπτών που μπορεί να κάνει WinBox στον router μέσω της διεύθυνσης staff-side είναι η πιο κοινή τρύπα που βρίσκουμε σε "τμηματοποιημένα" δίκτυα ξενοδοχείων — το forward chain ήταν τέλειο και κανείς δεν σκέφτηκε το input.

05

Wi-Fi — SSIDs με VLAN-Tag, και Δικαιοσυνη

Δύο SSIDs σε κάθε AP: το Hotel-Guest προσγειώνεται στο VLAN 20, το Hotel-Staff στο VLAN 10, πάνω στο ίδιο καλώδιο trunk. Μετά το PCQ κάνει σαράντα επισκέπτες να μοιράζονται το uplink σαν ενήλικες.

AP-1 (wifi/wave2, ROS 7.13+) — SSIDs σε αντιστοιχιση με VLANs
# Το bridge του AP είναι VLAN-aware όπως το switch· το uplink του είναι trunk.
# Κάθε SSID παίρνει ένα vlan-id — τα frames γίνονται tagged πριν χτυπήσουν το καλώδιο:
[admin@AP-1] > /interface/wifi add name=wifi-guest master-interface=wifi1 configuration.ssid="Hotel-Guest" security.passphrase="summer-in-crete" datapath.bridge=bridge1 datapath.vlan-id=20 disabled=no
[admin@AP-1] > /interface/wifi add name=wifi-staff master-interface=wifi1 configuration.ssid="Hotel-Staff" security.passphrase="********" datapath.bridge=bridge1 datapath.vlan-id=10 disabled=no
# IP mgmt του AP στο vlan99, ίδιο pattern με το switch. Επανέλαβε στο AP-2 —
# ίδια SSIDs, ίδια passphrases, ώστε οι συσκευές να κάνουν roam ανάμεσα σε πτέρυγες.
GW — PCQ: δικαιοσυνη ανα επισκεπτη σε δυο κανονες (απο το post QoS)
# Κάθε επισκέπτης παίρνει ίσο μερίδιο· ένας torrenter δεν μπορεί πια να καταπιεί το ξενοδοχείο
[admin@GW] > /queue/type add name=pcq-down kind=pcq pcq-classifier=dst-address pcq-rate=20M
[admin@GW] > /queue/type add name=pcq-up kind=pcq pcq-classifier=src-address pcq-rate=10M
[admin@GW] > /queue/simple add name=guest-fairness target=10.10.20.0/24 max-limit=300M/300M queue=pcq-up/pcq-down

# ΚΡΙΣΙΜΟ: εξαίρεσε τους επισκέπτες από το fasttrack αλλιώς αυτό το queue δεν βλέπει τίποτα —
# όρισε το scope του κανόνα fasttrack ακριβώς όπως το Option B του post firewall.

06

Επαληθευσε, Μετα Σπασ' το Το Test Handover

Αυτό το checklist είναι κυριολεκτικά αυτό που τρέχουμε πριν ένα ακίνητο πάει live. Ένα δίκτυο που δεν έχει αποτύχει μπροστά σου θα αποτύχει μπροστά σε επισκέπτες.

TestΣυνθηκη επιτυχιας
SSID επισκεπτών → DHCPΔιεύθυνση από 10.10.20.x, το internet δουλεύει, speedtest σχηματισμένο από PCQ.
Guest → 10.10.10.0/24, .30.x, .99.xΌλα νεκρά· οι μετρητές guest-drop αυξάνονται όσο προσπαθείς.
Guest → 10.10.10.1 (WinBox/DNS)Νεκρό — η τρύπα input-chain από το τμήμα 04 είναι κλειστή.
Staff → NVR :443/:554Δουλεύει· staff → απευθείας σε IP κάμερας δεν δουλεύει.
Κάμερα → 8.8.8.8Νεκρό. Το /ip/firewall/filter print stats δείχνει το "cctv never phones home" να μετράει.
Δύο laptops σε guest, και τα δύο κάνουν speedtestΤο καθένα παίρνει ~το μισό της pool guest — ορατή η δικαιοσύνη PCQ.

Δοκιμες βλαβης

Δοκιμή 1 — τράβα την ίνα. Συνεχές ping από μια συσκευή επισκέπτη· τα recursive routes κάνουν failover στο Starlink μέσα σε δευτερόλεπτα, και επειδή το NAT κάνει masquerade πάνω στη λίστα WAN, οι established συνδέσεις ξαναφτιάχνονται χωρίς να αγγίξεις config. Ξανασύνδεσέ το, δες το να κάνει fail back.

Δοκιμή 2 — κάνε reboot το switch. Όλα πέφτουν (single core — αυτό είναι το ειλικρινές trade-off αυτού του tier design), και όλα πρέπει να επιστρέψουν μόνα τους μέσα σε δύο λεπτά: τα leases DHCP ανανεώνονται, τα APs ξανακάνουν tag τα SSIDs, οι κάμερες επανασυνδέονται στο NVR. Οτιδήποτε χρειάζεται άνθρωπο μετά από ένα power blip είναι bug configuration — βρες το τώρα, όχι μετά το επόμενο brownout νησιού.

Δοκιμή 3 — κακός επισκέπτης. Από το VLAN επισκεπτών τρέξε ένα επιθετικό scan (nmap -A 10.10.0.0/16 από το laptop σου). Δες το να μη βρίσκει τίποτα εκτός από την IP gateway των επισκεπτών, και δες τους μετρητές drop να ανεβαίνουν. Αποθήκευσε αυτό το output του scan — είναι η απόδειξη segmentation για τον ιδιοκτήτη, σε μορφή που καταλαβαίνει ακόμα και ένας μη τεχνικός πελάτης.

Βασικα Συμπερασματα

  1. Το pattern τεσσάρων-VLAN για ξενοδοχεία — staff / guest / cctv / mgmt — ταιριάζει σχεδόν σε κάθε μικρό ακίνητο, και ο πίνακας πολιτικής στο τμήμα 01 ΕΙΝΑΙ το design· ό,τι ακολουθεί είναι μηχανική μετάφραση.
  2. Το segmentation επιβάλλεται σε τρία σημεία που πρέπει να συμφωνούν: ο πίνακας VLAN του switch (πού μπορούν να πάνε τα frames), το forward chain του firewall (τι μπορεί να κάνει route), και το input chain (ποιος μπορεί να μιλήσει στον router). Τα audits αποτυγχάνουν στο τρίτο.
  3. Το CCTV δεν παίρνει internet, δομικά — χωρίς κανόνα NAT συν ρητό drop. Η απομακρυσμένη θέαση περνά μέσω WireGuard, και μια κάμερα που δεν μπορεί να κάνει phone home είναι μια κάμερα που μπορείς να σταματήσεις να φοβάσαι.
  4. Το masquerade πάνω στο interface-list WAN και το dual-WAN failover δεν χρειάζονται ακροβατικά NAT — οι μεταφράσεις ακολουθούν αυτόματα το ενεργό uplink.
  5. Το PCQ δίνει σε κάθε επισκέπτη ίσο μερίδιο σε δύο κανόνες — αλλά το FastTrack πρέπει να έχει scope γύρω από την κίνηση επισκεπτών αλλιώς το queue δεν σχηματίζει τίποτα. Τα δύο features μαλώνουν· εσύ κάνεις διαιτησία.
  6. Τα SSIDs είναι απλά access ports VLAN πάνω από τον αέρα — το datapath.vlan-id αντιστοιχίζει κάθε SSID στο ίδιο σχέδιο L2 με κάθε πρίζα τοίχου.
  7. Τρέξε το test handover. Scan επισκέπτη, τράβηγμα ίνας, reboot switch — η απόδειξη νικά την υπόθεση, και η δοκιμή που σε ντροπιάζει στο lab είναι αυτή που θα σε καλούσε τηλέφωνο τον Αύγουστο.

Τρεχεις ενα ακινητο σε flat δικτυο;

Αυτό το lab είναι ακριβώς το δίκτυο που χτίζω για πραγματικά ξενοδοχεία και βίλες — segmentation που μπορώ να αποδείξω, Wi-Fi επισκεπτών που αντέχει στην υψηλή σεζόν, και κάμερες που δεν μπορούν να κάνουν phone home κάπου που δεν πρέπει.

Κλεισε μια Discovery Call →