Як знайти транзитні bgp маршрутизатори в мережі

У попередній статті ми вже торкалися теми сканування мереж і підміні трафіку на BGP маршрутизаторах. Сьогодні ми розглянемо також не маловажний питання - як просканувати мережу і знайти транзитні BGP маршрутизатори в мережі інтернет.

Як знайти транзитні bgp маршрутизатори в мережі

Класифікацій маршрутизаторів дуже багато і за великим рахунком вони залежать від розглянутого контексту, так щодо протоколу OSPF ми можемо визначити магістральні маршрутизатори, зональні і тд. У цій статті будуть порушуватися так звані транзитні маршрутизатори - це просто умовне позначення їх в певному контексті (а саме в передачі пакетів по мережах).

Тобто ідея буде полягати в тому, щоб посилати запити на різні хости і моніторити проміжні ланки, через які проходять пакети. Для цього завдання і була разрботана спеціальна утиліта traceroute, яку і можна ісопльзовать. Ще слід зауважити, що початок маршруту буде постійно (або майже завжди) збігатися, так як пакет спочатку буде йти через мережу нашого провайдера, топологія і таблиці маршрутизації якого змінюються через досить великі проміжки часу.

Цю проблему можна вирішити наступними шляхами:

  • traceroute на слабо "схожі" айпішники, різних місць розташування (які можуть бути розпарсити з разниз GeoIP баз);
  • traceroute на різних провайдерів;

Перший спосіб несе в собі багато гемора з парсинга, до того ж він не володіє достатньою гарантією, що ми не потрапимо на айпішник з того ж провайдера, навіть якщо буде візьмемо його з іншого територіального регіону.

Тепер про реалізацію другого способу.

Практика.
Тепер про конкретний алгоритм дій:

Автоматизація.
Для гнучкої автоматизації всього цього був написаний скрипт (буде прикріплений). Запускати скрипт треба під 3 пітоном і також заздалегідь доведеться встановити пару нестандартних модулів (якщо при запуску помилок не буде, то модулі вже стоять).

Як користуватися скриптом і як він працює.

Для початку варто відмітити, що всі дані скрипт зберігає в MySQL. Тобто перед запуском треба в його початку в відповідно¿ змінних вказати потрібні дані для MySQL сервера. Скрипт сам створить базу даних і таблиці в ній, які будуть ісопльзовани. Також повинна бути встановлена ​​утиліта traceroute (і nmap, якщо потім буде використовуватися опція сканування).

Разом з ключем scan можна ісопльзовать ключ ports. в якому вказати через кому порти для ськана, ключ skeys можна використовувати для вказівки додаткових параметрів сканування для Nmap'a (через нього в принципі можна теж задати порти), і ключ rnum - скільки сканувати роутерів з таблиць ibgp і ebgp.

Функцію сканування довелося зробити, так як все резульата роботи скрипта зберігаються в MySQL, тому щоб їх використовувати для Nmap'a доведеться спочатку якось експортувати, а якщо в цьому немає необхідності, то як раз знадобитися така функція.

Для очищення результатів або будь-якої з таблиць можна скористатися ключем clear. в який подати ім'я (імена через кому) таблиці, яку потрібно очистити, для очищення всіх таблиць можна просто в цьому ключі прописати "all".

Під час кожного з процесів скрипт повідомляє про статус завершеності (в кількісних і процентних показниках), а також після завершення робіт пише про результати (включаючи час роботи), щоб бажаючі могли вести статистику.

Схожі статті