Что такое Remotely-Triggered Black Hole (RTBH) Routing?

cdp

Remotely-Triggered Black Hole (RTBH) Routing

Механизм Remotely-Triggered Black Hole (RTBH) routing один из интересных применений протокола BGP в качестве защитного механизма в сетях операторов связи. Один из способов его применения — защита от атак типа «отказ в обслуживании» (DDoS) будет описан в этой статье.

Картинка снизу представляет из себя очень упрощенную схему сети оператора связи.

rtbh

Маршрутизаторы 1 — 4 представляют из себя ядро сети, а маршрутизатор 9 предназначен для инъекции маршрута RTBH. OSPF используется в ядре сети для обмена маршрутами. Каждый маршрутизатор так-же поддерживает iBGP связность с другими маршрутизаторами и маршрутизатором 9. Сервер с адресом 172.16.10.100 представляет из себя цель для DDoS атаки.

Представим, что DDoS атака запущена из Интернет на сервер 172.16.10.100. Пропускная способность сети на столько деградировала в результате атаки, что это повлияло на функционирование всех сервисов сети что, появилась необходимость блокировать трафик этой атаки на подступах к сети. В связи с распределенной природой атаки (трафик поступает от сотен или тысяч IP адресов) — необходимо блокировать на границе сети весь трафик направленный жертве. Для достижения данного результата можно использовать BGP совместно с механизмами RTBH.

Шаг 1: Подготовка маршрута в Null 0
В идеале, первые два шага по настройке RTBH должны быть предприняты задолго до начала атаки.

Принцип работы RTBH заключается в анонсе в BGP специально помеченного маршрута, который заставляет маршрутизаторы на границе сети отправлять трафик для этого префикса в Null0 т.е. отбрасывать его. Создадим маршрут в Null0 для next-hop 192.0.2.1:

R1(config)# ip route 192.0.2.1 255.255.255.255 Null0

С этого момента весь трафик направленный 192.0.2.1/32 будет отброшен маршрутизатором. Этот маршрут необходимо добавить на все пограничные маршрутизаторы (R1 и R2) в нашем примере.

Помните, что в качестве адреса назначения может быть использован любой свободный адрес. Для удобства мы использовали IP из reserved Test-Net диапазона (see RFC 3330), т.к этот маршрут никогда не появится в таблицах маршрутизации.

Шаг 2: Подготовка Route-map
Как и первый шаг, эта конфигурация должна быть готова до начала атаки.

Route-map настроен таким образом, чтобы в маршрутах помеченных тегом 666 изменялся next-hop адрес:

R9(config)# route-map RTBH
R9(config-route-map)# match tag 666
R9(config-route-map)# set ip next-hop 192.0.2.1
R9(config-route-map)# set origin igp
R9(config-route-map)# set community no-export

Это и есть ключевой компонент RTBH: любой маршрут анонсированный на пограничный маршрутизатор с параметром next-hop 192.0.2.1, заставит этот маршрутизатор отбрасывать трафик который передается по этому маршруту т.к. в прошлом шаге мы настроили маршрут в null 0 для этого next-hop.

Включите static route redistribution в BGP процесс для того, чтобы rout-map заработал:

R9(config)# router bgp 65100
R9(config-router)# redistribute static route-map RTBH

Шаг 3: Создайте статический маршрут к жертве на управляющем маршрутизаторе 9
В момент обнаружения атаки, в случае принятия решения заблокировать трафик к жертве, создайте статический маршрут к жертве с тегом 666 на управляющем маршрутизаторе (R9):

R9(config)# ip route 172.16.10.100 255.255.255.255 Null0 tag 666

Заметьте, что no-export community применено для данного маршрута, для того, чтобы избежать анонса этого маршрута за пределы AS.

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

R1# show ip route 172.16.10.100
Routing entry for 172.16.10.100/32
  Known via "bgp 65100", distance 200, metric 0, type internal
  Last update from 192.0.2.1 00:06:14 ago
  Routing Descriptor Blocks:
  * 192.0.2.1, from 10.0.99.9, 00:06:14 ago
  Route metric is 0, traffic share count is 1
  AS Hops 0

R1# show ip route 192.0.2.1
Routing entry for 192.0.2.1/32
  Known via "static", distance 1, metric 0 (connected)
  Routing Descriptor Blocks:
  * directly connected, via Null0
  Route metric is 0, traffic share count is 1

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

Leave a Reply

Your email address will not be published.





Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Яндекс.Метрика