Трафик в сторону вашей автономной системы возможен только в случае, когда вы анонсируете в мир свои сети по протоколу BGP. Есть анонс от вас – есть трафик к вам, нет от вас анонса – трафик к вам не приходит.
То же верно для маршрутов других операторов связи в вашей таблице: есть внешний маршрут – трафик уходит, нет – нет. В последнем случае есть исключение – маршрут 0.0.0.0/0, он же default route, он же маршрут по умолчанию. В общем случае, defaul route – маршрут для всего трафика, для которого нет отдельных записей в таблице маршрутизации.
Что делать, когда, вроде бы, BGP работают, анонсы уходят, а трафика нет? Здесь – про диагностику исходящих маршрутов по BGP протоколу. По шагам.
Записи в БД RIPE
Как ни странно, настройка BGP начинается ещё до того, как вы открыли консоль на бордер.
При BGP-взаимодействии операторы связи строят фильтры принимаемых от вас маршрутов. В первую очередь держим в голове то, что аплинк фильтрует от вас маршруты.
Какие именно записи нужны в БД RIPE (или другой региональной регистратуре) читайте в статье RIPE: Набор записей для BGP анонсов.
Отсутствие корректного набора записей в БД RIPE может дать весьма странные результаты. Например: маршрут у ваших аплинков есть, у некоторых соседей есть, а магистральные операторы анонс сети не видят или пользуются маршрутом 0.0.0.0/0 для отправки трафика к вашей сети.
Проверьте записи!
Диагностика BGP сессии
BGP state: Established
Первое: проверяем в каком состоянии BGP-сессия – должна быть в Established. Все остальные состояния (Active, OpenSent, OpenConfirm, Down, Never, AdminDown и другие) – не являются рабочим состоянием, маршруты не передаются.
Проверка: show ip bgp summ, команда показывает состояния всех настроенных сессий:
Cisco#sh ip bgp summary
BGP router identifier 195.209.62.233, local AS number 12722
....
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.4.1.253 4 209030 13220 13950 183080937 0 0 4d10h 0
10.20.15.32 4 12722 0 0 1 0 0 never Idle
195.209.44.241 4 202764 269463 18916699 183080937 0 0 11w4d 2
195.209.45.236 4 12722 34737931 263735 183081185 0 0 11w6d 542769
195.209.45.240 4 12722 17862348 263739 183081185 0 0 11w6d 443071
M9-F0-ASR3_h3649#
Выделен сосед, сессия с которым никогда не устанавливалась (по крайней мере, после последней перезагрузки). Во всех остальных случая будет обозначено время с последнего изменения сессии
Juniper> show bgp summary
195.209.34.170 49598 29298 5403742 0 10 1w2d 7:47:58 4/5/4/0 0/0/0/0
195.209.34.227 205824 84203 81865 0 6 3w5d 19:20:43 1/1/1/0 0/0/0/0
195.209.34.241 13238 537237 572825 0 2 4w1d 22:53:11 34/34/34/0 0/0/0/0
195.209.37.42 51916 0 0 0 0 18w0d 1:18:23 Idle
195.209.37.138 51916 0 0 0 0 18w0d 1:18:23 Connect
195.209.42.139 198770 406525 63214068 0 0 18w0d 1:18:11 12/12/12/0 0/0/0/0
195.209.42.140 198770 71268 10959622 0 0 3w1d 2:25:37 0/0/0/0 0/0/0/0
195.209.44.58 61293 569271 17057775 0 3 4w5d 17:37:52 1/1/1/0 0/0/0/0
Анонсы маршрутов по BGP сессии
Далее – что именно вы анонсируете со своего оборудования конкретному BGP-соседу.
ВАЖНО: анонсируемые сети должны быть /24 и крупнее!
Исключение: маршруты /32 для blackhole, которые должны быть отмечены специальными community или оформлены по другим правилам, предоставляемым вашим аплинком.
То есть /24, /23…. /19… /8… – подходят.
Теоретически можно анонсировать аплинку /25, /26 и ещё более мелкие. Через некоторых аплинков такие сети могут попасть в глобальные магистрали. Но их работа может быть нестабильной. Обычно операторы не принимают анонсы с маской /25 и длиннее.
Команды проверки BGP анонсов на Cisco
h3649#show ip bgp neighbors 195.209.45.240 advertised-routes
BGP table version is 170689245, local router ID is 195.209.62.233
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 5.45.80.240/32 172.31.255.1 20 32768 ?
*> 5.45.83.119/32 172.31.255.1 20 32768 ?
*> 37.252.1.115/32 172.31.255.1 20 32768 ?
*> 91.105.232.6/32 172.31.255.1 20 32768 ?
*> 95.181.161.66/32 172.31.255.1 20 32768 ?
*> 109.248.224.0/24 195.209.44.241 180 0 202764 i
*> 188.64.168.110/32
172.31.255.1 20 32768 ?
*> 188.64.168.242/32
172.31.255.1 20 32768 ?
*> 188.64.168.243/32
172.31.255.1 20 32768 ?
*> 188.64.168.244/32
172.31.255.1 20 32768 ?
*> 188.130.222.0/24 195.209.44.241 180 0 202764 i
*> 195.209.40.3/32 172.31.255.1 20 32768 ?
*> 195.209.50.190/32
172.31.255.1 0 32768 ?
*> 195.209.52.47/32 172.31.255.1 20 32768 ?
Total number of prefixes 14
h3649#
Здесь – анонсы маршрутизируемых сетей /24 плюс анонсы нескольких маршрутов /32 для blackhole.
NB: в целях мониторинга можно хоть график строить по Total:
h3649#sh ip bgp neighbors 195.209.45.240 advertised-routes | include Total
Total number of prefixes 14
Команда проверки BGP анонсов для Juniper
pvasiliev@J1-M9-F0> show route advertising-protocol bgp 185.1.153.0
inet.0: 949835 destinations, 5057153 routes (949834 active, 83 holddown, 6 hidden)
Prefix Nexthop MED Lclpref AS path
2.59.48.0/24 Self I
5.182.116.0/24 Self I
* 5.183.153.0/24 Self 49598 ?
31.222.240.0/24 Self 212667 I
... <cut> ...
45.15.255.0/24 Self I
45.80.120.0/22 Self I
* 45.82.216.0/24 Self 208274 I
45.85.64.0/24 Self I
45.85.67.0/24 Self I
Тут, кстати, Total нету, но можно погрепать по слешику и посчитать количество строчек:
pvasiliev@J1-M9-F0> show route advertising-protocol bgp 185.1.153.0 | match / | count
Count: 155 lines
pvasiliev@J1-M9-F0>
Команды проверки BGP анонсов на Huawei
<Huawei>display bgp routing-table peer 195.209.44.225 advertised-routes
BGP Local router ID is 195.209.50.0
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 11
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 46.22.55.0/26 195.209.44.229 0 0 3.7198i
*> 46.22.55.64/27 195.209.44.229 0 0 3.7198i
*> 195.209.48.0 195.209.44.229 0 0 3.7198i
*> 195.209.50.0/25 195.209.44.229 11 0 3.7198i
*> 195.209.50.128/27 195.209.44.229 0 0 3.7198i
* В случае Huawei приведен реальный пример анонсов сетей /25 и более мелких. Именно в данном случае – это нормально, так как на стороне аплинка производится суммаризация маршрутов в один большой. Это НЕ является стандартным поведением, настраивается по согласованию с аплинком.
BGP Looking Glass: проверка анонсов в глобальной Сети
BGP Looking Glass у вашего аплинка
Попросите у вашего аплинка ссылку на его страницу BGP Looking Glass. Если такой ресурс в сети оператора есть – пользуйтесь. Часто это сильно ускоряет процесс решения проблем.
У некоторых операторов Looking Glass закрыт паролем, ACL-ями или доступ регулируется каким-то ещё образом. Поэтому лучший вариант – спросить есть ли у оператора LG-сервис и как получить к нему доступ.
Мировые Looking Glass
В сети достаточно много общедоступных ресурсов BGP Looking Glass. Найти LG нужного оператора, магистрального оператора, регионального оператора в конкретной стране и тд можно:
- Попытаться найти через поисковик, например: “bgp Looking Glass Telia”
- в списках BGP Looking Glass, например:
– LookinGlass.org
– www.bgplookingglass.com
– bgp4.as
… - В базе PeeringDB.com: в описании автономной системы есть отдельное поле “Looking Glass URL”
Выбрав случайным образом сторонний Looking Glass в Сети вы можете проверить проходит ли ваш анонс какому-то третьему оператору, не связанному с вами или вашим аплинком. Другими словами, есть ли ваш маршрут в глобальной таблице маршрутизации, правильная ли у него маска, AS и тд.
Например, проверка маршрута 195.209.32.0/19 в сети AS6453 TATA Telecom:
В данном случае – да, сеть видна в таблице, маска правильная, анонсирует AS12722.
Таким образом можно:
- достоверно проверить работу своего оборудования
- достоверно узнать как работают анонсы у вашего аплинка (через общение с NOC)
- с высокой долей вероятности узнать как распространяются ваши маршруты в сети Интернет
Причем последний пункт более показательный – так как на сторонних ресурсах можно проверить как ваши маршруты выглядят у не-аффилированных операторов, то есть – в стандартной таблице маршуртизации, без “ручных подкручиваний”. Что есть наиболее достоверный вариант.
Важно: обратите внимание на специфику анонсов через IX (Internet eXchange, точки обмена трафиком). Особенно если вы не понимаете откуда у вас взялись “лишние” аплинки.
Подробнее – в статье про IX-ы.