Redundancy και High Availability είναι δύο στοιχεία επιθυμητά σε κάθε δίκτυο προκειμένου να μη παρατηρείται από τους τελικούς χρήστες downtime. Στο πλαίσιο αυτό, η Cisco δημιούργησε το πρωτόκολλο GLBP το οποίο εκμεταλλεύεται την ύπαρξη πολλαπλών gateways. Σε αντίθεση με τα πρωτόκολλα HSRP και VRRP που χρησιμοποιούν μία μόνο gateway, με το GLBP παραπάνω των μία gateway χρησιμοποιούνται προκειμένου να κάνουν forward traffic των χρηστών. Το GLBP επιτυγχάνει, εκτός από την αποφυγή single point of failure, τον διαμοιρασμό των clients σε πολλαπλές gateways με σκοπό την αποφόρτιση κάποιων routers από μεγάλη κατανάλωση bandwidth. Η παρακάτω τοπολογία θα χρησιμοποιηθεί για την παρουσίαση του πρωτοκόλλου
Οι routers HOST1, HOST2 και HOST3 θα χρησιμοποιηθούν ως clients(έχει απενεργοποιηθεί το routing). Οι routers R1, R2, R3 και R4 θα χρησιμοποιηθούν ως gateways από τους clients προκειμένου να έχουν επικοινωνία με το loopback interface(5.5.5.5/32) του ISP. Σε όλους τους routers έχουν οριστεί IP διευθύνσεις. Μεταξύ των R1-R2-R3-R4 και ISP έχουμε ενεργοποιήσει το EIGRP ως routing protocol. Στο EIGRP γίνονται advertised μόνο τα δίκτυα μεταξύ των gateways και του ISP. Στις gateways έχει οριστεί default route η οποία γίνεται redistribute μέσω του EIGRP στον ISP προκειμένου να υπάρχει επικοινωνία μεταξύ του loopback interface(5.5.5.5/32) και του 10.0.0.0/24. Ξεκινάμε την παραμετροποίηση του GLBP. R1(config)#interface fa0/0 R1(config-if)#glbp 1 ip 10.0.0.10 R2(config)#interface fa0/0 R2(config-if)#glbp 1 ip 10.0.0.10 R3(config)#interface fa0/0 R3(config-if)#glbp 1 ip 10.0.0.10 R4(config)#interface fa0/0 R4(config-if)#glbp 1 ip 10.0.0.10 Με την εντολή glbp 1 ip 10.0.0.10 ενεργοποιήσαμε σε όλους τους routers το GLBP με σκοπό να εξυπηρετούν όλοι τους requests των clients που φθάνουν στην virtual ip 10.0.0.10. Οι ρόλοι των routers σε μια τοπολογία όπου εφαρμόζεται το GLBP είναι AVG(Active Virtual Gateway) και AVF(Active Virtual Forwarder). Όλοι οι routers θα προωθούν traffic των χρηστών, σε αντίθεση με το HSRP όπου μόνο ένας router θα ήταν υπεύθυνος για να προωθεί traffic. Στην τοπολογία μας, AVG θα είναι ο R1. Όντας AVG, σημαίνει ότι: Θα μοιράζει virtual MAC addresses στους clients. Θα προωθεί traffic εκτός του LAN. Ένας router εκλέγεται AVG με δύο τρόπους: Διαθέτοντας τη μεγαλύτερη IP address στο physical interface. Έχοντας μεγαλύτερο priority για το glbp process που συμμετέχει σε σχέση με τους υπόλοιπους routers. Στη τοπολογία μας, θέλουμε τον R1 να είναι AVG. Ενεργοποιώντας το glbp, ο R1 εκλέχτηκε AVG. Αποδεικνύτεαι από το output της εντολής show glbp brief.
Γιατί όμως εκλέχτηκε AVG ο R1 από τη στιγμή που δεν διαθέτει ούτε μεγαλύτερο priority αλλά ούτε και τη μεγαλύτερη IP address; Αυτό συμβαίνει επειδή το GLBP ενεργοποιήθηκε πρώτα στον R1. Τι μπορούμε να κάνουμε ώστε να ορίσουμε τον R1 πάντα ως AVG της τοπολογίας μας, τον R2 standby και τους υπόλοιπους AVF; R1(config)#interface fa0/0 R1(config-if)#glbp 1 priotity 150 R2(config)#interface fa0/0 R2(config-if)#glbp 1 priotity 130 R3(config)#interface fa0/0 R3(config-if)#glbp 1 priotity 110 Με το παραπάνω configuration ορίζουμε για τον R1 priority 150 έτσι ώστε να είναι AVG. Ο R2 θα έχει το δεύτερο μεγαλύτερο priority και θα είναι standby έτσι ώστε να αναλάβει AVG σε περίπτωση που για οποιδήποτε λόγο ο R1 δεν συμμετέχει στο glbp process. Τι συμβαίνει στον R4 που δεν ορίσαμε priority; By default, θα έχει priority 100. Από το παρακάτω οutput, βλέπουμε ότι ο R1 είναι ο AVG της τοπολογίας με priority 150. Για να δούμε αναλυτικά ό,τι σχετίζεται με glbp, θα εκτελέσουμε την εντολή show glbp σε οποιοδήποτε router. Επιλέγοντας τον R2, συμπεραίνουμε ότι
O R2 είναι standby για το glbp 1. Virtual IP είναι η 10.0.0.10. Hello timer=3s και Hold timer=10s. Preemption feature disabled. AVG είναι ο router με IP address 10.0.0.1 και priority 150. Η τιμή του weighting είναι 100. O αλγόριθμος για load balancing είναι round-robin. Στο glbp group 1 συμμετέχουν 4 forwarders. Τώρα θα δούμε τι συμβαίνει όταν ο HOST1 θελήσει να επικοινωνήσει με τον ISP.
Ο HOST1 στο ARP table του έχει entry την virtual IP address 10.0.0.10 με MAC address την virtual MAC address 0007.b400.0101. Αυτό σημαίνει ότι ο HOST1 έχει για forwarder τον router R1 αφού αυτός αποφασίζει ποια virtual MAC address θα δώσει σε ARP requests των χρηστών και επιπλέον είναι υπεύθυνος για τη virtual MAC address 0007.b400.0101. Αντίστοιχα για τον HOST2 θα έχουμε Όπως βλέπουμε, ο HOST2 έχει στο arp table του entry την virtual IP address 10.0.0.10 με MAC address την virtual MAC address 0007.b400.0102. Αυτό σημαίνει ότι έχει για forwarder τον router που του έχει ανατεθεί η virtual MAC address 0007.b400.0102 για να δρομολογεί traffic εκτός του LAN. Στη συγκεκριμένη τοπολογία ο HOST2 έχει για gateway του τον R2. Τι γίνεται στην περίπτωση που ο R1 δεν μπορεί να δρομολογήσει traffic για τον HOST1; Θα απενεργοποιήσουμε το interface fastethernet 0/0 του R1 έτσι ώστε ο router να μη συμμετέχει στο GLBP και να μην μπορεί να δρομολογήσει traffic εκτός του LAN. Και έχουμε: Ξεκινούμε extended ping στον HOST1
Παρατηρούμε loss 5 πακέτων. Στη συνέχεια όμως, ο HOST1 συνέχισε κανονικά την επικοινωνία του με το loopback interface του ISP. Αυτό συνέβη γιατί άλλαξαν τα δεδομένα στην τοπολογία όσον αφορά το GLBP και πλέον ο R1 είναι unknown(στέλνει hello στους υπόλοιπους routers) και ο R2 άλλαξε και από standby έγινε AVG, όπως βλέπουμε και στο output της παρακάτω εντολής Επόμενό μας βήμα είναι να ενεργοποιήσουμε πάλι το interface fastethernet 0/0 του R1 και να ελέγξουμε αν ο R1 γίνει master και φυσικά αν ο HOST1 έχει για gateway του πλέον πάλι τον R1. Κάνοντας traceroute από τον HOST1 στον ISP παρατηρούμε ότι ο HOST1 χρησιμοποίησε πάλι ως gateway του τον R1. Όμως, όπως φαίνεται στο output της εντολής show glbp brief στον R1 τα states των routers όσον αφορά το GLBP δεν επανήλθαν στην αρχική κατάσταση. Δηλαδή, ο R1 πλέον δεν είναι AVG αλλά standby. Γιατί συνέβη αυτό; Επειδή δεν έχουμε ενεργοποιήσει το preemption feature. Με το preemption ενεργοποιημένο, ο router που θα συμμετέχει στο GLBP και θα έχει priority μεγαλύτερο από κάποιον άλλον router που έχει εκείνη τη στιγμή το ρόλο του AVG στην τοπολογία, αναλαμβάνει το ρόλο του AVG. Στην περίπτωση μας, αφού ενεργοποιήσουμε το preemption στον R1: R1(config)#interface fa0/0 R1(config-if)#glbp 1 preempt Θα παρατηρήσουμε ότι:
O R1 είναι πάλι ο AVG της τοπολογίας μας καθότι έχει priority 150, μεγαλύτερο από κάθε άλλον router. Σε αυτό το άρθρο ασχοληθήκαμε με το basic configuration του GLBP. Στο επόμενο άρθρο μας για το GLBP θα ασχοληθούμε με Load balancing μεθόδους στον διαμοιρασμό των Virtual MAC Addresses. Τη σημασία του feature weighting. Σχόλια, παρατηρήσεις και απορίες ευπρόσδεκτες.