Как работает BGP-фабринг прокси и как детектят аномалии маршрутизации
Содержание
Что такое BGP-фабринг
BGP (Border Gateway Protocol) — протокол динамической маршрутизации. Интернет без него — дикий зоопарк из мелких сетей, которые не знают, как друг к другу стучаться. BGP решает: кто кому и через кого передает пакеты.
Фабринг — это подмена. BGP-фабринг — когда провайдер или хостинг объявляет чужие IP-адреса как свои. Технически легально? Нет. Работает? Ещё как.
Прокси на BGP — это когда ты арендуешь не конкретный IP, а целый диапазон. Сервер говорит BGP-соседям: "Эти адреса теперь мои". И трафик начинает течь к тебе. Прямо как смена прописки без переезда.
Как работает BGP-фабринг на прокси
Возьмём типовую схему. Арендуешь VPS в Германии. Покупаешь блок /24 (256 адресов) у брокера IP. Поднимаешь BGP-сессию с аплинком.
```bash
router bgp 65001
bgp router-id 10.0.0.1
neighbor 10.0.0.2 remote-as 65000
network 185.100.0.0 mask 255.255.255.0
```
Всё. Теперь 185.100.0.0/24 — твой. Трафик на любой адрес из этого блока идёт на твой сервер. Дальше — прокси-софт (3proxy, Squid, HAProxy) разруливает запросы.
Прелесть в том, что ты не привязан к одному дата-центру. Хочешь — анонсируй блок из Нидерландов. Надоело — переключай на США. Минута простоя, если BGP-пинг нормальный.
Как детектят аномалии маршрутизации
Детект — это игра в кошки-мышки. Провайдеры и антифрод-системы смотрят на несколько вещей.
**Первое — MOAS (Multiple Origin AS).** Одна и та же сеть анонсируется из разных AS. Если 185.100.0.0/24 вдруг появляется у AS12345 и AS67890 — это подозрительно. RIPE, ARIN и другие регистраторы ловят такие штуки.
**Второе — AS_PATH.** BGP-маршрут содержит цепочку AS, через которые прошёл анонс. Если путь слишком короткий или странный — флаг. Например, анонс из AS65001 с путём "65001 65000" вместо нормального "65001 65000 1299 174" — явный фабринг.
**Третье — временные паттерны.** Фабберы часто анонсируют блоки на пару часов. Делают дело — убирают. Системы мониторинга видят: сеть то появляется, то исчезает. Это аномалия.
Таблица: методы детекта BGP-фабринг
| Метод | Что смотрят | Точность | Ложные срабатывания |
|-------|-------------|----------|---------------------|
| MOAS | Количество AS для одной сети | Высокая | Редко (легитимный anycast) |
| AS_PATH | Длина и структура пути | Средняя | Часто (изменения маршрутов) |
| Временные окна | Частота анонсов/отзывов | Высокая | Редко (тестирование) |
| RPKI | Подпись ROA | Очень высокая | Почти нет |
| IRR | Соответствие регистрации | Высокая | Иногда (устаревшие записи) |
RPKI — главный враг фабберов
RPKI (Resource Public Key Infrastructure) — это криптографическая подпись. Владелец IP-блока создаёт ROA (Route Origin Authorization) — документ, который говорит: "Только AS65001 может анонсировать эту сеть".
Провайдеры, которые фильтруют по RPKI, просто блокируют анонсы без подписи. Или с неправильной. В Европе уже ~40% сетей применяют RPKI-валидацию. В Азии — меньше, но растёт.
Пример проверки через curl:
```bash
curl -s "https://rpki-validator.ripe.net/api/v1/validity/185.100.0.0/24/AS65001"
```
Ответ покажет: valid, invalid или unknown. Invalid — фабринг отловлен.
Реальный кейс: как фабберы обходят детект
Допустим, у тебя есть /24 от брокера. Брокер — AS65000. Ты — AS65001. Нормальный анонс: 185.100.0.0/24 через AS65001 AS65000.
Детект видит: путь короткий, MOAS нет (только ты анонсируешь). Но RPKI проверка — invalid, потому что ROA подписан только на AS65000.
Что делают фабберы? Анонсируют через AS65000 напрямую. То есть арендуют BGP-сессию у брокера. Тогда путь: AS65000, и RPKI проходит. Провайдер видит легитимный анонс.
Но тут проблема: брокер тебя контролирует. Если он заметит аномальный трафик — закроет сессию. Или антифрод-система брокера задетектит, что ты гоняешь спам.
IPv6 и BGP-фабринг
С IPv6 проще. Адресов — дохрена. /64 — это 2^64 адресов. Никто не мониторит каждый. Фабринг /48 или /56 — почти незаметен.
Но детект всё равно есть. Те же MOAS и RPKI. Плюс — многие провайдеры фильтруют нестандартные префиксы. Например, /128 (один адрес) — сразу флаг.
На lexic.ml, например, используют IPv6-прокси с BGP-фабрингом уже 9 лет. Работает стабильно, потому что IPv6-маршрутизация менее зарегулирована.
Как защититься от фаббинга на своей стороне
Если ты провайдер — ставь фильтрацию. RPKI, IRR, префикс-листы. Без этого любой может анонсировать твои сети.
Если ты клиент — проверяй BGP-маршруты. Простой скрипт на Python:
```python
import subprocess
def check_bgp(prefix):
result = subprocess.run(['bgpq4', prefix], capture_output=True, text=True)
print(result.stdout)
check_bgp('185.100.0.0/24')
```
Или используй whois. Если сеть анонсируется из AS, которого нет в RIPE — беги.
Почему BGP-фабринг всё ещё жив
RPKI не обязателен. Многие провайдеры не фильтруют. Особенно в Азии и Африке. Плюс — легитимный anycast (CDN, DNS) выглядит как MOAS. Отличить сложно.
Фабберы используют короткие анонсы — на час-два. Детект не успевает среагировать. Или анонсируют через Tier-1 провайдеров, которые фильтруют слабо.
Итог: BGP-фабринг — это гонка вооружений. Детект становится умнее, но и фабберы не стоят на месте. Если тебе нужен прокси с "чистыми" IP — лучше брать у проверенных сервисов, которые сами следят за маршрутизацией. Иначе рискуешь получить блокировку через неделю.