English · Ελληνικά
Το Part 7 σου έδωσε single-area OSPF· αυτό το lab είναι εκεί που το OSPF παίρνει το πραγματικό του σχήμα. Πέντε routers, τρεις περιοχές, δύο ABRs. Θα δεις τα LSA να σταματάνε στα σύνορα περιοχών, θα γυρίσεις ένα υποκατάστημα σε stub και μετά σε totally-stubby area, θα κάνεις inject ένα default route εκεί όπου πραγματικά ζει το internet, και θα κατευθύνεις κίνηση με interface costs — μετά θα κόψεις ένα backbone link και θα χρονομετρήσεις το reroute.
Το single-area OSPF κλιμακώνει μέχρι που σταματά: κάθε router ξανακάνει compute το SPF όποτε οποιοδήποτε link οπουδήποτε φλαπάρει, και κάθε router κουβαλά κάθε route. Οι περιοχές είναι η απάντηση του OSPF — flood domains με σύνορα. Μέσα σε μια περιοχή, οι routers μοιράζονται τον πλήρη χάρτη link-state· ανάμεσα σε περιοχές, οι Area Border Routers περνάνε μόνο summaries. Ένα link που φλαπάρει στην περιοχή 2 δεν κάνει πια έναν router υποκαταστήματος στην περιοχή 1 να ξανακάνει compute τίποτα.
Αυτό το lab κάνει την αφαίρεση συγκεκριμένη: πέντε routers, ένα τριγωνικό backbone, δύο περιοχές υποκαταστημάτων. Θα κοιτάξεις τη βάση δεδομένων LSA σε κάθε βήμα — το multi-area OSPF κλικάρει μόνο όταν δεις ένα type-1 LSA να σταματά στο ABR και να ξαναεμφανίζεται ως type-3 summary. Μετά στριμώχνουμε τις περιοχές υποκαταστημάτων με stub και no-summary μέχρι ο πίνακας routing ενός router υποκαταστήματος να είναι ένα μόνο default route — που είναι όλο κι όλο που χρειάστηκε ποτέ ένα υποκατάστημα.
show ip route: O, O IA, O*E201
Ένα τριγωνικό backbone (R1–R2–R3) ώστε η περιοχή 0 να έχει redundant path, και ένα router υποκαταστήματος κρεμασμένο από κάθε ABR. Loopbacks ως router-ID — σταθερή ταυτότητα που δεν πέφτει ποτέ.
| Link / interface | Addressing & περιοχη |
|---|---|
| R1 ↔ R2 | 10.0.12.0/30 (R1 .1, R2 .2) — area 0 |
| R1 ↔ R3 | 10.0.13.0/30 (R1 .1, R3 .2) — area 0 |
| R2 ↔ R3 | 10.0.23.0/30 (R2 .1, R3 .2) — area 0 |
| R2 ↔ R4 | 10.0.24.0/30 (R2 .1, R4 .2) — area 1 |
| R3 ↔ R5 | 10.0.35.0/30 (R3 .1, R5 .2) — area 2 |
| R4 LAN | 10.1.40.0/24 — area 1 (προσομοίωσε με ένα PC ή ένα loopback) |
| R5 LAN | 10.2.50.0/24 — area 2 |
| R1 WAN | 203.0.113.2/30 → ISP — εντελώς εκτός OSPF |
| Router-IDs | Loopback0 = N.N.N.N (R1 → 1.1.1.1 … R5 → 5.5.5.5) |
Το R2 αγγίζει τις περιοχές 0 και 1, άρα το R2 είναι το ABR της περιοχής 1· το R3 είναι της περιοχής 2. Αυτό είναι όλο κι όλο που σημαίνει «ABR» — ένας router με interfaces στο backbone και σε μια μη-backbone περιοχή. Ο σιδερένιος κανόνας που ακολουθεί: κάθε περιοχή πρέπει να αγγίζει την περιοχή 0. Δεν μπορείς να κάνεις daisy-chain την περιοχή 2 πίσω από την περιοχή 1· τα inter-area routes ρέουν μόνο μέσω του backbone. Σχεδίασε τις περιοχές σου ως hub-and-spoke γύρω από την περιοχή 0 και το OSPF μένει προβλέψιμο.
02
Ίδιες εντολές με το part 7 — το μόνο καινούριο συστατικό είναι ότι ο αριθμός περιοχής στο network statement τώρα διαφέρει ανά interface. Αυτή η μία λέξη-κλειδί είναι αυτό που κάνει έναν router ABR.
# R1 — καθαρός router backbone (συν το WAN, που μένει εκτός OSPF) R1(config)# router ospf 1 R1(config-router)# router-id 1.1.1.1 R1(config-router)# passive-interface GigabitEthernet0/2 ← το WAN: ποτέ μη μιλάς OSPF στον ISP R1(config-router)# network 10.0.12.0 0.0.0.3 area 0 R1(config-router)# network 10.0.13.0 0.0.0.3 area 0 # R2 — ένα πόδι στην περιοχή 0, ένα πόδι στην περιοχή 1 → αυτόματα ABR R2(config)# router ospf 1 R2(config-router)# router-id 2.2.2.2 R2(config-router)# network 10.0.12.0 0.0.0.3 area 0 R2(config-router)# network 10.0.23.0 0.0.0.3 area 0 R2(config-router)# network 10.0.24.0 0.0.0.3 area 1 # R4 — υποκατάστημα: τα πάντα στην περιοχή 1, το LAN παραμένει passive R4(config)# router ospf 1 R4(config-router)# router-id 4.4.4.4 R4(config-router)# passive-interface GigabitEthernet0/1 ← το LAN: διαφήμισέ το, μη μιλάς πάνω του R4(config-router)# network 10.0.24.0 0.0.0.3 area 1 R4(config-router)# network 10.1.40.0 0.0.0.255 area 1 # Adjacencies up; R2# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 1.1.1.1 1 FULL/BDR 00:00:36 10.0.12.1 Gi0/0 3.3.3.3 1 FULL/DR 00:00:33 10.0.23.2 Gi0/1 4.4.4.4 1 FULL/BDR 00:00:38 10.0.24.2 Gi0/2
R4# show ip route ospf 10.0.0.0/8 is variably subnetted O 10.0.12.0/30 [110/2] via 10.0.24.1, 00:04:11, Gi0/0 ← intra-area; Οχι — O IA 10.0.13.0/30 [110/3] via 10.0.24.1, 00:04:11, Gi0/0 περιμενε το… O IA 10.0.23.0/30 [110/2] via 10.0.24.1, 00:04:11, Gi0/0 O IA 10.2.50.0/24 [110/4] via 10.0.24.1, 00:03:52, Gi0/0 ← το LAN της περιοχης 2, μεσω του backbone
Το O σημαίνει ότι το route υπολογίστηκε από τον πλήρη χάρτη link-state μέσα στη δική του περιοχή του R4· το O IA (inter-area) σημαίνει ότι έφτασε ως summary από το ABR — το R4 ξέρει τον προορισμό και το cost, αλλά τίποτα για την εσωτερική τοπολογία της περιοχής 2. Αυτή η ασυμμετρία πληροφορίας είναι όλο το νόημα των περιοχών.
03
Τέσσερις τύποι LSA εξηγούν ό,τι κάνει αυτό το lab. Κοίτα τη βάση δεδομένων στο R4 και βρες τον καθέναν — αυτή η πεντάλεπτη άσκηση αξίζει περισσότερο από οποιοδήποτε διάγραμμα «τύποι OSPF LSA 1–11».
| Τυπος LSA | Τι ειναι, και που σταματα |
|---|---|
| 1 — Router | Κάθε router περιγράφει τα δικά του links. Κάνει flood μόνο μέσα στη δική του περιοχή. |
| 2 — Network | Ένας DR περιγράφει το multi-access segment του. Επίσης area-local. |
| 3 — Summary | Το ABR ξαναδιαφημίζει τα prefixes άλλων περιοχών ως απλό «network + cost». Αυτά γίνονται routes O IA. |
| 5 — External | Routes redistributed από έξω του OSPF — όπως το default του R1. Κάνουν flood παντού εκτός από stub areas. |
R4# show ip ospf database OSPF Router with ID (4.4.4.4) (Process ID 1) Router Link States (Area 1) ← type 1: μόνο R2 και R4 Link ID ADV Router Age Seq# Checksum Link count 2.2.2.2 2.2.2.2 112 0x80000004 0x00A1B2 1 4.4.4.4 4.4.4.4 98 0x80000003 0x00C4D1 2 Summary Net Link States (Area 1) ← type 3: το υπόλοιπο Link ID ADV Router Age δίκτυο, ως summaries 10.0.12.0 2.2.2.2 201 10.0.13.0 2.2.2.2 201 10.0.23.0 2.2.2.2 201 10.2.50.0 2.2.2.2 187
Πρόσεξε τι λείπει: το R4 δεν έχει κανένα type-1 LSA από R1, R3, ή R5. Κυριολεκτικά δεν ξέρει ότι υπάρχουν αυτοί οι routers — ξέρει μόνο prefixes και costs που εγγυάται το R2. Όταν ένα link μέσα στην περιοχή 2 φλαπάρει, το type-1 LSA του R5 αλλάζει, η περιοχή 2 ξανακάνει compute SPF, το R3 ενημερώνει ένα type-3 summary… και το R4 απλώς αλλάζει μια εγγραφή στον πίνακα routing. Καθόλου SPF run στην περιοχή 1. Αυτό είναι το κέρδος κλιμάκωσης, ορατό σε μία εντολή show.
04
Το internet ζει στο R1, εκτός OSPF. Αντί να κάνεις config statics παντού, το R1 κάνει inject το default του στο OSPF ως type-5 external — μία εντολή, κάθε router μαθαίνει τον δρόμο εξόδου.
# Το δικό του default του R1 δείχνει προς τον ISP (static, εκτός band για OSPF) R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 # …και το OSPF το διαφημίζει σε όλους τους υπόλοιπους R1(config)# router ospf 1 R1(config-router)# default-information originate # Κάθε άλλος router τώρα έχει: R5# show ip route | include 0.0.0.0/0 O*E2 0.0.0.0/0 [110/1] via 10.0.35.1, 00:00:41, GigabitEthernet0/0
Το απλό default-information originate διαφημίζει το default μόνο όσο το ίδιο το R1 έχει ένα — που είναι feature: αν εξαφανιστεί το static WAN του R1, το διαφημισμένο default αποσύρεται και το δίκτυο δεν ρίχνει κίνηση σε blackhole προς μια νεκρή έξοδο. Η παραλλαγή default-information originate always διαφημίζει άνευ όρων· φαίνεται πιο ανθεκτική αλλά συνεχίζει να ανακοινώνει μια έξοδο που δεν δουλεύει. Συνδύασε την απλή μορφή με ένα WAN static που κάνει track μέσω IP SLA (part 10) και το default του OSPF ακολουθεί πραγματική προσβασιμότητα internet από άκρη σε άκρη.
05
Ένας router υποκαταστήματος δεν χρειάζεται πενήντα routes· χρειάζεται «όλα είναι προς τα εκεί». Τα stub areas αφαιρούν τα externals· τα totally-stubby areas αφαιρούν τα πάντα εκτός από ένα default από το ABR.
# Και οι δύο routers στην περιοχή 1 πρέπει να συμφωνήσουν ότι η περιοχή είναι stub — # το flag είναι μέσα στα hello packets· flags που δεν ταιριάζουν = καμία adjacency. R4(config)# router ospf 1 R4(config-router)# area 1 stub # Στο ABR, πρόσθεσε no-summary → «totally stubby»: σταματούν και τα type-3 R2(config)# router ospf 1 R2(config-router)# area 1 stub no-summary # Ο πίνακας routing του R4 συρρικνώνεται σχεδόν σε τίποτα: R4# show ip route ospf O*IA 0.0.0.0/0 [110/2] via 10.0.24.1, 00:00:19, GigabitEthernet0/0 # Ένα default από το ABR. Το υποκατάστημα ακόμα φτάνει τα πάντα — # απλώς δεν κουβαλά πια τον χάρτη του πώς.
Όταν κάνεις config area 1 stub στο R2 πριν το R4 (ή αντίστροφα), η adjacency R2–R4 πέφτει αμέσως — το stub flag στα hellos τους δεν ταιριάζει πια, και οι γείτονες αρνούνται ευγενικά ο ένας τον άλλον μέχρι να συμφωνήσουν και οι δύο πλευρές. Σε ένα lab αυτό είναι μάθημα· σε ένα production link υποκαταστήματος είναι outage που προγραμμάτισες χωρίς να το ξέρεις. Κάνε config πρώτα τον router υποκαταστήματος, μετά το ABR, και περίμενε μια νεκρή στιγμή ανάμεσα. Σημείωσε την ασυμμετρία: το stub μπαίνει σε κάθε router στην περιοχή, το no-summary μόνο στο ABR.
06
Το OSPF διαλέγει paths με το άθροισμα του interface cost, και τα defaults αντιμετωπίζουν οτιδήποτε ≥100 Mb/s ως ίσο. Διόρθωσε το reference bandwidth σε όλο το fleet, κατεύθυνε ένα path ρητά, μετά απόδειξε τη σύγκλιση με χρονόμετρο.
# Το default reference είναι 100 Mb/s → FastE, GigE, 10GigE όλα cost 1 (!) # Βάλε το reference σε 100 Gb/s ΣΕ ΚΑΘΕ ROUTER ώστε να διαφοροποιούνται οι ταχύτητες: R2(config)# router ospf 1 R2(config-router)# auto-cost reference-bandwidth 100000 # Το IOS προειδοποιεί: "Please ensure reference bandwidth is consistent across all routers." # Το εννοεί. Ασύμφωνα references = ασύμμετρα, απρόβλεπτα paths. # Κατεύθυνση: κάνε το direct link R2→R1 μη ελκυστικό· η κίνηση προτιμά R2→R3→R1 R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip ospf cost 500 R2# traceroute 1.1.1.1 1 10.0.23.2 ← τώρα μέσω R3, όπως σχεδιάστηκε 2 10.0.13.1
Αφαίρεσε το tweak του cost, ξεκίνα συνεχές ping από το LAN PC του R4 προς το LAN του R5 (10.2.50.x), μετά διάγραψε το καλώδιο R2–R3 — το link που διασχίζει το ping. Τα γρήγορα hellos το καταλαβαίνουν μέσα στο dead-interval (ή ακαριαία, σε physical link-down), τα σύνορα και των δύο περιοχών ενημερώνουν τα type-3 τους, και το path ξαναφτιάχνεται ως R4 → R2 → R1 → R3 → R5. Σε Packet Tracer περίμενε μια χούφτα χαμένα pings· κοίτα το show ip ospf neighbor να χάνει μια εγγραφή FULL και το traceroute να μεγαλώνει το hop του R1. Ξανασύνδεσε το καλώδιο και δες το να επιστρέφει. Αυτό — routing που επουλώνεται γύρω από μια κοπή χωρίς κανέναν άνθρωπο να εμπλέκεται — είναι αυτό που σου αγοράζει όλη η μηχανή LSA.
07
Το RouterOS μιλά το ίδιο OSPFv2 πάνω στο καλώδιο — αυτοί οι πέντε routers θα μπορούσαν να είναι μεικτό fleet και οι περιοχές θα σχηματίζονταν το ίδιο.
| Αυτο το lab (Cisco) | MikroTik / RouterOS 7 |
|---|---|
| router ospf 1 + network … area N | /routing ospf instance + area + interface-template networks= |
| router-id 1.1.1.1 | router-id= στο instance |
| passive-interface | interface-template … passive |
| area 1 stub no-summary | /routing ospf area type=stub no-summaries=yes |
| default-information originate | originate-default=if-installed στο instance |
| ip ospf cost 500 | cost= στο interface-template |
Τα πάντα σε αυτό το lab δουλεύουν σε Packet Tracer 8.x πάνω σε 2911: multi-area, stub/totally-stubby, default-information originate, cost, και reference-bandwidth. Δύο περιορισμοί που αξίζει να ξέρεις: η έξοδος του show ip ospf database στο PT είναι συντομευμένη σε σχέση με το πραγματικό IOS (οι στήλες παραπάνω είναι κομμένες να ταιριάζουν), και οι περιοχές NSSA (area N nssa) υποστηρίζονται μόνο εν μέρει — που είναι εντάξει, γιατί στο πεδίο στρεφόμαστε στο NSSA περίπου μία φορά τη δεκαετία. Αν θέλεις την πλήρη εμπειρία της βάσης δεδομένων, αυτό είναι το lab που αξίζει περισσότερο να ξανατρέξεις σε GNS3/CML με πραγματικές εικόνες IOS.
Συμπερασματα
Το multi-building OSPF πάει στραβά στα σύνορα περιοχών σχεδόν πάντα. Το σχεδιάζω — περιοχές, failover, τεκμηρίωση — ώστε ο επόμενος μηχανικός που ανοίγει το διάγραμμα τοπολογίας να το καταλαβαίνει σε πέντε λεπτά, όχι σε ένα απόγευμα.
Κλεισε μια Discovery Call →