Πίσω στο blog

English  ·  Ελληνικά

MikroTik / RouterOS  ·  Οδηγος  ·  Μαιος 2026

QoS για Δικτυα
Φιλοξενιας σε MikroTik

Σταμάτα το Netflix ενός επισκέπτη από το να σκοτώνει τη σύνδεση του PMS. Simple Queue για γρήγορα caps, Queue Tree για προτεραιότητα με βάση VLAN, PCQ για δίκαιο μοίρασμα ανά client, και DSCP marking που επιβιώνει σε όλη τη διαδρομή.

RouterOS QoS Queue Tree Simple Queue PCQ DSCP Mangle Φιλοξενια MTCNA+

WAN 100 Mbps Starlink RouterOS Queue Tree + Mangle DSCP marking Staff / MGMT 40 Mbps εγγυημένο · priority 1 Guest WiFi 50 Mbps κοινό PCQ · priority 3 IoT 10 Mbps hard cap · priority 8 Το PCQ μοιράζει το guest pool δίκαια Guest 1: 8 Mbps Guest 2: 8 Mbps … (÷ ενεργοί clients) Το Queue Tree διαμορφώνει κίνηση VLAN. Το PCQ μοιράζει το guest pool δίκαια ανά client. Το staff παίρνει πάντα προτεραιότητα.

Σε ένα ξενοδοχείο ή βίλα με κοινή σύνδεση internet, το quality of service δεν είναι προαιρετικό — είναι η διαφορά ανάμεσα σε μια κριτική 5 αστέρων και ένα παράπονο 1 αστέρα για το WiFi. Χωρίς QoS, ένας μόνο επισκέπτης που τρέχει 4K stream θα κορέσει το uplink και θα κάνει το σύστημα διαχείρισης ιδιοκτησίας μη ανταποκρινόμενο, τις κλήσεις VoIP κομματιαστές, και κάθε άλλον επισκέπτη δυσαρεστημένο. Το RouterOS σου δίνει τα εργαλεία να το αποτρέψεις: Simple Queue για γρήγορα caps ανά client, Queue Tree για ιεραρχική διαμόρφωση με βάση VLAN, και PCQ για αυτόματη δίκαιη κατανομή χωρίς να χρειάζεται να αγγίξεις κανόνα για κάθε νέα συσκευή.

Το χτίζουμε σε τρία επίπεδα. Ξεκίνα με Simple Queue — γρήγορο να αναπτυχθεί, αρκετό για μικρά ακίνητα. Μετά αναβάθμισε σε Queue Tree με προτεραιότητα βασισμένη σε VLAN. Τέλος πρόσθεσε DSCP marking ώστε η ταξινόμηση κίνησης να επιβιώνει σε switches και APs, και PCQ ώστε το guest pool να μοιράζεται μόνο του ανεξάρτητα από το πόσοι clients συνδέονται.

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

01

Πως Δουλευει το QoS στο RouterOS

Το QoS στο RouterOS είναι ένα pipeline: σήμανε κίνηση στο mangle, διαμόρφωσέ την σε queues. Δεν μπορείς να παραλείψεις το βήμα σήμανσης και να περιμένεις οι ουρές να ξέρουν ποια κίνηση είναι ποια.

Το QoS στο RouterOS δουλεύει σε δύο στάδια που πρέπει να συνεργάζονται:

Στάδιο 1 — Ταξινόμηση (Mangle): τα πακέτα εξετάζονται και σημαίνονται στην αλυσίδα prerouting ή forward. Τα marks ταυτοποιούν σε ποιο VLAN, ποια υπηρεσία, ή ποια κλάση προτεραιότητας ανήκει ένα πακέτο. Χωρίς marks, οι ουρές μπορούν να δράσουν μόνο εξίσου σε όλα.

Στάδιο 2 — Διαμόρφωση (Queues): τα σημασμένα πακέτα μπαίνουν σε μια δομή ουράς που επιβάλλει όρια ρυθμού, προτεραιότητες, και κανόνες δίκαιου μοιράσματος. Το Simple Queue δουλεύει σε διευθύνσεις source/destination. Το Queue Tree δουλεύει σε κίνηση interface και packet marks από το mangle.

Packet από LAN MANGLE αλυσίδα prerouting set-mark=guest-traffic σημασμένο QUEUE TREE ταιριάζει packet-mark επιβάλλει rate / priority PCQ fair-share WAN διαμορφωμένο output DSCP μπαίνει σε mangle επιβιώνει έως APs Το Mangle ταξινομεί → το Queue Tree διαμορφώνει → το DSCP κουβαλά την ταξινόμηση στις downstream συσκευές

