Add detailed configuration guide for OSPF route acquisition through IHOR to SWE-HIPHOST. Included step-by-step instructions for setting up GRE tunnels, OSPF areas, and policy-based routing for YouTube traffic. Enhanced architecture overview and troubleshooting tips for OSPF neighbor establishment and route announcements.
This commit is contained in:
@@ -0,0 +1,361 @@
|
||||
# Настройка OSPF Cost для управления приоритетом маршрутов
|
||||
|
||||
## Цель
|
||||
|
||||
Иметь оба маршрута с возможностью управления приоритетом через OSPF cost:
|
||||
- `10.100.5.2%SWE-HIPHOST-MTS` (прямой туннель HOME→SWE)
|
||||
- `10.200.2.2%SWE-HIPHOST-MTS` (через IHOR→SWE)
|
||||
|
||||
## Архитектура решения
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "HOME"
|
||||
HOME[HOME<br/>home.rt.shx.su]
|
||||
end
|
||||
|
||||
subgraph "Москва"
|
||||
IHOR[MSK-IHOR<br/>msk.ihor.rt.shx.su]
|
||||
end
|
||||
|
||||
subgraph "Швеция"
|
||||
SWE[SWE-HIPHOST<br/>swe.hiphost.rt.shx.su]
|
||||
end
|
||||
|
||||
%% GRE туннели
|
||||
HOME -- "GRE RTK→IHOR<br/>cost=10" --> IHOR
|
||||
HOME -- "GRE RTK→SWE<br/>cost=1000" --> SWE
|
||||
|
||||
%% Межсерверный туннель
|
||||
IHOR -- "GRE IHOR→SWE<br/>cost=10" --> SWE
|
||||
|
||||
%% OSPF маршруты
|
||||
SWE -. "OSPF 0.0.0.0/0<br/>cost=1000" .- HOME
|
||||
SWE -. "OSPF 0.0.0.0/0<br/>cost=20" .- IHOR
|
||||
IHOR -. "OSPF 0.0.0.0/0<br/>cost=20" .- HOME
|
||||
|
||||
style HOME fill:#e1f5fe
|
||||
style IHOR fill:#ff9800
|
||||
style SWE fill:#4caf50
|
||||
```
|
||||
|
||||
## Настройка OSPF Cost
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
|
||||
```shell
|
||||
# Настроить cost для приоритизации маршрутов
|
||||
/routing ospf interface-template
|
||||
|
||||
# IHOR (приоритетный) - низкий cost
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# SWE (резервный) - высокий cost
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone
|
||||
```
|
||||
|
||||
### На MSK-IHOR (msk.ihor.rt.shx.su):
|
||||
|
||||
```shell
|
||||
# Настроить cost для туннелей к HOME
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# Настроить cost для туннеля к SWE
|
||||
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
|
||||
|
||||
# Статический маршрут через SWE
|
||||
/ip route
|
||||
add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1
|
||||
|
||||
# OSPF redistribute
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] redistribute=connected,static
|
||||
```
|
||||
|
||||
### На SWE-HIPHOST (swe.hiphost.rt.shx.su):
|
||||
|
||||
```shell
|
||||
# Настроить cost для туннелей к HOME (высокий cost)
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone
|
||||
|
||||
# Настроить cost для туннеля к IHOR (низкий cost)
|
||||
add interfaces=gre-IHOR-SWE cost=10 area=backbone
|
||||
|
||||
# OSPF redistribute
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] redistribute=connected,static
|
||||
```
|
||||
|
||||
## Логика работы OSPF Cost
|
||||
|
||||
### Расчет cost для маршрутов:
|
||||
|
||||
1. **Маршрут через IHOR (приоритетный):**
|
||||
- HOME → IHOR: cost=10
|
||||
- IHOR → SWE: cost=10
|
||||
- **Общий cost = 20**
|
||||
|
||||
2. **Прямой маршрут HOME → SWE (резервный):**
|
||||
- HOME → SWE: cost=1000
|
||||
- **Общий cost = 1000**
|
||||
|
||||
### Результат:
|
||||
- ✅ Маршрут через IHOR будет выбран как основной (cost=20)
|
||||
- ✅ Прямой маршрут будет резервным (cost=1000)
|
||||
- ✅ При отказе IHOR автоматически переключится на прямой маршрут
|
||||
|
||||
## Альтернативные настройки Cost
|
||||
|
||||
### Вариант 1: Более агрессивная разница
|
||||
```shell
|
||||
# На HOME
|
||||
/routing ospf interface-template
|
||||
# IHOR (приоритетный)
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# SWE (резервный) - очень высокий cost
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=5000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=10000 area=backbone
|
||||
```
|
||||
|
||||
### Вариант 2: Минимальная разница
|
||||
```shell
|
||||
# На HOME
|
||||
/routing ospf interface-template
|
||||
# IHOR (приоритетный)
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# SWE (резервный) - небольшая разница
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=200 area=backbone
|
||||
```
|
||||
|
||||
### Вариант 3: По провайдерам
|
||||
```shell
|
||||
# На HOME
|
||||
/routing ospf interface-template
|
||||
# Ростелеком (основной провайдер)
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=backbone
|
||||
|
||||
# МТС (резервный провайдер)
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=1000 area=backbone
|
||||
```
|
||||
|
||||
## Проверка настройки
|
||||
|
||||
### На HOME:
|
||||
```shell
|
||||
# Проверить OSPF интерфейсы и их cost
|
||||
/routing ospf interface-template print
|
||||
|
||||
# Проверить OSPF маршруты с cost
|
||||
/routing ospf route print
|
||||
|
||||
# Проверить таблицу маршрутизации
|
||||
/ip route print where protocol=ospf
|
||||
|
||||
# Проверить что маршрут через IHOR активен
|
||||
/ip route print where gateway=10.100.4.2
|
||||
```
|
||||
|
||||
### На MSK-IHOR:
|
||||
```shell
|
||||
# Проверить OSPF интерфейсы
|
||||
/routing ospf interface-template print
|
||||
|
||||
# Проверить статический маршрут
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
|
||||
# Проверить OSPF соседей
|
||||
/routing ospf neighbor print
|
||||
```
|
||||
|
||||
### На SWE-HIPHOST:
|
||||
```shell
|
||||
# Проверить OSPF интерфейсы
|
||||
/routing ospf interface-template print
|
||||
|
||||
# Проверить OSPF соседей
|
||||
/routing ospf neighbor print
|
||||
```
|
||||
|
||||
## Тестирование приоритизации
|
||||
|
||||
### Тест 1: Проверка активного маршрута
|
||||
```shell
|
||||
# На HOME проверить активный маршрут
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
|
||||
# Должен показать маршрут через IHOR как активный
|
||||
```
|
||||
|
||||
### Тест 2: Проверка traceroute
|
||||
```shell
|
||||
# Проверить маршрут к YouTube
|
||||
traceroute 173.194.0.1
|
||||
|
||||
# Должен показать: HOME → IHOR → SWE → YouTube
|
||||
```
|
||||
|
||||
### Тест 3: Тест failover
|
||||
```shell
|
||||
# Отключить GRE туннель IHOR→SWE
|
||||
/interface gre disable [ find where name=gre-SWE-HIPHOST ]
|
||||
|
||||
# Проверить что маршрут переключился на прямой
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
|
||||
# Включить туннель обратно
|
||||
/interface gre enable [ find where name=gre-SWE-HIPHOST ]
|
||||
|
||||
# Проверить что вернулся к IHOR
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
```
|
||||
|
||||
## Мониторинг cost
|
||||
|
||||
### Создать скрипт для мониторинга:
|
||||
```shell
|
||||
/system script
|
||||
add name=check-ospf-cost source={
|
||||
:log info "=== OSPF Cost Check ==="
|
||||
:log info "OSPF Interfaces:"
|
||||
/routing ospf interface-template print
|
||||
:log info "OSPF Routes:"
|
||||
/routing ospf route print
|
||||
:log info "Active Routes:"
|
||||
/ip route print where protocol=ospf
|
||||
}
|
||||
```
|
||||
|
||||
### Запуск мониторинга:
|
||||
```shell
|
||||
/system script run check-ospf-cost
|
||||
```
|
||||
|
||||
## Динамическое изменение cost
|
||||
|
||||
### Для временного переключения на прямой маршрут:
|
||||
```shell
|
||||
# Временно увеличить cost для IHOR
|
||||
/routing ospf interface-template
|
||||
set [ find where interfaces=gre-MSK-IHOR-RTK ] cost=1000
|
||||
set [ find where interfaces=gre-MSK-IHOR-MTS ] cost=2000
|
||||
|
||||
# Проверить что маршрут переключился
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
```
|
||||
|
||||
### Для возврата к IHOR:
|
||||
```shell
|
||||
# Вернуть низкий cost для IHOR
|
||||
/routing ospf interface-template
|
||||
set [ find where interfaces=gre-MSK-IHOR-RTK ] cost=10
|
||||
set [ find where interfaces=gre-MSK-IHOR-MTS ] cost=100
|
||||
|
||||
# Проверить что маршрут вернулся
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
```
|
||||
|
||||
## Полная конфигурация для копирования
|
||||
|
||||
### HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# OSPF интерфейсы с приоритизацией по cost
|
||||
/routing ospf interface-template
|
||||
# IHOR (приоритетный) - низкий cost
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# SWE (резервный) - высокий cost
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone
|
||||
|
||||
# Routing table YouTube
|
||||
/routing table
|
||||
add name=YouTube fib
|
||||
|
||||
# Address-list YouTube
|
||||
/ip firewall address-list
|
||||
add list=YouTube list=173.194.0.0/16 comment="YouTube"
|
||||
add list=YouTube list=74.125.0.0/16 comment="YouTube"
|
||||
add list=YouTube list=142.250.0.0/16 comment="YouTube"
|
||||
add list=YouTube list=172.217.0.0/16 comment="YouTube"
|
||||
add list=YouTube list=216.58.0.0/16 comment="YouTube"
|
||||
add list=YouTube list=34.0.0.0/8 comment="YouTube"
|
||||
add list=YouTube list=35.0.0.0/8 comment="YouTube"
|
||||
add list=YouTube list=142.0.0.0/8 comment="YouTube"
|
||||
|
||||
# Routing rules
|
||||
/routing rule
|
||||
add dst-address=173.194.0.0/16 action=lookup table=YouTube
|
||||
add dst-address=74.125.0.0/16 action=lookup table=YouTube
|
||||
add dst-address=142.250.0.0/16 action=lookup table=YouTube
|
||||
add dst-address=172.217.0.0/16 action=lookup table=YouTube
|
||||
add dst-address=216.58.0.0/16 action=lookup table=YouTube
|
||||
add dst-address=34.0.0.0/8 action=lookup table=YouTube
|
||||
add dst-address=35.0.0.0/8 action=lookup table=YouTube
|
||||
add dst-address=142.0.0.0/8 action=lookup table=YouTube
|
||||
|
||||
# Маршрут в таблице YouTube через IHOR
|
||||
/ip route
|
||||
add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-table=YouTube distance=1
|
||||
```
|
||||
|
||||
### MSK-IHOR (msk.ihor.rt.shx.su):
|
||||
```shell
|
||||
# GRE туннель к SWE
|
||||
/interface gre add name=gre-SWE-HIPHOST remote-address=<SWE_WAN_IP> local-address=<IHOR_WAN_IP>
|
||||
/ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST
|
||||
|
||||
# OSPF интерфейсы
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
|
||||
|
||||
# Статический маршрут через SWE
|
||||
/ip route
|
||||
add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1
|
||||
|
||||
# OSPF redistribute
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] redistribute=connected,static
|
||||
```
|
||||
|
||||
### SWE-HIPHOST (swe.hiphost.rt.shx.su):
|
||||
```shell
|
||||
# GRE туннель от IHOR
|
||||
/interface gre add name=gre-IHOR-SWE remote-address=<IHOR_WAN_IP> local-address=<SWE_WAN_IP>
|
||||
/ip address add address=10.200.2.2/30 interface=gre-IHOR-SWE
|
||||
|
||||
# OSPF интерфейсы
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone
|
||||
add interfaces=gre-IHOR-SWE cost=10 area=backbone
|
||||
|
||||
# OSPF redistribute
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] redistribute=connected,static
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Данная настройка обеспечивает:
|
||||
1. **Оба маршрута существуют** (прямой и через IHOR)
|
||||
2. **Управление приоритетом через OSPF cost**
|
||||
3. **Автоматический failover** при отказе основного маршрута
|
||||
4. **Гибкость настройки** - можно легко изменить приоритеты
|
||||
|
||||
Теперь у вас будет полный контроль над маршрутизацией через настройку OSPF cost.
|
||||
@@ -0,0 +1,248 @@
|
||||
# Исправление OSPF маршрутизации: 10.200.2.2 вместо 10.100.5.2
|
||||
|
||||
## Проблема
|
||||
|
||||
На HOME создается маршрут:
|
||||
- ❌ `10.100.5.2%SWE-HIPHOST-MTS` (прямой туннель HOME→SWE)
|
||||
- ✅ Нужно: `10.200.2.2%SWE-HIPHOST-MTS` (через IHOR→SWE)
|
||||
|
||||
## Причина проблемы
|
||||
|
||||
OSPF анонсирует маршруты напрямую от SWE-HIPHOST через туннель HOME→SWE, а не через IHOR→SWE.
|
||||
|
||||
## Решение 1: Отключить прямой OSPF от SWE-HIPHOST
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# Отключить GRE туннели к SWE из OSPF
|
||||
/routing ospf interface-template
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-RTK ]
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-MTS ]
|
||||
|
||||
# Проверить что остались только туннели к IHOR
|
||||
/routing ospf interface-template print
|
||||
```
|
||||
|
||||
### На SWE-HIPHOST (swe.hiphost.rt.shx.su):
|
||||
```shell
|
||||
# Отключить GRE туннели к HOME из OSPF
|
||||
/routing ospf interface-template
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-RTK ]
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-MTS ]
|
||||
|
||||
# Оставить только туннель к IHOR
|
||||
/routing ospf interface-template print
|
||||
```
|
||||
|
||||
## Решение 2: Использовать разные OSPF areas
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# Создать отдельную area для IHOR
|
||||
/routing ospf area
|
||||
add name=ihor-area instance=default area-id=0.0.0.4
|
||||
|
||||
# Создать отдельную area для SWE (если нужен прямой доступ)
|
||||
add name=swe-area instance=default area-id=0.0.0.5
|
||||
|
||||
# Добавить туннели к IHOR в area 0.0.0.4
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-area
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-area
|
||||
|
||||
# Добавить туннели к SWE в area 0.0.0.5 (с высоким cost)
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=200 area=swe-area
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=300 area=swe-area
|
||||
```
|
||||
|
||||
### На MSK-IHOR (msk.ihor.rt.shx.su):
|
||||
```shell
|
||||
# Добавить в area 0.0.0.4
|
||||
/routing ospf area
|
||||
add name=ihor-area instance=default area-id=0.0.0.4
|
||||
|
||||
# Туннели к HOME в area 0.0.0.4
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-area
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-area
|
||||
|
||||
# Туннель к SWE в area 0.0.0.4
|
||||
add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-area
|
||||
```
|
||||
|
||||
### На SWE-HIPHOST (swe.hiphost.rt.shx.su):
|
||||
```shell
|
||||
# Добавить в area 0.0.0.4 (для IHOR) и 0.0.0.5 (для HOME)
|
||||
/routing ospf area
|
||||
add name=ihor-area instance=default area-id=0.0.0.4
|
||||
add name=swe-area instance=default area-id=0.0.0.5
|
||||
|
||||
# Туннель к IHOR в area 0.0.0.4
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-IHOR-SWE cost=10 area=ihor-area
|
||||
|
||||
# Туннели к HOME в area 0.0.0.5 (с высоким cost)
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=200 area=swe-area
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=300 area=swe-area
|
||||
```
|
||||
|
||||
## Решение 3: Использовать OSPF cost для приоритизации
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# Настроить cost так чтобы IHOR был приоритетным
|
||||
/routing ospf interface-template
|
||||
# IHOR (приоритетный) - низкий cost
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
|
||||
# SWE (резервный) - очень высокий cost
|
||||
add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone
|
||||
add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone
|
||||
```
|
||||
|
||||
## Решение 4: Использовать OSPF filters (рекомендуемое)
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# Создать фильтр который отклоняет маршруты от SWE напрямую
|
||||
/routing filter
|
||||
add name=ospf-block-direct-swe chain=input protocol=ospf rule="if (originator=10.100.0.5 && dst-address=0.0.0.0/0) { reject } else { accept }"
|
||||
|
||||
# Применить фильтр к OSPF instance
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] in-filter=ospf-block-direct-swe
|
||||
```
|
||||
|
||||
### Альтернативный фильтр (более точный):
|
||||
```shell
|
||||
# Блокировать маршруты где gateway = прямой туннель к SWE
|
||||
/routing filter
|
||||
add name=ospf-block-swe-gateway chain=input protocol=ospf rule="if (gateway=10.100.5.2) { reject } else { accept }"
|
||||
add name=ospf-block-swe-gateway chain=input protocol=ospf rule="if (gateway=10.100.6.2) { reject } else { accept }"
|
||||
|
||||
# Применить фильтр
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] in-filter=ospf-block-swe-gateway
|
||||
```
|
||||
|
||||
## Решение 5: Использовать route tables для изоляции
|
||||
|
||||
### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# Создать отдельные routing tables
|
||||
/routing table
|
||||
add name=IHOR-ROUTES fib
|
||||
add name=SWE-ROUTES fib
|
||||
|
||||
# Routing rules для выбора таблицы
|
||||
/routing rule
|
||||
add dst-address=0.0.0.0/0 action=lookup table=IHOR-ROUTES
|
||||
|
||||
# OSPF будет добавлять маршруты в соответствующие таблицы
|
||||
# В IHOR-ROUTES будет маршрут через IHOR
|
||||
# В SWE-ROUTES будет маршрут через SWE (если нужен)
|
||||
```
|
||||
|
||||
## Проверка решения
|
||||
|
||||
### На HOME:
|
||||
```shell
|
||||
# Проверить OSPF маршруты
|
||||
/routing ospf route print
|
||||
|
||||
# Проверить таблицу маршрутизации
|
||||
/ip route print where protocol=ospf
|
||||
|
||||
# Проверить что нет маршрутов через 10.100.5.2
|
||||
/ip route print where gateway=10.100.5.2
|
||||
|
||||
# Проверить что есть маршруты через 10.200.2.2
|
||||
/ip route print where gateway=10.200.2.2
|
||||
```
|
||||
|
||||
### На MSK-IHOR:
|
||||
```shell
|
||||
# Проверить что IHOR анонсирует маршрут
|
||||
/routing ospf route print
|
||||
|
||||
# Проверить статический маршрут
|
||||
/ip route print where dst-address=0.0.0.0/0
|
||||
```
|
||||
|
||||
## Рекомендуемое решение
|
||||
|
||||
**Рекомендую использовать Решение 1 + Решение 4**:
|
||||
|
||||
1. **Отключить прямые OSPF туннели HOME→SWE**
|
||||
2. **Использовать фильтр для блокировки прямых маршрутов от SWE**
|
||||
3. **Получать маршруты только через IHOR**
|
||||
|
||||
### Полная конфигурация:
|
||||
|
||||
#### На HOME (home.rt.shx.su):
|
||||
```shell
|
||||
# 1. Отключить прямые туннели к SWE из OSPF
|
||||
/routing ospf interface-template
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-RTK ]
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-MTS ]
|
||||
|
||||
# 2. Создать фильтр для блокировки прямых маршрутов от SWE
|
||||
/routing filter
|
||||
add name=ospf-block-direct-swe chain=input protocol=ospf rule="if (originator=10.100.0.5 && dst-address=0.0.0.0/0) { reject } else { accept }"
|
||||
|
||||
# 3. Применить фильтр
|
||||
/routing ospf instance
|
||||
set [ find default=yes ] in-filter=ospf-block-direct-swe
|
||||
|
||||
# 4. Убедиться что туннели к IHOR в OSPF
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
|
||||
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
|
||||
```
|
||||
|
||||
#### На SWE-HIPHOST (swe.hiphost.rt.shx.su):
|
||||
```shell
|
||||
# Отключить прямые туннели к HOME из OSPF
|
||||
/routing ospf interface-template
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-RTK ]
|
||||
remove [ find where interfaces=gre-SWE-HIPHOST-MTS ]
|
||||
|
||||
# Оставить только туннель к IHOR
|
||||
/routing ospf interface-template
|
||||
add interfaces=gre-IHOR-SWE cost=10 area=backbone
|
||||
```
|
||||
|
||||
## Тестирование
|
||||
|
||||
### Тест 1: Проверка маршрутов
|
||||
```shell
|
||||
# На HOME проверить маршруты
|
||||
/ip route print where protocol=ospf
|
||||
|
||||
# Должен показать маршрут через IHOR, НЕ через SWE
|
||||
```
|
||||
|
||||
### Тест 2: Проверка traceroute
|
||||
```shell
|
||||
# Проверить маршрут к YouTube
|
||||
traceroute 173.194.0.1
|
||||
|
||||
# Должен показать: HOME → IHOR → SWE → YouTube
|
||||
```
|
||||
|
||||
### Тест 3: Проверка OSPF соседей
|
||||
```shell
|
||||
# Проверить OSPF соседей
|
||||
/routing ospf neighbor print
|
||||
|
||||
# Должен показать только IHOR, НЕ SWE
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
После применения этих настроек:
|
||||
- ✅ Маршрут 0.0.0.0/0 будет идти через `10.200.2.2%SWE-HIPHOST-MTS`
|
||||
- ❌ Маршрут через `10.100.5.2%SWE-HIPHOST-MTS` будет заблокирован
|
||||
- ✅ YouTube трафик будет идти через IHOR → SWE
|
||||
- ✅ Автоматический failover через OSPF сохранится
|
||||
Reference in New Issue
Block a user