Start typing to search across invoices, services, domains, tickets, and more...
Препендинг AS-пути (AS-Path Prepending) — стандартный способ управлять входящим трафиком при подключении к нескольким апстримам: вы повторяете свою ASN в анонсах одному из них, путь становится длиннее и менее предпочтительным. Однако нередко BGP AS-Path Prepending отклоняется соседом: префикс пропадает у этого апстрима или препенд не работает. Разберём основные причины (ограничения длины пути, фильтры AS-path, проверки IRR/RPKI) и покажем правильные конфигурации BIRD 2 и FRRouting для Debian/Ubuntu и CentOS/Rocky/AlmaLinux. В примерах локальная ASN 64500, апстрим 203.0.113.1 (AS64496), префикс 198.51.100.0/24 — подставьте свои значения.
Сначала проверьте, что ваш маршрутизатор отправляет путь с препендом, затем поищите в журналах сообщения NOTIFICATION или сбросы сессии и посмотрите в публичном looking glass, какие AS-пути видит мир. Если вы отдаёте всё правильно, а путь через этого апстрима снаружи не виден, его фильтрует апстрим или сети дальше.
# BIRD 2
birdc show route 198.51.100.0/24 export upstream1 all
journalctl -u bird --since "1 hour ago" --no-pager
# FRRouting
vtysh -c "show bgp ipv4 unicast neighbors 203.0.113.1 advertised-routes"
vtysh -c "show bgp ipv4 unicast neighbors 203.0.113.1" | grep -iE "state|prefix|notification"curl -s "https://stat.ripe.net/data/looking-glass/data.json?resource=198.51.100.0/24" | grep -o '"as_path":"[^"]*"' | sort | uniq -cСамая частая ошибка — препенд чужой ASN (апстрима или другой сети) или вставка её в конец пути, что меняет origin AS. Апстримы обычно проверяют, что первая ASN равна ASN соседа, и сверяют origin с вашим as-set; посторонние ASN выглядят как перехват маршрута и отбрасываются. Приватные ASN (64512–65534) тоже часто фильтруются. Корректная конфигурация BIRD 2 ниже; при eBGP-экспорте BIRD сам добавит локальную ASN ещё раз:
# /etc/bird/bird.conf (BIRD 2)
filter export_upstream1 {
if net = 198.51.100.0/24 then {
bgp_path.prepend(64500); # own ASN only
bgp_path.prepend(64500);
accept;
}
reject;
}
protocol bgp upstream1 {
local as 64500;
neighbor 203.0.113.1 as 64496;
ipv4 {
import none;
export filter export_upstream1;
};
}
birdc configureВ FRR препенд задаётся исходящим route-map. После изменения выполните soft out, чтобы переотправить анонсы без разрыва сессии.
vtysh
configure terminal
ip prefix-list MY-NETS seq 10 permit 198.51.100.0/24
route-map UPSTREAM-OUT permit 10
match ip address prefix-list MY-NETS
set as-path prepend 64500 64500
exit
route-map UPSTREAM-OUT deny 100
exit
router bgp 64500
address-family ipv4 unicast
neighbor 203.0.113.1 route-map UPSTREAM-OUT out
exit-address-family
end
write memory
clear bgp ipv4 unicast 203.0.113.1 soft outМногие сети отбрасывают маршруты со слишком длинным AS-путём, а некоторые ограничивают число повторов одной ASN. Для влияния на выбор пути достаточно 1–3 препендов; больше пяти почти ничего не даёт и лишь повышает риск фильтрации. Ещё одна частая причина — слишком строгий фильтр AS-path у апстрима, например ^64500$, который отвергает «64500 64500 64500». Попросите апстрим использовать правило вроде ^(64500_)+$.
Проверить фактически отправляемый AS-путь можно так:
birdc show route 198.51.100.0/24 export upstream1 all | grep BGP.as_path
vtysh -c "show bgp ipv4 unicast 198.51.100.0/24"Препенд не меняет origin AS, но апстрим всё равно отклонит префикс, если нет route-объекта в IRR, префикс не входит в зарегистрированный у него as-set или в ROA не совпадает ASN-источник либо max length. Проверка:
whois -h whois.radb.net -- '-i origin AS64500'
whois -h whois.ripe.net -- '-T route 198.51.100.0/24'
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24"Статус RPKI должен быть valid; если invalid — сначала исправьте ROA. Фильтры апстрима обычно обновляются автоматически через некоторое время, также можно попросить обновить их вручную.
Удалённые сети могут выбирать маршрут по Local Preference, который важнее длины AS-пути, поэтому препенд на них не влияет. Попробуйте community апстрима или измените гранулярность анонсируемых префиксов.
Нет. Повторять можно только свою ASN. Чужие ASN нарушают достоверность пути, и большинство сетей отбросит маршрут.
Если вы анонсируете собственные или арендованные IP с серверов IMIDC, опишите задачу в тикете — инженеры проверят сессию, фильтры и состояние IRR/ROA.
Если проблема не решена, создайте тикет в поддержку IMIDC, работающую 24/7.