Πίσω στο blog

English  ·  Ελληνικά

Cisco + MikroTik  ·  Interop  ·  Ιουλιος 2026

MikroTik ↔ Cisco
Ενα Tunnel, Δυο Vendors

Τα πραγματικά δίκτυα είναι μεικτά. Η έδρα έχει ένα Cisco ISR που άφησε ο τελευταίος integrator· το νέο υποκατάστημα πήρε ένα MikroTik hEX γιατί κοστίζει το ένα δέκατο. Ακόμα χρειάζονται ένα κρυπτογραφημένο IPsec tunnel ανάμεσά τους. Αυτό είναι το ακριβές build — IKEv2 και στα δύο, οι τιμές proposal που πρέπει να ευθυγραμμιστούν στην τελεία, και το ένα εννοιολογικό mismatch (route-based vs policy-based) που χαλάει το πρώτο απόγευμα σε όλους.

Cisco IOS MikroTik RouterOS IPsec IKEv2 Interop

Εδρα · Cisco ISR 203.0.113.1 · 10.1.0.0/16 Υποκαταστημα · MikroTik 198.51.100.2 · 10.2.0.0/16 Internet IKEv2 · UDP 500/4500 ESP-AES-256 / SHA-256 / DH14 · PFS14 Διαφορετικά μενού, πανομοιότυπο IPsec. Το tunnel νοιάζεται μόνο αν ταιριάζουν οι αριθμοί.

Το IPsec είναι πρότυπο, οπότε ένα Cisco router και ένα MikroTik θα χτίσουν tunnel — το πρωτόκολλο δεν νοιάζεται ποιος έφτιαξε τα boxes. Αυτό που ρίχνει τον κόσμο είναι ότι οι δύο vendors εκθέτουν την ίδια διαπραγμάτευση δύο φάσεων με εντελώς διαφορετικές λέξεις, και προεπιλέγουν διαφορετικά στιλ tunnel. Το μοντέρνο default της Cisco είναι route-based (ένα VTI πάνω στο οποίο κάνεις route)· το default του MikroTik είναι policy-based (μια policy που λέει «η κίνηση που ταιριάζει src/dst κρυπτογραφείται»). Ανάμειξέ τα απρόσεκτα και η Phase 1 ανεβαίνει ενώ η κίνηση δεν πάει πουθενά.

Αυτό το build το κρατά policy-based και στις δύο άκρες — τον μικρότερο κοινό παρονομαστή που μιλάει κάθε firewall ή router, και το λιγότερο απρόσμενο όταν η άλλη πλευρά είναι MikroTik. Χρησιμοποιούμε IKEv2, AES-256/SHA-256/DH-14 με PFS, ένα ταιριασμένο ζευγάρι traffic selectors (10.1.0.0/16 ↔ 10.2.0.0/16), και τη διόρθωση NAT-exemption και στους δύο routers. Κάθε τιμή που πρέπει να είναι πανομοιότυπη επισημαίνεται ρητά, γιατί το IPsec αποτυγχάνει σιωπηλά και χωρίς βοήθεια όταν κάποια δεν είναι.

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

00

Η Πετρα της Ροζεττας

Πριν πληκτρολογήσεις οτιδήποτε, κράτα τα δύο λεξιλόγια δίπλα-δίπλα. Ό,τι έρχεται μετά είναι απλώς να γεμίσεις αυτές τις γραμμές με ταιριαστές τιμές.

ΕννοιαCisco IOS
Phase 1 crypto (IKE)crypto ikev2 proposal + policy
Peer + PSKcrypto ikev2 keyring + profile
Phase 2 crypto (ESP)crypto ipsec transform-set
Τι κρυπτογραφείταιcrypto map ACL (policy) / route (VTI)
NAT exemptiondeny line πάνω από permit στο NAT ACL
Δες ενεργό tunnelshow crypto ikev2 sa
ΕννοιαMikroTik RouterOS v7
Phase 1 crypto (IKE)/ip ipsec profile
Peer + PSK/ip ipsec peer + /ip ipsec identity
Phase 2 crypto (ESP)/ip ipsec proposal
Τι κρυπτογραφείται/ip ipsec policy (src/dst address)
NAT exemptionκανόνας accept στο /ip firewall nat πάνω από masquerade
Δες ενεργό tunnel/ip ipsec active-peers print

01

Η Πλευρα Cisco (Εδρα) — Policy-Based

Χρησιμοποιούμε σκόπιμα ένα crypto map εδώ αντί για VTI, γιατί ένας policy-based peer είναι το λιγότερο απρόσμενο πράγμα να δώσεις σε ένα MikroTik. Ίδια τέσσερα αντικείμενα crypto με το post του VTI, τερματισμένα με crypto map στο interface WAN.

