Πίσω στο blog

English  ·  Ελληνικά

Cisco / Lab  ·  Σεναριο Lab  ·  Αυγουστος 2026

Cisco Lab
Εδρα + Υποκαταστηματα: GRE over IPsec

Το internet θα κουβαλήσει ευχαρίστως πακέτα ανάμεσα στα sites σου — απλώς αρνείται να ξέρει τίποτα για τα ιδιωτικά LAN σου. Αυτό το lab χτίζει την κλασική απάντηση: GRE tunnels που κάνουν τρεις routers να νομίζουν ότι μοιράζονται ένα καλώδιο, OSPF που τρέχει πάνω από αυτά τα tunnels σαν να ήταν φυσικά, και IPsec τυλιγμένο απ' έξω ώστε ο ISP να βλέπει μόνο θόρυβο ESP. Όλα δουλεύουν σε Packet Tracer.

Cisco IOS Packet Tracer Lab GRE IPsec OSPF Hub and Spoke

ISP core κάνει route μόνο τα δημόσια /30 — δεν έχει ακούσει ποτέ για 192.168.x.x HQ (2911) — hub LAN 192.168.10.0/24 · WAN 198.51.100.2 BR1 (2911) — spoke LAN 192.168.20.0/24 · WAN 203.0.113.2 BR2 (2911) — spoke LAN 192.168.30.0/24 · WAN 192.0.2.2 Tunnel10 — 172.16.0.0/30 Tunnel20 — 172.16.0.4/30 διακεκομμένο = GRE μέσα σε IPsec: ιδιωτικά subnets περνούν μέσα από ένα cloud που δεν μπορεί να τα κάνει route

Το Part 13 έχτισε ένα μοντέρνο tunnel IKEv2 ανάμεσα σε δύο γραφεία. Αυτό το lab κλιμακώνει την ιδέα σε ένα πραγματικό hub-and-spoke WAN — και προσθέτει το συστατικό που αλλάζει τα πάντα: ένα routing protocol πάνω από τα tunnels. Το plain IPsec κουβαλά πακέτα ανάμεσα σε subnets που απαριθμείς με το χέρι· το GRE σου δίνει ένα εικονικό interface, και ό,τι έχει interface μπορεί να τρέξει OSPF. Πρόσθεσε ένα subnet υποκαταστήματος και κανείς δεν πειράζει crypto ACLs — το OSPF απλώς το μαθαίνει.

Το μυστικό όπλο του lab είναι το ISP cloud στη μέση: τρεις routers που ξέρουν μόνο τα δημόσια /30. Το πρώτο σου end-to-end ping πρέπει να αποτύχει — το internet δεν κάνει route RFC1918 — και αυτή η αποτυχία είναι το μάθημα πάνω στο οποίο χτίζεται όλο το υπόλοιπο. Μετά το GRE περνά λαθραία την ιδιωτική κίνηση μέσα σε δημόσιους φακέλους, και το IPsec κάνει τους φακέλους αδιαφανείς. Κάθε εντολή εδώ είναι συμβατή με Packet Tracer 8.x (crypto maps, όχι τα VTI profiles του part 13 — θα το επισημάνουμε).

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

01

Χτισε Πρωτα το Εχθρικο Internet

Ο router(s) ISP παίρνει τα δημόσια /30 και τίποτα άλλο — ποτέ κανένα route προς οποιοδήποτε δίκτυο 192.168. Απόδειξε ότι το πρόβλημα υπάρχει πριν το λύσεις.

ISP + WANs sites — μονο δημοσιες σωληνωσεις
# Router ISP — τρία πόδια, τρία δημόσια /30. Κανένα static. Κανένα OSPF. Τίποτα.
ISP(config)# interface GigabitEthernet0/0
ISP(config-if)# ip address 198.51.100.1 255.255.255.252   ← προς HQ
ISP(config)# interface GigabitEthernet0/1
ISP(config-if)# ip address 203.0.113.1 255.255.255.252    ← προς BR1
ISP(config)# interface GigabitEthernet0/2
ISP(config-if)# ip address 192.0.2.1 255.255.255.252      ← προς BR2

