Конфигуриране на BGP с помощта на Quagga на Vultr (CentOS 7)

Функционалността на Vultr's Bring Your IP Space позволява безпрецедентна свобода при задаване на вашите собствени IP ресурси към сървъри в облака Vultr. Обикновено препоръчваме да използвате BIRD за обявяване на вашето IP пространство. Има няколко солидни алтернативи на BIRD, в случай че не можете да постигнете нещо с BIRD (въпреки че това е много рядко) или просто искате да използвате друг софтуер.

Поради административните и технически разходи, ние силно обезкуражаваме използването на BIRD и Quagga (или друг софтуер по този въпрос) в същата инфраструктура и/или мрежа. Имайте предвид, че следната конфигурация ще ви даде SPOF, тъй като екземплярът, който обявява вашата припокриваща се подмрежа, не е излишен. Трябва да отбележите обаче, че Vultr има множество BGP рутери във всеки багажник.

Въпреки че това ръководство е написано с мисъл за CentOS 7 и е тествано само на тази версия на CentOS, то най-вероятно ще работи и на по-стари версии като CentOS 6. Въпреки това, естествено, ние силно обезкуражаваме използването на остарял софтуер и силно препоръчваме да актуализирате до по-нова, по-нова (и поддържана) версия като CentOS 7.

Няма практическо ограничение за количеството подмрежи или техния размер, които можете да обявите от един екземпляр, работещ с Quagga (или всеки BGP рутер, в този смисъл), въпреки че във всяка топология на мрежата трябва да имате някакъв вид разпространение на риска. Това означава, че трябва да създадете или излишна настройка, или да обявите различни подмрежи от различни сървъри, като следвате ръководството по-долу на множество сървъри.

За да следвате това ръководство, ще ви трябва:

  • ASN, който искате/трябва да използвате;
  • IP пространството (подмрежата), което искате да обявите;
  • BGP е активиран във вашия Vultr акаунт

BIRD или Quagga?

Като за начало, изборът между BIRD или Quagga може да бъде много труден. И двете са добре познати и са се доказали като много стабилни и стабилни за много случаи на употреба, включително среди с висок трафик и инфраструктури, където надеждността играе ключова роля. Основната разлика между BIRD и Quagga е, че конфигурацията на BIRD е отделена от демона и се забелязва повече насочена към структура, подобна на код.

Например, с BIRD, ако искате да постигнете настройка за превключване на отказ, ще използвате следния блок в bird.confконфигурационния файл:

export filter {
    bgp_path.prepend(asnumber);
    accept;
};

Както можете да видите, конфигурацията изглежда донякъде като кодов блок, както изглежда с език за програмиране. С Quagga ще добавяте или променяте настройките, като използвате програма в самия демон.

В крайна сметка най-вече се свежда до лични предпочитания и няма „победител“ или софтуер, който трябва да използвате. Като цяло, BIRD е по-лесен за настройка поради лесния за научаване начин на конфигуриране и е широко поддържан от общността.

Освен това, в полза на Quagga, като цяло, в работеща производствена среда, Quagga е по-лесно да се преконфигурира. С BIRD ще трябва да редактирате съответните конфигурационни файлове и да накарате демона да презареди настройките си. С Quagga можете да влезете в нейната обвивка, да преконфигурирате настройките без много допълнителна работа или суетене. Приемствеността играе голяма роля тук, но на практика режийните разходи са минимални. В повечето инфраструктури няма да е необходимо да преконфигурирате тези настройки твърде много, така че вероятно е добра идея да прецените по други аспекти на софтуера, вместо само по тази подробност.

Точно като BIRD, Quagga е кръстосано съвместим в множество дистрибуции. Ако някога искате да промените разпределението(ите), използвани за рутерите, на теория можете просто да преместите конфигурациите си и нищо не трябва да се променя или няма да се промени.

В това ръководство ще опишем процеса на инсталиране и конфигуриране на Quagga. В случай, че искате да опитате и BIRD, опитайте да следвате ръководството " Конфигуриране на BGP на Vultr ".

Както споменахме, има няколко добри други алтернативи, но по-голямата част от тях имат някои недостатъци, които не им позволяват да се използват в производствена среда. Например, реализацията на BGP на XORP е относително остаряла, което обикновено не е добро начало за създаване на чисто нова инфраструктура (въпреки че нейната BGP реализация е стабилна).

В сравнение с много алтернативи, BIRD има нисък отпечатък на паметта и не е много ресурсоемък. От друга страна, завъртането или надграждането до по-мощен облачен екземпляр на Vultr отнема само няколко щраквания от контролния панел на Vultr.

IPv4 и IPv6

Vultr поддържа обявяване на IPv4 и IPv6 IP пространство. Внедряването на BGP на Quagga е сравнително актуално, което позволява и възможността за обявяване на IPv6 пространство.

Въпреки че това ръководство е насочено към обявяване на IPv4 пространство, можете да използвате IPv6 реализацията на Quagga и да използвате инструкциите на тази статия. Това обаче не е изрично документирано, така че моля, обърнете се към алтернативен източник за това.

Важна забележка

За да можете да оцелеете без BGP рутер за преминаване на трафик, най-добрият начин да обявите вашето IP пространство е както следва:

  • Обявете вашия /24 (или по-голям) от специален екземпляр на Quagga;
  • Обявете, че трафикът на отделни /32 (или по-големи) от екземплярите трябва да бъде насочен към самите тях

По този начин ще имате настройка на един екземпляр за обявяване на припокриващата се подмрежа за всички IP адреси, които разбивате в отделни /32 или по-големи. Използвайки този дизайн, вие можете бързо да обявявате IP адреси и да насочвате трафика към правилните инстанции.

Естествено, вие сте свободни да експериментирате с множество подходи за обявяване на вашето IP пространство по ваш вкус. На теория употребата е неограничена и не познава граници. Имайте предвид, че сървърите на Vultr се самоуправляват и ние не можем да ви помогнем с каквито и да било проблеми, които могат да възникнат. Освен това, не може да навреди да използвате решение, поддържано от Vultr и общността, така че ако възникнат проблеми, можете бързо да определите тяхната основна причина.

Стъпка 1: Деактивиране на SELinux

Силно препоръчваме да деактивирате SELinux, за да предотвратите спирането му да функционира Quagga. Имаме ръководство за деактивиране на SELinux, моля, следвайте го и се върнете към този урок, след като SELinux е деактивиран: Деактивиране на SELinux на CentOS 7 .

Стъпка 2: Инсталиране на Quagga

Можем да продължим, като инсталираме Quagga, използвайки yum:

yum install quagga

Ако получите грешка, особено при ново внедрен екземпляр, опитайте:

yum update

Конфигурирайте systemdтака, че Zebra (основният демон) да се стартира автоматично при стартиране:

systemctl enable zebra

Накрая стартирайте Zebra:

systemctl start zebra

Трябва да повторим процеса за BGPd, ​​както следва:

systemctl start bgpd
systemctl enable bgpd

Зебра и BGPd

Quagga се състои от различни демони, позволяващи маршрутизиране. Тъй като ще използваме BGP, ще трябва да използваме демони Zebra и BGPd. Zebra и BGPd работят заедно. Когато някой от тях спре да функционира, вашите маршрути няма да се рекламират повече, което на практика прави цялото ви IP пространство недостъпно.

Quagga поддържа множество протоколи за маршрутизиране, наред с други OSPF и BGP. Ядрото на топологията на техните реализации е Zebra. Zebra е основният демон, който е слой, който се грижи за комуникацията на ядрото на UNIX (TCP) с клиентите на Quagga. В задната част Zebra представя Zserv API, който позволява на тези протоколи за маршрутизиране да съобщават актуализации на маршрутизиране. Една от реализациите с API на Zserv е BGP.

