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,379 @@
|
|||||||
|
# Настройка 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.
|
||||||
Reference in New Issue
Block a user