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