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:
@@ -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