Диагностика (Troubleshooting) выбора пути (Path Selection) в BGP
Отредактирована 07.09.2026
Понимание процесса выбора наилучшего пути (Best Path Decision-Making Process)
- Предпочтение отдается пути с наибольшим весом (weight).
- Предпочтение отдается пути с наибольшим локальным предпочтением (local preference).
- Предпочтение отдается пути, инициированному (originated) локальным маршрутизатором.
- Предпочтение отдается пути с самым коротким списком AS (autonomous system path).
- Предпочтение отдается пути с наименьшим кодом источника (origin code).
- Предпочтение отдается пути с наименьшим MED (multi-exit discriminator / metric).
- Предпочтение отдается внешнему (external) пути перед внутренним (internal).
- Предпочтение отдается пути через ближайшего IGP-соседа (closest IGP neighbor).
- Для eBGP-путей предпочтение отдается самому старому (oldest) маршруту.
- Предпочтение отдается пути с наименьшим идентификатором BGP-соседа (neighbor BGP RID).
- Предпочтение отдается пути с наименьшим IP-адресом соседа (neighbor IP address).
R5# show bgp ipv4 unicast 10.1.1.0 BGP routing table entry for 10.1.1.0/26, version 46 Paths: (2 available, best #1, table default) Not advertised to any peer Refresh Epoch 4 65501 2.2.2.2 (metric 131072) from 2.2.2.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal, best rx pathid: 0, tx pathid: 0x0 Refresh Epoch 1 65501 3.3.3.3 (metric 131072) from 3.3.3.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, internal rx pathid: 0, tx pathid: 0
- BGP сначала проверяет вес (weight). Чем выше, тем лучше. В Примере 18-40 вес (weight) не указан, поскольку оба пути используют значение по умолчанию (default) — 0. Следовательно, вес (weight) совпадает (tied), и проверяется следующий атрибут.
- Далее проверяется локальное предпочтение (local preference). Чем выше, тем лучше. В Примере 18-40 локальное предпочтение (localpref) для обоих путей равно 100 (значение по умолчанию). Следовательно, локальное предпочтение (local preference) совпадает, и проверяется следующий атрибут.
- Маршрутизатор проверяет, сгенерировал ли он этот BGP-маршрут (has a next hop of 0.0.0.0). Если да, такой маршрут имеет приоритет. В Примере 18-40 следующие шлюзы (next hops) — 2.2.2.2 и 3.3.3.3 (в левой части вывода). Следовательно, R5 не генерировал ни один из этих маршрутов, и проверяется следующий атрибут.
- Далее проверяется список автономных систем (autonomous system path). Предпочтение отдается самому короткому пути (shortest path). В Примере 18-40 список AS (autonomous system path) для обоих путей — 65501. Следовательно, список AS совпадает, и проверяется следующий атрибут.
- Далее проверяется код источника (origin code). IGP лучше, чем EGP, а EGP лучше, чем incomplete (неполный). Обратите внимание, что это не связано с iBGP и eBGP (это будет рассмотрено позже). IGP означает, что маршрут был сгенерирован с помощью команды network или summary-address, а incomplete — что маршрут был перераспределен (redistributed) в BGP. EGP означает, что маршрут был получен от EGP — предшественника BGP. В Примере 18-40 источник (origin) для обоих путей — IGP, а значит, будет проверен следующий атрибут.
- Затем проверяется MED (метрика). Чем меньше, тем лучше. В Примере 18-40 MED (metric) для обоих путей одинаков (0). Следовательно, необходимо проверить следующий атрибут.
- Теперь eBGP имеет приоритет над iBGP. В Примере 18-40 оба пути изучены через iBGP (internal). Следовательно, этот атрибут также совпадает, и необходимо проверить следующий.
- Теперь сравнивается IGP-путь к соседу (IGP path to the neighbor). В Примере 18-40 IGP-путь к 2.2.2.2 имеет метрику 131072, и IGP-путь к 3.3.3.3 также имеет метрику 131072. Они совпадают. Следовательно, необходимо проверить следующий атрибут.
- Если это eBGP-пути, проверяется возраст (age) маршрутов. В Примере 18-40 оба пути — iBGP. Поэтому мы пропускаем этот атрибут и переходим к следующему.
- Теперь сравниваются BGP RID (Router ID). Чем меньше, тем лучше. В Примере 18-40 сосед (neighbor) 2.2.2.2 имеет RID 2.2.2.2 (как показано в квадратных скобках), а сосед 3.3.3.3 имеет RID 3.3.3.3 (как показано в квадратных скобках). Какой RID меньше? 2.2.2.2. Следовательно, маршрут, предоставленный соседом с RID 2.2.2.2, считается наилучшим (best path). Если RID случайно совпадут, для разрешения (break the tie) используется IP-адрес соседа (neighbor IP address).
R2# show bgp ipv4 unicast 10.1.1.128 BGP routing table entry for 10.1.1.128/26, version 6 Paths: (2 available, best #2, table default) Advertised to update-groups: 2 Refresh Epoch 2 65501 3.3.3.3 (metric 131072) from 3.3.3.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, internal rx pathid: 0, tx pathid: 0 Refresh Epoch 3 65501 1.1.1.1 from 1.1.1.1 (1.1.1.1) Origin IGP, metric 0, localpref 100, valid, external, best rx pathid: 0, tx pathid: 0x0