# Настройка 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 сервисам.