Что такое AS PATH в BGP и как этим пользоваться

AS PATH (Autonomous System Path) — это список номеров автономных систем (AS), через которые проходит маршрут в BGP. Это помогает:

  1. Избежать петель маршрутизации.

  2. Выбирать наилучший маршрут (по кратчайшему пути — меньше AS).

  3. Влиять на выбор маршрута (например, «удлинить» путь, чтобы он не использовался).

Пример:

AS PATH: 65010 65020 65030

Это означает, что маршрут прошёл через три AS: сначала 65010, потом 65020, затем 65030 (и там находится сеть назначения).


 Как AS PATH влияет на выбор маршрута?

BGP по умолчанию предпочитает маршрут с наименьшим количеством AS в пути.

Пример:

  • Путь 1: 65001 65002 — 2 AS

  • Путь 2: 65003 65004 65005 — 3 AS

➡️ BGP выберет Путь 1.


Удлинение AS PATH (AS PATH prepending)

Цель:

Сделать маршрут менее предпочтительным, добавив лишние AS в путь. Обычно используется для резервных каналов.

Сценарий:

  • У вас 2 провайдера: ISP1 и ISP2.

  • Вы хотите, чтобы входящий трафик шёл через ISP1, а ISP2 использовался как резерв.

Настройка на маршрутизаторе:


router bgp 65000
neighbor 192.0.2.1 remote-as 65010 # ISP1
neighbor 198.51.100.1 remote-as 65020 # ISP2

# Анонс по ISP1 — обычный

network 203.0.113.0 mask 255.255.255.0

# Анонс по ISP2 — с prepending
route-map PREPEND permit 10
set as-path prepend 65000 65000 65000neighbor 198.51.100.1 route-map PREPEND out

Результат:

  • Через ISP1 маршрут выглядит как: 65000

  • Через ISP2 маршрут выглядит как: 65000 65000 65000 65000
    ➡️ Большинство соседей будут выбирать маршрут через ISP1.


Фильтрация маршрутов по AS PATH

Цель:

Заблокировать маршруты от определённой AS.

Сценарий:

Вы не хотите принимать маршруты, которые проходят через AS 65066 (например, из-за политических или технических причин).

Настройка:

ip as-path access-list 10 deny _65066_
ip as-path access-list 10 permit .*
route-map FILTER-AS deny 10
match as-path 10
route-map FILTER-AS permit 20
router bgp 65000
neighbor 203.0.113.1 remote-as 65030
neighbor 203.0.113.1 route-map FILTER-AS in

Пояснение:

  • Регулярное выражение _65066_ означает «AS 65066 есть где-то в пути».

  • Такие маршруты будут отклоняться.

  • Все остальные маршруты (.*) разрешены.


Маршруты с конкретным началом/концом AS PATH

Вы можете использовать регулярные выражения для тонкой настройки.

Регулярка Значение
^65001 Маршрут начинается с AS 65001
65020$ Маршрут заканчивается на AS 65020
^65010 65020$ Только путь: 65010 → 65020

Пример: разрешить только маршруты, начинающиеся с 65010:

ip as-path access-list 20 permit ^65010
route-map FROM-65010 permit 10
match as-path 20
neighbor 192.0.2.1 route-map FROM-65010 in

Итог

Действие Как помогает
AS PATH prepending Управляет входящим трафиком (менее предпочтителен)
Фильтрация по AS PATH Защита и контроль маршрутов
Выбор маршрута по длине пути BGP предпочитает наименьшее количество AS

Примеры конфигурации под Cisco и Juniper я выложил здесь — ссылка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *