Теория: зачем пиринг

Пиринг — это прямое соединение между двумя сетями для обмена трафиком без посредников (transit-провайдеров). Пиринг выгоден, когда:

  • Обе стороны получают примерно равный объём трафика.
  • Соединение географически близко (IXP или прямая линия).
  • Нужно снизить стоимость транзита.

BGP — единственный протокол для организации пиринга в масштабе интернета.

Планирование пиринга

Перед настройкой определите:

  1. ASN — номер автономной системы вашей сети. Для публичного пиринга нужен публичный ASN от RIPE NCC (или другого RIR).
  2. IPv4-префиксы — какие сети вы будете анонсировать. Обычно это ваш PI-блок или PA-блок от провайдера.
  3. Точка соединения — IXP (Moscow Internet Exchange, SPb-IX) или прямая линия.
  4. Политика — что фильтровать, как расставлять приоритеты.

Настройка eBGP-соседства

Базовая конфигурация

! На маршрутизаторе AS 65001
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip address 192.168.100.1 255.255.255.252
Router(config-if)# no shutdown

Router(config)# router bgp 65001
Router(config-router)# neighbor 192.168.100.2 remote-as 65002
Router(config-router)# neighbor 192.168.100.2 description Peer-AS65002-IX
Router(config-router)# address-family ipv4 unicast
Router(config-router-af)# network 10.0.0.0 mask 255.255.0.0
Router(config-router-af)# neighbor 192.168.100.2 activate
Router(config-router-af)# neighbor 192.168.100.2 soft-reconfiguration inbound

Ключевые моменты:

  • remote-as — ASN удалённого邻居. Если совпадает с локальным — это iBGP.
  • network — какие префиксы вы анонсируете. BGP не автоматически advertising всё!
  • soft-reconfiguration inbound — сохранять полученные маршруты для анализа (потребляет память, но полезно для отладки).

Фильтрация через prefix-list

! Разрешить только конкретные префиксы от пира
Router(config)# ip prefix-list PEER-IN seq 5 permit 10.1.0.0/16
Router(config)# ip prefix-list PEER-IN seq 10 deny 0.0.0.0/0 le 32

! Не пропускать наши собственные префиксы (защита от петли)
Router(config)# ip prefix-list PEER-OUT seq 5 permit 10.0.0.0/16
Router(config)# ip prefix-list PEER-OUT seq 10 deny 0.0.0.0/0 le 32

Router(config)# router bgp 65001
Router(config-router)# neighbor 192.168.100.2 prefix-list PEER-IN in
Router(config-router)# neighbor 192.168.100.2 prefix-list PEER-OUT out

Политика через route-map

! Установить LOCAL_PREF для маршрутов от пира
Router(config)# route-map SET-LOCAL-PREF permit 10
Router(config-route-map)# set local-preference 150

Router(config)# router bgp 65001
Router(config-router)# neighbor 192.168.100.2 route-map SET-LOCAL-PREF in

LOCAL_PREF > 100 (по умолчанию) делает маршрут от пира предпочтительным для исходящего трафика.

AS-Path Prepending

Если нужно «оттолкнуть» входящий трафик от определённого пира:

Router(config)# route-map PREPEND-AS permit 10
Router(config-route-map)# set as-path prepend 65001 65001

Router(config)# router bgp 65001
Router(config-router)# neighbor 192.168.100.2 route-map PREPEND-AS out

Дублирование ASN в AS_PATH делает путь «длиннее», и другие peers предпочитают более короткий путь.

Верификация

Router# show bgp summary
Router# show bgp ipv4 unicast
Router# show bgp ipv4 unicast neighbors 192.168.100.2 received-routes
Router# show bgp ipv4 unicast neighbors 192.168.100.2 advertised-routes
Router# show ip bgp regexp ^65002$

Ключевые проверки:

  • State/PfxRcd в show bgp summary — показывает состояние邻居ства и количество полученных префиксов.
  • received-routes — какие маршруты мы получили (до применения inbound policy).
  • advertised-routes — какие маршруты мы отправляем.

Типичные проблемы

ПроблемаСимптомРешение
Neighbor не поднимаетсяState = Active/ConnectПроверьте IP-связность, TCP/179, AS-номера
Нет маршрутовPfxRcd = 0Проверьте prefix-list, network-команды, soft-reconfiguration
Маршруты не выбираютсяВысокий cost, неоптимальный путьПроверьте LOCAL_PREF, MED, AS_PATH length
Маршруты пропадаютFlapping邻居стваПроверьте keepalive/dead таймеры, стабильность линка
LoopМаршрут исчезает через ~90 секПроверьте AS_PATH на наличие своего ASN

Мониторинг

! Логирование изменений BGP
Router(config)# router bgp 65001
Router(config-router)# bgp log-neighbor-changes

! SNMP-мобильность
Router(config)# snmp-server enable traps bgp

Для централизованного мониторинга используйте:

  • BGPalerter — мониторинг hijacks, leaks, outages.
  • RIPE RIS — públiche данные о BGP-таблицах.
  • Looking Glass — проверка маршрутов с разных точек интернета.

Что дальше

После организации базового пиринга стоит изучить:

  • BGP Flowspec — для DDoS-защиты через BGP.
  • RPKI / ROA — для предотвращения BGP-hijacking.
  • BMP (BGP Monitoring Protocol) — для мониторинга BGP-сессий в реальном времени.