Cisco IOS (Εδρα · 203.0.113.1) — IKEv2 + crypto map
# --- Phase 1: IKEv2 proposal / policy (πρέπει να ταιριάζει με το profile του MikroTik) ---
R1(config)# crypto ikev2 proposal PROP-MT
R1(config-ikev2-proposal)# encryption aes-cbc-256
R1(config-ikev2-proposal)# integrity sha256
R1(config-ikev2-proposal)# group 14
R1(config)# crypto ikev2 policy POL-MT
R1(config-ikev2-policy)# proposal PROP-MT

# --- Peer + pre-shared key (identity = public IP υποκαταστήματος) ---
R1(config)# crypto ikev2 keyring KR-MT
R1(config-ikev2-keyring)# peer BRANCH
R1(config-ikev2-keyring-peer)# address 198.51.100.2
R1(config-ikev2-keyring-peer)# pre-shared-key S3cr3t-Cross-Vendor!
R1(config)# crypto ikev2 profile PROF-MT
R1(config-ikev2-profile)# match identity remote address 198.51.100.2 255.255.255.255
R1(config-ikev2-profile)# authentication local pre-share
R1(config-ikev2-profile)# authentication remote pre-share
R1(config-ikev2-profile)# keyring local KR-MT

# --- Phase 2: transform set + PFS (ταιριάζει με το proposal του MikroTik) ---
R1(config)# crypto ipsec transform-set TS-MT esp-aes 256 esp-sha256-hmac
R1(cfg-crypto-trans)# mode tunnel

# --- ACL interesting-traffic: LAN Έδρας -> LAN Υποκαταστήματος ---
R1(config)# ip access-list extended VPN-TRAFFIC
R1(config-ext-nacl)# permit ip 10.1.0.0 0.0.255.255 10.2.0.0 0.0.255.255

# --- Crypto map: δέσε peer + transform + PFS + ACL, εφάρμοσε στο WAN ---
R1(config)# crypto map CMAP-MT 10 ipsec-isakmp
R1(config-crypto-map)# set peer 198.51.100.2
R1(config-crypto-map)# set ikev2-profile PROF-MT
R1(config-crypto-map)# set transform-set TS-MT
R1(config-crypto-map)# set pfs group14
R1(config-crypto-map)# match address VPN-TRAFFIC
R1(config)# interface GigabitEthernet0/0
R1(config-if)# crypto map CMAP-MT

02

Η Πλευρα MikroTik (Υποκαταστημα) — Policy-Based

Ίδια διαπραγμάτευση, λέξεις RouterOS. Το profile είναι Phase 1, το proposal είναι Phase 2, το peer+identity κουβαλάνε το PSK, και η policy είναι ο καθρέφτης του ACL interesting-traffic της Cisco. Οι τιμές είναι copy-paste πανομοιότυπες με την έδρα.

MikroTik RouterOS v7 (Υποκαταστημα · 198.51.100.2)
# --- Phase 1 profile: ΠΡΕΠΕΙ να ταιριάζει ακριβώς με το PROP-MT της Cisco ---
/ip ipsec profile
add name=PROF-CISCO enc-algorithm=aes-256 hash-algorithm=sha256 \
    dh-group=modp2048 lifetime=8h          # modp2048 == Cisco group 14

# --- Peer: το public IP της Εδρας, IKEv2, χρησιμοποιώντας εκείνο το profile ---
/ip ipsec peer
add name=HQ address=203.0.113.1/32 profile=PROF-CISCO exchange-mode=ike2

# --- Identity: το pre-shared key, χαρακτήρα-προς-χαρακτήρα πανομοιότυπο με Cisco ---
/ip ipsec identity
add peer=HQ auth-method=pre-shared-key secret="S3cr3t-Cross-Vendor!"

# --- Phase 2 proposal: ΠΡΕΠΕΙ να ταιριάζει με το TS-MT + PFS group14 της Cisco ---
/ip ipsec proposal
add name=PROP-CISCO enc-algorithms=aes-256-cbc auth-algorithms=sha256 \
    pfs-group=modp2048 lifetime=1h

# --- Policy: καθρέφτης του ACL της Cisco (LAN Υποκαταστηματος -> LAN Εδρας) ---
/ip ipsec policy
add peer=HQ tunnel=yes proposal=PROP-CISCO \
    src-address=10.2.0.0/16 dst-address=10.1.0.0/16
⚠ Παγιδα — modp2048 = DH Group 14, και Πες' το Δυο Φορες

