From 051914ed9343263a379bc3b9f87a5acae66e854e Mon Sep 17 00:00:00 2001 From: Denis Shatskiy Date: Wed, 16 Jul 2025 10:58:06 +0700 Subject: [PATCH] Add detailed configuration guide for OSPF route acquisition through IHOR to SWE-HIPHOST. Included step-by-step instructions for setting up GRE tunnels, OSPF areas, and policy-based routing for YouTube traffic. Enhanced architecture overview and troubleshooting tips for OSPF neighbor establishment and route announcements. --- ospf_ihor_swe_routing.md | 379 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 379 insertions(+) create mode 100644 ospf_ihor_swe_routing.md diff --git a/ospf_ihor_swe_routing.md b/ospf_ihor_swe_routing.md new file mode 100644 index 0000000..f2f091a --- /dev/null +++ b/ospf_ihor_swe_routing.md @@ -0,0 +1,379 @@ +# Настройка OSPF для получения маршрута 0.0.0.0/0 через IHOR→SWE-HIPHOST + +## Текущая ситуация + +У вас настроено: +- OSPF area 0.0.0.4 +- Получение маршрута 0.0.0.0/0 от SWE-HIPHOST напрямую +- Нужно получать маршрут 0.0.0.0/0 через IHOR→SWE-HIPHOST (10.200.2.2) + +## Архитектура решения + +```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.200.2.0/30" --> SWE + + %% OSPF маршруты + SWE -. "OSPF 0.0.0.0/0
через IHOR" .- IHOR + IHOR -. "OSPF 0.0.0.0/0
area 0.0.0.4" .- HOME + + style HOME fill:#e1f5fe + style IHOR fill:#ff9800 + style SWE fill:#4caf50 +``` + +## Пошаговая настройка + +### Шаг 1: Настройка GRE туннеля IHOR→SWE-HIPHOST + +#### На 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.200.2.1/30 interface=gre-SWE-HIPHOST + +# Добавить в OSPF area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +/routing ospf interface-template +add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area +``` + +#### На 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.200.2.2/30 interface=gre-IHOR-SWE + +# Добавить в OSPF area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +/routing ospf interface-template +add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area +``` + +### Шаг 2: Настройка OSPF на IHOR для анонса маршрута 0.0.0.0/0 + +#### На MSK-IHOR (msk.ihor.rt.shx.su): +```shell +# Настроить OSPF instance для redistribute +/routing ospf instance +set [ find default=yes ] router-id=10.100.0.3 redistribute=connected,static + +# Создать статический маршрут 0.0.0.0/0 через SWE-HIPHOST +/ip route +add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1 + +# Или более точно - только для определенных подсетей +/ip route +add dst-address=173.194.0.0/16 gateway=10.200.2.2 distance=1 +add dst-address=74.125.0.0/16 gateway=10.200.2.2 distance=1 +add dst-address=142.250.0.0/16 gateway=10.200.2.2 distance=1 +add dst-address=172.217.0.0/16 gateway=10.200.2.2 distance=1 +add dst-address=216.58.0.0/16 gateway=10.200.2.2 distance=1 +add dst-address=34.0.0.0/8 gateway=10.200.2.2 distance=1 +add dst-address=35.0.0.0/8 gateway=10.200.2.2 distance=1 +add dst-address=142.0.0.0/8 gateway=10.200.2.2 distance=1 +``` + +### Шаг 3: Настройка OSPF на HOME для получения маршрута через IHOR + +#### На HOME (home.rt.shx.su): +```shell +# Создать area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +# Добавить GRE туннель к IHOR в area 0.0.0.4 +/routing ospf interface-template +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area + +# Убедиться что GRE туннель к SWE НЕ участвует в OSPF (если не нужен прямой маршрут) +# /routing ospf interface-template remove [ find where interfaces=gre-SWE-HIPHOST-RTK ] +# /routing ospf interface-template remove [ find where interfaces=gre-SWE-HIPHOST-MTS ] +``` + +### Шаг 4: Настройка Policy Based Routing для YouTube + +#### На HOME (home.rt.shx.su): +```shell +# Создать routing table YouTube +/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 через IHOR +/ip route +add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-table=YouTube distance=1 +``` + +## Альтернативный подход: Использование OSPF cost + +Если хотите получать маршрут от обоих серверов, но с приоритетом через IHOR: + +### На HOME (home.rt.shx.su): +```shell +# Добавить оба туннеля в OSPF с разным cost +/routing ospf interface-template +# IHOR (приоритетный) - низкий cost +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area + +# SWE (резервный) - высокий cost +add interfaces=gre-SWE-HIPHOST-RTK cost=200 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=300 area=ihor-swe-area +``` + +## Проверка настройки + +### На HOME: +```shell +# Проверить OSPF areas +/routing ospf area print + +# Проверить OSPF интерфейсы +/routing ospf interface-template print + +# Проверить OSPF маршруты +/routing ospf route print + +# Проверить таблицу маршрутизации +/ip route print where protocol=ospf + +# Проверить routing table YouTube +/ip route print where routing-table=YouTube +``` + +### На MSK-IHOR: +```shell +# Проверить GRE туннель к SWE +/interface gre print where name~"SWE" + +# Проверить OSPF соседей +/routing ospf neighbor print + +# Проверить анонсируемые маршруты +/routing ospf route print + +# Проверить статические маршруты +/ip route print where dst-address=0.0.0.0/0 +``` + +### На SWE-HIPHOST: +```shell +# Проверить GRE туннель от IHOR +/interface gre print where name~"IHOR" + +# Проверить OSPF соседей +/routing ospf neighbor print +``` + +## Тестирование + +### Тест 1: Проверка OSPF соседства +```shell +# На HOME проверить OSPF соседей +/routing ospf neighbor print + +# Должен показать соседа IHOR в area 0.0.0.4 +``` + +### Тест 2: Проверка маршрутов +```shell +# На HOME проверить маршруты +/ip route print where protocol=ospf + +# Должен показать маршрут 0.0.0.0/0 через IHOR +``` + +### Тест 3: Проверка YouTube маршрутизации +```shell +# Проверить маршрут к YouTube +traceroute 173.194.0.1 + +# Должен показать путь: HOME → IHOR → SWE → YouTube +``` + +### Тест 4: Проверка failover +```shell +# Отключить GRE туннель IHOR→SWE +/interface gre disable [ find where name=gre-SWE-HIPHOST ] + +# Проверить что маршрут исчез +/ip route print where protocol=ospf + +# Включить туннель обратно +/interface gre enable [ find where name=gre-SWE-HIPHOST ] +``` + +## Возможные проблемы и решения + +### Проблема 1: OSPF соседство не устанавливается +**Решение:** +```shell +# Проверить GRE туннели +/interface gre print + +# Проверить ping через туннели +ping 10.200.2.2 count=5 + +# Проверить OSPF настройки +/routing ospf area print +/routing ospf interface-template print +``` + +### Проблема 2: Маршрут 0.0.0.0/0 не анонсируется +**Решение:** +```shell +# На IHOR проверить redistribute +/routing ospf instance print + +# Проверить статические маршруты +/ip route print where dst-address=0.0.0.0/0 + +# Проверить OSPF маршруты +/routing ospf route print +``` + +### Проблема 3: Маршрут идет не через тот туннель +**Решение:** +```shell +# Проверить cost на интерфейсах +/routing ospf interface-template print + +# Проверить distance маршрутов +/ip route print where protocol=ospf +``` + +## Полная конфигурация для копирования + +### 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.200.2.1/30 interface=gre-SWE-HIPHOST + +# OSPF area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +# OSPF интерфейс +/routing ospf interface-template +add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area + +# Статический маршрут через SWE +/ip route +add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1 + +# OSPF redistribute +/routing ospf instance +set [ find default=yes ] redistribute=connected,static +``` + +### 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.200.2.2/30 interface=gre-IHOR-SWE + +# OSPF area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +# OSPF интерфейс +/routing ospf interface-template +add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area +``` + +### HOME (home.rt.shx.su): +```shell +# OSPF area 0.0.0.4 +/routing ospf area +add name=ihor-swe-area instance=default area-id=0.0.0.4 + +# OSPF интерфейсы к IHOR +/routing ospf interface-template +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area + +# Routing table YouTube +/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 +/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 +``` + +## Заключение + +Данная настройка обеспечивает: +1. **OSPF area 0.0.0.4** для изоляции маршрутов IHOR→SWE +2. **Получение маршрута 0.0.0.0/0 через IHOR** (10.200.2.2) +3. **Routing table YouTube** для направленного трафика +4. **Автоматический failover** через OSPF + +Теперь весь YouTube трафик будет идти по маршруту HOME → IHOR → SWE → YouTube через area 0.0.0.4. \ No newline at end of file