379 lines
12 KiB
Markdown
379 lines
12 KiB
Markdown
# Настройка 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<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/>10.100.4.0/30" --> IHOR
|
||
HOME -- "GRE RTK→SWE<br/>10.100.6.0/30" --> SWE
|
||
|
||
%% Межсерверный туннель
|
||
IHOR -- "GRE IHOR→SWE<br/>10.200.2.0/30" --> SWE
|
||
|
||
%% OSPF маршруты
|
||
SWE -. "OSPF 0.0.0.0/0<br/>через IHOR" .- IHOR
|
||
IHOR -. "OSPF 0.0.0.0/0<br/>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=<SWE_WAN_IP> local-address=<IHOR_WAN_IP>
|
||
/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=<IHOR_WAN_IP> local-address=<SWE_WAN_IP>
|
||
/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=<SWE_WAN_IP> local-address=<IHOR_WAN_IP>
|
||
/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=<IHOR_WAN_IP> local-address=<SWE_WAN_IP>
|
||
/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. |