Теория: зачем пиринг
Пиринг — это прямое соединение между двумя сетями для обмена трафиком без посредников (transit-провайдеров). Пиринг выгоден, когда:
- Обе стороны получают примерно равный объём трафика.
- Соединение географически близко (IXP или прямая линия).
- Нужно снизить стоимость транзита.
BGP — единственный протокол для организации пиринга в масштабе интернета.
Планирование пиринга
Перед настройкой определите:
- ASN — номер автономной системы вашей сети. Для публичного пиринга нужен публичный ASN от RIPE NCC (или другого RIR).
- IPv4-префиксы — какие сети вы будете анонсировать. Обычно это ваш PI-блок или PA-блок от провайдера.
- Точка соединения — IXP (Moscow Internet Exchange, SPb-IX) или прямая линия.
- Политика — что фильтровать, как расставлять приоритеты.
Настройка 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-сессий в реальном времени.