Skip to content


Как получить список всех IPv4-сетей автономной системы

Описание алгоритма решения задачи "получить список всех сетей организации, если известен один IP-адрес".

1. Забиваем в гугл запрос "show ip bgp regex looking glass", находим какой-нибудь looking glass, поддерживающий команду "show ip bgp regex" и не обрезающий вывод. Например lg.as48972.net

2. Выясняем номер автономной системы с помощью команды whois или на каком-нибудь веб-сервисе. Для примера возьмем IP-адрес 46.219.4.0 одного из киевских провайдеров:

  1. $ whois 46.219.4.0 | grep origin
  2. origin:         AS31148

Итак, номер автономной системы провайдера Freenet (O3) - 31148.

3. Далее идем на найденный looking glass и в качестве аргумента указываем номер AS со знаком доллара на конце (если знак доллара не указать, то отобразятся еще и сети организаций, для которых AS 31148 является транзитной, что нам в данном случае не нужно):

Поиск всех префиксов заданной AS

Как найти все блоки адресов, принадлежащие организации

4. Жмем кнопку "Execute" и получаем длинный список примерно такого вида (приведен не полностью), где в самом левом столбце и перечислены искомые блоки адресов:

  1. BGP table version is 0, local router ID is 95.130.232.4
  2. Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
  3.               r RIB-failure, S Stale, R Removed
  4. Origin codes: i - IGP, e - EGP, ? - incomplete
  5.  
  6.    Network          Next Hop            Metric LocPrf Weight Path
  7. * i46.219.1.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  8. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  9. * i46.219.2.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  10. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  11. * i46.219.3.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  12. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  13. * i46.219.4.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  14. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  15. * i46.219.5.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  16. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  17. *>i46.219.6.0/24    77.222.66.177                  90      0 16243 21219 31148 i
  18. * i                 77.222.66.181                  90      0 16243 21219 31148 i
  19. * i46.219.7.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  20. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  21. * i46.219.8.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  22. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  23. * i46.219.9.0/24    77.222.66.181                  90      0 16243 21219 31148 i
  24. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  25. * i46.219.10.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  26. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  27. * i46.219.11.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  28. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  29. * i46.219.12.0/24   77.222.66.181                  90      0 16243 21011 31148 i
  30. *>i                 77.222.66.177                  90      0 16243 21011 31148 i
  31. * i46.219.13.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  32. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  33. * i46.219.14.0/24   77.222.66.181                  90      0 16243 21011 31148 i
  34. *>i                 77.222.66.177                  90      0 16243 21011 31148 i
  35. * i46.219.15.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  36. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  37. * i46.219.16.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  38. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  39. * i46.219.17.0/24   77.222.66.181                  90      0 16243 21011 31148 i
  40. *>i                 77.222.66.177                  90      0 16243 21011 31148 i
  41. * i46.219.18.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  42. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  43. * i46.219.19.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  44. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  45. * i46.219.20.0/24   77.222.66.181                  90      0 16243 15772 28761 31148 i
  46. *>i                 77.222.66.177                  90      0 16243 15772 28761 31148 i
  47. * i46.219.21.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  48. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  49. * i46.219.22.0/24   77.222.66.181                  90      0 16243 21219 31148 i
  50. *>i                 77.222.66.177                  90      0 16243 21219 31148 i
  51. * i46.219.23.0/24   77.222.66.181                  90      0 16243 21011 31148 i

Если номер AS четрыхзначный, то может потребоваться поиграться с аргументом запроса, добавив экранированный обратным слешем пробел пред номером AS. То есть вписать в поле нечто такое: "\ 31148$" (чтобы не отображались те автономные системы, номер которых содержит номер нашей как подстроку).

Posted in Howto.

Tagged with .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. заробитчанин says

    Примерно вот так для Apache 2.2 можно быстро сварганить ACL если требуется открыть доступ с сетей определенного провайдера:

    cat /tmp/isp-prefixes-from-lg | grep '/' | sed -r 's/^\*[>[:space:]]i//' | awk {'print $1'} | sort -n | while read prefix ; do echo " Allow from $prefix" ; done

  2. smartbuyer says

    Метод не сильно точный, так как в полученном списке префиксов могут оказаться и сети других AS-ок, а не только той, про которую спрашивали. Я не сильно силен в BGP, но подозреваю что это может быть когда искомая AS-ка является транзитной для других AS-ок.

You must be logged in to post a comment.