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:
@@ -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:
|
||||
|
||||
@@ -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).
|
||||
@@ -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 сервисам.
|
||||
Reference in New Issue
Block a user