# Κάθε site: διεύθυνση WAN + ένα default προς τον ISP (όπως κάθε router πελάτη)
HQ(config)# interface GigabitEthernet0/0
HQ(config-if)# ip address 198.51.100.2 255.255.255.252
HQ(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1

# Η στιγμή της αλήθειας — το δημόσιο δουλεύει, το ιδιωτικό δεν μπορεί:
HQ# ping 203.0.113.2            ← το δημόσιο WAN του BR1
!!!!!  Success rate is 100 percent
HQ# ping 192.168.20.1           ← το LAN του BR1
.....  Success rate is 0 percent   ← σωστά! Ο ISP δεν έχει route
                                        και θα έριχνε RFC1918 έτσι κι αλλιώς
💡 Γιατι Μπαινομε στον Κοπο να Προσομοιωσουμε τον ISP

Τα περισσότερα labs VPN κλέβουν με ένα crossover καλώδιο ανάμεσα στους δύο routers, και οι μαθητές φεύγουν χωρίς να έχουν δει ποτέ τον πραγματικό περιορισμό: το underlay κάνει route μόνο ό,τι ξέρει. Με ένα πραγματικό cloud στη μέση, κάθε μετέπειτα αστοχία διαγιγνώσκεται σωστά — «είναι πρόβλημα underlay (μπορούν τα άκρα του tunnel να επικοινωνήσουν μεταξύ τους;) ή πρόβλημα overlay (είναι χαλασμένο το tunnel/OSPF;)». Αυτή η ερώτηση δύο επιπέδων είναι όλο το μοντέλο troubleshooting για VPN, SD-WAN, και κάθε τεχνολογία overlay που θα αγγίξεις ποτέ.

02

GRE — Ενα Εικονικο Καλωδιο ανα Υποκαταστημα

Ένα tunnel interface έχει source (το δικό μου public IP), destination (το δικό σου public IP), και τη δική του ιδιωτική διεύθυνση. Πακέτα που μπαίνουν σε αυτό τυλίγονται σε έναν δημόσιο φάκελο που ο ISP μπορεί να κάνει route.

HQ + BR1 — Tunnel10 (το Tunnel20 προς BR2 ειναι η ιδια συνταγη)
HQ(config)# interface Tunnel10
HQ(config-if)# ip address 172.16.0.1 255.255.255.252
HQ(config-if)# tunnel source GigabitEthernet0/0
HQ(config-if)# tunnel destination 203.0.113.2
HQ(config-if)# ip mtu 1400
HQ(config-if)# ip tcp adjust-mss 1360

BR1(config)# interface Tunnel10
BR1(config-if)# ip address 172.16.0.2 255.255.255.252
BR1(config-if)# tunnel source GigabitEthernet0/0
BR1(config-if)# tunnel destination 198.51.100.2
BR1(config-if)# ip mtu 1400
BR1(config-if)# ip tcp adjust-mss 1360

# Το εικονικό καλώδιο είναι up — κάνε ping μέσα από αυτό:
HQ# ping 172.16.0.2
!!!!!  Success rate is 100 percent
# Ο ISP κουβάλησε αυτό το ping — ως unicast ανάμεσα σε δύο ΔΗΜΟΣΙΕΣ διευθύνσεις,
# με το ιδιωτικό πακέτο κρυμμένο μέσα. Αυτό είναι όλο το κόλπο του GRE.
⚠ Παγιδα — Οι Γραμμες MTU Δεν Ειναι Προαιρετικες

Το GRE κλέβει 24 bytes και το IPsec θα πάρει ~58 ακόμα· ένα πακέτο πλήρους μεγέθους 1500 bytes δεν χωράει πια και είτε κατακερματίζεται είτε — με DF set, που το βάζει κάθε σύγχρονο TCP — ρίχνεται σιωπηλά. Το κλασικό σύμπτωμα: το ping δουλεύει, το SSH δουλεύει, αλλά οι σελίδες HTTPS κρεμάνε και τα αντίγραφα αρχείων κολλάνε στο 0%. Τα μικρά πακέτα χωράνε, τα πλήρη segments όχι. Το ip mtu 1400 + ip tcp adjust-mss 1360 σε κάθε tunnel interface, και στα δύο άκρα αποτρέπει όλη αυτή την κατηγορία συμπτωμάτων. Όταν κάποιο overlay «δουλεύει αλλά τα μεγάλα πράγματα κρεμάνε», το MTU είναι ένοχο μέχρι αποδείξεως του εναντίου.

03

OSPF πανω απο τα Tunnels

Να το κέρδος από την επιλογή του GRE: τα tunnels είναι interfaces, οπότε το OSPF τρέχει πάνω τους όπως πάνω σε οποιοδήποτε καλώδιο. Τα υποκαταστήματα μαθαίνουν τα subnets το ένα του άλλου χωρίς καμία απαρίθμηση.

Και τα τρια sites — μια περιοχη OSPF πανω απο το overlay
HQ(config)# router ospf 1
HQ(config-router)# router-id 10.10.10.10
HQ(config-router)# passive-interface GigabitEthernet0/1       ← το LAN
HQ(config-router)# network 172.16.0.0 0.0.0.7 area 0          ← και τα δύο tunnels
HQ(config-router)# network 192.168.10.0 0.0.0.255 area 0

BR1(config)# router ospf 1
BR1(config-router)# router-id 20.20.20.20
BR1(config-router)# passive-interface GigabitEthernet0/1
BR1(config-router)# network 172.16.0.0 0.0.0.3 area 0
BR1(config-router)# network 192.168.20.0 0.0.0.255 area 0

# ΠΟΤΕ μη βάλεις τα /30 του WAN ή το default route μέσα στο OSPF εδώ —
# το underlay πρέπει να παραμείνει αδαές για το overlay (δες την παγίδα παρακάτω).

BR1# show ip route ospf
O    192.168.10.0/24 [110/1001] via 172.16.0.1, 00:01:12, Tunnel10
O    192.168.30.0/24 [110/2001] via 172.16.0.1, 00:01:02, Tunnel10  ← LAN του BR2,
                                                                       μέσω του hub
BR1# ping 192.168.30.1 source 192.168.20.1
!!!!!   ← branch-to-branch, hairpinned μέσω HQ. Όλο το WAN δουλεύει.
⚠ Παγιδα — Το Recursive Routing Σκοτωνει το Tunnel

Αν το OSPF μάθει ποτέ ένα route προς τον ίδιο τον προορισμό του tunnel (το δημόσιο 203.0.113.2 του BR1) μέσα από το ίδιο το tunnel, ο router προσπαθεί να παραδώσει τους φακέλους του tunnel μέσα στο tunnel — και το IOS ρίχνει το interface με %TUN-5-RECURDOWN: Tunnel10 temporarily disabled due to recursive routing. Το tunnel φλαπάρει για πάντα: down → το route αποσύρεται → up → το route ξαναμαθαίνεται → down. Ο κανόνας που το αποτρέπει: τα άκρα του tunnel φτάνονται μόνο μέσω του underlay (το static default), και τα prefixes του underlay δεν μπαίνουν ποτέ στο routing protocol του overlay. Αν δεις ποτέ RECURDOWN, διαφήμισες κάτι που δεν έπρεπε.

04

Τυλιξ' το σε IPsec

Το GRE είναι ένας διάφανος φάκελος — ο ISP μπορεί να διαβάσει κάθε πακέτο LAN μέσα του. Ένα IPsec transform σε transport mode κρυπτογραφεί ακριβώς το stream GRE ανάμεσα σε κάθε ζεύγος δημόσιων άκρων.

HQ + BR1 — ISAKMP, transform set, crypto map (συμβατο με PT)
# Phase 1 — πανομοιότυπη policy και στα δύο άκρα
HQ(config)# crypto isakmp policy 10
HQ(config-isakmp)# encryption aes 256
HQ(config-isakmp)# hash sha
HQ(config-isakmp)# authentication pre-share
HQ(config-isakmp)# group 5
HQ(config)# crypto isakmp key N0ctis-Lab-Key address 203.0.113.2

# Phase 2 — transport mode: προστατεύουμε μόνο το GRE router-to-router
HQ(config)# crypto ipsec transform-set TS-GRE esp-aes 256 esp-sha-hmac
HQ(cfg-crypto-trans)# mode transport

# Ενδιαφέρουσα κίνηση = το ίδιο το stream GRE (protocol 47)
HQ(config)# ip access-list extended VPN-BR1
HQ(config-ext-nacl)# permit gre host 198.51.100.2 host 203.0.113.2

HQ(config)# crypto map CMAP 10 ipsec-isakmp
HQ(config-crypto-map)# set peer 203.0.113.2
HQ(config-crypto-map)# set transform-set TS-GRE
HQ(config-crypto-map)# match address VPN-BR1
# (map entry 20 = το ίδιο για BR2, μετά εφάρμοσέ το μία φορά:)
HQ(config)# interface GigabitEthernet0/0
HQ(config-if)# crypto map CMAP

# Καθρέφτισε τα πάντα στο BR1 (peer/ACL αντεστραμμένα), μετά επαλήθευσε ότι κινούνται οι μετρητές:
HQ# show crypto ipsec sa | include pkts
  #pkts encaps: 214, #pkts encrypt: 214
  #pkts decaps: 209, #pkts decrypt: 209   ← OSPF hellos κρυπτογραφούνται, ζωντανά
💡 Το Πραγματικο IOS το Κανει σε Μια Γραμμη

Σε πραγματικό IOS/IOS-XE θα παρέκαμπτες εντελώς τα crypto maps: θα έχτιζες ένα crypto ipsec profile και θα έβαζες tunnel protection ipsec profile X κατευθείαν στο tunnel interface — η προσέγγιση του part-13, επεκταμένη ανά tunnel. Το Packet Tracer δεν υποστηρίζει tunnel protection, οπότε αυτό το lab χρησιμοποιεί το παλιότερο pattern crypto-map-που-ταιριάζει-GRE, που είναι επίσης ακριβώς αυτό που θα βρεις σε χιλιάδες routers παραγωγής που επιβιώνουν ακόμα. Το να μάθεις και τα δύο ιδιώματα σημαίνει ότι μπορείς να διαβάζεις παλιά configs και να γράφεις μοντέρνα. (Σε PT, θυμήσου ότι το 2911 χρειάζεται το security license: license boot module c2900 technology-package securityk9, accept, save, reload.)

05

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

Κάθε αστοχία σε ένα κρυπτογραφημένο overlay βρίσκεται σε ένα από τέσσερα επίπεδα: προσβασιμότητα underlay, crypto, tunnel, routing. Τέσταρέ τα με αυτή τη σειρά, πάντα.

ΕντοληΕπιπεδο που αποδεικνυει
ping <public IP peer>1 — Underlay: μπορούν καν τα άκρα να επικοινωνήσουν μεταξύ τους;
show crypto isakmp sa2 — Phase 1 up; Η κατάσταση πρέπει να είναι QM_IDLE / ACTIVE.
show crypto ipsec sa2 — Phase 2: οι μετρητές encaps/decaps πρέπει και οι δύο να ανεβαίνουν.
show interface Tunnel103 — Tunnel up/up; (up/down = source/destination απρόσιτο)
show ip ospf neighbor4 — Routing overlay: FULL σε κάθε tunnel.
show ip route ospf4 — Τα απομακρυσμένα LAN παρόντα, next-hop = διεύθυνση tunnel.

Η σειρά έχει σημασία επειδή κάθε επίπεδο εξαρτάται από το προηγούμενο: το OSPF δεν μπορεί να σχηματιστεί χωρίς το tunnel, το tunnel δεν κουβαλά τίποτα αν το crypto τρώει τα πακέτα, και το crypto δεν μπορεί να διαπραγματευτεί χωρίς προσβασιμότητα underlay. Όταν η κίνηση υποκαταστήματος πεθαίνει στις 3 το πρωί, ξεκίνα από το επίπεδο 1 και ανέβα — ποτέ μην ξεκινάς από το επίπεδο που υποψιάζεσαι.

Ασκηση αστοχιας

Ξεκίνα συνεχές ping BR1-LAN → BR2-LAN, μετά διάγραψε το καλώδιο HQ–ISP. Όλα πεθαίνουν — η ειλικρινής αδυναμία του hub-and-spoke, και τα δύο tunnels περνάνε μέσω HQ. Ξανασύνδεσε και δες τα επίπεδα να ξαναχτίζονται με σειρά εξάρτησης: το ISAKMP επαναδιαπραγματεύεται, τα tunnels επιστρέφουν σε up/up, το OSPF ξανα-FULL, τα pings συνεχίζουν — περίπου 40 δευτερόλεπτα σε PT, κυριαρχούμενα από το dead-interval του OSPF. Μετά κάνε την ερώτηση σχεδιασμού που διδάσκει αυτή η άσκηση: τι θα χρειαζόταν για να επιβιώσει το BR1→BR2 από μια αστοχία HQ; (Ένα tunnel BR1–BR2 — που γυρνά το hub-and-spoke σε τρίγωνο. Στον πραγματικό κόσμο σε κλίμακα: DMVPN ή SD-WAN, και τα δύο ακριβώς το pattern αυτού του lab με το χτίσιμο tunnel αυτοματοποιημένο.)

06

MikroTik ↔ Cisco — το Ιδιο Overlay

Το RouterOS χτίζει τον πανομοιότυπο σχεδιασμό — ένα μεικτό fleet συνεργάζεται μια χαρά, και εμείς τρέχουμε αρκετά.

Αυτο το lab (Cisco)MikroTik / RouterOS
interface Tunnel10 (GRE)/interface gre add remote-address=…
ip mtu 1400 + adjust-mssmtu= στο GRE interface + κανόνας mangle change-mss
OSPF πάνω από tunnels/routing ospf interface-template στα gre interfaces
crypto map + isakmp key/ip ipsec policy + peer + identity (ή ipsec-secret= κατευθείαν στο GRE interface — one-liner)
show crypto ipsec sa/ip ipsec installed-sa print (κοίτα τους μετρητές bytes)
DMVPN (η κλιμακωμένη έκδοση)Κανένα άμεσο αντίστοιχο — WireGuard mesh ή ZeroTier γεμίζουν το κενό

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

  1. Το underlay vs overlay ειναι το mental model. Ο ISP κάνει route δημόσιους φακέλους· το GRE βάζει ιδιωτικά πακέτα μέσα τους· το IPsec κάνει τους φακέλους αδιαφανείς. Κάθε VPN και SD-WAN είναι μια παραλλαγή αυτού.
  2. Το δώρο του GRE είναι το interface. Τα interfaces τρέχουν routing protocols — άρα νέα subnets διαδίδονται μέσω OSPF αντί για χειροκίνητα crypto ACLs σε κάθε site.
  3. Βάλε ip mtu 1400 και adjust-mss 1360 σε κάθε tunnel, και στα δύο άκρα — αλλιώς απόλαυσε το ticket «το ping δουλεύει, το HTTPS κρεμάει». Το MTU σε overlay είναι ένοχο μέχρι αποδείξεως του εναντίου.
  4. Ποτέ μην αφήσεις το overlay να μάθει το underlay. Τα άκρα του tunnel πρέπει να φτάνονται μόνο μέσω του φυσικού default route, αλλιώς το RECURDOWN φλαπάρει το tunnel για πάντα.
  5. Transport mode + ένα ACL που ταιριάζει GRE είναι το κλασικό ιδίωμα crypto-map (και το μόνο του PT)· το πραγματικό IOS προτιμά tunnel protection με ένα IPsec profile. Μάθε και τα δύο.
  6. Κάνε troubleshoot με σειρά επιπέδων — ping underlay, ISAKMP SA, μετρητές IPsec, κατάσταση tunnel, γείτονες OSPF. Το καθένα εξαρτάται από το προηγούμενο· ξεκίνα από το 1 ακόμα κι όταν υποψιάζεσαι το 4.
  7. Το hub-and-spoke αποτυγχανει με το hub — η άσκηση το αποδεικνύει. Tunnels spoke-to-spoke, DMVPN, ή SD-WAN είναι οι πιο ώριμες απαντήσεις.

Συνδεεις γραφεια, ξενοδοχεια, η μια αποθηκη με την εδρα;

Τα WAN GRE-over-IPsec αποτυγχάνουν σχεδόν πάντα με τους ίδιους δύο τρόπους: MTU που κανείς δεν μέτρησε σωστά, και failover που κανείς δεν τεστάρισε στην πράξη. Τα χτίζω σε Cisco και MikroTik με dynamic routing πάνω από τα tunnels, MTU σωστό από την αρχή, και failover αποδεδειγμένο τραβώντας ένα link, όχι υποτιθέμενο.

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