Настройка 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 .



Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

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

Как установить и настроить OrientDB Community Edition для CentOS 7

Как установить и настроить OrientDB Community Edition для CentOS 7

OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить MaraDNS на CentOS 6

Как установить MaraDNS на CentOS 6

MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns

Установка Netdata в CentOS 7

Установка Netdata в CentOS 7

Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Кластеризация RabbitMQ на CentOS 7

Кластеризация RabbitMQ на CentOS 7

RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Установите Elgg на CentOS 7

Установите Elgg на CentOS 7

Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на

Настройте Sails.js для разработки на CentOS 7

Настройте Sails.js для разработки на CentOS 7

Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Изучение 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. Прочтите эту статью, чтобы узнать больше