Πίσω στο blog

English  ·  Ελληνικά

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

Cisco IOS
Route Redistribution & BFD

Τα πραγματικά δίκτυα τρέχουν περισσότερα από ένα πρωτόκολλο δρομολόγησης — OSPF εσωτερικά, BGP προς τον ISP, μερικά static routes, μια legacy γωνιά EIGRP. Το redistribution είναι η κόλλα που τους αφήνει να μοιράζονται routes, και είναι το κλασικό footgun που προκαλεί βρόχους δρομολόγησης. Συνδύασέ το με BFD — ανίχνευση αστοχίας σε χιλιοστά του δευτερολέπτου αντί για δευτερόλεπτα — και έχεις έναν γρήγορο, σταθερό multi-protocol πυρήνα.

Cisco IOS Redistribution BFD Route-Map Routing

Δύο θέματα που ανήκουν μαζί σε κάθε ώριμο σχεδιασμό δρομολόγησης. Το Redistribution εισάγει routes από ένα πρωτόκολλο σε ένα άλλο — OSPF σε BGP, static σε OSPF, EIGRP σε OSPF σε ένα όριο μετάβασης. Είναι απαραίτητο και επικίνδυνο: αν γίνει απρόσεκτα, ένα route που ανακατευθύνεται έξω και ξαναμπαίνει δημιουργεί βρόχο δρομολόγησης ή μαύρη τρύπα, επειδή το πρωτόκολλο που το δέχεται χάνει το πλαίσιο αποτροπής βρόχων του πρωτότυπου. Η διόρθωση είναι πειθαρχημένο tagging και filtering.

Το BFD (Bidirectional Forwarding Detection) είναι το άλλο μισό: ένα ελαφρύ πρωτόκολλο hello που ανιχνεύει έναν νεκρό γείτονα σε χιλιοστά του δευτερολέπτου, ανεξάρτητα από τους δικούς (αργούς) timers κάθε πρωτοκόλλου δρομολόγησης. Το βιδώνεις πάνω σε OSPF/BGP/EIGRP/static ώστε το failover να συμβαίνει σε ένα ανοιγόκλεισμα ματιού αντί για τα default δευτερόλεπτα του dead-timer. Μαζί κάνουν ένα multi-protocol δίκτυο σωστό και γρήγορο ταυτόχρονα — και οι έννοιες αντιστοιχίζονται καθαρά στο RouterOS.

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

01

Κανε Redistribute — Με μια Seed Metric

Η εισαγωγή routes χρειάζεται μια αρχική μετρική που καταλαβαίνει το πρωτόκολλο-προορισμός, και έλεγχο του τύπου route. Ποτέ μην κάνεις redistribute τυφλά — πάντα μέσα από ένα route-map.

IOS — OSPF σε BGP, και static σε OSPF, με ελεγχο
# Static routes σε OSPF ως external type-1 (η μετρική αυξάνει κατά μήκος της διαδρομής):
R1(config)# router ospf 1
R1(config-router)# redistribute static subnets metric 50 metric-type 1 route-map STATIC-IN

# OSPF σε BGP (διαφήμισε εσωτερικά δίκτυα στο edge του ISP):
R1(config)# router bgp 65001
R1(config-router-af)# redistribute ospf 1 route-map OSPF-TO-BGP
⚠ Παγιδα — Το subnets, και τα Metrics E2 Δεν Προστιθενται

Δύο παγίδες. Το redistribute σε OSPF χωρίς τη λέξη-κλειδί subnets εισάγει σιωπηλά μόνο classful δίκτυα — τα /24 και /30 σου απλώς δεν εμφανίζονται, και θα ορκίζεσαι ότι η εντολή δεν δούλεψε. Πρόσθεσε πάντα subnets. Δεύτερο: τα external routes του OSPF είναι by default type-2 (E2), του οποίου η μετρική είναι μόνο το seed cost και δεν αυξάνει καθώς ταξιδεύει το route — οπότε δύο σημεία εξόδου μπορεί να φαίνονται ίσα και παίρνεις μη βέλτιστη δρομολόγηση ή flapping. Χρησιμοποίησε type-1 (E1) όταν θέλεις το εσωτερικό κόστος να προστίθεται στην πορεία, που συνήθως είναι αυτό που πραγματικά εννοείς.

02

Σημανε με Tag για ν' Αποτρεψεις Βροχους — το Μη Διαπραγματευσιμο Κομματι

Με redistribution σε δύο ή περισσότερα σημεία ανάμεσα στο ίδιο ζευγάρι πρωτοκόλλων, ένα route μπορεί να διαρρεύσει από το ένα και να ξαναμπεί από το άλλο, κάνοντας βρόχο. Σήμανε με tag στην έξοδο, απόρριψε το tag στην επιστροφή.

IOS — tag-and-deny για να σπασεις βροχους αμοιβαιου redistribution
# Στο redistribution OSPF->BGP, σφράγισε ένα tag που αναγνωρίζει «αυτό ήρθε από OSPF».
R1(config)# route-map OSPF-TO-BGP permit 10
R1(config-route-map)# set tag 111

# Στο ΑΛΛΟ σημείο redistribution (BGP->OSPF), ΑΡΝΗΣΟΥ οτιδήποτε με tag 111
# ώστε ένα route OSPF να μην μπορεί να κάνει βρόχο πίσω στο OSPF μέσω BGP.
R1(config)# route-map BGP-TO-OSPF deny 10
R1(config-route-map)# match tag 111
R1(config)# route-map BGP-TO-OSPF permit 20   # όλα τα υπόλοιπα επιτρέπονται
💡 Προσεξε και το Administrative Distance

Όταν το ίδιο prefix μαθαίνεται από δύο πρωτόκολλα, ο router εγκαθιστά αυτό με το χαμηλότερο administrative distance (eBGP 20, EIGRP 90, OSPF 110, RIP 120…) ανεξάρτητα από την πραγματική μετρική — που κατά το redistribution μπορεί να τον κάνει να προτιμήσει ένα redistributed αντίγραφο έναντι του native route και να δημιουργήσει έναν ύπουλο βρόχο ή μη βέλτιστη διαδρομή. Σε αμοιβαίο redistribution, έλεγξε λογική με show ip route <prefix> σε κάθε όριο και, όπου χρειάζεται, ρύθμισε το AD (distance) ώστε το native route να κερδίζει πάντα. Το tagging συν έλεγχος AD είναι η διπλή ασφάλεια που κρατάει το redistribution ασφαλές.

03

BFD — Ανιχνευση Αστοχιας σε Χιλιοστα του Δευτερολεπτου

Τα πρωτόκολλα δρομολόγησης ανιχνεύουν έναν νεκρό γείτονα με τους δικούς τους timers — το default dead interval του OSPF είναι 40 δευτερόλεπτα. Το BFD το κάνει σε κλάσμα δευτερολέπτου, μετά λέει στο πρωτόκολλο να συγκλίνει ξανά αμέσως.

IOS — BFD στο interface, μετα προσδεσε σε OSPF & BGP
# Timers κάτω από ένα δευτερόλεπτο στο link (300ms x3 = ~900ms ανίχνευση).
R1(config)# interface GigabitEthernet0/0
R1(config-if)# bfd interval 300 min_rx 300 multiplier 3

# Πες στο OSPF να χρησιμοποιεί BFD για liveness γειτόνων σε όλα τα interfaces:
R1(config)# router ospf 1
R1(config-router)# bfd all-interfaces

# Και στο BGP να ρίχνει το session τη στιγμή που το BFD αναφέρει τον peer down:
R1(config)# router bgp 65001
R1(config-router)# neighbor 198.51.100.1 fall-over bfd
⚠ Παγιδα — Το BFD Ειναι Τελειο Μεχρι να το Τρεξεις σε Ασταθες Link

Επιθετικοί timers BFD ανιχνεύουν πραγματικές αστοχίες γρήγορα — και ανιχνεύουν επίσης microbursts, σύντομες αιχμές CPU, και ασύρματα links με απώλειες ως «αστοχίες», κάνοντας flap τη δρομολόγησή σου. Σε καθαρό link ίνας, το 300ms×3 είναι εντάξει· σε συμφορημένη ή ασύρματη διαδρομή, χαλάρωσε τους timers (ή μην τρέχεις BFD εκεί) αλλιώς ανταλλάσσεις αργό-αλλά-σταθερό με γρήγορο-αλλά-flapping. Ταίριαξε τους timers με την ποιότητα του link, και θυμήσου ότι η επανασύγκλιση BFD είναι τόσο χρήσιμη όσο η εφεδρική διαδρομή σου — γρήγορη ανίχνευση χωρίς εναλλακτικό route απλώς αποτυγχάνει γρήγορα.

04

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

Επιβεβαίωσε τι πραγματικά έγινε redistribute (και με ποιο tag/τύπο), και ότι τα sessions BFD είναι up με τους timers που ήθελες.

IOS — ελεγχοι redistribution & BFD
R1# show ip route ospf | inc E1|E2       # external routes + τύπος τους
R1# show ip ospf database external        # τι εισάγαμε, με tags
R1# show ip bgp | inc <prefix>            # redistributed routes έφτασαν στο BGP
R1# show bfd neighbors detail            # session UP, διαπραγματευμένοι timers

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

  1. Το redistribution κολλάει πρωτόκολλα μαζί — απαραίτητο σε κάθε multi-protocol δίκτυο, και η κλασική πηγή βρόχων δρομολόγησης.
  2. Κάνε πάντα redistribute μέσα από route-map με seed metric, και χρησιμοποίησε subnets σε OSPF αλλιώς εξαφανίζονται τα non-classful routes σου.
  3. Προτίμησε το E1 από το default E2 όταν θέλεις το εσωτερικό κόστος να προστίθεται στην πορεία — τα metrics E2 δεν αυξάνουν και προκαλούν μη βέλτιστη δρομολόγηση.
  4. Σήμανε με tag στην έξοδο, απόρριψε το tag στην επιστροφή — η μη διαπραγματεύσιμη άμυνα κατά βρόχων αμοιβαίου redistribution.
  5. Πρόσεξε το administrative distance — το αντίγραφο με χαμηλότερο AD κερδίζει ανεξάρτητα από τη μετρική· ρύθμισέ το ώστε να προτιμάται το native route.
  6. Το BFD ανιχνεύει αστοχία σε χιλιοστά του δευτερολέπτου και λέει στο OSPF/BGP να συγκλίνει ξανά — αλλά χαλάρωσε τους timers σε ασταθή/ασύρματα links αλλιώς κάνει flap.

Ενας multi-protocol πυρηνας που συγκλινει πολυ αργα — ή κανει βροχους;

Το redistribution ανάμεσα σε πρωτόκολλα δρομολόγησης είναι εκεί που τα περισσότερα multi-vendor δίκτυα αναπτύσσουν σιωπηλά βρόχους δρομολόγησης. Το σχεδιάζω με ενσωματωμένη αποτροπή βρόχων, administrative distance που πραγματικά βγάζει νόημα, και BFD συντονισμένο για failover σε κάτω από ένα δευτερόλεπτο, όχι το default μισό λεπτό.

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