Πίσω στο blog

English  ·  Ελληνικά

Cisco / IOS  ·  VPN  ·  Ιουλιος 2026

Cisco IOS
DMVPN

Το site-to-site VPN δουλεύει μια χαρά για δύο γραφεία. Δοκίμασέ το για τριάντα κλάδους και έχεις χτίσει στο χέρι ένα πλήρες mesh από tunnels που κανείς δεν μπορεί να συντηρήσει. Το DMVPN είναι η απάντηση: ρύθμισε τον hub μία φορά, πρόσθεσε spokes χωρίς να τον αγγίξεις ποτέ, και άφησε τα spokes να χτίζουν απευθείας tunnels μεταξύ τους κατά παραγγελία. Αυτό είναι το κλιμακούμενο WAN, εξηγημένο χωρίς τη μυστικοπάθεια.

Cisco IOS DMVPN mGRE NHRP IPsec VPN

Το πρόβλημα που λύνει το DMVPN είναι συνδυαστικό. Τα κλασικά site-to-site tunnels είναι ένα-ανά-ζευγάρι· ένα πλήρες mesh N sites χρειάζεται N(N-1)/2 tunnels, και κάθε νέος κλάδος σημαίνει επεξεργασία κάθε υπάρχοντος router. Το DMVPN το συμπτύσσει σε ένα multipoint tunnel interface ανά router. Στέκεται σε τρία πόδια: mGRE (ένα μοναδικό interface GRE που φτάνει πολλά endpoints), NHRP (ένα μητρώο «επίλυσης next-hop» όπου τα spokes εγγράφονται στον hub και ψάχνουν το ένα το άλλο), και IPsec (ένα profile προστασίας tunnel που τα κρυπτογραφεί όλα).

Πρόσθεσε ένα spoke και εγγράφεται στον hub — ο hub χρειάζεται μηδέν αλλαγές. Και με το Phase 3, όταν μιλάνε δύο spokes, το NHRP επιλύει ένα απευθείας spoke-προς-spoke tunnel ώστε η κίνησή τους να μη κάνει hairpin μέσα από τον hub. Είναι το φυσικό επόμενο βήμα μετά το VPN δύο sites, και το αντίστοιχό του σε RouterOS — το RouterOS δεν έχει DMVPN — καλύπτεται στο MikroTik hub-and-spoke.

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

01

Ο Hub — Ρυθμισε Μια Φορα, Για Παντα

Ένα multipoint GRE tunnel, ένα δίκτυο NHRP για να εγγράφονται τα spokes, και προστασία tunnel. Ο hub δέχεται δυναμικές εγγραφές, οπότε δεν τον επεξεργάζεσαι ποτέ ξανά καθώς έρχονται και φεύγουν κλάδοι.

IOS (HUB) — mGRE + NHRP + Tunnel0 προστατευμενο με IPsec
HUB(config)# interface Tunnel0
HUB(config-if)# ip address 172.16.0.1 255.255.255.0   # το subnet DMVPN
HUB(config-if)# tunnel source GigabitEthernet0/0       # το δημόσιο interface του
HUB(config-if)# tunnel mode gre multipoint            # mGRE — πολλά endpoints
HUB(config-if)# ip nhrp network-id 1
HUB(config-if)# ip nhrp map multicast dynamic         # άσε τα spokes να εγγραφούν
HUB(config-if)# ip nhrp redirect                     # Phase 3: ενεργοποίησε spoke-to-spoke
HUB(config-if)# tunnel protection ipsec profile DMVPN-PROF
# Δρομολόγηση πάνω από το tunnel (OSPF εδώ). Σε hub, ο τύπος δικτύου έχει σημασία:
HUB(config-if)# ip ospf network broadcast

02

Ενα Spoke — Δειξε στον Hub, Τελος

Κάθε spoke παίρνει σχεδόν πανομοιότυπο block, συν ένα static NHRP map προς τον hub (τον «next-hop server» του). Αντίγραψέ το σε κάθε κλάδο, αλλάζοντας μόνο το IP του tunnel.

IOS (SPOKE) — εγγραψου στον hub ως NHS
SPOKE(config)# interface Tunnel0
SPOKE(config-if)# ip address 172.16.0.11 255.255.255.0
SPOKE(config-if)# tunnel source GigabitEthernet0/0
SPOKE(config-if)# tunnel mode gre multipoint
SPOKE(config-if)# ip nhrp network-id 1
# Το IP tunnel του hub + πραγματικό δημόσιο IP, και εγγράψου σε αυτό:
SPOKE(config-if)# ip nhrp nhs 172.16.0.1 nbma 203.0.113.1 multicast
SPOKE(config-if)# ip nhrp shortcut                    # Phase 3: δέξου redirects
SPOKE(config-if)# tunnel protection ipsec profile DMVPN-PROF
⚠ Παγιδα — NBMA vs Διευθυνση Tunnel, και η Παγιδα Δρομολογησης

