Сегодня мы продолжаем говорить о точке обмена трафиком DataLine-IX. Первая часть была посвящена устройству нашей точки обмена трафиком. В этом посте расскажем про пару инструментов, которые пригодятся ее участникам в работе.
Одно из помещений Meet-Me-Room на площадке OST.
Личный кабинет DataLine-IX сделан на базе open-source проекта IXP Manager. Здесь собирается статистика по трафику участника и информация по связности с другими участниками.
Главная страница Личного кабинета.
Скроллом статистика по трафику группируется по 12 часам, суткам, неделям и месяцам. Анализировать можно не только bit rate, но и packet rate, ошибки, количество отброшенных пакетов.
Здесь же можно посмотреть статистику распределения своего трафика по другим участникам DataLine-IX.
Через Личный кабинет участник может запросить прямое присоединение (private peering) к другим пирам.
Во вкладке “Интерфейсы” содержится информация о параметрах подключения участника к DataLine-IX.
BGP Сommunity – это своего рода тэг, которым помечается маршрут. Когда RS получает маршрут с community, то он может выполнять определенные действия, основанные на значении атрибута.
Обычно community записывается в виде ASN:VALUE, т.е. номер автономной системы и значение community, которое определяет политику маршрутизации трафика. Для IX обычно используется другой формат: ACTION:VARIABLE, т.е. действие и переменная. ‘0’ в качестве действия означает запрет на анонсирование, номер AS DataLine-IX – разрешение.
По номеру AS нашей IX есть один нюанс: изначально он 203921, но поскольку BGP standard community в качестве ASN или Value могут принимать только 2 байта, то используется mapping (перевод) четырехбайтных ASN в двухбайтные. Поэтому номер AS DataLine-IX 203921 мапится в 64921.
С помощью BGP Community участники DataLine-IX могут управлять исходящими и входящими анонсами маршрутов, отражать DDoS-атаки.
Управление исходящими и входящими анонсами маршрутов. На RS DataLine-IX уже настроены фильтры для управления входящими и исходящими анонсами. Участнику остается только прописать в своих анонсах соответствующие community в сторону точки обмена трафиком.
Информация по community для DataLine-IX на RIPE NCC.
Вот пример фильтрации исходящих анонсов с помощью community:
Участник DataLine-IX – AS 49063 – хочет анонсировать маршруты всем участникам в Киеве, кроме участника AS 35297, и запрещает анонс всем участникам по всей Украине.
BGP COMMUNITY в анонсируемых префиксах будут выглядеть так:
0:35297 – запрет на анонс маршрутов для участника АS 35297.
64921:64611 – анонс разрешен всем участникам в Киеве.
0:64610 – запрет на анонс на всю Украину.
С входящими анонсами проще. Все маршруты прилетают уже с определенным community. Каждый соответствует какому-то городу и региону. Участник на своей стороне просто решает, принимать их или нет:
64921:64700 – анонсы маршрутов из России.
Стоит отметить, что геопринадлежность определяется исключительно местоположением оборудования участника, которое устанавливает BGP сессию с RS.
Для наглядного примера возьмем фрагмент конфигурации BGP на маршрутизаторе Cisco. Исходя из вышеуказанных правил, настройки буду выглядеть следующим образом:
Защита от DDoS-атак в IX с помощью BGP Blackhole. BGP Blackhole позволяет фильтровать вредоносный трафик еще до попадания в AS участника, т. е. на портах IX.
Этот способ предназначен для отражения атак на полосу пропускания каналов, в нашем случае – это линк между участником и DataLine-IX. При использовании BGP Blackhole участник жертвует доступностью хоста, зато DDoS не забьет весь канал и не затронет остальные сервисы.
В реализации BGP Blackhole также применяется community: маршруты для атакуемого хоста помечаются специальным community – 0:666. Во время атаки маршрут с этим community анонсируется на RS, который распространяет маршрут остальным участникам, подменяя Next-hop на специально выделенное значение.
Рассмотрим работу BGP Blackhole пошагово. Представим, что атакуемый хост находится в AS 64512 (IP 10.10.10.10):
Ну и конечно же у DataLine-IX есть свой Looking Glass. Здесь в режиме онлайн можно посмотреть:
Это всё, что мы хотели рассказать об инструментах DataLine-IX. Задавайте вопросы в комментариях, если что-то осталось за кадром.
Одно из помещений Meet-Me-Room на площадке OST.
Личный кабинет
Личный кабинет DataLine-IX сделан на базе open-source проекта IXP Manager. Здесь собирается статистика по трафику участника и информация по связности с другими участниками.
Главная страница Личного кабинета.
Скроллом статистика по трафику группируется по 12 часам, суткам, неделям и месяцам. Анализировать можно не только bit rate, но и packet rate, ошибки, количество отброшенных пакетов.
Здесь же можно посмотреть статистику распределения своего трафика по другим участникам DataLine-IX.
Через Личный кабинет участник может запросить прямое присоединение (private peering) к другим пирам.
Во вкладке “Интерфейсы” содержится информация о параметрах подключения участника к DataLine-IX.
BGP Community Tool
BGP Сommunity – это своего рода тэг, которым помечается маршрут. Когда RS получает маршрут с community, то он может выполнять определенные действия, основанные на значении атрибута.
Обычно community записывается в виде ASN:VALUE, т.е. номер автономной системы и значение community, которое определяет политику маршрутизации трафика. Для IX обычно используется другой формат: ACTION:VARIABLE, т.е. действие и переменная. ‘0’ в качестве действия означает запрет на анонсирование, номер AS DataLine-IX – разрешение.
По номеру AS нашей IX есть один нюанс: изначально он 203921, но поскольку BGP standard community в качестве ASN или Value могут принимать только 2 байта, то используется mapping (перевод) четырехбайтных ASN в двухбайтные. Поэтому номер AS DataLine-IX 203921 мапится в 64921.
С помощью BGP Community участники DataLine-IX могут управлять исходящими и входящими анонсами маршрутов, отражать DDoS-атаки.
Управление исходящими и входящими анонсами маршрутов. На RS DataLine-IX уже настроены фильтры для управления входящими и исходящими анонсами. Участнику остается только прописать в своих анонсах соответствующие community в сторону точки обмена трафиком.
Информация по community для DataLine-IX на RIPE NCC.
Вот пример фильтрации исходящих анонсов с помощью community:
Участник DataLine-IX – AS 49063 – хочет анонсировать маршруты всем участникам в Киеве, кроме участника AS 35297, и запрещает анонс всем участникам по всей Украине.
BGP COMMUNITY в анонсируемых префиксах будут выглядеть так:
0:35297 – запрет на анонс маршрутов для участника АS 35297.
64921:64611 – анонс разрешен всем участникам в Киеве.
0:64610 – запрет на анонс на всю Украину.
С входящими анонсами проще. Все маршруты прилетают уже с определенным community. Каждый соответствует какому-то городу и региону. Участник на своей стороне просто решает, принимать их или нет:
64921:64700 – анонсы маршрутов из России.
Стоит отметить, что геопринадлежность определяется исключительно местоположением оборудования участника, которое устанавливает BGP сессию с RS.
Для наглядного примера возьмем фрагмент конфигурации BGP на маршрутизаторе Cisco. Исходя из вышеуказанных правил, настройки буду выглядеть следующим образом:
Защита от DDoS-атак в IX с помощью BGP Blackhole. BGP Blackhole позволяет фильтровать вредоносный трафик еще до попадания в AS участника, т. е. на портах IX.
Этот способ предназначен для отражения атак на полосу пропускания каналов, в нашем случае – это линк между участником и DataLine-IX. При использовании BGP Blackhole участник жертвует доступностью хоста, зато DDoS не забьет весь канал и не затронет остальные сервисы.
В реализации BGP Blackhole также применяется community: маршруты для атакуемого хоста помечаются специальным community – 0:666. Во время атаки маршрут с этим community анонсируется на RS, который распространяет маршрут остальным участникам, подменяя Next-hop на специально выделенное значение.
Рассмотрим работу BGP Blackhole пошагово. Представим, что атакуемый хост находится в AS 64512 (IP 10.10.10.10):
- Администратор AS 64512 создает маршрут (10.10.10.10/32), помеченный community 0:666, и анонсирует этот префикс в сторону RS.
- RS, видя community 0:666, подменяет Next Hop на специально зарезервированный адрес 185.1.52.66 и распространяет этот машрут остальным участникам (на картинке AS 64513). В дальнейшем RS будет отвечать на ARP-запросы для хоста 185.1.52.66 MAC-адресом 0066.0066.0066.
- Если из AS 64513 идет трафик на атакуемый IP 10.10.10.10, то маршрутизатор в AS 64513 отправляет трафик с DMAC 0066.0066.0066.
- Далее трафик «отбрасывается» на порту, в который подключен AS 64513, и не попадает на порт атакуемого участника.
Схема работы BGP Blackhole.
Looking Glass
Ну и конечно же у DataLine-IX есть свой Looking Glass. Здесь в режиме онлайн можно посмотреть:
- Состояние BGP-сессий всех участников.
UP – сессия установлена, Down – сессия не установлена, Start/Passive – сессия настроена со стороны DataLine-IX, и мы ожидаем, когда участник отправит нам запрос на установлении сессии.
- детальную статистику по отдельным маршрутам для IPv4 и IPv6.
- отображение AS PATH в виде графа.
Это всё, что мы хотели рассказать об инструментах DataLine-IX. Задавайте вопросы в комментариях, если что-то осталось за кадром.
Поделиться с друзьями
Комментарии (12)
ugenk
17.12.2016 22:38А LG самописный?
MrRitm
29.03.2017 11:59+1Очень люблю подобные статьи. Интересно. Только не совсем понятно, какую цель приследовал Автор? Если для саморазвития или решения каких-то задач которые не решает робот продающийся в магазине за 10-15к, то не понял какие именно? А если была задача сэкономить и получить аналогичную «магазинной» версии функциональность, так ту вроде экономией не очень пахнет…
Itreek
19.12.2016 10:44Планируете ли подключение участников на других площадках Москвы? ММТС-9 например? )
dataline
19.12.2016 11:15Уже сейчас мы можем подключать к DataLine-IX через наши точки присутствия на ММТС-9 с помощью IP/MPLS сети. Когда наберём критическую массу, разместим там железо DataLine-IX.
hexman
Если не ошибаюсь, Вы писали, что сервера маршрутизации у Вас 2. Как организовано и работает резервирование? (я пологаю 2 их именно для этих целей).
dataline
Сервера полностью независимы друг от друга. Участник устанавливает сессии с каждым из RS. При падении/обслуживании одного сервера второй остается полностью работоспособным и обслуживает клиентов.
hexman
т.е. каждый пир имеет по 2 сессии?
Какое ПО используется для обслуживания BGP, Quagga?
P.s. думаю найдётся что рассказать и о технических моментах и их решениях, возникших проблем и вопросов, относительно организованной вами системы. Это я на 3ю часть намекаю? :)
dataline
Да, каждый пир имеет по 2 сессии. Сейчас BGP «крутится» на BIRD, но предполагается миграция одного из серверов на иную платформу.
К варианту с Quagga мы подходим острожно, т. к. в сообществе пользователей есть мнения о плохой масштабируемости, касающейся возможностей поддержки большого количества BGP сессий.
Третью часть не обещаю, но подумаю).
hexman
Имеется в виду OS или то, что обслуживает BGP. Если не секрет, о каком ПО идёт речь?
Интересно было б почитать. ) Уверен у Вас всё получится.
Так же было б интересно почитать о тех. поддержке. Какие знания требуются кандидатам? Как организована. Ведь поддержка совсем отличается от типичного ISP. Быть может есть какая то методика отбора. Тут уже и 4й частью можно обзавестись.
Ps. Лично мне эта тема интересна :)
Всех благ Вам в вашем деле.
dataline
Под миграцией подразумевается и иная ОС, и иной routing daemon. Подробностей пока сказать не могу, т. к. активная фаза тестирования еще впереди.
Рады, что статьи оказались интересными для вас :). Постараемся еще что-нибудь написать на эту тему в новом году.
foxmuldercp
А чем Bird не подошел, можете рассказать?
dataline
Всем подошел, но нам нужна была диверсификация :).