Настройка BGP с использованием Quagga на Vultr (CentOS 7)

Функция Vultr 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 отделена от демона и заметно больше направлена ​​на структуру, подобную коду.

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

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

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

В конце концов, это в основном сводится к личным предпочтениям, и нет «победителя» или программного обеспечения, которое вы должны использовать. В целом, BIRD проще в настройке благодаря простому в освоении способу настройки и широко поддерживается сообществом.

Кроме того, в пользу Quagga, как правило, в работающей производственной среде, Quagga легче перенастроить. С BIRD вам нужно будет отредактировать соответствующие файлы конфигурации, и демон перезагрузит свои настройки. С Quagga вы можете войти в его оболочку, перенастроить настройки без лишних усилий или суеты. Непрерывность играет здесь большую роль, но на практике накладные расходы минимальны. В большинстве инфраструктур вам не нужно слишком много переконфигурировать эти настройки, поэтому, вероятно, будет хорошей идеей судить по другим аспектам программного обеспечения, а не только по этой детали.

Как и BIRD, Quagga совместима с несколькими дистрибутивами. Если вы когда-нибудь захотите изменить дистрибутив (ы), используемые для маршрутизаторов, теоретически вы можете просто перейти через свои конфигурации, и ничего не нужно будет менять или изменится.

В этом руководстве мы опишем процесс установки и настройки Quagga. Если вы хотите попробовать BIRD, попробуйте следовать руководству « Настройка BGP на Vultr ».

Как уже упоминалось, есть несколько хороших альтернатив, но у большей части из них есть некоторые недостатки, мешающие их использованию в производственной среде. Например, реализация XORP BGP является относительно устаревшей, что, как правило, не является хорошим началом для создания совершенно новой инфраструктуры (хотя ее реализация BGP стабильна).

По сравнению со многими альтернативами, BIRD занимает мало памяти и не очень ресурсоемкий. С другой стороны, раскрутка или обновление до более мощного облачного экземпляра Vultr занимает всего несколько щелчков мыши на панели управления Vultr.

IPv4 и IPv6

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

Хотя это руководство предназначено для объявления пространства IPv4, вы можете использовать реализацию Quagga по IPv6 и использовать инструкции этой статьи. Это явно не задокументировано, поэтому, пожалуйста, обратитесь к альтернативному источнику для этого.

Важная заметка

Чтобы иметь возможность выжить без маршрутизатора 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. Зебра и BGPd работают вместе. Когда какой-либо из них перестанет работать, ваши маршруты больше не будут объявляться, что фактически сделает все ваше IP-пространство недоступным.

Quagga поддерживает несколько протоколов маршрутизации, в том числе OSPF и BGP. Ядром топологии их реализации является Zebra. Zebra - это основной демон, который представляет собой уровень, обеспечивающий взаимодействие ядра UNIX (TCP) с клиентами Quagga. На бэкэнде Zebra представляет Zserv API, который позволяет этим протоколам маршрутизации обмениваться обновлениями маршрутизации. Одной из реализаций с Zserv API является 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

Если это возвращает строку с или включающим «router 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», существует вероятность, что порт все еще заблокирован. В состоянии «Установлено» сеанс BGP успешно настроен и показаны объявленные маршруты.

Quagga теперь установлен на вашем сервере и должен работать. В течение первых нескольких дней объявления вашего собственного IP-пространства вы должны следить за его функциональностью, чтобы вся ваша инфраструктура не функционировала.

На этом мы завершаем наш урок по Quagga, спасибо за чтение. Чтобы узнать больше о функции Vultr Bring Your IP Space, перейдите на страницу BGP .

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

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

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

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше