Η δυνατότητα BGP του Vultr σάς επιτρέπει να φέρετε τον δικό σας χώρο IP και να τον χρησιμοποιήσετε σε οποιαδήποτε από τις τοποθεσίες μας.
Ξεκινώντας
Για να χρησιμοποιήσετε το BGP, χρειάζεστε:
- Ένα αναπτυγμένο παράδειγμα διακομιστή Vultr.
- Το δικό σας χώρο IP (είτε v4 είτε v6). Εάν έχετε το δικό σας ASN, μπορείτε να το χρησιμοποιήσετε ή μπορούμε να εκχωρήσουμε ένα ιδιωτικό.
Εάν διαφημίζετε ένα πρόθεμα IPv4, η παρουσία διακομιστή πρέπει να έχει μια διεύθυνση IPv4 που εκχωρείται αυτόματα από το Vultr. Εάν διαφημίζετε ένα πρόθεμα IPv6, η παρουσία διακομιστή πρέπει να έχει τις διευθύνσεις IPv4 και IPv6 που εκχωρούνται αυτόματα από το Vultr.
Συμπληρώστε τη φόρμα ρύθμισης BGP για να ξεκινήσετε. Βεβαιωθείτε ότι έχετε επαληθεύσει την ιδιοκτησία του ASN και του υποδικτύου σας για να αποφύγετε καθυστερήσεις.
Αφού διαμορφωθεί στον λογαριασμό σας, μπορείτε να προχωρήσετε στη διαμόρφωση του BGP.
Ρύθμιση BGP
Σημείωση: Εάν πρόκειται να διαμορφώσετε μια παρουσία που είχε αναπτυχθεί πριν από τη ρύθμιση του BGP στον λογαριασμό σας, θα χρειαστεί να την επανεκκινήσετε μέσω του πίνακα ελέγχου. Το BGP δεν θα λειτουργήσει σε καμία υπάρχουσα παρουσία έως ότου γίνει επανεκκίνηση (η επανεκκίνηση μέσω SSH δεν αρκεί).
Συνιστούμε να χρησιμοποιήσετε το BIRD ως δαίμονα BGP (αλλά μπορείτε να χρησιμοποιήσετε όποιον δαίμονα BGP θέλετε). Τα περισσότερα λειτουργικά συστήματα έχουν διαθέσιμο πακέτο για αυτό.
Τα παραδείγματά μας θα υποθέσουν τα εξής:
- ASN: 64512
- IP του στιγμιότυπου:: 203.0.113.123
- Μπλοκ IPv4: 198.51.100.0/24
- Κωδικός πρόσβασης BGP: hunter2
Για να επιβεβαιώσουμε τη συνδεσιμότητα, ας ρυθμίσουμε μια περίοδο λειτουργίας BGP χωρίς να ανακοινώσουμε καμία διεύθυνση IP. Δημιουργήστε ένα /etc/bird.confαρχείο με το παρακάτω κείμενο. Σημειώστε ότι σε ορισμένα συστήματα, όπως το Ubuntu 16.04, αυτό θα είναι /etc/bird/bird.conf.
router id 203.0.113.123;
protocol bgp vultr
{
local as 64512;
source address 203.0.113.123;
import none;
export all;
graceful restart on;
multihop 2;
neighbor 169.254.169.254 as 64515;
password "hunter2";
}
Επανεκκινήστε το bird και ελέγξτε την κατάσταση της συνεδρίας:
[root@vultr ~]# birdc show proto all vultr
BIRD 1.4.5 ready.
name proto table state since info
vultr BGP master up 14:11:36 Established
Preference: 100
Input filter: REJECT
Output filter: (unnamed)
Routes: 0 imported, 581634 filtered, 1 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 581674 0 581674 0 0
Import withdraws: 2 0 --- 581675 0
Export updates: 1 0 0 --- 1
Export withdraws: 0 --- --- --- 0
BGP state: Established
Neighbor address: 169.254.169.254
Neighbor AS: 64515
Neighbor ID: 169.254.169.254
Neighbor caps: refresh restart-able AS4
Session: external multihop AS4
Source address: 203.0.113.123
Hold timer: 208/240
Keepalive timer: 57/80
Μια κατάσταση BGP "Εγκαταστάθηκε" σημαίνει ότι όλα λειτουργούν σωστά. Εάν δεν βλέπετε την κατάσταση του Ιδρύθηκε, ακολουθούν ορισμένα πράγματα που μπορείτε να δοκιμάσετε:
- Έχετε κάνει επανεκκίνηση μέσω του πίνακα ελέγχου από τότε που η υποστήριξη έχει ρυθμίσει το BGP στον λογαριασμό σας;
- Επιτρέπεται η θύρα BGP (TCP 179) μέσω του τείχους προστασίας σας;
- Είναι σωστός ο κωδικός πρόσβασης BGP; (Αυτό μπορεί να επαληθευτεί στον πίνακα ελέγχου σας, κάθε συνδρομή έχει μια καρτέλα BGP που αναφέρει τις λεπτομέρειες)
- Χρησιμοποιείτε την κύρια IP της παρουσίας σας; (Δεν μπορείτε να χρησιμοποιήσετε τίποτα άλλο εκτός από την κύρια IP μιας παρουσίας με BGP)
Σημειώσεις FreeBSD
Η προεπιλεγμένη διαμόρφωση του FreeBSD δεν θα λειτουργήσει με το BGP. Για να χρησιμοποιήσετε πραγματικά το BGP στο FreeBSD, θα χρειαστεί να κάνετε μερικά πράγματα:
1) Κάντε εκ νέου μεταγλώττιση του πυρήνα με ενεργοποιημένες αυτές τις πρόσθετες επιλογές:
device crypto
options IPSEC
options TCP_SIGNATURE
2) Διαμορφώστε τον προσαρμογέα δικτύου σας με μια στατική IP.
3) Ενημερώστε το ipsec.conf με τον κωδικό πρόσβασης BGP:
add 203.0.113.123 169.254.169.254 tcp 0x1000 -A tcp-md5 "hunter2";
add 169.254.169.254 203.0.113.123 tcp 0x1000 -A tcp-md5 "hunter2";
Ανακοίνωση δρομολογίων
Μόλις έχετε μια λειτουργική συνεδρία BGP, το επόμενο βήμα είναι να αρχίσετε να ανακοινώνετε ορισμένες διαδρομές. Για να είναι ορατός ο χώρος διευθύνσεών σας στο διαδίκτυο, θα πρέπει να ανακοινώσετε τουλάχιστον ένα /24 (ή /48 για IPv6).
Ο ευκολότερος τρόπος για να ξεκινήσετε είναι να προσθέσετε μια στατική διαδρομή στη διαμόρφωση BIRD, όπως:
protocol static
{
route 198.51.100.0/24 via 203.0.113.123;
}
protocol device
{
scan time 5;
}
Το μπλοκ "συσκευή πρωτοκόλλου" επιτρέπει στο BIRD να συγκεντρώσει πληροφορίες σχετικά με τους προσαρμογείς δικτύου που είναι συνδεδεμένοι στην παρουσία σας. Χωρίς αυτό, οι στατικές διαδρομές σας δεν θα εμφανίζονται.
Επαναλάβετε τη φόρτωση του BIRD και, στη συνέχεια, βεβαιωθείτε ότι η διαδρομή σας λειτουργεί σωστά:
[root@vultr ~]# birdc show route
BIRD 1.4.5 ready.
198.51.100.0/24 via 203.0.113.123 on eth0 [static1 14:22:12] * (200)
Σε αυτό το σημείο, η κίνηση για το υποδίκτυό σας θα πρέπει τώρα να ρέει προς την παρουσία σας. Δεν θα μπορείτε να κάνετε ping σε καμία IP έως ότου διαμορφωθούν στο λειτουργικό σας σύστημα. Ένας τρόπος για να το επαληθεύσετε αυτό θα ήταν να χρησιμοποιήσετε το tcpdump, «tcpdump -i eth0 -n net 198.51.100.0/24».
Διαμόρφωση IP
Μια κοινή διαμόρφωση που βλέπουμε είναι η χρήση μεμονωμένων διευθύνσεων IP σε διαφορετικές παρουσίες. Αυτό είναι δυνατό, αν και κάθε παρουσία θα πρέπει να εκτελεί τον δικό της διακομιστή BGP.
Για να γίνει αυτό, θα ανακοινώσουμε /32 διαδρομές από μεμονωμένες περιπτώσεις, εκτός από την κάλυψη /24. Θα μπορούσαμε να το κάνουμε αυτό με στατικές διαδρομές, αλλά συνιστούμε τη χρήση εικονικών διεπαφών. Θα χρησιμοποιήσουμε το 198.51.100.100 ως την IP που θέλουμε να δρομολογήσουμε.
Ρυθμίστε το σε μια διεπαφή:
# ip link add dev dummy1 type dummy
# ip link set dummy1 up
# ip addr add dev dummy1 198.51.100.100/32
Επιβεβαιώστε ότι έχει ρυθμιστεί σωστά:
# ip addr show dev dummy1
5: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether ba:23:57:2c:ad:bc brd ff:ff:ff:ff:ff:ff
inet 198.51.100.100/32 scope global dummy1
Σημείωση: Θα πρέπει να συμβουλευτείτε την τεκμηρίωση του λειτουργικού σας συστήματος για να προσδιορίσετε τον τρόπο διαμόρφωσης αυτής της διεπαφής ώστε να έρχεται κατά την εκκίνηση.
Τώρα θα διαμορφώσουμε το BIRD για σάρωση για τυχόν εικονικές διεπαφές και θα ανακοινώσουμε τυχόν IP που θα βρει σε αυτές. Προσθέστε τα ακόλουθα στη διαμόρφωση BIRD και φορτώστε ξανά το BIRD:
protocol direct
{
interface "dummy*";
import all;
}
Βεβαιωθείτε ότι το BIRD ανακοινώνει τη διαδρομή:
[root@vultr ~]# birdc show route
BIRD 1.4.5 ready.
198.51.100.0/24 via 203.0.113.123 on eth0 [static1 14:22:12] * (200)
198.51.100.100/32 dev dummy1 [direct1 14:36:56] * (240)
Μπορείτε να επαναλάβετε αυτή τη διαδικασία σε άλλες περιπτώσεις με άλλες IP. Αυτό που συμβαίνει είναι ότι οι δρομολογητές μας θα χρησιμοποιήσουν την πιο συγκεκριμένη διαδρομή που έχουν για οποιαδήποτε δεδομένη διεύθυνση IP. Όταν υπάρχουν /24 και /32, το /32 είναι η πιο συγκεκριμένη διαδρομή, επομένως οποιαδήποτε κίνηση για αυτήν την IP θα ακολουθήσει αυτήν τη διαδρομή.
Μπορείτε να έχετε πολλές περιπτώσεις που ανακοινώνουν το ίδιο /32. Αυτό θα σας έδινε υψηλή διαθεσιμότητα (εάν κάποια παρουσία αποτύγχανε, οι διαδρομές της θα εξαφανίζονταν και η κυκλοφορία θα αστοχούσε στην άλλη παρουσία).
Οι τοποθεσίες μας δεν είναι συνδεδεμένες, επομένως θα πρέπει να βεβαιωθείτε ότι ανακοινώνετε ένα /24 (ή IPv6 /48) από κάθε τοποθεσία όπου θέλετε να χρησιμοποιήσετε τις IP. Δεν μπορείτε να χρησιμοποιήσετε ένα /24 για να εκχωρήσετε διευθύνσεις IP για πολλές τοποθεσίες, εκτός εάν προσπαθείτε να ρυθμίσετε ένα δίκτυο anycast.
Ορισμένες από τις τοποθεσίες μας υποστηρίζουν ECMP, οπότε η κίνηση θα κατανέμεται τυχαία μεταξύ έως και 8 περιπτώσεων που ανακοινώνουν την ίδια IP. Οι τοποθεσίες που υποστηρίζουν αυτήν τη στιγμή το ECMP είναι:
- New Jersey
- Σικάγο
- Ντάλας
- Ατλάντα
- Τόκιο
- Σιγκαπούρη
- Λος Άντζελες
- Μιάμι
- Silicon Valley
- Παρίσι
- Λονδίνο
Σχετικά έγγραφα
Σημειώσεις
Για το BIRD 1.5 και νεότερη έκδοση, ίσως χρειαστεί να αλλάξετε τη routeσύνταξη των γραμμών από:
route 198.51.100.0/24 via 203.0.113.123;
προς το:
route 198.51.100.0/24 via "203.0.113.123";
** Αντιμετώπιση προβλημάτων **
Τα συστήματά μας απαιτούν έλεγχο ταυτότητας TCP MD5 για να δημιουργήσουν τη σύνδεση. Αυτό σημαίνει ότι δεν μπορείτε να δοκιμάσετε τη συνδεσιμότητα χρησιμοποιώντας κάτι σαν telnet. Σε γενικές γραμμές, προτείνουμε να παρακολουθείτε την επισκεψιμότητα με το tcpdump για την αντιμετώπιση προβλημάτων συνδεσιμότητας.