Конфигуриране на BGP на Vultr

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;
}

Блокът 'protocol device' позволява на 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)

В този момент трафикът за вашата подмрежа вече трябва да тече към вашия екземпляр. Няма да можете да пингвате никакви 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 адреси за множество местоположения, освен ако не се опитвате да настроите мрежа за всяко предаване.

Някои от нашите местоположения поддържат ECMP, в който случай трафикът ще бъде разпределен на случаен принцип между до 8 инстанции, които обявяват един и същ IP. Местоположенията, които в момента поддържат ECMP, са:

  • Ню Джърси
  • Чикаго
  • Далас
  • Атланта
  • Токио
  • Сингапур
  • Лос Анжелис
  • Маями
  • Силиконовата долина
  • Париж
  • Лондон

Свързани документи

Бележки

За 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, за да отстраните проблеми със свързаността.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече