оптимизированный вариант конфигурации
в котором BGP-фильтры автоматически используют address-list для всех подсетей магазинов, чтобы не приходилось вручную добавлять каждую сеть в фильтр.
1. Офис (CCR2216)
# === Address-lists ===
/ip firewall address-list
add list=office-networks address=172.20.100.0/22
add list=office-networks address=172.20.104.0/24
add list=office-networks address=172.20.107.0/24
add list=cloud-networks address=172.18.10.0/24
add list=cloud-networks address=172.19.10.0/24
add list=cloud-networks address=10.253.226.0/24
# Сети магазинов — достаточно добавить новые строки в этот список
add list=store-networks address=172.20.10.0/24
add list=store-networks address=172.20.11.0/24
add list=store-networks address=172.20.12.0/24
add list=store-networks address=172.20.13.0/24
# и так далее...
# === L2TP Server ===
/ip pool add name=l2tp-office-pool ranges=10.251.0.10-10.251.0.200
/ppp profile add name=l2tp-profile local-address=10.251.0.1 remote-address=l2tp-office-pool \
use-encryption=yes only-one=yes
/interface l2tp-server server
set enabled=yes use-ipsec=yes ipsec-secret="StrongSecret" default-profile=l2tp-profile
/ppp secret
add name=filial01 password=filial01 profile=l2tp-profile service=l2tp
# === BGP ===
/routing bgp instance
set default as=65000 router-id=10.251.0.1
/routing bgp peer
add name=cloud remote-address=10.251.0.2 remote-as=65001 address-families=ip
add name=filial01 remote-address=10.251.0.10 remote-as=65101 address-families=ip
# === BGP Filters ===
/routing filter
# Принимаем маршруты магазинов динамически из address-list
add chain=from-filial action=accept prefix-list=store-nets
# Отправляем офисные сети и сети облака
add chain=to-filial action=accept prefix-list=office-nets
add chain=to-filial action=accept prefix-list=cloud-nets
# Создаём prefix-lists на основе address-list
/routing filter prefix-list
add name=store-nets rule="match-address-list=store-networks"
add name=office-nets rule="match-address-list=office-networks"
add name=cloud-nets rule="match-address-list=cloud-networks"
2. Облако (CHR)
# === Address-lists ===
/ip firewall address-list
add list=cloud-networks address=172.18.10.0/24
add list=cloud-networks address=172.19.10.0/24
add list=cloud-networks address=10.253.226.0/24
add list=office-networks address=172.20.100.0/22
add list=office-networks address=172.20.104.0/24
add list=office-networks address=172.20.107.0/24
add list=store-networks address=172.20.10.0/24
add list=store-networks address=172.20.11.0/24
add list=store-networks address=172.20.12.0/24
# === L2TP Server ===
/ip pool add name=l2tp-cloud-pool ranges=10.250.0.10-10.250.0.200
/ppp profile add name=l2tp-profile local-address=10.250.0.1 remote-address=l2tp-cloud-pool \
use-encryption=yes only-one=yes
/interface l2tp-server server
set enabled=yes use-ipsec=yes ipsec-secret="StrongSecret" default-profile=l2tp-profile
/ppp secret
add name=filial01 password=filial01 profile=l2tp-profile service=l2tp
# === BGP ===
/routing bgp instance
set default as=65001 router-id=10.250.0.1
/routing bgp peer
add name=office remote-address=10.250.0.2 remote-as=65000 address-families=ip
add name=filial01 remote-address=10.250.0.10 remote-as=65101 address-families=ip
# === BGP Filters ===
/routing filter
# Исключаем камеры (например, 172.20.XX.0/24 можно разделить по спискам)
add chain=from-filial action=accept prefix-list=store-nets
add chain=to-filial action=accept prefix-list=cloud-nets
/routing filter prefix-list
add name=store-nets rule="match-address-list=store-networks"
add name=cloud-nets rule="match-address-list=cloud-networks"
3. Филиал (hAP ac²)
# === Address-lists ===
/ip firewall address-list
add list=store-networks address=172.20.10.0/24
add list=store-networks address=172.20.11.0/24
# === L2TP Clients ===
/interface l2tp-client
add name=to-office connect-to=vpn.office.domain user=filial01 password=filial01 \
use-ipsec=yes ipsec-secret="StrongSecret" add-default-route=no
/interface l2tp-client
add name=to-cloud connect-to=vpn.cloud.domain user=filial01 password=filial01 \
use-ipsec=yes ipsec-secret="StrongSecret" add-default-route=no
# === BGP ===
/routing bgp instance
set default as=65101 router-id=172.20.10.1
/routing bgp peer
add name=office remote-address=10.251.0.1 remote-as=65000 address-families=ip
add name=cloud remote-address=10.250.0.1 remote-as=65001 address-families=ip
# === BGP Filters ===
/routing filter
add chain=to-office action=accept prefix-list=store-nets
add chain=to-cloud action=accept prefix-list=store-nets
/routing filter prefix-list
add name=store-nets rule="match-address-list=store-networks"
# Настраиваем приоритеты маршрутов
add chain=from-office action=accept set-local-pref=200 prefix-list=office-nets
add chain=from-cloud action=accept set-local-pref=100 prefix-list=cloud-nets
add name=office-nets rule="match-address-list=office-networks"
add name=cloud-nets rule="match-address-list=cloud-networks"
Что изменилось
- Используются
prefix-list, которые ссылаются наaddress-list. - Чтобы добавить новый магазин, достаточно просто добавить подсеть в
address-list store-networksна офисе, облаке и при необходимости — на филиале (для его локальных сетей). - BGP-фильтры не требуют ручного редактирования при добавлении магазинов.
4. Логика маршрутизации
- Камеры магазинов (
172.20.X.0/24) анонсируются только в офис. - LAN магазинов (
172.20.Y.0/24) анонсируется и в офис, и в облако, но маршруты через офис имеют больший Local Pref (200), а через облако — 100 (резерв). - Офис и облако видят все сети, магазины — только офис и облако, но не другие магазины.