Πίσω στο blog

English  ·  Ελληνικά

MikroTik / RouterOS  ·  Οδηγος  ·  Σεπτεμβριος 2026

OSPF σε RouterOS 7
— και Πως Μιλα με Cisco

Το RouterOS 7 ξανάχτισε ολόκληρη τη μηχανή routing, και το config OSPF δεν μοιάζει καθόλου με τους οδηγούς ROS6 που ακόμα βουλώνουν τα αποτελέσματα αναζήτησης. Αυτό το post διδάσκει το νέο μοντέλο — instance, area, interface-template — σε τοπολογία τριών routers με μια ανατροπή: ο ένας από τους routers είναι Cisco. Γιατί το OSPF είναι πρότυπο, και η απόδειξη είναι να βλέπεις ένα hEX και ένα 2911 να γίνονται neighbors.

RouterOS 7 OSPF Dynamic Routing Cisco Interop Multi-Vendor MTCRE

μια περιοχή OSPF 0 — δύο vendors MT-1 (RB5009) RID 1.1.1.1 · LAN 10.1.0.0/24 έχει το internet — κάνει originate το default MT-2 (hEX) RID 2.2.2.2 · LAN 10.2.0.0/24 CSC-1 (Cisco 2911) RID 3.3.3.3 · LAN 10.3.0.0/24 10.0.12.0/30 10.0.13.0/30 10.0.23.0/30 ένα τρίγωνο, οπότε κάθε LAN έχει δύο paths — σκότωσε οποιοδήποτε link και το OSPF κάνει reroute γύρω του

Τα static routes σταματούν να κλιμακώνουν τη στιγμή που υπάρχουν δύο paths — το έχεις νιώσει αν έχτισες τις redundant τοπολογίες αυτής της σειράς. Το OSPF είναι η πρότυπη απάντηση: κάθε router περιγράφει τα links του, όλοι κάνουν flood τις περιγραφές, και κάθε router υπολογίζει μόνο του τα συντομότερα paths. Ένα link πεθαίνει → νέος υπολογισμός → η κίνηση κάνει reroute, χωρίς κανέναν άνθρωπο να εμπλέκεται. Το lab multi-area της Cisco καλύπτει τη θεωρία του πρωτοκόλλου σε βάθος· αυτό το post αφορά την υλοποίηση του RouterOS 7 — και το να αποδείξουμε ότι οι δύο vendors συνεργάζονται, γιατί τα περισσότερα πραγματικά ελληνικά δίκτυα SMB είναι ακριβώς αυτό το μείγμα.

Το μοντέλο του ROS7 παίρνει τρία αντικείμενα εκεί που η Cisco παίρνει ένα: ένα instance (η διεργασία — εκεί ζει το router-id), μια area (δεμένη στο instance), και interface-templates (ποια interfaces/networks μπαίνουν σε ποια area, με ρυθμίσεις ανά interface όπως cost και passive). Είναι πιο εκτενές από το network … area 0 — και πιο ρητό, κάτι που θα εκτιμήσεις την πρώτη φορά που θα διαβάσεις το config κάποιου άλλου.

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

01

Addressing και το Πλανο

Ένα τρίγωνο από /30, ένα LAN ανά router, router-ID σε στιλ loopback. Ίδια πειθαρχία με κάθε lab αυτής της σειράς: πρώτα ο πίνακας, μετά το πληκτρολόγιο.

ΣτοιχειοΤιμη
MT-1 ↔ MT-210.0.12.0/30 (MT-1 .1, MT-2 .2) — ether1 και στις δύο πλευρές
MT-1 ↔ CSC-110.0.13.0/30 (MT-1 .1, CSC-1 .2) — ether2 / Gi0/0
MT-2 ↔ CSC-110.0.23.0/30 (MT-2 .1, CSC-1 .2) — ether2 / Gi0/1
LANMT-1: 10.1.0.0/24 · MT-2: 10.2.0.0/24 · CSC-1: 10.3.0.0/24
Router-ID1.1.1.1 / 2.2.2.2 / 3.3.3.3 — ρύθμισέ τα ρητά, ποτέ auto-derived
WANΜόνο MT-1 — static default προς τον ISP, redistributed στο OSPF
💡 Ριχνε Παντα το Router-ID Ρητα

