English · Ελληνικά
Οι δύο υπηρεσίες που τρέχει κάθε edge router: μοίρασε διευθύνσεις στο LAN, και μοιράσου ένα δημόσιο IP προς τον έξω κόσμο. Το RouterOS τα κάνει και τα δύο γρήγορα — το default config τα κάνει ήδη — αλλά το «γρήγορα» κρύβει ένα μοντέλο connection-tracking που αξίζει να καταλάβεις, και μια επιλογή masquerade-vs-src-nat που έχει σημασία τη μέρα που θα πάρεις δεύτερο WAN. Αυτό είναι το post του Cisco DHCP & NAT/PAT σε RouterOS.
Το 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.
/ip firewall nat)01
Τρία αντικείμενα. Ο οδηγός setup τα χτίζει σε μία κίνηση, αλλά το να το κάνεις με το χέρι σου δείχνει τι κάνει το καθένα και πού να το αλλάξεις αργότερα.
# 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
Δέσε τον server στο bridge, όχι σε ένα μεμονωμένο φυσικό port — το bridge είναι το broadcast domain όπου ζουν οι clients. Δέσ' τον μόνο στο ether2 και μόνο εκείνο το port θα παίρνει διευθύνσεις. Και ποτέ μην τρέχεις δύο ενεργούς DHCP servers στο ίδιο segment: οι clients παίρνουν όποιον απαντήσει πρώτος, και θα κυνηγάς ένα φάντασμα «κάποιες φορές λάθος gateway». Για VLAN, ένας server ανά VLAN interface — δες VLANs.
02
Εκτυπωτές, το NVR, access points — οτιδήποτε θα κάνεις firewall ή forward χρειάζεται σταθερή διεύθυνση. Κάνε reserve με MAC ώστε η συσκευή να χρησιμοποιεί ακόμα DHCP αλλά να παίρνει πάντα το ίδιο IP.
# Πιο γρήγορο: βρες το 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
Το default config χρησιμοποιεί masquerade, που είναι μια χαρά μέχρι που δεν είναι. Το να ξέρεις τη διαφορά είναι αυτό που ξεχωρίζει το «δουλεύει σε ένα WAN» από το «επιβιώνει το failover».
# 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
Το 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
Και το NAT και το firewall πατάνε πάνω στο conntrack. Το να το καταλάβεις εξηγεί όλη τη συμπεριφορά packet-flow του RouterOS — και γιατί μια αλλαγή NAT μερικές φορές «δεν πιάνει» μέχρι να καθαρίσεις το state.
> /ip firewall connection print # ζωντανές ροές + το NAT state τους > /ip firewall connection print count-only # Άλλαξες έναν κανόνα NAT και οι παλιές ροές ακόμα χρησιμοποιούν την παλιά μετάφραση; # Αφαίρεσε τις μπαγιάτικες συνδέσεις ώστε να ξανα-αξιολογηθούν με τον νέο κανόνα: > /ip firewall connection remove [find src-address~"10.10.0"]
Βασικα Συμπερασματα
Σχεδιάζω addressing, DHCP, και NAT σε MikroTik και Cisco με segmentation και reservations χτισμένα από την αρχή, τεσταρισμένα να επιβιώνουν σε ένα πλήρως γεμάτο ακίνητο, όχι μόνο σε μια ήσυχη Τρίτη.
Κλεισε μια Discovery Call →