Η βασική διορατικότητα: οι ουρές δεν ταυτοποιούν κίνηση, το κάνει το mangle. Ένας κανόνας ουράς που ταιριάζει src-address=192.168.30.0/24 δουλεύει αλλά δεν κλιμακώνει — θα χρειαζόταν να τον ενημερώνεις κάθε φορά που αλλάζει το subnet. Το σωστό pattern είναι: το mangle σημαίνει πακέτα από το VLAN 30 με packet-mark=guest-traffic, και η ουρά ταιριάζει σε εκείνο το mark. Το mark είναι το συμβόλαιο ανάμεσα στο mangle και την ουρά.

⚠ Παγιδα — Η Κατευθυνση της Ουρας Εχει Σημασια: Upload vs Download

Στο RouterOS, το upload (LAN → WAN) διαμορφώνεται στο εξερχόμενο interface WAN. Το download (WAN → LAN) διαμορφώνεται στο εξερχόμενο interface LAN — ή με Simple Queue στο dst-address. Το να κάνεις λάθος στην κατεύθυνση interface είναι ο πιο συχνός λόγος που μια ουρά φαίνεται ρυθμισμένη αλλά δεν έχει καμία επίδραση. Επαλήθευσε πάντα με /queue print stats ότι οι μετρητές bytes ανεβαίνουν.

02

Simple Queue — Γρηγορα Caps ανα Client

Ο ταχύτερος δρόμος προς «κανένας μεμονωμένος επισκέπτης δεν μπορεί να μονοπωλήσει τη σύνδεση». Δύο πεδία, ένας κανόνας ανά στόχο. Ξεκίνα εδώ.

Το Simple Queue είναι το πιο εύκολο εργαλείο QoS στο RouterOS. Ταιριάζει σε διεύθυνση source ή destination, εφαρμόζει ένα max-limit για upload και download, και προαιρετικά κάνει burst πάνω από το όριο για σύντομες μεταφορές. Δεν χρειάζεται mangle. Ιδανικό για μικρά ακίνητα (μέχρι ~20 clients) ή ως γρήγορη διόρθωση ενώ χτίζεις το πλήρες Queue Tree.

Καπαρε Ολο το Subnet Επισκεπτων

RouterOS — Simple Queue: καπαρε το συνολικο bandwidth του VLAN επισκεπτων
# Συνολικό pool επισκεπτών: 50 Mbps down / 20 Mbps up
# Όλοι οι επισκέπτες μοιράζονται αυτό το pool — μία ουρά για όλο το subnet
[admin@MikroTik] > /queue simple add \
    name="guest-pool" \
    target=192.168.30.0/24 \
    max-limit=50M/20M \
    comment="Guest WiFi VLAN 30 — total pool"
# max-limit=download/upload (πρόσεξε: πρώτα download, μετά upload)
# 50M/20M = 50 Mbps download, 20 Mbps upload ceiling για ΟΛΟΥΣ τους επισκέπτες μαζί.

Cap ανα Client με Burst

Πρόσθεσε μεμονωμένα caps επισκεπτών ώστε μια συσκευή να μην μπορεί να μονοπωλήσει το pool. Το burst επιτρέπει πλήρη ταχύτητα για σύντομη διάρκεια (καλό για φόρτωση σελίδων) μετά περιορίζει στον σταθερό ρυθμό.

RouterOS — Simple Queue: cap ανα client με burst
# Cap ανά επισκέπτη: 10 Mbps down / 5 Mbps up σταθερό
# Burst: 20 Mbps για τα πρώτα 10 δευτερόλεπτα (κάνει τις σελίδες να νιώθονται γρήγορες)
[admin@MikroTik] > /queue simple add \
    name="guest-per-client" \
    target=192.168.30.0/24 \
    max-limit=10M/5M \
    burst-limit=20M/10M \
    burst-threshold=8M/4M \
    burst-time=10s/10s \
    queue=pcq-download-default/pcq-upload-default \
    comment="Guest per-client PCQ cap"
# burst-limit: μέγιστη ταχύτητα κατά το burst
# burst-threshold: μόλις ο σταθερός ρυθμός ξεπεράσει αυτό, το burst σταματά
# burst-time: παράθυρο burst σε δευτερόλεπτα
# queue=pcq-*: χρησιμοποίησε PCQ για δίκαιο μοίρασμα ανά IP μέσα στον κανόνα

# Επαλήθευσε ότι η ουρά είναι ενεργή και μετράει bytes:
[admin@MikroTik] > /queue simple print stats
 NAME             RATE         PACKET-RATE  QUEUED-BYTES  DROPPED
 guest-pool       12.4 Mbps    1823         0 B           0
 guest-per-client 1.2 Mbps     183          0 B           0
