BGP на MikroTik¶
Час: ~30 хвилин
Рівень: Середній
Потрібно: Два MikroTik роутери з RouterOS 7.x
Що отримаємо¶
Динамічну маршрутизацію між двома роутерами через BGP.
┌─────────────────┐ ┌─────────────────┐
│ Router A │ │ Router B │
│ AS 65001 │◄─────── BGP ──────►│ AS 65002 │
│ 10.0.0.1/30 │ │ 10.0.0.2/30 │
│ │ │ │
│ LAN: 192.168.1.0/24 │ LAN: 192.168.2.0/24
└─────────────────┘ └─────────────────┘
Передумови¶
- [ ] Два MikroTik роутери з RouterOS 7.x
- [ ] Базове з'єднання між роутерами (L2 або L3)
- [ ] Доступ до WinBox або CLI
- [ ] Приватні AS номери (65001-65534)
Що таке BGP (коротко)¶
BGP (Border Gateway Protocol) — протокол динамічної маршрутизації:
- Обмінюється маршрутами між мережами
- Автоматично оновлює таблиці маршрутизації
- Працює на основі AS (Autonomous System) номерів
Крок 1: Базова конфігурація IP¶
Router A (CLI)¶
# Інтерфейс до Router B
/ip address add address=10.0.0.1/30 interface=ether1
# LAN інтерфейс
/ip address add address=192.168.1.1/24 interface=ether2
Router B (CLI)¶
# Інтерфейс до Router A
/ip address add address=10.0.0.2/30 interface=ether1
# LAN інтерфейс
/ip address add address=192.168.2.1/24 interface=ether2
Перевірка з'єднання:
# З Router A
/ping 10.0.0.2
Крок 2: Створення BGP Instance¶
Router A¶
/routing bgp template
add name=default as=65001 router-id=10.0.0.1
Router B¶
/routing bgp template
add name=default as=65002 router-id=10.0.0.2
Крок 3: Налаштування BGP Peer (Сусіда)¶
Router A — додаємо Router B як peer¶
/routing bgp connection
add name=peer-to-B remote.address=10.0.0.2 remote.as=65002 \
local.role=ebgp templates=default
Router B — додаємо Router A як peer¶
/routing bgp connection
add name=peer-to-A remote.address=10.0.0.1 remote.as=65001 \
local.role=ebgp templates=default
Крок 4: Перевірка BGP Session¶
На обох роутерах:
/routing bgp session print
Очікуваний результат:
Flags: E - established
# NAME REMOTE-ADDRESS REMOTE-AS STATE
0 E peer-to-X 10.0.0.x 6500x established
Статус має бути established.
Крок 5: Анонсування мереж¶
Router A — анонсуємо LAN¶
/routing bgp network
add network=192.168.1.0/24
Router B — анонсуємо LAN¶
/routing bgp network
add network=192.168.2.0/24
Крок 6: Перевірка маршрутів¶
Переглянути отримані BGP маршрути¶
/routing route print where bgp
На Router A:
# DST-ADDRESS GATEWAY DISTANCE
0 192.168.2.0/24 10.0.0.2 20
На Router B:
# DST-ADDRESS GATEWAY DISTANCE
0 192.168.1.0/24 10.0.0.1 20
Перевірка з'єднання між LAN¶
З Router A:
/ping 192.168.2.1
Крок 7: Фільтрація маршрутів (опціонально)¶
Створення filter rule¶
# Дозволити тільки певні мережі
/routing filter rule
add chain=bgp-in rule="if (dst==192.168.0.0/16) { accept }"
add chain=bgp-in rule="reject"
Застосування фільтра до peer¶
/routing bgp connection
set peer-to-X input.filter=bgp-in
WinBox: Графічний інтерфейс¶
Крок 1: BGP Template¶
- Routing → BGP → Templates
- Натисніть + для додавання
- Введіть:
- Name:default
- AS:65001(або ваш номер)
- Router ID:10.0.0.1
Крок 2: BGP Connection¶
- Routing → BGP → Connections
- Натисніть + для додавання
- Введіть:
- Name:peer-to-B
- Remote Address:10.0.0.2
- Remote AS:65002
- Templates:default
Крок 3: Networks¶
- Routing → BGP → Networks
- Натисніть + для додавання
- Введіть:
192.168.1.0/24
Типові проблеми¶
Session не встановлюється¶
Симптоми: Статус "Connect" або "Active", не "Established"
Рішення:
1. Перевірте базове з'єднання: ping
2. Перевірте firewall — дозвольте TCP 179
3. Перевірте правильність AS номерів
Маршрути не з'являються¶
Симптоми: Session established, але немає маршрутів
Рішення:
1. Перевірте що мережі анонсовані: /routing bgp network print
2. Перевірте фільтри
3. Перевірте що мережа існує в таблиці маршрутизації
Маршрут є але трафік не йде¶
Симптоми: Маршрут в таблиці, ping не працює
Рішення:
1. Перевірте зворотний маршрут
2. Перевірте firewall на обох роутерах
3. Перевірте NAT правила
Наступні кроки¶
- OSPF на MikroTik — альтернативний протокол
- MikroTik Firewall — захист BGP
Див. також¶
Шлях: step-by-step/bgp-mikrotik-setup.md