Πίσω στο blog

English  ·  Ελληνικά

MikroTik / RouterOS  ·  Οδηγος  ·  Ιουλιος 2026

MikroTik
DHCP Server & NAT

Οι δύο υπηρεσίες που τρέχει κάθε edge router: μοίρασε διευθύνσεις στο LAN, και μοιράσου ένα δημόσιο IP προς τον έξω κόσμο. Το RouterOS τα κάνει και τα δύο γρήγορα — το default config τα κάνει ήδη — αλλά το «γρήγορα» κρύβει ένα μοντέλο connection-tracking που αξίζει να καταλάβεις, και μια επιλογή masquerade-vs-src-nat που έχει σημασία τη μέρα που θα πάρεις δεύτερο WAN. Αυτό είναι το post του Cisco DHCP & NAT/PAT σε RouterOS.

MikroTik RouterOS DHCP NAT Masquerade

Το DHCP δίνει στα hosts μια διεύθυνση, gateway, και DNS αυτόματα· το NAT ξαναγράφει την ιδιωτική source διεύθυνση εξερχόμενης κίνησης στο δημόσιο IP του router ώστε πολλά hosts να μοιράζονται ένα IP (αυτό που η Cisco λέει PAT / overload). Το RouterOS χτίζει το DHCP από τρία αντικείμενα — ένα pool διευθύνσεων, έναν server δεμένο σε ένα interface, και ένα network που δηλώνει gateway/DNS — και κάνει NAT με έναν μόνο κανόνα srcnat στο firewall.

Το πράγμα ειδικό για RouterOS που αξίζει να εσωτερικεύσεις είναι ότι το NAT οδηγείται από connection tracking: το πρώτο πακέτο μιας ροής χτυπά τον κανόνα NAT, και κάθε επόμενο πακέτο χειρίζεται από την εγγραφή conntrack, όχι ξανα-αξιολογείται. Γι' αυτό το NAT είναι γρήγορο, γι' αυτό έχει σημασία το να καθαρίζεις συνδέσεις μετά από αλλαγή κανόνα, και γι' αυτό η διάκριση masquerade-vs-src-nat έχει πραγματικές συνέπειες. Αυτό είναι το αντίστοιχο του Cisco IOS: DHCP & NAT/PAT· το inbound port-forwarding (dst-nat) έχει δικό του post στο Port Forwarding.

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

01

Ο DHCP Server — Pool, Server, Network

Τρία αντικείμενα. Ο οδηγός setup τα χτίζει σε μία κίνηση, αλλά το να το κάνεις με το χέρι σου δείχνει τι κάνει το καθένα και πού να το αλλάξεις αργότερα.

Terminal — DHCP για το LAN 10.10.0.0/24 στο bridge
# 1. Το εύρος διευθύνσεων προς μοίρασμα (άφησε .1-.9 για υποδομή):
> /ip pool add name=LAN-POOL ranges=10.10.0.20-10.10.0.254

# 2. Ο server, δεμένος στο interface LAN, χρησιμοποιώντας εκείνο το pool:
> /ip dhcp-server add name=LAN-DHCP interface=bridge address-pool=LAN-POOL lease-time=8h

# 3. Οι επιλογές που δίνονται στους clients: gateway, netmask, DNS:
> /ip dhcp-server network add address=10.10.0.0/24 gateway=10.10.0.1 dns-server=10.10.0.1

> /ip dhcp-server lease print   # δες τα leases να εμφανίζονται καθώς ρωτάνε οι clients
⚠ Παγιδα — Ενας DHCP Server ανα Broadcast Domain

Δέσε τον server στο bridge, όχι σε ένα μεμονωμένο φυσικό port — το bridge είναι το broadcast domain όπου ζουν οι clients. Δέσ' τον μόνο στο ether2 και μόνο εκείνο το port θα παίρνει διευθύνσεις. Και ποτέ μην τρέχεις δύο ενεργούς DHCP servers στο ίδιο segment: οι clients παίρνουν όποιον απαντήσει πρώτος, και θα κυνηγάς ένα φάντασμα «κάποιες φορές λάθος gateway». Για VLAN, ένας server ανά VLAN interface — δες VLANs.

02

Static Leases — Σωστα Reservations

Εκτυπωτές, το NVR, access points — οτιδήποτε θα κάνεις firewall ή forward χρειάζεται σταθερή διεύθυνση. Κάνε reserve με MAC ώστε η συσκευή να χρησιμοποιεί ακόμα DHCP αλλά να παίρνει πάντα το ίδιο IP.

Terminal — καρφωσε ενα lease, απο υπαρχον dynamic
# Πιο γρήγορο: βρες το dynamic lease και κάν' το «static», μετά βάλε τη διεύθυνση.
> /ip dhcp-server lease make-static [find address=10.10.0.51]
> /ip dhcp-server lease set [find mac-address=DC:...] address=10.10.0.10
# Ή πρόσθεσέ το από την αρχή:
> /ip dhcp-server lease add mac-address=DC:2C:6E:00:11:22 address=10.10.0.10 \
    server=LAN-DHCP comment="NVR"