Και οι δύο vendors θα διαλέξουν αυτόματα router-id από μια διεύθυνση interface αν δεν ορίσεις ένα — και εκείνο το ID αλλάζει σιωπηλά όταν αλλάζει το addressing, κάτι που κάνει reset τις adjacencies και μπερδεύει τη βάση LSA στο διάβασμα («ποιος είναι ο 10.0.23.1;»). Ένα ρητό, αξέχαστο ID ανά box (1.1.1.1, 2.2.2.2…) κοστίζει μία γραμμή και κάνει κάθε print/show για την υπόλοιπη ζωή του δικτύου ευανάγνωστο. Στο MikroTik ζει στο instance· στη Cisco, κάτω από το router ospf.

02

Η Πλευρα MikroTik — Instance, Area, Templates

Τρία αντικείμενα, με σειρά. Το interface-template είναι εκεί που το ROS7 διαφέρει περισσότερο και από το ROS6 και από τη Cisco — ταιριάζει interfaces Ή networks, και κουβαλά τις ρυθμίσεις ανά link.

MT-1 — πληρες config OSPF (το MT-2 καθρεφτιζει με το δικο του RID/LAN)
# 1. Το instance — η ίδια η διεργασία routing
[admin@MT-1] > /routing/ospf/instance add name=default version=2 router-id=1.1.1.1

# 2. Η περιοχή backbone, δεμένη στο instance
[admin@MT-1] > /routing/ospf/area add name=backbone area-id=0.0.0.0 instance=default

# 3. Interface templates — τα /30 μιλάνε OSPF, το LAN ανακοινώνεται αλλά passive
[admin@MT-1] > /routing/ospf/interface-template add area=backbone interfaces=ether1 networks=10.0.12.0/30 type=ptp
[admin@MT-1] > /routing/ospf/interface-template add area=backbone interfaces=ether2 networks=10.0.13.0/30 type=ptp
[admin@MT-1] > /routing/ospf/interface-template add area=backbone interfaces=bridge-lan networks=10.1.0.0/24 passive

# Η adjacency με το MT-2 ανεβαίνει σε δευτερόλεπτα:
[admin@MT-1] > /routing/ospf/neighbor print
 0  instance=default area=backbone address=10.0.12.2
    router-id=2.2.2.2 state=Full state-changes=2

# Και το LAN του MT-2 εμφανίζεται με κωδικό routing-table «Do» (dynamic ospf):
[admin@MT-1] > /ip/route print where dst-address=10.2.0.0/24
   DST-ADDRESS     GATEWAY      DISTANCE
Do 10.2.0.0/24     10.0.12.2    110
⚠ Παγιδα — Τυπος Point-to-Point σε /30, και στις Δυο Ακρες

Σε ένα /30 ανάμεσα σε δύο routers, βάλε type=ptp (και ip ospf network point-to-point στην πλευρά Cisco). Ο default τύπος broadcast δουλεύει, αλλά τρέχει μια άσκοπη εκλογή DR σε ένα link δύο routers, προσθέτει ένα LSA type-2, και — η παγίδα interop — ο τύπος network πρέπει να ταιριάζει και στις δύο άκρες αλλιώς η adjacency κολλάει σε ExStart/Exchange. Οι τύποι network που δεν ταιριάζουν είναι η αιτία #1 για το «το MikroTik και η Cisco βλέπονται αλλά ποτέ δεν φτάνουν Full».

03

Η Πλευρα Cisco — και η Στιγμη του Interop

Στάνταρ IOS OSPF από το part 7 της σειράς Cisco. Η μόνη απαίτηση είναι συμφωνία: area, χρονόμετρα hello/dead, τύπος network, MTU. Μετά ένα 2911 και ένα RB5009 σφίγγουν χέρια σαν να μην είναι τίποτα.

CSC-1 (IOS) — και η adjacency, απο τις δυο πλευρες
CSC-1(config)# router ospf 1
CSC-1(config-router)# router-id 3.3.3.3
CSC-1(config-router)# passive-interface GigabitEthernet0/2   ← το LAN
CSC-1(config-router)# network 10.0.13.0 0.0.0.3 area 0
CSC-1(config-router)# network 10.0.23.0 0.0.0.3 area 0
CSC-1(config-router)# network 10.3.0.0 0.0.0.255 area 0
CSC-1(config)# interface range GigabitEthernet0/0 - 1
CSC-1(config-if-range)# ip ospf network point-to-point

