Enhance README.md with detailed instructions for configuring OSPF in "receive-only" mode on HOME. Added multiple approaches for achieving this configuration, including disabling route redistribution, using filters, and creating stub areas. Included a comparison table of methods and emphasized the importance of avoiding inter-server routing. Updated sections on OSPF instance isolation and provided comprehensive examples for each method.

This commit is contained in:
2025-07-16 10:41:17 +07:00
parent 0b669e7053
commit 686f4fffc3
3 changed files with 776 additions and 12 deletions
+39 -12
View File
@@ -1651,9 +1651,9 @@ add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
add interfaces=gre-MSK-VPSVILLE-MTS cost=100 area=backbone
add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
# Создать фильтр для запрета межсерверных маршрутов (простой вариант)
# Создать фильтр для запрета маршрутов через HOME как gateway
/routing filter
add name=ospf-no-inter-server chain=input protocol=ospf rule="if (dst-address=10.100.0.0/16) { reject } else { accept }"
add name=ospf-no-inter-server chain=input protocol=ospf rule="if (gateway=10.100.0.0/16) { reject } else { accept }"
# Применить фильтр к OSPF instance
/routing ospf instance
@@ -1663,18 +1663,29 @@ set [ find default=yes ] in-filter=ospf-no-inter-server
#### Альтернативный фильтр (более точный):
```shell
# Создать фильтр который отклоняет маршруты между серверами
# Создать фильтр который отклоняет маршруты через HOME как gateway
/routing filter
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (dst-address=10.100.2.0/30 && src-address=10.100.4.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (dst-address=10.100.4.0/30 && src-address=10.100.2.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (dst-address=10.100.1.0/30 && src-address=10.100.3.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (dst-address=10.100.3.0/30 && src-address=10.100.1.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.2.1) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.4.1) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.1.1) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.3.1) { reject } else { accept }"
# Применить фильтр
/routing ospf instance
set [ find default=yes ] in-filter=ospf-block-inter-server
```
#### Еще более точный фильтр (только межсерверные маршруты):
```shell
# Блокировать только маршруты где gateway = IP другого сервера
/routing filter
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.2.2 && dst-address=10.100.4.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.4.2 && dst-address=10.100.2.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.1.2 && dst-address=10.100.3.0/30) { reject } else { accept }"
add name=ospf-block-inter-server chain=input protocol=ospf rule="if (gateway=10.100.3.2 && dst-address=10.100.1.0/30) { reject } else { accept }"
```
#### На серверах (VPSVILLE, IHOR):
```shell
# Обычная OSPF конфигурация без изменений
@@ -1699,18 +1710,27 @@ add interfaces=gre-MSK-VPSVILLE-MTS cost=100 area=backbone # или gre-MSK-IHO
#### Как работают фильтры:
**Простой фильтр** (рекомендуемый):
**Точный фильтр** (рекомендуемый):
```shell
# Блокирует ВСЕ маршруты к 10.100.0.0/16
if (dst-address=10.100.0.0/16) { reject } else { accept }
# Блокирует маршруты где gateway = 10.100.0.0/16 (через HOME)
if (gateway=10.100.0.0/16) { reject } else { accept }
```
**Что это означает:**
- ✅ HOME получает маршруты 0.0.0.0/0 от серверов
- ❌ HOME НЕ получает маршруты к GRE туннелям (10.100.x.x)
- ✅ HOME получает маршруты 0.0.0.0/0 от серверов напрямую
- ❌ HOME НЕ получает маршруты где gateway = 10.100.x.x (через себя как транзит)
- ✅ Серверы не могут создать маршруты друг к другу через HOME
- ✅ Cost работает для выбора оптимального пути к интернету
**Примеры блокируемых маршрутов:**
- VPSVILLE → gateway=10.100.4.1 → IHOR (блокируется)
- IHOR → gateway=10.100.2.1 → VPSVILLE (блокируется)
- VPSVILLE → gateway=10.100.1.1 → HOME (блокируется)
**Примеры разрешенных маршрутов:**
- VPSVILLE → gateway=0.0.0.0 → Интернет (разрешается)
- IHOR → gateway=0.0.0.0 → Интернет (разрешается)
**Результат:**
- VPSVILLE анонсирует: 0.0.0.0/0 (cost=10 через Ростелеком, cost=100 через МТС)
- IHOR анонсирует: 0.0.0.0/0 (cost=10 через Ростелеком, cost=100 через МТС)
@@ -1737,6 +1757,13 @@ if (dst-address=10.100.0.0/16) { reject } else { accept }
# Проверить что нет межсерверных маршрутов
/routing ospf route print where dst-address~"10.100"
# Проверить что нет маршрутов через HOME как gateway
/routing ospf route print where gateway~"10.100"
# Проверить работу фильтра
/routing filter print
/routing filter print detail
```
#### Мониторинг отдельных OSPF Instances:
+319
View File
@@ -0,0 +1,319 @@
# Оптимизация сети маршрутов: Новосибирск → Европа/Скандинавия
## Текущая ситуация
- **Home Gateway**: Новосибирск, Россия
- **Цель**: Оптимизация маршрутов до скандинавских и европейских стран
- **Проблема**: Высокая задержка и нестабильность прямых маршрутов
## Анализ альтернативных схем маршрутизации
### Реальные измерения задержек
**Важные данные из практики:**
- **НСК → SE (прямой)**: 72ms
- **НСК → МСК → SE**: 63ms
- **Вывод**: Маршрут через Москву на 9ms быстрее!
### Схема 1: НСК → МСК → SE → Европа ⭐⭐⭐⭐⭐ (РЕКОМЕНДУЕМАЯ)
```
Новосибирск → Москва → Стокгольм → Европейский сегмент
```
**Преимущества:**
- Москва - крупнейший интернет-хаб России
- Отличная связность Москвы с Европой
- Стокгольм - оптимальная точка для Скандинавии
- Стабильные каналы связи
- **Практически доказанная эффективность: 63ms**
**Недостатки:**
- Зависимость от московской инфраструктуры
- Потенциальные проблемы с цензурой/мониторингом
**Ожидаемые задержки:**
- НСК → МСК: 25-35ms
- МСК → SE: 35-45ms
- SE → Европа: 15-25ms
- **Общая задержка: 75-105ms**
- **Реальная задержка: 63ms** ✅
### Схема 2: НСК → МСК → EE → Европа ⭐⭐⭐⭐
```
Новосибирск → Москва → Таллин → Европейский интернет
```
**Преимущества:**
- Таллин - ближайшая точка ЕС к России
- Отличная связность с Балтикой
- Низкая стоимость размещения в Эстонии
- Стабильная политическая обстановка
- **Ожидаемая задержка: 65-75ms** (на основе данных по SE)
**Недостатки:**
- Менее оптимально для Скандинавии
- Ограниченная связность с западной Европой
**Ожидаемые задержки:**
- НСК → МСК: 25-35ms
- МСК → EE: 30-40ms
- EE → Европа: 20-30ms
- **Общая задержка: 75-105ms**
- **Прогнозируемая реальная: 65-75ms**
### Схема 3: Прямые маршруты ⭐⭐⭐
```
Новосибирск → FI/EE → Европа/Скандинавия
```
**Преимущества:**
- Прямой доступ к европейской сети
- Независимость от российской инфраструктуры
- Лучшая стабильность
**Недостатки:**
- Более высокая стоимость
- Сложность настройки
- **Медленнее маршрута через Москву: 72ms vs 63ms**
**Ожидаемые задержки:**
- НСК → FI/EE: 45-70ms
- FI/EE → Европа: 15-35ms
- **Общая задержка: 60-105ms**
- **Реальная задержка: 72ms** ❌
## Сравнительная таблица схем (ОБНОВЛЕННАЯ)
| Схема | Задержка | Стабильность | Стоимость | Сложность | Рекомендация |
|-------|----------|--------------|-----------|-----------|--------------|
| НСК→МСК→SE→Европа | **63ms** | Высокая | Средняя | Низкая | ⭐⭐⭐⭐⭐ |
| НСК→МСК→EE→Европа | **65-75ms** | Высокая | Низкая | Низкая | ⭐⭐⭐⭐ |
| НСК→FI/EE→Европа | **72ms** | Очень высокая | Высокая | Высокая | ⭐⭐⭐ |
## Оптимальная архитектура (ОБНОВЛЕННАЯ)
### Основная схема: Через Москву
```
Основной маршрут: НСК → МСК → SE → Европа (63ms)
Резервный маршрут: НСК → МСК → EE → Европа (65-75ms)
Аварийный маршрут: НСК → FI/EE → Европа (72ms)
```
**Преимущества:**
- **Максимальная скорость**: 63ms до Скандинавии
- Высокая надежность с резервированием
- Оптимальное соотношение цена/качество
- Простота настройки
**Логика маршрутизации:**
1. **Приоритет 1**: НСК → МСК → SE (63ms)
2. **Приоритет 2**: НСК → МСК → EE (65-75ms)
3. **Приоритет 3**: НСК → FI/EE (72ms) - только при проблемах с Москвой
## Ключевые выводы из реальных измерений
### 1. Москва как оптимальный хаб
- **НСК → МСК**: 25-35ms (быстро)
- **МСК → Европа**: отличная связность
- **Общий результат**: 63ms до Стокгольма
### 2. Прямые маршруты менее эффективны
- **НСК → SE**: 72ms (медленнее на 9ms)
- Причины: возможно, менее оптимизированные маршруты
- Вывод: прямая связность не всегда означает лучшую производительность
### 3. Рекомендуемая стратегия
**Использовать Москву как основной хаб** с резервированием через прямые маршруты
## Специальная оптимизация для игр и стриминга
### Требования к сети для игр и стриминга
#### Критические параметры:
- **Задержка**: < 50ms для комфортной игры
- **Джиттер**: < 5ms для стабильности
- **Потери пакетов**: < 0.1% для надежности
- **Пропускная способность**: > 100 Mbps для стриминга
- **Стабильность**: 99.9%+ доступность
### Оптимизированная архитектура для игр
#### Основные игровые хабы:
**1. Франкфурт (Германия) - Главный игровой хаб** ⭐⭐⭐⭐⭐
```
НСК → МСК → FR → Европейские игровые серверы
```
**Преимущества для игр:**
- **Steam**: Основные серверы в Германии
- **PS5/Xbox**: Европейские серверы Microsoft/Sony
- **Discord**: Европейские серверы
- **Epic Games**: Серверы в Германии
- **Задержка**: 45-55ms до игровых серверов
**2. Стокгольм (Швеция) - Резервный игровой хаб** ⭐⭐⭐⭐
```
НСК → МСК → SE → Скандинавские серверы
```
**Преимущества:**
- **Steam**: Скандинавские серверы
- **Nordic игровые студии**: Локальные серверы
- **Задержка**: 63ms (ваши измерения)
- **Стабильность**: Высокая
**3. Амстердам (Нидерланды) - Специализированный хаб** ⭐⭐⭐
```
НСК → МСК → AMS → Альтернативные серверы
```
**Преимущества:**
- **Steam**: Резервные серверы
- **EA/Origin**: Европейские серверы
- **Blizzard**: Серверы в Нидерландах
- **Задержка**: 90ms (ваши измерения)
- **Применение**: Только для специфических сервисов
### Специализированные точки для стриминга
#### Высокоскоростные хабы:
**1. Лондон (Великобритания)** ⭐⭐⭐⭐⭐
```
НСК → МСК → LON → Европейские CDN
```
**Для стриминга:**
- **Netflix**: Европейские серверы
- **YouTube**: Европейские CDN
- **Twitch**: Европейские серверы
- **Spotify**: Европейские серверы
- **Пропускная способность**: 1-10 Gbps
- **Ожидаемая задержка**: 65-75ms
**2. Париж (Франция)** ⭐⭐⭐⭐
```
НСК → МСК → PAR → Французские сервисы
```
**Для стриминга:**
- **Netflix**: Французские серверы
- **Disney+**: Европейские серверы
- **Amazon Prime**: Европейские CDN
- **Пропускная способность**: 1-10 Gbps
- **Ожидаемая задержка**: 70-80ms
### Оптимизированная игровая архитектура (ОБНОВЛЕННАЯ)
#### Уровень 1: Игровые хабы (приоритет: максимальный)
```
НСК → МСК → Франкфурт (основной игровой хаб, 45-55ms)
НСК → МСК → Стокгольм (резервный игровой хаб, 63ms)
```
#### Уровень 2: Стриминговые хабы (приоритет: высокий)
```
НСК → МСК → Лондон (основной стриминговый хаб, 65-75ms)
НСК → МСК → Париж (резервный стриминговый хаб, 70-80ms)
```
#### Уровень 3: Специализированные сервисы
```
НСК → МСК → Амстердам (только для EA/Blizzard, 90ms)
НСК → МСК → Дублин (AWS, европейские облачные сервисы, 75-85ms)
```
### Обновленная сравнительная таблица игровых хабов
| Локация | Задержка | Игровые сервисы | Рекомендация | Применение |
|---------|----------|-----------------|--------------|------------|
| **Франкфурт** | **45-55ms** | Steam, PS5, Xbox, Discord | ⭐⭐⭐⭐⭐ | Основной игровой хаб |
| **Стокгольм** | **63ms** | Steam, Nordic студии | ⭐⭐⭐⭐ | Резервный игровой хаб |
| **Лондон** | **65-75ms** | Netflix, YouTube, Twitch | ⭐⭐⭐⭐⭐ | Основной стриминговый |
| **Париж** | **70-80ms** | Netflix, Disney+, Prime | ⭐⭐⭐⭐ | Резервный стриминговый |
| **Амстердам** | **90ms** | EA, Blizzard, Origin | ⭐⭐⭐ | Специализированный |
| **Дублин** | **75-85ms** | AWS, облачные сервисы | ⭐⭐⭐ | Облачные сервисы |
### Обновленные рекомендации по провайдерам для игр
#### Германия (Франкфурт) - ОСНОВНОЙ
- **Hetzner** - отличная игровая производительность
- **Contabo** - хорошая цена/качество
- **OVH** - стабильные соединения
#### Швеция (Стокгольм) - РЕЗЕРВНЫЙ
- **Bahnhof** - шведский провайдер
- **OVH** - имеет дата-центры в Стокгольме
- **Hetzner** - хорошая связность
#### Великобритания (Лондон) - СТРИМИНГОВЫЙ
- **OVH** - европейские CDN
- **DigitalOcean** - стабильные соединения
- **Linode** - хорошая производительность
#### Нидерланды (Амстердам) - СПЕЦИАЛИЗИРОВАННЫЙ
- **Leaseweb** - специализация на играх
- **OVH** - надежная инфраструктура
- **DigitalOcean** - хорошая связность
### Обновленный план развертывания для игр
#### Фаза 1: Основные игровые хабы (1-2 недели)
1. **Франкфурт** - основной игровой хаб (45-55ms)
2. **Стокгольм** - резервный игровой хаб (63ms)
3. Тестирование с Steam, PS5, Xbox
#### Фаза 2: Стриминговые хабы (2-3 недели)
1. **Лондон** - основной стриминговый хаб (65-75ms)
2. **Париж** - резервный стриминговый хаб (70-80ms)
3. Тестирование Netflix, YouTube, Twitch
#### Фаза 3: Специализированные сервисы (3-4 недели)
1. **Амстердам** - только для EA/Blizzard (90ms)
2. **Дублин** - для AWS/облачных сервисов (75-85ms)
3. Финальная оптимизация
### Обновленный бюджет для игровой сети
#### Примерные затраты (в месяц):
- **Франкфурт** (основной игровой): $40-80
- **Стокгольм** (резервный игровой): $30-60
- **Лондон** (стриминговый): $50-100
- **Париж** (резервный стриминговый): $40-80
- **Амстердам** (специализированный): $30-60
- **Дублин** (облачные сервисы): $40-80
**Общий бюджет**: $230-460/месяц
### Обновленные рекомендации по конфигурации
#### Для Steam:
- Использовать **Франкфурт** как основной сервер (45-55ms)
- **Стокгольм** как резервный (63ms)
- Настройка Steam для принудительного выбора серверов
#### Для PS5/Xbox:
- **Франкфурт** - основной регион (45-55ms)
- **Лондон** - резервный регион (65-75ms)
- Настройка DNS для оптимизации
#### Для стриминга:
- **Лондон** - основной CDN (65-75ms)
- **Париж** - резервный CDN (70-80ms)
- Настройка QoS для приоритизации видео
#### Для EA/Blizzard:
- **Амстердам** - только для этих сервисов (90ms)
- Использовать только при необходимости
### Обновленное заключение для игр
**Оптимальная игровая архитектура (с учетом реальных задержек):**
1. **Основной маршрут**: НСК → МСК → Франкфурт (45-55ms) ⭐⭐⭐⭐⭐
2. **Резервный маршрут**: НСК → МСК → Стокгольм (63ms) ⭐⭐⭐⭐
3. **Стриминговый маршрут**: НСК → МСК → Лондон (65-75ms) ⭐⭐⭐⭐⭐
4. **Специализированный**: НСК → МСК → Амстердам (90ms) ⭐⭐⭐
**Ожидаемые результаты:**
- **Steam**: задержка 45-55ms, стабильное соединение
- **PS5/Xbox**: задержка 45-55ms, без лагов
- **Стриминг**: 4K без буферизации
- **EA/Blizzard**: задержка 90ms (приемлемо для этих сервисов)
- **Общая стабильность**: 99.9%+ доступность
**Ключевой вывод**: Амстердам (90ms) подходит только для специфических сервисов, для основных игр используйте Франкфурт (45-55ms) и Стокгольм (63ms).
+418
View File
@@ -0,0 +1,418 @@
# Настройка Routing Table YouTube для трафика RTK->IHOR->SWE
## Обзор задачи
У вас есть:
- GRE туннель RTK → IHOR (основной канал)
- GRE туннель RTK → SWE (прямой канал)
- Нужно создать routing table YouTube, где весь трафик идет по маршруту RTK → 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/>10.100.4.0/30" --> IHOR
HOME -- "GRE RTK→SWE<br/>10.100.6.0/30" --> SWE
%% Межсерверный туннель
IHOR -- "GRE IHOR→SWE<br/>10.100.9.0/30" --> SWE
%% YouTube трафик
HOME -. "YouTube трафик<br/>routing-table=YouTube" .- IHOR
IHOR -. "YouTube трафик<br/>через SWE" .- SWE
style HOME fill:#e1f5fe
style IHOR fill:#ff9800
style SWE fill:#4caf50
```
## Пошаговая настройка
### Шаг 1: Создание Routing Table YouTube на HOME
```shell
# Создать отдельную таблицу маршрутизации для YouTube
/routing table
add name=YouTube fib
```
### Шаг 2: Настройка GRE туннеля IHOR→SWE (если не настроен)
#### На 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.100.9.1/30 interface=gre-SWE-HIPHOST
# Добавить в OSPF для автоматического распространения маршрутов
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
```
#### На 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.100.9.2/30 interface=gre-IHOR-SWE
# Добавить в OSPF
/routing ospf interface-template
add interfaces=gre-IHOR-SWE cost=10 area=backbone
```
### Шаг 3: Настройка маршрутов в таблице YouTube на HOME
```shell
# Основной маршрут через IHOR→SWE
/ip route
add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-table=YouTube distance=1
# Резервный маршрут через прямой канал RTK→SWE (если нужен)
add dst-address=0.0.0.0/0 gateway=10.100.6.2 routing-table=YouTube distance=2
```
### Шаг 4: Настройка маршрута на IHOR для YouTube трафика
#### На MSK-IHOR (msk.ihor.rt.shx.su):
```shell
# Маршрут для YouTube трафика через SWE
/ip route
add dst-address=0.0.0.0/0 gateway=10.100.9.2 distance=1
# Или более точно - только для YouTube подсетей
# Создать address-list для YouTube IP
/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"
# Маршрут только для YouTube подсетей
/ip route
add dst-address=173.194.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=74.125.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=142.250.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=172.217.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=216.58.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=34.0.0.0/8 gateway=10.100.9.2 distance=1
add dst-address=35.0.0.0/8 gateway=10.100.9.2 distance=1
add dst-address=142.0.0.0/8 gateway=10.100.9.2 distance=1
```
### Шаг 5: Настройка Policy Based Routing на HOME
#### Вариант 1: По IP адресам (рекомендуемый)
```shell
# Создать 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 rule для 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
```
#### Вариант 2: По портам (для HTTPS трафика)
```shell
# Routing rule для HTTPS трафика (порт 443)
/routing rule
add dst-port=443 action=lookup table=YouTube
```
#### Вариант 3: По доменам (требует DNS interception)
```shell
# Создать address-list для YouTube доменов
/ip dns static
add name=youtube.com address=173.194.0.0/16
add name=youtu.be address=173.194.0.0/16
add name=googlevideo.com address=173.194.0.0/16
# Routing rule для этих адресов
/routing rule
add dst-address=173.194.0.0/16 action=lookup table=YouTube
```
### Шаг 6: Настройка OSPF для автоматического failover
#### На HOME (home.rt.shx.su):
```shell
# Убедиться что GRE туннели участвуют в OSPF
/routing ospf interface-template
add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone
add interfaces=gre-SWE-HIPHOST-RTK cost=10 area=backbone
# OSPF автоматически добавит маршруты в таблицу YouTube
```
#### На MSK-IHOR (msk.ihor.rt.shx.su):
```shell
# Анонсировать маршрут через SWE в OSPF
/routing ospf instance
set [ find default=yes ] redistribute=connected,static
# Убедиться что GRE туннель к SWE в OSPF
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
```
## Альтернативная настройка через mangle (RouterOS 6.x)
Если используете RouterOS 6.x или предпочитаете mangle:
```shell
# Mangle rule для YouTube трафика
/ip firewall mangle
add chain=prerouting dst-address-list=YouTube action=mark-routing new-routing-mark=YouTube
# Routing rule для YouTube
/ip route
add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-mark=YouTube distance=1
```
## Проверка настройки
### На HOME:
```shell
# Проверить routing table YouTube
/routing table print where name=YouTube
# Проверить маршруты в таблице YouTube
/ip route print where routing-table=YouTube
# Проверить routing rules
/routing rule print
# Проверить address-list YouTube
/ip firewall address-list print where list=YouTube
# Проверить OSPF маршруты
/routing ospf route print
```
### На MSK-IHOR:
```shell
# Проверить GRE туннель к SWE
/interface gre print where name~"SWE"
# Проверить маршруты к YouTube
/ip route print where dst-address~"173.194"
# Проверить OSPF соседей
/routing ospf neighbor print
```
### На SWE-HIPHOST:
```shell
# Проверить GRE туннель от IHOR
/interface gre print where name~"IHOR"
# Проверить OSPF соседей
/routing ospf neighbor print
```
## Тестирование
### Тест 1: Проверка маршрутизации
```shell
# На HOME проверить маршрут к YouTube
traceroute 173.194.0.1
# Должен показать путь: HOME → IHOR → SWE → YouTube
```
### Тест 2: Проверка через YouTube
```shell
# Открыть YouTube в браузере
# Проверить что трафик идет через нужный маршрут
# Можно использовать инструменты разработчика браузера
```
### Тест 3: Проверка failover
```shell
# Отключить GRE туннель IHOR→SWE
/interface gre disable [ find where name=gre-SWE-HIPHOST ]
# Проверить что трафик переключился на резервный маршрут
traceroute 173.194.0.1
# Включить туннель обратно
/interface gre enable [ find where name=gre-SWE-HIPHOST ]
```
## Оптимизация
### Настройка QoS для YouTube трафика
```shell
# Создать queue tree для YouTube трафика
/queue tree
add name=YouTube parent=global-in max-limit=10M
add name=YouTube-out parent=global-out max-limit=10M
# Mangle rule для маркировки YouTube трафика
/ip firewall mangle
add chain=prerouting dst-address-list=YouTube action=mark-packet new-packet-mark=YouTube
add chain=postrouting src-address-list=YouTube action=mark-packet new-packet-mark=YouTube
# Применить queue tree
/queue tree
set [ find where name=YouTube ] packet-mark=YouTube
set [ find where name=YouTube-out ] packet-mark=YouTube
```
### Мониторинг YouTube трафика
```shell
# Создать простой скрипт для мониторинга
/system script
add name=check-youtube-routing source={
:log info "YouTube routing check"
/ip route print where routing-table=YouTube
/routing rule print where table=YouTube
}
```
## Возможные проблемы и решения
### Проблема 1: YouTube трафик не идет через нужный маршрут
**Решение:**
```shell
# Проверить routing rules
/routing rule print
# Проверить address-list
/ip firewall address-list print where list=YouTube
# Добавить логирование для отладки
/ip firewall mangle
add chain=prerouting dst-address-list=YouTube action=log log-prefix="YouTube"
```
### Проблема 2: GRE туннель IHOR→SWE не работает
**Решение:**
```shell
# Проверить GRE туннель
/interface gre print
# Проверить ping через туннель
ping 10.100.9.2 count=5
# Проверить OSPF соседей
/routing ospf neighbor print
```
### Проблема 3: Медленная скорость через IHOR→SWE
**Решение:**
```shell
# Проверить пропускную способность туннелей
/tool bandwidth-test 10.100.9.2
# Оптимизировать MTU
/interface gre set [ find where name=gre-SWE-HIPHOST ] mtu=1400
```
## Полная конфигурация для копирования
### HOME (home.rt.shx.su):
```shell
# Создать routing table
/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
/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.100.9.1/30 interface=gre-SWE-HIPHOST
# OSPF для туннеля
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
# Маршрут для YouTube через SWE
/ip route
add dst-address=173.194.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=74.125.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=142.250.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=172.217.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=216.58.0.0/16 gateway=10.100.9.2 distance=1
add dst-address=34.0.0.0/8 gateway=10.100.9.2 distance=1
add dst-address=35.0.0.0/8 gateway=10.100.9.2 distance=1
add dst-address=142.0.0.0/8 gateway=10.100.9.2 distance=1
```
### 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.100.9.2/30 interface=gre-IHOR-SWE
# OSPF для туннеля
/routing ospf interface-template
add interfaces=gre-IHOR-SWE cost=10 area=backbone
```
## Заключение
Данная настройка обеспечивает:
1. **Выделенную routing table YouTube** для YouTube трафика
2. **Маршрутизацию через RTK→IHOR→SWE** для оптимизации доступа к YouTube
3. **Автоматический failover** через OSPF
4. **Гибкость настройки** через address-list и routing rules
YouTube трафик будет идти по маршруту HOME → IHOR → SWE → YouTube, что может обеспечить лучшую скорость и стабильность доступа к YouTube сервисам.