Το MikroTik ονομάζει τις ομάδες Diffie-Hellman κατά μήκος bit (modp2048), η Cisco κατά αριθμό (group 14) — είναι η ίδια ομάδα, αλλά πρέπει να τη μεταφράσεις. Και υπάρχουν δύο ρυθμίσεις DH: το dh-group του profile (Phase 1) και το pfs-group του proposal (Phase 2 PFS). Το set pfs group14 της Cisco στο crypto map βάζει μόνο το Phase-2 — αν βάλεις PFS στον έναν vendor και όχι στον άλλο, το Phase 2 αποτυγχάνει αφού έχει πετύχει το Phase 1, που φαίνεται ακατανόητο. Ταίριασε και τα δύο, ή απενεργοποίησε PFS και στα δύο.

03

Το Mismatch Που Χαλαει το Απογευμα

Το Phase 1 είναι READY, και οι δύο πλευρές δείχνουν τον peer συνδεδεμένο, και ούτε ένα πακέτο δεν περνάει. Εννιά στις δέκα φορές είναι ένα από αυτά τα τρία — και κανένα τους δεν εμφανίζεται ως προφανές σφάλμα.

A · Route-based vs policy-based

Αν έχτισες την πλευρά Cisco ως VTI (από το post site-to-site) αλλά το MikroTik ως policy, οι δύο διαφωνούν για το πώς μπαίνει η κίνηση στο tunnel. Το VTI της Cisco θέλει να κάνει route· η policy του MikroTik θέλει selectors src/dst. Κράτα και τα δύο policy-based (όπως παραπάνω), ή και τα δύο route-based (MikroTik: ένα interface IPIP/GRE με μια IPsec policy σε tunnel-mode δεμένη πάνω του). Μην τα ανακατεύεις.

B · Τα traffic selectors πρεπει να ειναι ακριβεις καθρεφτες

Το ACL της Cisco λέει 10.1.0.0/16 → 10.2.0.0/16· η policy του MikroTik πρέπει να λέει src 10.2.0.0/16 → dst 10.1.0.0/16 — ο ακριβής καθρέφτης, ίδιες μάσκες. Ένα /24 στη μία πλευρά και /16 στην άλλη είναι mismatch proposal και το Phase 2 αρνείται. Η Cisco είναι πιο αυστηρή από τους περισσότερους στο ότι τα selectors πρέπει να ταιριάζουν μέχρι το bit.

C · Το NAT τρωει το tunnel και στις δυο ακρες

Κάθε router ήδη κάνει masquerade το LAN του προς το internet, και θα κάνει ευχαρίστως NAT και την κίνηση προς το VPN — αλλοιώνοντάς τη πριν την κρυπτογράφηση. Πρέπει να εξαιρέσεις την κίνηση site-to-site και στα δύο boxes.

NAT exemption — και στις δυο ακρες
# CISCO: deny (εξαίρεσε) την κίνηση VPN ΠΑΝΩ από το permit, στο ACL NAT
R1(config)# ip access-list extended NAT-LIST
R1(config-ext-nacl)# deny   ip 10.1.0.0 0.0.255.255 10.2.0.0 0.0.255.255
R1(config-ext-nacl)# permit ip 10.1.0.0 0.0.255.255 any

# MIKROTIK: ένας κανόνας accept ΠΑΝΩ από το masquerade για το ίδιο ζευγάρι
/ip firewall nat
add chain=srcnat action=accept place-before=0 \
    src-address=10.2.0.0/16 dst-address=10.1.0.0/16
add chain=srcnat action=masquerade out-interface=ether1   # WAN
⚠ Παγιδα — Σειρα & Μπαγιατικες Μεταφρασεις, Ιδιο με το Native Build

Και στους δύο vendors η εξαίρεση πρέπει να κάθεται πάνω από το masquerade/permit — κερδίζει το πρώτο match. Και αν το tunnel ήταν up και έκανε NAT πριν το διορθώσεις, καθάρισε τη μπαγιάτικη κατάσταση αλλιώς θα ορκίζεσαι ότι είναι ακόμα χαλασμένο: Cisco clear ip nat translation *, MikroTik τις συνδέσεις src-nat στο /ip firewall connection. Αυτή είναι η ίδια παγίδα με το build Cisco-προς-Cisco — απλώς εδώ πρέπει να λυθεί δύο φορές.

04

Επαληθευσε Και απο τις Δυο Καρεκλες Ασφαλες να το Τρεξεις

Επιβεβαίωσε Phase 1, μετά Phase 2 με μετρητές που ανεβαίνουν, από την οπτική κάθε vendor. Η αστοχία είναι πάντα σε ένα αναγνωρίσιμο επίπεδο — έλεγξέ τα με τη σειρά.

