<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Протокол BGP: как работает основа маршрутизации в интернете]]></title><description><![CDATA[<p dir="auto">Протокол <strong>BGP</strong> — это ключевой механизм, который связывает тысячи сетей в единый интернет. Он обменивается информацией о маршрутах между автономными системами, выбирая оптимальные пути для трафика. Это помогает избежать простоев и обеспечивает стабильную работу глобальной сети.</p>
<p dir="auto">Понимание BGP полезно для системных администраторов и сетевых инженеров. Оно решает проблемы с маршрутизацией, такие как задержки или потеря пакетов. В этой статье разберём, как работает протокол, его типы и основные принципы.</p>
<h2>Что такое протокол BGP и зачем он нужен</h2>
<p dir="auto"><strong>BGP (Border Gateway Protocol)</strong> — протокол динамической маршрутизации, который управляет обменом данными между автономными системами (AS). Каждая AS — это группа сетей под единым управлением, например, у провайдера или компании. BGP определяет лучшие пути для трафика, учитывая факторы вроде расстояния, нагрузки и стоимости.</p>
<p dir="auto">Представьте интернет как огромную паутину сетей. Без BGP пакеты данных блуждали бы хаотично, вызывая задержки. Протокол использует TCP на порту 179 для надёжной передачи сообщений. Он не создаёт свои соединения, а полагается на транспортный уровень. Это отличает BGP от протоколов вроде OSPF, работающих на сетевом уровне.</p>
<p dir="auto">Вот основные характеристики BGP:</p>
<ul>
<li>Использует <strong>path-vector</strong> подход: хранит полный путь до сети в виде списка AS.</li>
<li>Отправляет обновления только при изменениях, без периодических флудов.</li>
<li>Проверяет соединения через <strong>keepalive</strong>-сообщения каждые 60 секунд.</li>
<li>Поддерживает политики маршрутизации через атрибуты путей.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Характеристика</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>Уровень OSI</td>
<td>Прикладной (layer 7), поверх TCP</td>
</tr>
<tr>
<td>Тип</td>
<td>Path-vector EGP</td>
</tr>
<tr>
<td>Порт</td>
<td>179</td>
</tr>
<tr>
<td>Обновления</td>
<td>Только при изменениях</td>
</tr>
</tbody>
</table>
<h2>Типы BGP: eBGP и iBGP</h2>
<p dir="auto">Протокол BGP делится на внешний и внутренний варианты. <strong>eBGP (Exterior BGP)</strong> работает между разными AS, например, между провайдерами Ростелеком (AS12389) и МТС (AS8359). Он обменивается маршрутной информацией для междоменной маршрутизации.</p>
<p dir="auto"><strong>iBGP (Interior BGP)</strong> используется внутри одной AS. Маршрутизаторы одной системы синхронизируют таблицы маршрутов, но не меняют AS-пути. Это нужно для согласованности внутри сети. Разница в TTL: для eBGP — 1, для iBGP — 255 хопов.</p>
<p dir="auto">Сравним типы в таблице:</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Тип</th>
<th>Область</th>
<th>TTL</th>
<th>Пример</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>eBGP</strong></td>
<td>Между AS</td>
<td>1</td>
<td>Провайдеры обмениваются трафиком</td>
</tr>
<tr>
<td><strong>iBGP</strong></td>
<td>Внутри AS</td>
<td>255</td>
<td>Синхронизация маршрутизаторов компании</td>
</tr>
</tbody>
</table>
<p dir="auto">Ключевые отличия:</p>
<ul>
<li>eBGP добавляет свой AS-номер к пути.</li>
<li>iBGP требует full-mesh или route reflectors для масштаба.</li>
<li><em>eBGP чаще используется для пиринга с другими сетями.</em></li>
</ul>
<h2>Как работает BGP: этапы и сообщения</h2>
<p dir="auto">BGP начинает с установления соседства. Маршрутизаторы обмениваются <strong>OPEN</strong>-сообщениями, указывая свой AS-номер и IP. После этого идут <strong>UPDATE</strong> для маршрутов, <strong>KEEPALIVE</strong> для проверки и <strong>NOTIFICATION</strong> при ошибках.</p>
<p dir="auto">Формат сообщения: заголовок 19 байт + данные до 4096 байт. Атрибуты пути включают AS_PATH, NEXT_HOP, LOCAL_PREF. BGP выбирает лучший маршрут по приоритетам: наименьший AS_PATH, высший LOCAL_PREF и т.д.</p>
<p dir="auto">Этапы работы:</p>
<ol>
<li>Установка TCP-соединения на порт 179.</li>
<li>Обмен OPEN и проверка параметров.</li>
<li>Передача UPDATE с NLRI (информацией о сетях) и атрибутами.</li>
<li><em>Мониторинг: keepalive каждые 60 сек, hold timer — 180 сек.</em></li>
</ol>
<p dir="auto">Пример: Пользователь в Питере загружает сайт из Бейрута. BGP анализирует пути через AS провайдеров и выбирает оптимальный по задержке.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Сообщение</th>
<th>Назначение</th>
<th>Размер</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OPEN</strong></td>
<td>Инициация сессии</td>
<td>29 байт</td>
</tr>
<tr>
<td><strong>UPDATE</strong></td>
<td>Обновление маршрутов</td>
<td>До 4096</td>
</tr>
<tr>
<td><strong>KEEPALIVE</strong></td>
<td>Проверка связи</td>
<td>19 байт</td>
</tr>
<tr>
<td><strong>NOTIFICATION</strong></td>
<td>Ошибки и сброс</td>
<td>Варьируется</td>
</tr>
</tbody>
</table>
<h2>Атрибуты и выбор пути в BGP</h2>
<p dir="auto">BGP использует атрибуты для решений. <strong>AS_PATH</strong> — список AS по пути, короче — лучше. <strong>NEXT_HOP</strong> указывает следующий маршрутизатор. <strong>LOCAL_PREF</strong> — локальный приоритет внутри AS.</p>
<p dir="auto">Другие: MED (для внешних), WEIGHT (Cisco-специфичный). Алгоритм выбора: сначала WEIGHT, затем LOCAL_PREF, AS_PATH и т.д. Это позволяет гибко настраивать политики.</p>
<p dir="auto">Основные атрибуты:</p>
<ul>
<li><strong>Well-known mandatory</strong>: AS_PATH, NEXT_HOP, ORIGIN.</li>
<li><strong>Well-known discretionary</strong>: LOCAL_PREF, ATOMIC_AGGREGATE.</li>
<li><strong>Optional transitive</strong>: COMMUNITY, для групповой маркировки.</li>
<li><em>Optional non-transitive</em> не передаются дальше.</li>
</ul>
<p dir="auto">Таблица приоритетов выбора пути:</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Приоритет</th>
<th>Атрибут</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Highest WEIGHT</td>
</tr>
<tr>
<td>2</td>
<td>Highest LOCAL_PREF</td>
</tr>
<tr>
<td>3</td>
<td>Shortest AS_PATH</td>
</tr>
<tr>
<td>4</td>
<td>Lowest ORIGIN</td>
</tr>
</tbody>
</table>
<h2>Масштабируемость и проблемы BGP</h2>
<p dir="auto">BGP обеспечивает работу интернета, но уязвим к ошибкам. <strong>Route leaks</strong> — утечка маршрутов, вызывающая петли. <strong>BGP hijacking</strong> — захват префиксов злоумышленниками.</p>
<p dir="auto">Решения: RPKI для валидации, BGPsec для аутентификации. Масштаб: миллионы префиксов в таблицах маршрутизаторов топ-провайдеров.</p>
<p dir="auto">Проблемы и фиксы:</p>
<ul>
<li>Перегрузка таблиц: агрегация префиксов.</li>
<li>Чёрные дыры: withdraw при сбоях.</li>
<li><em>DDoS через BGP: flowspec для фильтров.</em></li>
</ul>
<h2>За пределами базового BGP</h2>
<p dir="auto">Мы разобрали основы, но BGP эволюционирует. Остались темы вроде MP-BGP для IPv6, EVPN для дата-центров. Стоит изучить RFC 4271 для деталей и симуляторы вроде GNS3 для практики. Подумайте, как политики атрибутов влияют на ваш трафик в реальной сети.</p>
]]></description><link>https://forum.exlends.ru/topic/677/protokol-bgp-kak-rabotaet-osnova-marshrutizacii-v-internete</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:15:55 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/677.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Feb 2026 16:51:47 GMT</pubDate><ttl>60</ttl></channel></rss>