Що таке BGP і як він обирає маршрути?
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: BGP (Border Gateway Protocol) — це протокол, завдяки якому мережі, що утворюють інтернет, обмінюються інформацією про доступні маршрути до IP-адрес. Він дає операторам змогу обирати, через які мережі проходитиме трафік, відповідно до їхніх правил і угод, а не лише за швидкістю з’єднання. Помилка в цій інформації може зробити справний сайт недоступним для частини користувачів.
Яку роль BGP відіграє в інтернеті?
Інтернет складається з багатьох з’єднаних мереж, якими керують телекомунікаційні оператори, хостингові компанії, університети чи постачальники хмарних послуг. Основна одиниця маршрутизації BGP — автономна система (AS): мережа або група мереж зі спільною політикою вибору маршрутів. Її ідентифікує номер ASN.
Маршрутизація — це вибір шляхів, якими можна передавати пакети даних. Маршрутизатори, що використовують BGP, повідомляють один одному про доступність IP-префіксів, тобто блоків адрес. Спрощено таке оголошення означає: «через мою мережу можна дістатися до цього діапазону адрес».
BGP не передає вміст сайту чи електронні листи. Він надає інформацію, за якою маршрутизатори будують таблиці маршрутизації, а вже ці таблиці використовують для спрямування пакетів. Цей рівень визначає шлях передавання даних, а не роботу сервісу в кінці цього шляху.
Як BGP обирає маршрут?
Маршрутизатори встановлюють сесії BGP — з’єднання для обміну інформацією про маршрути. Коли з’являється новий маршрут або наявний стає недоступним, вони можуть оголосити зміну чи відкликати попереднє оголошення. При цьому їм не потрібно щоразу передавати весь набір відомих маршрутів.
Окрім префікса, оголошення містить атрибути, що описують маршрут. Один із них — AS_PATH, список номерів автономних систем, через які передавалася інформація про маршрут. Зокрема, він допомагає виявляти петлі: мережа може відхилити маршрут, якщо побачить у цьому списку власний номер.
BGP не шукає автоматично шлях із найменшою затримкою. Оператор може надавати перевагу певному постачальнику через вартість, умови договору або власні правила керування трафіком. Коротший AS_PATH може бути критерієм вибору, але він не єдиний і не завжди найважливіший. Конкретний процес залежить від налаштувань і реалізації протоколу.
Розрізняють два способи застосування цього протоколу:
- eBGP — обмін маршрутами між різними автономними системами;
- iBGP — передавання інформації BGP усередині однієї автономної системи.
iBGP не замінює всіх механізмів внутрішньої маршрутизації. У великих мережах він працює разом із протоколами, що забезпечують доступність маршрутизаторів у межах інфраструктури оператора.
Приклад: хостинг із двома підключеннями до інтернету
Припустімо, хостингова компанія має власну автономну систему й підключена до двох операторів: A та B. Через BGP вона оголошує свій блок IP-адрес обом операторам. Завдяки цьому інші мережі можуть дізнатися про кілька шляхів до серверів хостингу.
Хостингова компанія може налаштувати оператора A як пріоритетного для вихідного трафіку, а B — як резервного. Якщо з’єднання з A перестане працювати й відповідні маршрути буде відкликано, трафік може піти через B. Перехід не обов’язково буде миттєвим: виявлення збою та перерахунок маршрутів потребують часу, а під час перемикання частина пакетів може загубитися.
Шлях у зворотному напрямку не обов’язково буде таким самим. На маршрут від користувача до хостингу впливають також інші мережі, які застосовують власні правила. Тому два канали зв’язку не гарантують автоматично ні рівномірного розподілу трафіку, ні повного контролю над його проходженням.
Звідки беруться збої та загрози BGP?
Базовий BGP сам по собі не забезпечує надійного підтвердження того, що мережа має право оголошувати певний префікс. Тому помилкові налаштування або навмисні дії можуть вплинути на трафік і за межами мережі, де виникла проблема.
Перехоплення префікса, яке називають BGP hijacking, — це несанкціоноване оголошення чужого адресного простору. Витік маршрутів, або route leak, — це поширення інформації про маршрути за межі, дозволені політикою з’єднань між мережами. Обидві ситуації можуть спричинити недоступність сервісів, а в деяких випадках — спрямувати трафік через небажану мережу.
Один із засобів захисту — RPKI, інфраструктура, що дає змогу криптографічно підтверджувати право автономної системи оголошувати префікс. На цій основі оператори можуть перевіряти походження маршрутів і відхиляти некоректні оголошення. Проте це не перевірка всього шляху AS_PATH і не захист від будь-якого витоку маршрутів. Потрібні також фільтри, контроль налаштувань і моніторинг.
Що BGP означає для власника сайту?
Якщо ви користуєтеся звичайним хостингом, то зазвичай не налаштовуєте BGP самостійно. За нього відповідає постачальник інфраструктури або оператори, з якими він працює. Сама купівля домену, сертифіката TLS чи сервера VPS не потребує власного ASN.
BGP іноді плутають із DNS — системою, що перетворює доменні імена на IP-адреси. DNS допомагає визначити адресу сервера, а маршрутизація дає змогу дістатися до нього. Тож коректна відповідь DNS ще не доводить, що мережеве з’єднання працює.
Якщо сайт відкривається через мобільний інтернет, але не через домашнє підключення, перевірте його з обох мереж і зафіксуйте час виникнення проблеми. Передайте хостинговій компанії результати, а також, якщо вмієте, результати перевірки за допомогою traceroute або MTR, які показують шлях з’єднання. Різниця в доступності не доводить збою BGP, але дає адміністраторам конкретну відправну точку для перевірки маршрутизації.
Дивіться також: Що таке CDN?