Cisco (Εδρα) — το περπατημα υγειας
R1# show crypto ikev2 sa            # Phase 1 -> Status READY
R1# show crypto ipsec sa | inc pkts|ident  # encaps/decaps ανεβαίνουν και τα δύο
R1# ping 10.2.0.1 source 10.1.0.1   # με source το LAN, όχι το WAN IP
MikroTik (Υποκαταστημα) — το ιδιο, λεξεις RouterOS
/ip ipsec active-peers print       # state=established, uptime ανεβαίνει
/ip ipsec policy print stats       # ph2-state=established, in/out bytes > 0
/ping 10.1.0.1 src-address=10.2.0.1
# το installed-sa δείχνει τα πραγματικά keys/SPIs αν χρειαστείς να πας βαθύτερα:
/ip ipsec installed-sa print
ΣυμπτωμαΠου να κοιταξεις
Κανένα Phase 1 / δεν έχει γίνει establishedMismatch profile (enc/hash/DH) ή typo στο PSK. MikroTik: /log print where topics~"ipsec".
Phase 1 up, κανένα Phase 2Mismatch proposal/PFS, ή τα selectors δεν είναι ακριβείς καθρέφτες (§03A/B).
Phase 2 up, το encaps ανεβαίνει, το decaps 0Το NAT/route επιστροφής της άλλης πλευράς — ο άλλος router αλλοιώνει ή ρίχνει.
SAs up, μηδέν πακέταΤο NAT τρώει την κίνηση (§03C) ή δεν υπάρχει route/policy που να στέλνει κίνηση LAN μέσα.
💡 Pro Tip — Οταν Ελεγχεις και τις Δυο Ακρες, Τυποποιησε

Τα cross-vendor tunnels είναι απόλυτα σταθερά μόλις ταιριάξουν, αλλά κάθε παράμετρος είναι μια ευκαιρία για τα δύο configs να αποκλίνουν με τον καιρό. Διάλεξε ένα crypto profile — AES-256 / SHA-256 / DH-14 / PFS-14 / IKEv2 — και ξαναχρησιμοποίησέ το σε κάθε tunnel στο estate ανεξαρτήτως vendor. Τεκμηρίωσε τα ζευγάρια. Όταν ένα tunnel υποκαταστήματος πέφτει στις 2 το πρωί, «όλα χρησιμοποιούν τους ίδιους αριθμούς» είναι η διαφορά ανάμεσα σε μια διόρθωση πέντε λεπτών και ένα απόγευμα diffing δύο διαλέκτων.

Συμπερασματα

  1. Το IPsec είναι πρότυπο — το tunnel χτίζεται ανεξαρτήτως vendor. Η δουλειά είναι να μεταφράσεις τη μια διάλεκτο στην άλλη και να ταιριάξεις κάθε αριθμό.
  2. Κράτα το policy-based και στις δύο άκρες όταν εμπλέκεται MikroTik — είναι το λιγότερο απρόσμενο στιλ και αποφεύγει εντελώς το mismatch route-based-vs-policy-based.
  3. Μάθε τις τρεις μεταφράσεις: profile=Phase 1, proposal=Phase 2, modp2048=group 14. Πιάσ' τα αυτά και τα υπόλοιπα είναι να γεμίζεις έναν πίνακα.
  4. Το PFS είναι δύο ρυθμίσεις, όχι μία. Το DH του Phase-1 και το PFS του Phase-2 πρέπει να ταιριάζουν και τα δύο — mismatch στο PFS ρίχνει το Phase 2 αφού πετύχει το Phase 1, που διαβάζεται σαν φάντασμα.
  5. Τα selectors πρέπει να είναι ακριβείς καθρέφτες — ίδια subnets, ίδιες μάσκες, αντεστραμμένα. Η Cisco το επιβάλλει μέχρι το bit.
  6. Εξαίρεσε την κίνηση VPN από το NAT και στους δύο routers, πάνω από το masquerade, και καθάρισε μπαγιάτικες μεταφράσεις μετά τη διόρθωση — η πιο συχνή αιτία «up αλλά καμία κίνηση», τώρα διπλασιασμένη.
  7. Τυποποίησε ένα crypto profile σε όλο το estate. Μεικτός vendor είναι εντάξει· μεικτές παράμετροι είναι ένα debugging session στις 2 το πρωί που περιμένει να συμβεί.

Μεικτα sites Cisco και MikroTik που πρεπει να μιλανε με ασφαλεια;

Cisco στην έδρα και MikroTik στα υποκαταστήματα δεν είναι συμβιβασμός, είναι συχνά η σωστή επιλογή στο κόστος. Σχεδιάζω και τεκμηριώνω cross-vendor VPN estates με ένα τυποποιημένο crypto profile σε όλες τις πλατφόρμες, καθαρό failover, και monitoring tunnel που δεν νοιάζεται ποιος vendor έφτιαξε το box.

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