База знаний
Как подключить роутер к Route-серверу BGPCast. Два способа: прямое подключение по BGP (нужен публичный IP на роутере) или коннектор-агент (если роутер за NAT/CGNAT). Скопируйте команды и подставьте свои значения из личного кабинета.
Прямое подключение (внешний IP роутера)
Для роутеров с публичным IP. Поднимите BGP-сессию с Route-сервером и подставьте свои peer IP и ASN из личного кабинета.
/routing filter rule
add chain=bgp_in comment="Nexthop to ISP" disabled=no rule="set gw <next-hop>; accept;"
add chain=discard disabled=no rule="reject;" /routing bgp template
add as=<ваш-asn> disabled=no name=bgpcast output.network=bgp-networks .no-client-to-client-reflection=yes routing-table=main /routing bgp connection add as=<ваш-asn> cisco-vpls-nlri-len-fmt=auto-bits connect=yes disabled=no hold-time=4m input.filter=bgp_in instance=bgp-instance-bgpcast keepalive-time=1m listen=yes \ local.address=<ваш-ip> .role=ebgp multihop=yes name=bgpcast output.filter-chain=discard .network=bgp-networks .no-client-to-client-reflection=yes \ remote.address=<bgpcast-ip> .as=<bgpcast-asn> routing-table=main templates=bgpcast vrf=main
/routing/bgp/session/print
! frr.conf frr defaults traditional hostname bgpcast-router ! ip nht resolve-via-default ! route-map bgpcast-in permit 10 set ip next-hop <next-hop> ! route-map bgpcast-out deny 10 ! router bgp <ваш-asn> neighbor <bgpcast-ip> remote-as <bgpcast-asn> neighbor <bgpcast-ip> ebgp-multihop 255 address-family ipv4 unicast neighbor <bgpcast-ip> activate neighbor <bgpcast-ip> route-map bgpcast-in in neighbor <bgpcast-ip> route-map bgpcast-out out neighbor <bgpcast-ip> soft-reconfiguration inbound exit-address-family !
vtysh -c 'show bgp summary'
# bird.conf log syslog all; router id <router-id>; protocol device {} protocol kernel { ipv4 { export all; }; # установить полученные маршруты в таблицу ядра (FIB) } protocol bgp bgpcast { local as <ваш-asn>; neighbor <bgpcast-ip> as <bgpcast-asn>; multihop 255; ipv4 { import filter { gw = <next-hop>; accept; }; export none; }; }
birdc show protocols all bgpcast
Коннектор-агент (за NAT)
Если роутер за NAT/CGNAT. Агент — небольшой демон: тянет ваш announce-set с Route-сервера по HTTPS/WSS и переобъявляет его как BGP локально на роутере. Входящая BGP-сессия наружу не нужна. Агент публикуется на github.com/samfili/bgpcast-agent — контейнерный образ с тегом latest на GHCR (используется ниже), а .ipk-пакеты — в разделе Releases.
opkg install ./bgpcast-agent_<version>-1_<arch>_entware.ipk /opt/etc/init.d/S99bgpcast-agent start
http://<ip-роутера>:8080/ API URL: https://bgpcast.cc
Agent token: <ваш-токен> # bird.conf log syslog all; router id <router-id>; protocol device {} protocol kernel { ipv4 { export all; }; } protocol bgp bgpcast { local port 1791 as <ваш-asn>; # BIRD слушает 1791, TCP/179 остаётся агенту neighbor 127.0.0.1 as <asn-агента>; # агент слушает на 179 ipv4 { import filter { gw = <next-hop>; accept; }; export none; }; }
Архитектуры: mipsel, mips, aarch64. На странице настроек два поля — «API URL» (адрес Route-сервера) и «Agent token» (токен из личного кабинета); страница доступна только из локальной сети.
Войти, чтобы получить токен и параметрыopkg install --force-architecture ./bgpcast-agent_<version>-1_<arch>_openwrt.ipk /etc/init.d/bgpcast-agent enable /etc/init.d/bgpcast-agent start
http://<ip-роутера>:8080/ API URL: https://bgpcast.cc
Agent token: <ваш-токен> # bird.conf log syslog all; router id <router-id>; protocol device {} protocol kernel { ipv4 { export all; }; } protocol bgp bgpcast { local port 1791 as <ваш-asn>; # BIRD слушает 1791, TCP/179 остаётся агенту neighbor 127.0.0.1 as <asn-агента>; # агент слушает на 179 ipv4 { import filter { gw = <next-hop>; accept; }; export none; }; }
Архитектуры: aarch64, arm, mipsel, mips. На странице настроек два поля — «API URL» (адрес Route-сервера) и «Agent token» (токен из личного кабинета); страница доступна только из локальной сети.
Войти, чтобы получить токен и параметры/container/envs/add list=ENV_BGPCAST key=BGPCAST_API_URL value="https://bgpcast.cc"
/container/envs/add list=ENV_BGPCAST key=BGPCAST_AGENT_TOKEN value="<ваш-токен>"
/container/envs/add list=ENV_BGPCAST key=BGPCAST_AGENT_BGP_LISTEN value=":1790" /container/config/set registry-url=https://ghcr.io tmpdir=disk1/tmp
/container/add remote-image=samfili/bgpcast-agent:latest \
interface=veth-bgpcast root-dir=disk1/bgpcast envlist=ENV_BGPCAST name=bgpcast
/container/start bgpcast /routing filter rule
add chain=bgp_in comment="Nexthop" disabled=no rule="set gw <next-hop>; accept;"
add chain=discard disabled=no rule="reject;" /routing bgp template
add as=<ваш-asn> disabled=no name=bgpcast output.network=bgp-networks .no-client-to-client-reflection=yes routing-table=main /routing bgp connection add as=<ваш-asn> cisco-vpls-nlri-len-fmt=auto-bits connect=yes disabled=no hold-time=4m input.filter=bgp_in instance=bgp-instance-bgpcast keepalive-time=1m listen=no \ local.address=<адрес-моста> .role=ebgp multihop=yes name=bgpcast-agent output.filter-chain=discard .network=bgp-networks .no-client-to-client-reflection=yes \ remote.address=<адрес-контейнера> .port=1790 .as=<asn-агента> routing-table=main templates=bgpcast vrf=main
RouterOS v7: пакет container, диск и veth/bridge.
Войти, чтобы получить токен и параметрыЧастые проблемы
- Сессия не поднимается (Active/Connect)
- Проверьте доступность <bgpcast-ip> и что исходящий TCP/179 не блокируется файрволом.
- Нет established, но порт открыт
- Сверьте ASN обеих сторон — они должны совпадать с параметрами из личного кабинета.
- Established, но 0 префиксов
- Убедитесь, что вы подписаны хотя бы на одну категорию и пир включён в личном кабинете.
- Сессия флапает
- Для облачного пира нужен multihop (TTL>1). Проверьте, что multihop/ebgp-multihop включён.
- Агент: сессия не поднимается
- Проверьте токен на LAN-странице :8080 и что исходящие 443 (HTTPS/WSS) к bgpcast.cc не блокируются файрволом.
- Агент: BGP не стартует / порт 179 занят
- На Entware/OpenWrt агент слушает TCP/179, и BIRD2 по умолчанию тоже на 179. Укажите `local port 1791 as <ваш-asn>;` в bird.conf — BIRD станет слушать 1791 и оставит 179 агенту.
- Агент: страница :8080 недоступна
- Страница настроек доступна только из локальной сети (LAN), не из интернета. Откройте её с устройства в той же сети.
- MikroTik: контейнер не стартует
- Проверьте наличие диска (disk1), интерфейс veth-bgpcast и переменную BGPCAST_AGENT_BGP_LISTEN (высокий порт, напр. :1790).