# Το RATE δείχνει τρέχον throughput. DROPPED > 0 σημαίνει ότι η διαμόρφωση είναι ενεργή.
# Αν RATE = 0 και περιμένεις κίνηση: έλεγξε την κατεύθυνση interface.
Queues › Simple Queues › + Add
WinBox 4.1 — Queues › Simple Queues Interfaces Bridge IP Firewall Queues Simple Queues Queue Tree Queue Types + Add New Simple Queue — guest-per-client Name guest-per-client Target 192.168.30.0/24 Max Limit ↓ / ↑ 10M / 5M BURST Burst Limit ↓ / ↑ 20M / 10M Burst Time ↓ / ↑ 10s / 10s Queue Type ↓ / ↑ pcq-download-default ▾ pcq-upload-default ▾ Apply Queues › Simple Queues › + Add · set Target = guest subnet · PCQ queue type for automatic per-client fair-share
Queues › Simple Queues → + Add. Βάλε Target το subnet επισκεπτών, Max Limit τον σταθερό ρυθμό, Burst Limit την βραχυπρόθεσμη αιχμή. Queue Type = pcq-download-default / pcq-upload-default ενεργοποιεί αυτόματα το δίκαιο μοίρασμα PCQ μέσα σε αυτόν τον κανόνα.
⚠ Παγιδα — Η Σειρα των Simple Queue Εχει Σημασια

Τα Simple Queues του RouterOS επεξεργάζονται από πάνω προς τα κάτω, κερδίζει το πρώτο ταίριασμα — ακριβώς όπως οι κανόνες firewall. Αν έχεις μια ουρά ανά client (target = 192.168.30.5) και μια ουρά pool (target = 192.168.30.0/24), ο κανόνας ανά client πρέπει να εμφανίζεται πριν τον κανόνα pool. Ένα πιο συγκεκριμένο ταίριασμα διεύθυνσης πρέπει πάντα να είναι πάνω από ένα λιγότερο συγκεκριμένο. Έλεγξε τη σειρά με /queue simple print και χρησιμοποίησε place-before= όταν προσθέτεις.

03

Mangle — Ταξινομησε Κινηση κατα VLAN

Πριν το Queue Tree μπορέσει να δώσει προτεραιότητα κατά VLAN, το mangle πρέπει να σημάνει κάθε πακέτο. Αυτό είναι το επίπεδο ταξινόμησης που κάνει όλα τα υπόλοιπα να δουλεύουν.

Το Mangle τρέχει στην αλυσίδα prerouting και σημαίνει πακέτα πριν μπουν στην ουρά. Δημιουργούμε ένα packet-mark ανά κλάση κίνησης. Το Queue Tree θα ταιριάξει αυτά τα marks και θα εφαρμόσει τα σωστά όρια ρυθμού και προτεραιότητες.

RouterOS — mangle: ταξινομησε κινηση κατα VLAN
[admin@MikroTik] > /ip firewall mangle