# Η Cisco βλέπει δύο neighbors MikroTik…
CSC-1# show ip ospf neighbor
Neighbor ID     Pri   State     Dead Time   Address      Interface
1.1.1.1           0   FULL/  -  00:00:36    10.0.13.1    GigabitEthernet0/0
2.2.2.2           0   FULL/  -  00:00:34    10.0.23.1    GigabitEthernet0/1

# …και το MikroTik κάνει route προς το LAN της Cisco, μαθευμένο μέσω OSPF:
[admin@MT-2] > /ip/route print where dst-address=10.3.0.0/24
Do 10.3.0.0/24     10.0.23.2    110   ← σύνορο vendor, αόρατο στο πρωτόκολλο

Εκείνο το FULL/ - είναι όλο το επιχείρημα για routing βασισμένο σε πρότυπα: το πρωτόκολλο δεν ξέρει ούτε νοιάζεται ότι η μία άκρη κοστίζει €1.200 και τρέχει IOS ενώ η άλλη κοστίζει €60 και τρέχει RouterOS. Ίδια πακέτα, ίδια state machine. Όταν το δίκτυο ενός πελάτη μεγαλώνει ένα site τη φορά με όποιο hardware είχε νόημα εκείνη τη χρονιά, το OSPF είναι αυτό που κάνει το μπάλωμα να συμπεριφέρεται σαν σύστημα.

04

Το Default Route, Costs, και μια Ασκηση Αστοχιας

Το MT-1 κατέχει το internet, άρα το MT-1 κάνει originate το default — υπό όρους. Μετά ευθυγράμμισε τα μαθηματικά cost ανάμεσα σε vendors και κόψε ένα link για να δεις το τρίγωνο να δικαιολογεί την ύπαρξή του.

MT-1 — καν' το originate το default· ολοι — ευθυγραμμισε τα costs
# Το δικό του default του MT-1 είναι ένα static προς τον ISP (με probe check-gateway,
# όπως στο post Starlink failover). Το OSPF το διαφημίζει μόνο όσο υπάρχει:
[admin@MT-1] > /routing/ospf/instance set default originate-default=if-installed

# Το MT-2 και το CSC-1 τώρα έχουν και τα δύο ένα default μέσω του τριγώνου:
CSC-1# show ip route | include 0.0.0.0/0
O*E2  0.0.0.0/0 [110/1] via 10.0.13.1, 00:00:22, GigabitEthernet0/0

# Ευθυγράμμιση cost: τα interface-templates του RouterOS κάνουν default σε cost=1 ανεξάρτητα
# από την ταχύτητα — βάλε costs ρητά ώστε και οι δύο vendors να συμφωνούν τι σημαίνει «μακριά»:
[admin@MT-1] > /routing/ospf/interface-template set [find interfaces=ether1] cost=10
# …και στη Cisco: interface Gi0/0 → ip ospf cost 10. Ίδιος αριθμός, ίδιο link.

Η ασκηση

Ξεκίνα συνεχές ping από ένα PC στο LAN του MT-2 προς ένα στο LAN του CSC-1 — σε steady state, διασχίζει το άμεσο link MT-2↔CSC-1. Τώρα απενεργοποίησε εκείνο το link (/interface/ethernet disable ether2 στο MT-2). Δύο-τρία pings πέφτουν, μετά η κίνηση ξαναεμφανίζεται — μέσω MT-1, τον μακρύ δρόμο γύρω από το τρίγωνο. Το /routing/ospf/neighbor print δείχνει τον χαμένο neighbor· το traceroute δείχνει το επιπλέον hop. Ξανα-ενεργοποίησε και επιστρέφει. Αυτό είναι ένα δίκτυο μεικτού vendor που επουλώνεται μόνο του σε δευτερόλεπτα — με το originate-default=if-installed να διασφαλίζει ότι ακόμα και το path προς το internet κάνει failover τίμια αν πεθάνει το WAN του MT-1.

💡 Που Συναντιεται Αυτο με το Υπολοιπο της Σειρας

