IP фильтрация (BGP Remote Triggered Black Hole)

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (35)

просмотр истории страницы
{color:#ff0000}{*}ЧЕРНОВИК{*}{color}

{toc}

{code}

Выберите BGP Blackhole \-> Настройка BGP Blackhole. !BGP настройка.png|border=1!

!1.png|border=1!


*Включить BGP Blackhole* \- опция влияет на запуск самого контейнера BGP Blackhole. Если её выключить - ни один сервис внутри этого контейнера (ни BGP, ни OSPF, ни Zebra) работать не будет.

Пути до шаблонов менять не требуется, это редкий случай, когда техническая поддержка подтвердит, что другого способа настроить что-то специфичное нет.
*Шаблон конфига Zebra* и *Шаблон конфига bgpd* менять не требуется в 99% случаев. Оставшийся 1% - когда требуется настроить что-то специфичное, что не будет вноситься в продукт никогда.

Пароли установить отличные от стандартных и безопасные.
*Пароль Zebra* и *Пароль bgpd* нужно установить отличные от стандартных и безопасные.

*Router ID (reductor)*, как правило, совпадает с IP адресом Carbon Reductor.

Список соседей по BGP  имеет формат:
*Номер локальной AS BGP* \- номер приватной AS, используемой сервером Carbon Reductor. Диапазон возможных значений для приватных AS: 64512 - 65534 включительно.

*Список маршрутизаторов* \- это список соседей по BGP  имеет формат:

{code}
IP1:AS1 IP2:AS2
разделитель между записями - пробел.

*Список маршрутизаторов по IPv6* \- список соседей BGP по протоколу IPv6, имеет формат:

{code}
IP1 AS1, IP2 AS2
{code}

*Включить интеграцию по BGP* \- опция включена по умолчанию, выключение требуется в случае если вы используете контейнер BGP Blackhole только для получения маршрутов до абонентов по OSPF.

*Делить крупные подсети до префикса* \- эта опция требуется, если вышестоящий провайдер присылает вам маршруты, пересекающиеся с блокируемыми с меньшим префиксом, в результате чего они получают больший приоритет, чем маршруты анонсируемые Carbon Reductor, из-за чего последние не применяются и подсети не блокируются.


Нажать назад, применить настройки:

zebra и bgpd должны перезапуститься без ошибок:

  !Screen Shot 2017-03-14 at 14.12.36.png|border=1!


h2. Пример настройки соседа редуктора по BGP (самого роутера, не редуктора)
h2. Пример настройки соседа Reductor-а по BGP

{color:#ff0000}{*}Ещё раз - самого роутера, не редуктора\!*{color}
{note}
Настройка производится именно на маршрутизаторе, не на Reductor-е
{note}

Конфигурация роутеров может отличаться. В качестве примера - Linux с Quagga.
Конфигурация роутеров может отличаться.

h3. Linux роутер с Quagga.

bgpd.conf

!
router bgp 65002
bgp router-id 10.0.0.12
redistribute static
neighbor 10.0.0.21 remote-as 65001
neighbor 10.0.0.21 ebgp-multihop 8
neighbor 10.0.0.21 soft-reconfiguration inbound
neighbor 10.0.0.2 route-map BLACKHOLE ! Это требуется, чтобы запрещённый трафик не шёл на редуктор, а дропался на самом роутере.
neighbor 10.0.0.1 route-map BLACKHOLE in
!
Это требуется, чтобы запрещённый трафик не шёл на редуктор, а дропался на самом роутере.
!
ip prefix-list ANY permit any
!
{code}
hostname border
interface lo666
ip address 192.168.255.255/32
!
{code}

Можно настроить доступ к сессию BGP и без создания интерфейса lo666 и из route-map убрать "set ip next-hop 192.168.255.255". Тогда запрещённый трафик будет идти на редуктор и дропаться уже там.

В примере есть запись 

{code}
set local-preference 10
{code}
Она требуется для того, чтобы маршрут от редуктора точно попал в таблицу маршрутизации, потому что у него будут высший приоритет, но в зависимости правил действующих в вашей сети эта настройка может меняться.

h3. Cisco 3750

Нужно заменить следующие значения:

XXXXX - номер приватной AS Cisco-роутера.

x.x.x.x - IP сервера Carbon Reductor.

65001 - номер приватной AS Carbon Reductor, указанный при настройке BGP Blackhole.

{code}
!
interface Null0
no ip unreachables
!
interface Loopback666
ip address 192.168.255.255 255.255.255.255
!
ip community-list standard black-hole permit 65001:666
!
router bgp XXXXX
neighbor x.x.x.x 0 remote-as 65001
neighbor x.x.x.x description REDUCTOR
neighbor x.x.x.x route-map BLACK-HOLE in
!
!
ip route 192.168.255.255 255.255.255.255 Null0
!
!
route-map BLACK-HOLE permit 10
match community black-hole
set ip next-hop 192.168.255.255
set origin igp
set community no-export
!
{code}

{info}
Интеграции с другими роутерами приведены в статье: [https://github.com/carbonsoft/reductor_bgp_rtbh]
{info}

*Пример настройки соседа Reductor-а по BGP для IPv6:*

{code}

neighbor fc01::1 remote-as 65001
no neighbor fc01::1 activate


address-family ipv6
neighbor fc01::1 activate
neighbor fc01::1 ebgp-multihop 8
neighbor fc01::1 soft-reconfiguration inbound
neighbor fc01::1 route-map BLACKHOLE_V6 in
exit-address-family

ipv6 prefix-list ANY_V6 permit any

route-map BLACKHOLE_V6 permit 10
match ipv6 address prefix-list ANY_V6
set ipv6 next-hop local fc01::ffff
set local-preference 10
set community 65002:666 additive

zebra.conf

interface lo
ipv6 address fc01::ffff/128
{code}

h2. Подводные камни и как их обходить

Сейчас мы ищем решение, которое позволит обойти эту проблему. Временным решением может быть разворачивание отдельного редуктора на виртуальной машине (мы дадим бесплатную лицензию), которая занимается тем, что скачивает и обрабатывает списки, к трафику не имеет никакого отношения, а основное её предназначение - это контейнер BGP Blackhole. Таким образом получаем двойную фильтрацию и повышение надёжности: роутер дропает пакеты, а основной редуктор посылает ресеты на все запрещённые IP адреса (в итоге пользователю не надо будет дожидаться таймаута установки соединения). Можно это развернуть не на виртуальной машине, а не резервном сервере с Carbon Reductor, который также занимается обработкой того же зеркала трафика.

02.10.2017 28.03.2018

Найдено решение с запуском quagga версии 1.1.1 c добавлением нескольких таблиц маршрутизации. Благодаря этому не появляется null-маршрутов в основной таблице на редукторе. Но эту схему требуется ещё проверить. Схема проверена и работает исправно.