# Настройка OSPF для получения маршрута 0.0.0.0/0 через IHOR→SWE-HIPHOST
## Текущая ситуация
У вас настроено:
- OSPF area 0.0.0.4
- Получение маршрута 0.0.0.0/0 от SWE-HIPHOST напрямую
- Нужно получать маршрут 0.0.0.0/0 через IHOR→SWE-HIPHOST (10.200.2.2)
## Архитектура решения
```mermaid
graph TB
subgraph "HOME"
HOME[HOME
home.rt.shx.su]
end
subgraph "Москва"
IHOR[MSK-IHOR
msk.ihor.rt.shx.su]
end
subgraph "Швеция"
SWE[SWE-HIPHOST
swe.hiphost.rt.shx.su]
end
%% GRE туннели
HOME -- "GRE RTK→IHOR
10.100.4.0/30" --> IHOR
HOME -- "GRE RTK→SWE
10.100.6.0/30" --> SWE
%% Межсерверный туннель
IHOR -- "GRE IHOR→SWE
10.200.2.0/30" --> SWE
%% OSPF маршруты
SWE -. "OSPF 0.0.0.0/0
через IHOR" .- IHOR
IHOR -. "OSPF 0.0.0.0/0
area 0.0.0.4" .- HOME
style HOME fill:#e1f5fe
style IHOR fill:#ff9800
style SWE fill:#4caf50
```
## Пошаговая настройка
### Шаг 1: Настройка GRE туннеля IHOR→SWE-HIPHOST
#### На MSK-IHOR (msk.ihor.rt.shx.su):
```shell
# Создать GRE туннель к SWE-HIPHOST (если не создан)
/interface gre add name=gre-SWE-HIPHOST remote-address= local-address=
/ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST
# Добавить в OSPF area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area
```
#### На SWE-HIPHOST (swe.hiphost.rt.shx.su):
```shell
# Создать GRE туннель от IHOR (если не создан)
/interface gre add name=gre-IHOR-SWE remote-address= local-address=
/ip address add address=10.200.2.2/30 interface=gre-IHOR-SWE
# Добавить в OSPF area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
/routing ospf interface-template
add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area
```
### Шаг 2: Настройка OSPF на IHOR для анонса маршрута 0.0.0.0/0
#### На MSK-IHOR (msk.ihor.rt.shx.su):
```shell
# Настроить OSPF instance для redistribute
/routing ospf instance
set [ find default=yes ] router-id=10.100.0.3 redistribute=connected,static
# Создать статический маршрут 0.0.0.0/0 через SWE-HIPHOST
/ip route
add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1
# Или более точно - только для определенных подсетей
/ip route
add dst-address=173.194.0.0/16 gateway=10.200.2.2 distance=1
add dst-address=74.125.0.0/16 gateway=10.200.2.2 distance=1
add dst-address=142.250.0.0/16 gateway=10.200.2.2 distance=1
add dst-address=172.217.0.0/16 gateway=10.200.2.2 distance=1
add dst-address=216.58.0.0/16 gateway=10.200.2.2 distance=1
add dst-address=34.0.0.0/8 gateway=10.200.2.2 distance=1
add dst-address=35.0.0.0/8 gateway=10.200.2.2 distance=1
add dst-address=142.0.0.0/8 gateway=10.200.2.2 distance=1
```
### Шаг 3: Настройка OSPF на HOME для получения маршрута через IHOR
#### На HOME (home.rt.shx.su):
```shell
# Создать area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
# Добавить GRE туннель к IHOR в area 0.0.0.4
/routing ospf interface-template
add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area
add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area
# Убедиться что GRE туннель к SWE НЕ участвует в OSPF (если не нужен прямой маршрут)
# /routing ospf interface-template remove [ find where interfaces=gre-SWE-HIPHOST-RTK ]
# /routing ospf interface-template remove [ find where interfaces=gre-SWE-HIPHOST-MTS ]
```
### Шаг 4: Настройка Policy Based Routing для YouTube
#### На HOME (home.rt.shx.su):
```shell
# Создать 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 для YouTube трафика
/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
```
## Альтернативный подход: Использование OSPF cost
Если хотите получать маршрут от обоих серверов, но с приоритетом через IHOR:
### На HOME (home.rt.shx.su):
```shell
# Добавить оба туннеля в OSPF с разным cost
/routing ospf interface-template
# IHOR (приоритетный) - низкий cost
add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area
add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area
# SWE (резервный) - высокий cost
add interfaces=gre-SWE-HIPHOST-RTK cost=200 area=ihor-swe-area
add interfaces=gre-SWE-HIPHOST-MTS cost=300 area=ihor-swe-area
```
## Проверка настройки
### На HOME:
```shell
# Проверить OSPF areas
/routing ospf area print
# Проверить OSPF интерфейсы
/routing ospf interface-template print
# Проверить OSPF маршруты
/routing ospf route print
# Проверить таблицу маршрутизации
/ip route print where protocol=ospf
# Проверить routing table YouTube
/ip route print where routing-table=YouTube
```
### На MSK-IHOR:
```shell
# Проверить GRE туннель к SWE
/interface gre print where name~"SWE"
# Проверить OSPF соседей
/routing ospf neighbor print
# Проверить анонсируемые маршруты
/routing ospf route print
# Проверить статические маршруты
/ip route print where dst-address=0.0.0.0/0
```
### На SWE-HIPHOST:
```shell
# Проверить GRE туннель от IHOR
/interface gre print where name~"IHOR"
# Проверить OSPF соседей
/routing ospf neighbor print
```
## Тестирование
### Тест 1: Проверка OSPF соседства
```shell
# На HOME проверить OSPF соседей
/routing ospf neighbor print
# Должен показать соседа IHOR в area 0.0.0.4
```
### Тест 2: Проверка маршрутов
```shell
# На HOME проверить маршруты
/ip route print where protocol=ospf
# Должен показать маршрут 0.0.0.0/0 через IHOR
```
### Тест 3: Проверка YouTube маршрутизации
```shell
# Проверить маршрут к YouTube
traceroute 173.194.0.1
# Должен показать путь: HOME → IHOR → SWE → YouTube
```
### Тест 4: Проверка failover
```shell
# Отключить GRE туннель IHOR→SWE
/interface gre disable [ find where name=gre-SWE-HIPHOST ]
# Проверить что маршрут исчез
/ip route print where protocol=ospf
# Включить туннель обратно
/interface gre enable [ find where name=gre-SWE-HIPHOST ]
```
## Возможные проблемы и решения
### Проблема 1: OSPF соседство не устанавливается
**Решение:**
```shell
# Проверить GRE туннели
/interface gre print
# Проверить ping через туннели
ping 10.200.2.2 count=5
# Проверить OSPF настройки
/routing ospf area print
/routing ospf interface-template print
```
### Проблема 2: Маршрут 0.0.0.0/0 не анонсируется
**Решение:**
```shell
# На IHOR проверить redistribute
/routing ospf instance print
# Проверить статические маршруты
/ip route print where dst-address=0.0.0.0/0
# Проверить OSPF маршруты
/routing ospf route print
```
### Проблема 3: Маршрут идет не через тот туннель
**Решение:**
```shell
# Проверить cost на интерфейсах
/routing ospf interface-template print
# Проверить distance маршрутов
/ip route print where protocol=ospf
```
## Полная конфигурация для копирования
### MSK-IHOR (msk.ihor.rt.shx.su):
```shell
# GRE туннель к SWE
/interface gre add name=gre-SWE-HIPHOST remote-address= local-address=
/ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST
# OSPF area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
# OSPF интерфейс
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area
# Статический маршрут через 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= local-address=
/ip address add address=10.200.2.2/30 interface=gre-IHOR-SWE
# OSPF area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
# OSPF интерфейс
/routing ospf interface-template
add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area
```
### HOME (home.rt.shx.su):
```shell
# OSPF area 0.0.0.4
/routing ospf area
add name=ihor-swe-area instance=default area-id=0.0.0.4
# OSPF интерфейсы к IHOR
/routing ospf interface-template
add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area
add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area
# 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
/ip route
add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-table=YouTube distance=1
```
## Заключение
Данная настройка обеспечивает:
1. **OSPF area 0.0.0.4** для изоляции маршрутов IHOR→SWE
2. **Получение маршрута 0.0.0.0/0 через IHOR** (10.200.2.2)
3. **Routing table YouTube** для направленного трафика
4. **Автоматический failover** через OSPF
Теперь весь YouTube трафик будет идти по маршруту HOME → IHOR → SWE → YouTube через area 0.0.0.4.