Αυτό το τρίγωνο συνθέτει απευθείας με παλιότερα posts: τρέξε OSPF πάνω από tunnels WireGuard ή GRE (part 9, Cisco lab 26) και απομακρυσμένα sites μπαίνουν στην ίδια area 0· τρόφοδότησε το default του MT-1 από το setup Starlink failover και το failover WAN διαδίδεται αυτόματα σε κάθε router. Το dynamic routing είναι το επίπεδο που κάνει όλα τα άλλα κόλπα redundancy να συνθέτουν αντί να τσακώνονται.

05

Παγιδες Μεταβασης ROS6 → ROS7 Διαβασε Πριν Αναβαθμισεις

Αν έμαθες OSPF σε RouterOS 6 — ή αναβαθμίζεις έναν router που το τρέχει — το syntax δεν είναι το μόνο που άλλαξε.

Συνηθεια ROS6Πραγματικοτητα ROS7
/routing ospf network addΈφυγε. Τα networks ζουν τώρα σε interface-templates.
router-id στο default /routing ospf instanceΑκόμα instance, αλλά πρέπει να δημιουργήσεις το instance — κανένα σιωπηρό default.
redistribute-static=as-type-1redistribute=static στο instance (+ φίλτρα out-select αν χρειάζεσαι έλεγχο ανά route).
passive στην εγγραφή interfaceflag passive στο interface-template.
φίλτρα distribute-inΞαναγραμμένα routing filters — νέο syntax κανόνων (if/then), έλεγξε κάθε config filter με το χέρι.
Αναβάθμιση επί τόπου και ελπίδαΤο ROS7 προσπαθεί να μετατρέψει το config OSPF στην αναβάθμιση· πολύπλοκα configs βγαίνουν σπασμένα. Export, αναβάθμιση, επαλήθευση γραμμή προς γραμμή — με ένα backup εκτός box πρώτα.
Επαληθευση (RouterOS)Αντιστοιχο (Cisco)
/routing/ospf/neighbor printshow ip ospf neighbor
/routing/ospf/interface printshow ip ospf interface brief
/routing/ospf/lsa printshow ip ospf database
/ip/route print where routing-table=mainshow ip route ospf
/routing/stats/step print(στατιστικά SPF run — debug ip ospf spf, περίπου)

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

  1. Το OSPF στο ROS7 είναι τρία αντικείμενα: instance (router-id), area, interface-templates (networks, cost, passive, type). Αγνόησε κάθε οδηγό ROS6 — άλλαξε το μοντέλο, όχι μόνο το syntax.
  2. Ρίξε τα router-id ρητά σε κάθε box, και στους δύο vendors. Τα auto-derived ID αλλάζουν κάτω από τα πόδια σου και κάνουν όλο το δίκτυο πιο δύσκολο να διαβαστεί.
  3. type=ptp σε links /30, ταιριασμένο και στις δύο άκρες. Οι τύποι network που δεν ταιριάζουν είναι η κύρια αιτία για adjacencies μεικτού vendor κολλημένες κάτω από Full.
  4. Το interop είναι πραγματικό: συμφωνία σε area, χρονόμετρα, τύπο network, και MTU είναι όλο κι όλο που χρειάζονται ένα hEX και ένα 2911 για να φτάσουν FULL. Το πρωτόκολλο δεν βλέπει τις τιμές.
  5. Το originate-default=if-installed είναι το τίμιο default: το δίκτυο μαθαίνει τον δρόμο εξόδου μόνο όσο υπάρχει ο δρόμος εξόδου — και συνθέτει με failover WAN check-gateway/IP SLA.
  6. Ευθυγράμμισε τα costs ρητά ανά vendor — τα templates του RouterOS κάνουν default σε cost 1, η Cisco το παράγει από το bandwidth· άφησέ τα και τα δύο ανέγγιχτα και η επιλογή path δεν σημαίνει τίποτα.
  7. Ποτέ μην αναβαθμίζεις τυφλά έναν router OSPF ROS6. Κάνε export το config, αναβάθμισε, μετά επαλήθευσε το μετατρεπόμενο section OSPF αντικείμενο προς αντικείμενο.

Μεικτο δικτυο Cisco + MikroTik που μεγαλωσε οργανικα;

Σχεδιάζω routed δίκτυα μεικτού vendor όπου το OSPF επουλώνεται γύρω από μια αστοχία μόνο του, το failover WAN διαδίδεται σε κάθε router που χρειάζεται να ξέρει, και η τεκμηρίωση πραγματικά κατονομάζει σε τι χρησιμεύει κάθε area και link.

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