Το DMVPN έχει δύο επίπεδα διευθύνσεων και το να τα μπερδέψεις είναι το κλασικό λάθος. Η διεύθυνση NBMA είναι το πραγματικό δημόσιο IP στο οποίο στέλνεται το πακέτο· η διεύθυνση tunnel (172.16.x) είναι το overlay πάνω στο οποίο τρέχει το πρωτόκολλο δρομολόγησης. Όλη η δουλειά του NHRP είναι να αντιστοιχίζει tunnel→NBMA. Η παγίδα δρομολόγησης: στον hub, μην αφήσεις το OSPF να κάνει summarise τα routes των spoke ή να αλλάξει next-hops — τα spokes χρειάζονται το IP tunnel του άλλου spoke ως next-hop για να δουλέψουν τα shortcuts του Phase-3. Σε σχέδια point-to-multipoint, πρόσεξε τους τύπους δικτύου OSPF (broadcast στον hub, και ταιριαστό στα spokes) αλλιώς κάνουν flap οι adjacencies.

03

Phase 3 — τα Spokes Μιλανε Απευθειας

By default η κίνηση spoke-προς-spoke ανεβαίνει στον hub και κατεβαίνει ξανά — ένα hairpin. Το Phase 3 (redirect στον hub, shortcut στα spokes) κάνει το NHRP να επιλύει ένα προσωρινό απευθείας tunnel ώστε ο κλάδος A να φτάνει τον κλάδο B χωρίς τον hub στη διαδρομή.

IOS — παρακολουθησε ενα spoke-to-spoke tunnel να σχηματιζεται κατα παραγγελια
# Πριν από κάθε κίνηση: υπάρχει μόνο το tunnel του hub.
SPOKE-A# show dmvpn
 1 172.16.0.1  203.0.113.1  UP  static          # μόνο hub

# Κάνε ping το LAN του spoke B μία φορά -> ο hub κάνει redirect -> το NHRP επιλύει το B απευθείας:
SPOKE-A# ping 10.20.0.1 source 10.10.0.1
SPOKE-A# show dmvpn
 1 172.16.0.1   203.0.113.1   UP  static
 1 172.16.0.12  198.51.100.2  UP  dynamic       # απευθείας στο spoke B!

04

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

Τρία επίπεδα να επιβεβαιώσεις, με τη σειρά: εγγραφές NHRP, τα SA IPsec που τις προστατεύουν, και τις adjacencies δρομολόγησης πάνω από το tunnel.

IOS — ο ελεγχος υγειας του DMVPN
HUB# show ip nhrp                 # έχουν εγγραφεί όλα τα spokes; maps tunnel->NBMA
HUB# show dmvpn detail            # καταστάσεις peer, crypto, uptime
HUB# show crypto ipsec sa | inc peer|pkts  # SA up, encaps ανεβαίνουν
HUB# show ip ospf neighbor        # όλα τα spokes FULL στο tunnel
ΣυμπτωμαΠού να κοιτάξεις
Το spoke δεν εγγράφεται ποτέΛάθος NHS/NBMA, ή ασυμφωνία network-id. debug nhrp.
Εγγράφηκε αλλά καμία κρυπτογράφησηΑσυμφωνία profile/proposal IPsec — ίδιο με το build δύο sites.
Ο hub δουλεύει, καθόλου spoke-to-spokeΛείπει redirect (hub) / shortcut (spoke), ή next-hop ξαναγραμμένο από τη δρομολόγηση.
Η adjacency OSPF κάνει flapΑσύμφωνοι τύποι δικτύου πάνω από το tunnel mGRE.

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

  1. Το DMVPN σκοτώνει το πρόβλημα του πλήρους mesh — ένα multipoint tunnel ανά router αντί για N² tunnels site-to-site.
  2. Τρία πόδια: mGRE (πολλά endpoints, ένα interface), NHRP (εγγραφή + επίλυση), IPsec (προστασία tunnel).
  3. Ο hub ρυθμίζεται μία φορά — τα spokes εγγράφονται δυναμικά, οπότε το να προσθέσεις κλάδο δεν αγγίζει ποτέ τον hub.
  4. Κράτα ξεκάθαρες τις διευθύνσεις NBMA (πραγματικό δημόσιο IP) και tunnel (overlay) — το NHRP τις αντιστοιχίζει· το να τις μπερδέψεις είναι το κορυφαίο λάθος.
  5. Το Phase 3 (redirect + shortcut) δίνει απευθείας tunnels spoke-to-spoke κατά παραγγελία, ώστε η κίνηση κλάδου να μην κάνει hairpin μέσα από τον hub.
  6. Μην αφήνεις τη δρομολόγηση να ξαναγράφει τα next-hops των spoke ή να τα κάνει summarise, αλλιώς σπάνε τα shortcuts του Phase-3.

Ενα δικτυο κλαδων που μεγαλωνει, ραμμενο με μεμονωμενα VPN tunnels;

Το να προσθέσεις ένα νέο site σε ένα WAN δεν πρέπει να σημαίνει να αγγίξεις το config του hub. Σχεδιάζω DMVPN και hub-and-spoke overlays σε Cisco και MikroTik όπου ένα νέο spoke είναι σχεδόν copy-paste, τα spokes μπορούν να μιλάνε απευθείας μεταξύ τους, και η δρομολόγηση προσαρμόζεται μόνη της.

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