diff --git a/README.md b/README.md index 3088171..ec9a7a5 100644 --- a/README.md +++ b/README.md @@ -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: diff --git a/network_routes_optimization.md b/network_routes_optimization.md new file mode 100644 index 0000000..ac54df9 --- /dev/null +++ b/network_routes_optimization.md @@ -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). \ No newline at end of file diff --git a/youtube_routing_setup.md b/youtube_routing_setup.md new file mode 100644 index 0000000..62d4c18 --- /dev/null +++ b/youtube_routing_setup.md @@ -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
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.100.9.0/30" --> SWE + + %% YouTube трафик + HOME -. "YouTube трафик
routing-table=YouTube" .- IHOR + IHOR -. "YouTube трафик
через 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= local-address= +/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= local-address= +/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= local-address= +/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= local-address= +/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 сервисам. \ No newline at end of file