Анонсирование IPv6 подсетей на автономной системе AS205828 через основную AS206873 на RouterOS
Введение
В этом документе описано, как анонсировать IPv6 подсети автономной системы AS205828 через основную транзитную AS206873 с использованием MikroTik RouterOS на одном и том же граничном роутере 194.150.234.1.
Агрегаты AS205828:
- 2a0d:f847::/32
- 2a09:a504::/32
- 2a0c:9485::/32
- 2a12:38c2::/32
- 2a12:39c0::/32
- 2a12:3042::/32
Требования
- RouterOS (6.x или 7.x)
- Доступ к BGP-сессии с провайдером (AS206873)
- Делегированные IPv6-подсети AS205828
- Включённый IPv6 стек
Шаг 1. IPv6-адрес на интерфейсе
Добавьте IPv6-адрес из вашего пула на нужный интерфейс (пример — /64 из 2a0d:f847::/32):
/ipv6 address add address=2a0d:f847:0:1::1/64 interface=ether1 advertise=yes
Можно пропусить если не нужно, чтобы работал на интерфейсе
Шаг 2. Настройка BGP-инстансов
На этом же роутере объявляются обе AS: транзитная 206873 (как default).
/routing bgp instance
set default as=206873 router-id=194.150.234.1
default— основная AS (транзитная, 206873) с router-id 194.150.234.1
Шаг 3. Добавляем локальный маршрут в таблицу FIB
/routing bgp network
add instance=AS205828 network=2a0d:f847::/32
add instance=AS205828 network=2a09:a504::/32
add instance=AS205828 network=2a0c:9485::/32
add instance=AS205828 network=2a12:38c2::/32
add instance=AS205828 network=2a12:39c0::/32
add instance=AS205828 network=2a12:3042::/32
Шаг 4. Добавляем маршруты IPv6 в таблицу маршрутизации с указанием AS и шлюза
Рекомендуется добавить blackhole-маршруты, чтобы сети считались присутствующими в RIB, и затем объявить их через BGP:
# Blackhole для агрегатов AS205828
/ipv6 route add dst-address=2a0d:f847::/32 distance=10 gateway=2a0b:6903:fdb:d151::2 bgp-as-path=205828
/ipv6 route add dst-address=2a09:a504::/32 distance=10 gateway=2a0b:6903:fdb:d152::2 bgp-as-path=205828
/ipv6 route add dst-address=2a0c:9485::/32 distance=10 gateway=2a0b:6903:fdb:d153::2 bgp-as-path=205828
/ipv6 route add dst-address=2a12:38c2::/32 distance=10 gateway=2a0b:6903:fdb:d154::2 bgp-as-path=205828
/ipv6 route add dst-address=2a12:39c0::/32 distance=10 gateway=2a0b:6903:fdb:d155::2 bgp-as-path=205828
/ipv6 route add dst-address=2a12:3042::/32 distance=10 gateway=2a0b:6903:fdb:d156::2 bgp-as-path=205828
Проверяем добавленные статические маршруты:
ipv6 route print where bgp-as-path=205828
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, o - ospf, b - bgp,
U - unreachable
# DST-ADDRESS GATEWAY DISTANCE
0 A S 2a09:a504::/32 2a0b:6903:fdb:d152::2 10
1 A S 2a0c:9485::/32 2a0b:6903:fdb:d153::2 10
2 A S 2a0d:f847::/32 2a0b:6903:fdb:d151::2 10
3 A S 2a12:3042::/32 2a0b:6903:fdb:d156::2 10
4 A S 2a12:38c2::/32 2a0b:6903:fdb:d154::2 10
5 A S 2a12:39c0::/32 2a0b:6903:fdb:d155::2 10
Шаг 4. Рекомендуемая фильтрация анонсов
Разрешайте к отправке только ваши агрегаты, остальное отклоняйте.
Указывайте ваш chain, в моем приемер указан как DOM.RU-IPv6
RouterOS v6:
/routing filter add chain=DOM.RU-IPv6 prefix=2a0d:f847::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 prefix=2a09:a504::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 prefix=2a0c:9485::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 prefix=2a12:38c2::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 prefix=2a12:39c0::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 prefix=2a12:3042::/32 action=accept
/routing filter add chain=DOM.RU-IPv6 action=discard
RouterOS v7 (пример с отдельной цепочкой):
/routing filter rule add chain=DOM.RU-IPv6 rule="if (dst in 2a0d:f847::/32 || dst in 2a09:a504::/32 || dst in 2a0c:9485::/32 || dst in 2a12:38c2::/32 || dst in 2a12:39c0::/32 || dst in 2a12:3042::/32) { accept } else { reject }"
Шаг 5. Проверка
routing bgp advertisements print where as-path=205828
Вывод команды:
PEER PREFIX NEXTHOP AS-PATH ORIGIN LOCAL-PREF
domru... 2a12:3042::/32 2a02:2698:a10... 205828 igp
domru... 2a12:39c0::/32 2a02:2698:a10... 205828 igp
domru... 2a12:38c2::/32 2a02:2698:a10... 205828 igp
domru... 2a0d:f847::/32 2a02:2698:a10... 205828 igp
domru... 2a09:a504::/32 2a02:2698:a10... 205828 igp
domru... 2a0c:9485::/32 2a02:2698:a10... 205828 igp
domru... 2a12:3042::/32 2a02:2698:a10... 205828 igp
domru... 2a12:39c0::/32 2a02:2698:a10... 205828 igp
domru... 2a12:38c2::/32 2a02:2698:a10... 205828 igp
domru... 2a0d:f847::/32 2a02:2698:a10... 205828 igp
domru... 2a09:a504::/32 2a02:2698:a10... 205828 igp
domru... 2a0c:9485::/32 2a02:2698:a10... 205828 igp
Почему это работает: анонс чужой AS через bgp-as-path
- RouterOS при экспорте в BGP берёт маршруты из RIB (static/connected/blackhole), формирует для них NLRI и атрибуты.
- Свойство
bgp-as-pathу статического маршрута используется как исходный (seed) атрибут AS-PATH. При отправке наружу BGP добавляет слева локальную AS инстанса, через который идёт анонс (в нашем кейсе — 206873). В итоге путь выглядит как «206873 205828», где правый элемент205828— origin AS. - Для аплинка и интернета это означает:
AS206873транзитирует префиксыAS205828. Если IRR/RPKI (ROA) для этих префиксов указывает origin205828, и аплинк это разрешает, анонс принимается. - Необходимые условия:
- Префикс присутствует в RIB (например, через blackhole- или обычный статический маршрут).
- Фильтры
outputразрешают к отправке только нужные агрегаты. - Политики аплинка не блокируют такой экспорт (max-prefix, допустимые длины, communities).
- Альтернатива: не задавать
bgp-as-pathна статике, а originate делать через отдельный BGP-инстансAS205828— тогда AS-PATH начнётся с205828автоматически. Оба подхода приводят к тому, что origin остаётся205828, а206873— транзит.
Примечания
- Уточните у аплинка (AS206873) политику приёма: max-prefix, разрешённые длины, необходимость MD5.
- Проверьте IRR/RPKI (ROA) для ваших /32, чтобы аплинк и downstream не отбрасывали анонсы.
- Если требуется деагрегация (/48, /64) — укажите список, добавьте соответствующие
blackhole/network, обновите фильтры.
Контроль пути: AS-PATH (RouterOS v6)
- AS-PATH начнётся с `205828` автоматически, так как это значение `as` у инстанса `AS205828`. Дополнительно задавать `bgp-as-path` на статике не требуется.
- Для удлинения пути используйте prepend в фильтрах (RouterOS v6):
/routing filter add chain=output prefix=2a0d:f847::/32 set-bgp-prepend=2 action=accept
---
### Минимальная конфигурация (как в вашем кейсе)
Инстанс с нужной AS
/routing bgp instance set default as=206873 router-id=194.150.234.1
Статика под марштуры через AS по IGP
/ipv6 route add dst-address=2a0d:f847::/32 distance=10 gateway=2a0b:6903:fdb:d151::2 bgp-as-path=205828 /ipv6 route add dst-address=2a09:a504::/32 distance=10 gateway=2a0b:6903:fdb:d152::2 bgp-as-path=205828 /ipv6 route add dst-address=2a0c:9485::/32 distance=10 gateway=2a0b:6903:fdb:d153::2 bgp-as-path=205828 /ipv6 route add dst-address=2a12:38c2::/32 distance=10 gateway=2a0b:6903:fdb:d154::2 bgp-as-path=205828 /ipv6 route add dst-address=2a12:39c0::/32 distance=10 gateway=2a0b:6903:fdb:d155::2 bgp-as-path=205828 /ipv6 route add dst-address=2a12:3042::/32 distance=10 gateway=2a0b:6903:fdb:d156::2 bgp-as-path=205828
Ограничивающий фильтр (v6)
/routing filter add chain=DOM.RU-IPv6 prefix=2a0d:f847::/32 action=accept /routing filter add chain=DOM.RU-IPv6 prefix=2a09:a504::/32 action=accept /routing filter add chain=DOM.RU-IPv6 prefix=2a0c:9485::/32 action=accept /routing filter add chain=DOM.RU-IPv6 prefix=2a12:38c2::/32 action=accept /routing filter add chain=DOM.RU-IPv6 prefix=2a12:39c0::/32 action=accept /routing filter add chain=DOM.RU-IPv6 prefix=2a12:3042::/32 action=accept /routing filter add chain=DOM.RU-IPv6 action=discard
- AS-PATH будет начинаться с `205828` автоматически, т.к. инстанс `AS205828` имеет `as=205828`.
- Чтобы «удлинить» путь, используйте prepend:
- v6: `set-bgp-prepend=<N>` в фильтре.
- v7: `set bgp.as-path-prepend=<N>` в `routing filter rule` и привяжите цепочку к соединению.
- Для реального анонса наружу обязательно наличие BGP peer к AS206873.
---
## Заключение
После применения настроек ваши префиксы AS205828 будут анонсироваться через основную AS206873 на MikroTik RouterOS (роутер 194.150.234.1). При необходимости расширю документ с примерами LL eBGP (link-local) и шаблонами для RouterOS v7.