BGP: диагностика анонсируемых маршрутов

Трафик в сторону вашей автономной системы возможен только в случае, когда вы анонсируете в мир свои сети по протоколу 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 нужного оператора, магистрального оператора, регионального оператора в конкретной стране и тд можно:

  1. Попытаться найти через поисковик, например: “bgp Looking Glass Telia”
  2. в списках BGP Looking Glass, например:
    LookinGlass.org
    www.bgplookingglass.com
    bgp4.as
  3. В базе PeeringDB.com: в описании автономной системы есть отдельное поле “Looking Glass URL”

Выбрав случайным образом сторонний Looking Glass в Сети вы можете проверить проходит ли ваш анонс какому-то третьему оператору, не связанному с вами или вашим аплинком. Другими словами, есть ли ваш маршрут в глобальной таблице маршрутизации, правильная ли у него маска, AS и тд.

Например, проверка маршрута 195.209.32.0/19 в сети AS6453 TATA Telecom:

В данном случае – да, сеть видна в таблице, маска правильная, анонсирует AS12722.

Таким образом можно:

  • достоверно проверить работу своего оборудования
  • достоверно узнать как работают анонсы у вашего аплинка (через общение с NOC)
  • с высокой долей вероятности узнать как распространяются ваши маршруты в сети Интернет

Причем последний пункт более показательный – так как на сторонних ресурсах можно проверить как ваши маршруты выглядят у не-аффилированных операторов, то есть – в стандартной таблице маршуртизации, без “ручных подкручиваний”. Что есть наиболее достоверный вариант.

Важно: обратите внимание на специфику анонсов через IX (Internet eXchange, точки обмена трафиком). Особенно если вы не понимаете откуда у вас взялись “лишние” аплинки.

Подробнее – в статье про IX-ы.

Share
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x