Версията по подразбиране, използвана от Quagga за BGP, е BGPv4+, която включва поддръжка на семейството на адреси за мултикаст и IPv6.

Стъпка 3: Конфигуриране на BGP рутера

За да конфигурирате BGP рутера по ваш вкус, ще използваме vtyshобвивката. Първо, копирайте примерния BGP конфигурационен файл:

cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf

След като файлът бъде копиран, въведете обвивката:

vtysh

В някои по-стари версии на Quagga може да намерите настройка с AS7675. Нямаме нужда от това, тъй като ще противоречи само на нашата настройка, така че трябва да го изтрием, ако съществува. Проверете дали тази конфигурация съществува във вашата инсталация на Quagga, като изпълните следната команда в обвивката :

show running-config

Ако това върне низ с или включващ "рутер bgp 7675", изтрийте го, като изпълните:

configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization

Сега трябва да въведете BGP информацията, която Vultr ви е предоставил.

neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"

Най-вероятно имате нужда от парола, за да установите BGP сесията. Въведете го:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

И накрая, ако сте сигурни, че искате да напишете тези промени (приложимо само ако работите върху производствена настройка), изпълнете следното, за да позволите на промените да влязат в сила:

write

Уверете се, че промените са били успешни, като изпълните:

show ip bgp summary

Сега трябваше успешно да установим BGP сесия.

Стъпка 4: Обявяване на вашето IP пространство

Въпреки че създадохме BGP сесия, все още не обявяваме никакви маршрути или IP адреси, така че това няма да има ефект на практика. За щастие настройването на IP пространството за обявяване е сравнително лесен процес.

В vtysh, изпълнете следните команди, за да постигнете това:

configure terminal
router bgp YOURAS

Сега сте в конфигурацията. Уверете се, че имате под ръка IP пространството, което искате да обявите, и го въведете:

network YOURSUBNET/CIDR

Например, валидният вход ще бъде:

network 185.92.220.0/23

Естествено, това няма да работи във вашата конкретна настройка, тъй като горното IP пространство е собственост на Vultr. Сменете това и всичко ще работи добре.

Излезте и запазете промените:

exit
write

Проверете дали вашите префикси са били успешно обявени:

show ip bgp neighbors NEIGHBORIP advertised-routes

Опитайте се да пингувате IP адрес от подмрежата и се опитайте да извършите трасиране извън мрежата.

Отстраняване на неизправности

Отстраняването на неизправности на Quagga до голяма степен е извън обхвата на тази статия, но ако изпитвате затруднения, винаги можете да опитате да спрете своя екземпляр на Quagga и да опитате отново да обявите IP пространството чрез BIRD, за да можете да изключите редица възможни причини.

Когато BGP не функционира правилно на Quagga, както и на BIRD, има вероятност вашата защитна стена да не е конфигурирана правилно. Порт 179 трябва да е отворен. На CentOS 7 опитайте временно да деактивирате защитната стена:

systemctl stop firewalld

Ако използвате iptables, опитайте:

service iptables stop

След това опитайте отново да инициирате BGP сесията. Ако виси на „Idle“, „Connect“ или „Active“, има вероятност портът все още да е блокиран. Със състоянието 'Established' BGP сесията е настроена успешно и се показват рекламираните маршрути.

Quagga вече е инсталиран на вашия сървър и трябва да функционира. През първите няколко дни от обявяването на вашето собствено IP пространство трябва да наблюдавате неговата функционалност, за да предотвратите нефункционирането на цялата ви инфраструктура.

Това завършва нашия урок за Quagga, благодаря ви, че прочетохте. За да научите повече за функцията Bring Your IP Space на Vultr, моля, насочете се към BGP страницата .


Leave a Comment

Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

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

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на 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 машини. Прочетете тази статия, за да научите повече