03

NAT — Masquerade εναντι src-nat

Το default config χρησιμοποιεί masquerade, που είναι μια χαρά μέχρι που δεν είναι. Το να ξέρεις τη διαφορά είναι αυτό που ξεχωρίζει το «δουλεύει σε ένα WAN» από το «επιβιώνει το failover».

/ip firewall nat — οι δυο τροποι να κανεις source-NAT
# MASQUERADE: χρησιμοποίησε όποια διεύθυνση έχει αυτή τη στιγμή το out-interface.
# Μηδενικό config, τέλειο για WAN DHCP/PPPoE των οποίων το IP αλλάζει.
> /ip firewall nat add chain=srcnat out-interface-list=WAN action=masquerade

# SRC-NAT: κάρφωσέ το σε συγκεκριμένη διεύθυνση. Πιο γρήγορο (χωρίς lookup ανά πακέτο) και
# απαιτείται όταν έχεις πολλαπλά δημόσια IP και θέλεις ντετερμινιστική αντιστοίχιση.
> /ip firewall nat add chain=srcnat out-interface=ether1 \
    src-address=10.10.0.0/24 action=src-nat to-addresses=203.0.113.10
💡 Pro Tip — Το Κρυφο Κοστος του Masquerade στο Failover

Το masquerade ξαναυπολογίζει τη source διεύθυνση ανά σύνδεση και, το πιο σημαντικό, ρίχνει tracked συνδέσεις όταν αλλάζει η διεύθυνση του interface — που είναι στην πραγματικότητα χρήσιμο σε ένα flap WAN. Αλλά σε έναν router με πολλές συνδέσεις είναι μετρήσιμα πιο βαρύ από το src-nat. Κανόνας: masquerade για WAN με dynamic IP, src-nat όταν το δημόσιο IP είναι static. Όταν χτίσεις dual-WAN failover, θα θέλεις έναν κανόνα masquerade ανά WAN κλειδωμένο στο out-interface ώστε οι μεταφράσεις να ακολουθούν το ζωντανό path.

04

Το Μοντελο Connection-Tracking Ασφαλες να το Τρεξεις

Και το NAT και το firewall πατάνε πάνω στο conntrack. Το να το καταλάβεις εξηγεί όλη τη συμπεριφορά packet-flow του RouterOS — και γιατί μια αλλαγή NAT μερικές φορές «δεν πιάνει» μέχρι να καθαρίσεις το state.

Terminal — επιθεωρησε και επαναφερε το connection state
> /ip firewall connection print          # ζωντανές ροές + το NAT state τους
> /ip firewall connection print count-only
# Άλλαξες έναν κανόνα NAT και οι παλιές ροές ακόμα χρησιμοποιούν την παλιά μετάφραση;
# Αφαίρεσε τις μπαγιάτικες συνδέσεις ώστε να ξανα-αξιολογηθούν με τον νέο κανόνα:
> /ip firewall connection remove [find src-address~"10.10.0"]

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

  1. Το DHCP είναι τρία αντικείμενα: pool (διευθύνσεις), server (δεμένος στο bridge/VLAN), network (gateway + DNS). Δέσε στο broadcast domain, όχι σε ένα μεμονωμένο port.
  2. Κάν' τες reserve τις διευθύνσεις για οτιδήποτε θα κάνεις firewall ή forward — με MAC, ώστε η συσκευή να χρησιμοποιεί ακόμα DHCP αλλά να μην αλλάζει ποτέ.
  3. Masquerade για WAN dynamic-IP, src-nat για static. Το masquerade είναι μηδενικό config και φιλικό σε flap· το src-nat είναι πιο γρήγορο και ντετερμινιστικό.
  4. Το NAT πατά πάνω στο connection tracking — το πρώτο πακέτο χτυπά τον κανόνα, τα υπόλοιπα ακολουθούν το conntrack. Γι' αυτό είναι γρήγορο και γι' αυτό οι αλλαγές κανόνων μπορεί να χρειάζονται καθάρισμα συνδέσεων.
  5. Ένας κανόνας masquerade ανά WAN σε setups failover, κλειδωμένος στο out-interface, ώστε οι μεταφράσεις να ακολουθούν όποιο link είναι ζωντανό.

Flat δικτυο, ενα ξεθεωμενο consumer router, και σχεδον καλοκαιρι;

Σχεδιάζω addressing, DHCP, και NAT σε MikroTik και Cisco με segmentation και reservations χτισμένα από την αρχή, τεσταρισμένα να επιβιώνουν σε ένα πλήρως γεμάτο ακίνητο, όχι μόνο σε μια ήσυχη Τρίτη.

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