# ── STAFF / MGMT — υψηλότερη προτεραιότητα ──────────────────────────────
[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting \
    in-interface=vlan10 \
    action=mark-packet \
    new-packet-mark=staff-traffic \
    passthrough=no \
    comment="Mark Staff VLAN 10 traffic"

# ── GUEST — μεσαία προτεραιότητα, PCQ fair-share ─────────────────────────
[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting \
    in-interface=vlan30 \
    action=mark-packet \
    new-packet-mark=guest-traffic \
    passthrough=no \
    comment="Mark Guest VLAN 30 traffic"

# ── IOT — χαμηλότερη προτεραιότητα, hard cap ─────────────────────────────
[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting \
    in-interface=vlan40 \
    action=mark-packet \
    new-packet-mark=iot-traffic \
    passthrough=no \
    comment="Mark IoT VLAN 40 traffic"

# ── DSCP marking — ρυθμίζεται μαζί με το packet-mark ─────────────────────
# Το Staff παίρνει DSCP EF (Expedited Forwarding = υψηλότερη κλάση προτεραιότητας)
# Το Guest παίρνει DSCP AF21 (μεσαίο assured forwarding)
# Το IoT παίρνει DSCP CS1 (χαμηλότερο από best-effort — «background»)
[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting in-interface=vlan10 \
    action=change-dscp new-dscp=46 \
    passthrough=yes \
    comment="DSCP EF (46) for Staff"

[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting in-interface=vlan30 \
    action=change-dscp new-dscp=18 \
    passthrough=yes \
    comment="DSCP AF21 (18) for Guest"

[admin@MikroTik] /ip/firewall/mangle> add \
    chain=prerouting in-interface=vlan40 \
    action=change-dscp new-dscp=8 \
    passthrough=yes \
    comment="DSCP CS1 (8) for IoT"

# Επαλήθευσε ότι τα marks εφαρμόζονται (έλεγξε τους μετρητές bytes αφού ρέει κίνηση):
[admin@MikroTik] > /ip firewall mangle print stats
 #  CHAIN       ACTION       BYTES        PACKETS  COMMENT
 0  prerouting  mark-packet  142.3 MiB    398241   Mark Staff VLAN 10
 1  prerouting  mark-packet  890.1 MiB    1204821  Mark Guest VLAN 30
 2  prerouting  mark-packet  12.4 MiB     84921    Mark IoT VLAN 40
# Μηδέν bytes σε έναν κανόνα = καμία κίνηση από εκείνο το VLAN ή λάθος όνομα interface.
⚠ Παγιδα — passthrough=no στο mark-packet, passthrough=yes στο change-dscp

Οι κανόνες mark-packet χρησιμοποιούν passthrough=no — μόλις σημανθεί ένα πακέτο, σταμάτα την επεξεργασία περαιτέρω κανόνων mangle για αυτό. Αυτό αποτρέπει ένα πακέτο staff από το να ταιριάξει κατά λάθος και σε κανόνα guest. Οι κανόνες change-dscp χρησιμοποιούν passthrough=yes — η αλλαγή DSCP εφαρμόζεται και το πακέτο συνεχίζει, γιατί ο κανόνας mark-packet έχει ήδη τρέξει πρώτος (ή τρέχει μετά, ανάλογα με τη σειρά). Αν βάλεις passthrough=no στον κανόνα DSCP, το packet-mark από τον προηγούμενο κανόνα δεν θα έχει εφαρμοστεί ακόμα. Κράτα το mark-packet πρώτο, το DSCP δεύτερο, και τα δύο αναφερόμενα στο ίδιο in-interface.

04

Queue Tree — Διαμορφωση Προτεραιοτητας με Βαση VLAN

Το Queue Tree είναι ιεραρχικό: μια parent ουρά κατέχει το συνολικό bandwidth WAN, οι child ουρές η καθεμία διεκδικεί ένα κομμάτι με προτεραιότητα και όριο ρυθμού.

Το Queue Tree λειτουργεί πάνω σε κίνηση interface και ταιριάζει packet marks που έχει βάλει το mangle. Η δομή είναι πάντα ένας parent με children. Ο parent ορίζει τον συνολικό σωλήνα (την ταχύτητα uplink WAN σου). Τα children ορίζουν όρια και προτεραιότητες ανά κλάση. Όταν το link είναι κορεσμένο, τα children με υψηλότερη προτεραιότητα εξυπηρετούνται πρώτα· τα children με χαμηλότερη προτεραιότητα παίρνουν bandwidth μόνο όταν τα υψηλότερα δεν το χρειάζονται.

PARENT: wan-shaper interface=ether1 (WAN out) max-limit=100M staff-queue packet-mark=staff-traffic max-limit=40M priority=1 (υψηλοτερη) εγγυημενο ελαχιστο guest-queue packet-mark=guest-traffic max-limit=50M priority=3 PCQ δικαιο μοιρασμα ανα client iot-queue packet-mark=iot-traffic max-limit=10M priority=8 (χαμηλοτερη) hard cap, background Υπό συμφόρηση: το Staff (priority 1) εξυπηρετείται πρώτο → Guest (priority 3) → το IoT (priority 8) παίρνει μόνο ό,τι απομένει μετά το Staff και το Guest

Βημα 1 — Δημιουργησε Τυπους Ουρας PCQ

Το PCQ (Per-Connection Queue) μοιράζει αυτόματα ένα pool bandwidth εξίσου ανάμεσα σε ενεργούς clients. Το RouterOS έρχεται με δύο default τύπους PCQ (pcq-download-default και pcq-upload-default). Για την ουρά επισκεπτών τους χρησιμοποιούμε απευθείας — κάθε μοναδικό destination IP (download) ή source IP (upload) παίρνει αυτόματα ίσο μερίδιο του pool.

RouterOS — επαληθευσε η δημιουργησε τυπους ουρας PCQ
# Έλεγξε υπάρχοντες τύπους ουράς — οι τύποι PCQ θα έπρεπε να υπάρχουν ήδη
[admin@MikroTik] > /queue type print
 0  name="default"               kind=fifo
 1  name="ethernet-default"      kind=pfifo
 2  name="pcq-upload-default"    kind=pcq  classifier=src-address
 3  name="pcq-download-default"  kind=pcq  classifier=dst-address
# pcq-upload-default:   μοιράζει το upload bandwidth εξίσου ανά source IP
# pcq-download-default: μοιράζει το download bandwidth εξίσου ανά dest IP
# classifier=src-address = διαχωρισμός κατά το ποιος στέλνει (upload)
# classifier=dst-address = διαχωρισμός κατά το ποιος δέχεται (download)
# Αυτά τα defaults είναι αρκετά. Μπορείς να δημιουργήσεις custom αν χρειαστεί.

# Προαιρετικό: δημιούργησε ένα custom PCQ με όριο rate-ανά-client
[admin@MikroTik] > /queue type add \
    name="pcq-guest-down" \
    kind=pcq \
    pcq-classifier=dst-address \
    pcq-rate=10M \
    pcq-burst-rate=20M \
    pcq-burst-threshold=8M \
    pcq-burst-time=10s
# pcq-rate=10M: κάθε μεμονωμένος client έχει cap στα 10 Mbps download.
# Η ουρά pool (50M) και το cap ανά client (10M) δουλεύουν μαζί:
# 5 επισκέπτες = 10M ο καθένας = 50M σύνολο = το pool κορεσμένο.
# 3 επισκέπτες = το αχρησιμοποίητο bandwidth του pool μοιράζεται εξίσου.

Βημα 2 — Χτισε το Queue Tree

RouterOS — Queue Tree: parent + children VLAN
[admin@MikroTik] > /queue tree

# ── PARENT: συνολικός shaper upload WAN ──────────────────────────────────
# Πρόσδεσέ το στο εξερχόμενο interface WAN. Όλα τα children κληρονομούν αυτό το ceiling.
[admin@MikroTik] /queue/tree> add \
    name="wan-shaper" \
    parent=ether1 \
    max-limit=100M \
    comment="WAN upload shaper — 100 Mbps Starlink"

# ── CHILD 1: Staff — priority 1, ceiling 40 Mbps ─────────────────────────
[admin@MikroTik] /queue/tree> add \
    name="staff-queue" \
    parent=wan-shaper \
    packet-mark=staff-traffic \
    max-limit=40M \
    priority=1 \
    queue=default \
    comment="Staff VLAN 10 — highest priority"

# ── CHILD 2: Guest — priority 3, 50 Mbps, PCQ ανα client ─────────────────
[admin@MikroTik] /queue/tree> add \
    name="guest-queue" \
    parent=wan-shaper \
    packet-mark=guest-traffic \
    max-limit=50M \
    priority=3 \
    queue=pcq-guest-down \
    comment="Guest VLAN 30 — PCQ fair-share per client"

# ── CHILD 3: IoT — priority 8, hard cap 10 Mbps ──────────────────────────
[admin@MikroTik] /queue/tree> add \
    name="iot-queue" \
    parent=wan-shaper \
    packet-mark=iot-traffic \
    max-limit=10M \
    priority=8 \
    queue=default \
    comment="IoT VLAN 40 — background, hard cap"

# Επαλήθευσε τη δομή του δέντρου:
[admin@MikroTik] > /queue tree print
 NAME          PARENT       PACKET-MARK     MAX-LIMIT  PRIORITY
 wan-shaper    ether1       —               100M       8
 staff-queue   wan-shaper   staff-traffic   40M        1
 guest-queue   wan-shaper   guest-traffic   50M        3
 iot-queue     wan-shaper   iot-traffic     10M        8
Queues › Queue Tree › + Add
WinBox 4.1 — Queues › Queue Tree Queues Simple Queues Queue Tree + Add NAME PARENT PACKET-MARK MAX-LIMIT PRIORITY RATE wan-shaper ether1 — 100M 8 88.2M ▸ staff-queue wan-shaper staff-traffic 40M 1 12.1M ▸ guest-queue wan-shaper guest-traffic 50M 3 71.4M ▸ iot-queue wan-shaper iot-traffic 10M 8 4.7M New Queue Tree Entry — guest-queue Name guest-queue Parent wan-shaper ▾ Packet Mark guest-traffic ▾ Max Limit 50M Priority 3 Queue Type pcq-guest-down ▾ Apply Queues › Queue Tree › + Add · Parent = wan-shaper · Packet Mark = from mangle · Priority 1 (staff) beats 3 (guest) beats 8 (IoT)
Το Queues › Queue Tree δείχνει την ιεραρχία. Ο parent wan-shaper κατέχει όλα τα 100 Mbps. Τα children ταιριάζουν το packet-mark τους από το mangle και επιβάλλουν το rate + priority τους. Υπό συμφόρηση, το priority 1 (staff) εξυπηρετείται πάντα πριν το priority 3 (guest) και το priority 8 (IoT).
⚠ Παγιδα — Το Queue Tree Διαμορφωνει Μονο Upload (LAN→WAN) by Default

Το να προσδέσεις την parent ουρά στο parent=ether1 (interface WAN) διαμορφώνει μόνο κίνηση που φεύγει προς τα έξω από εκείνο το interface — που είναι το upload σου. Για να διαμορφώσεις download (WAN→LAN), χρειάζεσαι μια δεύτερη parent ουρά προσδεμένη στο interface LAN ή στο bridge, ή χρησιμοποίησε τον global queue parent. Πολλά deployments διαμορφώνουν μόνο το upload γιατί αυτή είναι η κατεύθυνση που κορένεται πρώτη — αλλά σε Starlink όπου το download είναι επίσης υπό διεκδίκηση, πρόσθεσε ένα καθρεφτισμένο δέντρο στο interface που κοιτά το LAN.

✕ Τι Δεν Δουλεψε — Queue Tree Χωρις Marks Mangle

Το να χτίσεις ένα Queue Tree χωρίς marks mangle καταλήγει σε ουρές που δεν ταιριάζουν τίποτα — οι μετρητές bytes μένουν στο μηδέν, καμία διαμόρφωση δεν συμβαίνει. Το RouterOS δεν θα σε προειδοποιήσει. Οι ουρές φαίνονται σωστές στο /queue tree print αλλά σιωπηλά δεν κάνουν τίποτα γιατί κανένα πακέτο δεν κουβαλά το αναμενόμενο mark. Επαλήθευσε πάντα πρώτα ότι το mangle δουλεύει (/ip firewall mangle print stats) πριν κάνεις debug το Queue Tree. Αν οι μετρητές bytes του mangle είναι μηδέν, το πρόβλημα είναι οι κανόνες mangle — διόρθωσέ τους πριν αγγίξεις τη δομή ουράς.

05

DSCP — Ταξινομηση Που Επιβιωνει Ολη τη Διαδρομη

Τα packet marks εξαφανίζονται όταν ένα πακέτο φεύγει από τον router. Το DSCP γράφεται μέσα στην ίδια την κεφαλίδα IP — APs, switches, και ο ISP μπορούν όλοι να το διαβάσουν και να δράσουν πάνω του.

Ένα packet-mark του RouterOS υπάρχει μόνο μέσα στη μνήμη του router — εξαφανίζεται τη στιγμή που το πακέτο βγαίνει προς το WAN ή περνάει σε ένα downstream AP. Το DSCP (Differentiated Services Code Point) είναι ένα πεδίο 6-bit στην κεφαλίδα IP που ταξιδεύει με το πακέτο από άκρη σε άκρη. Ρύθμισέ το μία φορά στο mangle και κάθε συσκευή στη διαδρομή που καταλαβαίνει DSCP μπορεί να το τιμήσει.

Πακετο IP DSCP=46 EF RouterOS το mangle ρυθμιζει DSCP στην κεφαλιδα change-dscp=46 Managed Switch διαβαζει DSCP δινει προτεραιοτητα στην ουρα EF = αυστηρη προτεραιοτητα WiFi AP αντιστοιχιζει DSCP → WMM AC_VO υψηλοτερη προτεραιοτητα WiFi Client Το DSCP ταξιδεύει στην κεφαλίδα IP — ρυθμίζεται μία φορά στον router, τιμάται από κάθε συσκευή που καταλαβαίνει DSCP στη διαδρομή

Οι τιμές DSCP που χρησιμοποιούνται σε αυτόν τον οδηγό αντιστοιχούν σε στάνταρ per-hop συμπεριφορές:

Αναφορα DSCP — τιμες που χρησιμοποιουνται σε αυτον τον οδηγο
# Τιμή DSCP   Όνομα κλάσης    Δεκαδικό Περίπτωση χρήσης
# ─────────────────────────────────────────────────────────────────────────
# EF          Expedited       46       VoIP, PMS, κίνηση staff — αυστηρή προτεραιότητα
#             Forwarding                μπαίνει σε ουρά πριν από όλα τα άλλα
#
# AF21        Assured         18       Streaming επισκεπτών — μεσαία προτεραιότητα,
#             Forwarding 2,1           ρίχνεται πριν το EF υπό συμφόρηση
#
# CS1         Class           8        IoT, κίνηση background — κάτω από
#             Selector 1               best-effort· ρίχνεται πρώτο υπό φορτίο
#
# BE          Best Effort     0        Ασήμαντη κίνηση — default μεταχείριση

# Επαλήθευσε ότι ρυθμίζεται το DSCP (χρησιμοποίησε torch για επιθεώρηση ζωντανών πακέτων):
[admin@MikroTik] > /tool torch interface=ether1 ip-protocol=any
# Ψάξε για τη στήλη DSCP στο output του torch.
# Ή κάνε capture με /tool packet-sniffer και επιθεώρησε κεφαλίδες.

06

Επαληθευση και Παρακολουθηση

Τρεις εντολές σου λένε τα πάντα: τα queue stats δείχνουν τι διαμορφώνεται, το torch δείχνει ζωντανούς ρυθμούς, και τα mangle stats επιβεβαιώνουν ότι η ταξινόμηση δουλεύει.

RouterOS — εντολες παρακολουθησης QoS
# Ζωντανά queue stats — παρακολούθα μετρητές bytes και πεσμένα πακέτα
[admin@MikroTik] > /queue tree print stats interval=2
 NAME          RATE      PACKET-RATE  QUEUED-BYTES  DROPPED   COMMENT
 wan-shaper    88.2 Mbps 12048        0 B           0
 staff-queue   12.1 Mbps 1820         0 B           0         Staff VLAN
 guest-queue   71.4 Mbps 9814         48.2 KiB      12483     Guest — shaping active
 iot-queue     4.7 Mbps  414          0 B           0         IoT
# DROPPED > 0 στο guest-queue = η διαμόρφωση είναι ενεργή, η περίσσεια ρίχνεται.
# DROPPED = 0 παντού = είτε κάτω από τα όρια είτε χαλασμένη ταξινόμηση.
# Το interval=2 ανανεώνει κάθε 2 δευτερόλεπτα — Ctrl+C για να σταματήσεις.

# Έλεγξε ότι το mangle ταξινομεί (τα bytes πρέπει να είναι μη μηδενικά):
[admin@MikroTik] > /ip firewall mangle print stats
 0  prerouting  mark-packet  142.3 MiB    398241   Mark Staff VLAN 10
 1  prerouting  mark-packet  890.1 MiB    1204821  Mark Guest VLAN 30
 2  prerouting  mark-packet  12.4 MiB     84921    Mark IoT VLAN 40

# Ζωντανή ανάλυση ανά IP μέσα σε μια ουρά (ποιος χρησιμοποιεί τι):
[admin@MikroTik] > /queue simple print stats
# Για ουρές PCQ, δες ανάλυση ανά flow:
[admin@MikroTik] > /queue type print stats where name="pcq-guest-down"

# Δες ζωντανή κίνηση ανά IP στο VLAN επισκεπτών:
[admin@MikroTik] > /tool torch interface=vlan30 src-address=192.168.30.0/24
 SRC-ADDRESS      DST-ADDRESS     PROTO  TX         RX
 192.168.30.5     23.45.67.89     TCP    9.8 Mbps   1.2 Mbps  ← κοντα στο cap
 192.168.30.12    203.0.113.50    TCP    9.9 Mbps   800 Kbps  ← κοντα στο cap
 192.168.30.8     142.250.80.1    TCP    2.1 Mbps   200 Kbps
# Το Torch δείχνει σε πραγματικό χρόνο — ακριβώς ποιος χρησιμοποιεί τι. Πάτα Q για έξοδο.
🛡 Η Οπτικη του Operator — QoS για Φιλοξενια

Ξεκίνα με το cap του guest pool, πρόσθεσε PCQ ανά client, και έχεις λύσει το 90% των παραπόνων. Το πιο συχνό πρόβλημα σε WiFi φιλοξενίας είναι μια συσκευή που καταναλώνει όλο το uplink — ένας client torrent επισκέπτη, ένα τηλέφωνο με auto-backup, ή ένα 4K stream. Ένα guest pool 50M με cap PCQ 10M ανά client σημαίνει ότι κανένας μεμονωμένος επισκέπτης δεν μπορεί να πάρει πάνω από 10M ακόμα κι αν το υπόλοιπο του pool είναι αδρανές. Αυτό μόνο του εξαλείφει την κατηγορία παραπόνων «κάποιος μονοπωλεί το WiFi».

Η κίνηση staff και PMS πρέπει πάντα να είναι σε ξεχωριστό VLAN με priority 1. Ακόμα κι αν κορένεται ένα guest pool, οι ουρές staff σε priority 1 θα προλάβουν την κίνηση guest και IoT. Αυτό σημαίνει ότι τα τερματικά check-in, η επεξεργασία πληρωμών, και το σύστημα διαχείρισης ιδιοκτησίας έχουν πάντα bandwidth — ακόμα και σε ώρες αιχμής πλήρους πληρότητας.

Κάνε monitoring σε ώρες αιχμής, όχι στις 03:00. Τα προβλήματα QoS εμφανίζονται υπό φορτίο. Έλεγξε /queue tree print stats interval=2 κατά τη διάρκεια του δείπνου (όταν οι επισκέπτες είναι στα δωμάτια) ή ένα βροχερό απόγευμα. Αν το DROPPED των επισκεπτών είναι μη μηδενικό και το RATE των επισκεπτών ισούται με το max-limit, η διαμόρφωση δουλεύει. Αν το RATE του staff-queue είναι κοντά στο ceiling του και το guest-queue είναι επίσης στο max, χρειάζεσαι μεγαλύτερο σωλήνα WAN — το QoS δεν μπορεί να δημιουργήσει bandwidth, μόνο να κατανείμει ό,τι υπάρχει.

Το hard cap του IoT προστατεύει το δίκτυο από ενημερώσεις firmware και καταιγίδες τηλεμετρίας. Κάμερες IP, έξυπνοι θερμοστάτες, και συστήματα ελέγχου πρόσβασης μερικές φορές στέλνουν μεγάλες ενημερώσεις firmware ή εκρήξεις συγχρονισμού cloud σε ακατάλληλες στιγμές. Ένα hard cap 10 Mbps στο VLAN IoT διασφαλίζει ότι αυτές οι διεργασίες background δεν επηρεάζουν ποτέ την εμπειρία επισκεπτών ή staff — και αν μια συσκευή IoT συμβιβαστεί και αρχίσει να πλημμυρίζει κίνηση, το cap περιορίζει τη ζημιά.

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

  1. Οι ουρές δεν ταξινομούν — το κάνει το mangle. Χτίσε πρώτα τα packet-marks του mangle, επαλήθευσε ότι οι μετρητές bytes είναι μη μηδενικοί, μετά χτίσε το Queue Tree. Κανόνες mangle με μηδέν bytes σημαίνει ότι οι ουρές σου δεν ταιριάζουν τίποτα και σιωπηλά δεν κάνουν τίποτα.
  2. Το Simple Queue αρκεί για μικρά ακίνητα και γρήγορες αναπτύξεις. Χρησιμοποίησέ το για να κάνεις cap το subnet επισκεπτών και εφάρμοσε PCQ για δικαιοσύνη ανά client. Μπορείς να προσθέσεις Queue Tree αργότερα χωρίς να αφαιρέσεις τα Simple Queues — λειτουργούν παράλληλα.
  3. Ο parent του Queue Tree προσδένεται στο interface WAN και διαμορφώνει μόνο upload by default. Για να διαμορφώσεις και download, πρόσθεσε έναν δεύτερο parent στο interface ή bridge που κοιτά το LAN. Σε Starlink όπου το download είναι επίσης υπό διεκδίκηση, και οι δύο κατευθύνσεις έχουν σημασία.
  4. Το PCQ είναι το σωστό εργαλείο για guest WiFi — ποτέ μην προσθέτεις χειροκίνητα Simple Queues ανά IP για επισκέπτες. Το PCQ μοιράζει αυτόματα το pool εξίσου ανάμεσα σε όσους clients είναι ενεργοί. Οι χειροκίνητες ουρές ανά IP δεν κλιμακώνουν (οι επισκέπτες έρχονται και φεύγουν), και απαιτούν συνεχή συντήρηση.
  5. Η προτεραιότητα στο Queue Tree είναι από 1 (υψηλότερη) έως 8 (χαμηλότερη) — το αντίθετο απ' ότι περιμένουν οι περισσότεροι. Staff = 1, Guest = 3, IoT = 8. Το να το κάνεις ανάποδα σημαίνει ότι το IoT παίρνει προτεραιότητα έναντι του staff — ακριβώς το λάθος αποτέλεσμα.
  6. Το DSCP επιβιώνει το σύνορο του router — τα packet-marks όχι. Αν έχεις APs που καταλαβαίνουν DSCP (Ubiquiti UniFi, για παράδειγμα), ρύθμισε DSCP στο mangle και τα APs θα το τιμήσουν μέσω WMM. Η κίνηση VoIP και PMS του staff σημασμένη EF (46) παίρνει αυτόματα την υψηλότερη κατηγορία πρόσβασης WiFi.
  7. Επαλήθευσε με /queue tree print stats interval=2 υπό πραγματικό φορτίο. DROPPED > 0 στην ουρά επισκεπτών επιβεβαιώνει ότι η διαμόρφωση είναι ενεργή. Μηδέν παντού με κίνηση να ρέει σημαίνει ότι η ταξινόμηση είναι χαλασμένη — γύρνα πρώτα στα mangle stats.

Επισκεπτες που παραπονιουνται για το Wi-Fi;

Κάνω config QoS για δίκτυα φιλοξενίας με κατανομή bandwidth βασισμένη σε VLAN, δικαιοσύνη επισκεπτών βασισμένη σε PCQ, και DSCP marking που πραγματικά επιβιώνει από άκρη σε άκρη στα access points σου — όχι μόνο στον router.

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