diff --git a/ospf_cost_priority.md b/ospf_cost_priority.md index 601b79a..e5ec959 100644 --- a/ospf_cost_priority.md +++ b/ospf_cost_priority.md @@ -44,28 +44,36 @@ graph TB ### На 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 + # Настроить cost для приоритизации маршрутов /routing ospf interface-template # IHOR (приоритетный) - низкий cost -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone +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=1000 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=ihor-swe-area ``` ### На MSK-IHOR (msk.ihor.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 + # Настроить cost для туннелей к HOME /routing ospf interface-template -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area # Настроить cost для туннеля к SWE -add interfaces=gre-SWE-HIPHOST cost=10 area=backbone +add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area # Статический маршрут через SWE /ip route @@ -79,13 +87,17 @@ set [ find default=yes ] redistribute=connected,static ### На SWE-HIPHOST (swe.hiphost.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 + # Настроить cost для туннелей к HOME (высокий cost) /routing ospf interface-template -add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=ihor-swe-area # Настроить cost для туннеля к IHOR (низкий cost) -add interfaces=gre-IHOR-SWE cost=10 area=backbone +add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area # OSPF redistribute /routing ospf instance @@ -117,12 +129,12 @@ set [ find default=yes ] redistribute=connected,static # На HOME /routing ospf interface-template # IHOR (приоритетный) -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone +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=5000 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=10000 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=5000 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=10000 area=ihor-swe-area ``` ### Вариант 2: Минимальная разница @@ -130,12 +142,12 @@ add interfaces=gre-SWE-HIPHOST-MTS cost=10000 area=backbone # На HOME /routing ospf interface-template # IHOR (приоритетный) -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone +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 (резервный) - небольшая разница -add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=200 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=200 area=ihor-swe-area ``` ### Вариант 3: По провайдерам @@ -143,12 +155,12 @@ add interfaces=gre-SWE-HIPHOST-MTS cost=200 area=backbone # На HOME /routing ospf interface-template # Ростелеком (основной провайдер) -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=backbone +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-RTK cost=100 area=ihor-swe-area # МТС (резервный провайдер) -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=1000 area=backbone +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=1000 area=ihor-swe-area ``` ## Проверка настройки @@ -271,15 +283,19 @@ set [ find where interfaces=gre-MSK-IHOR-MTS ] cost=100 ### 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 + # OSPF интерфейсы с приоритизацией по cost /routing ospf interface-template # IHOR (приоритетный) - низкий cost -add interfaces=gre-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone +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=1000 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=ihor-swe-area # Routing table YouTube /routing table @@ -318,11 +334,15 @@ add dst-address=0.0.0.0/0 gateway=10.100.4.2 routing-table=YouTube distance=1 /interface gre add name=gre-SWE-HIPHOST remote-address= local-address= /ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST +# Создать 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-MSK-IHOR-RTK cost=10 area=backbone -add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone -add interfaces=gre-SWE-HIPHOST cost=10 area=backbone +add interfaces=gre-MSK-IHOR-RTK cost=10 area=ihor-swe-area +add interfaces=gre-MSK-IHOR-MTS cost=100 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area # Статический маршрут через SWE /ip route @@ -339,11 +359,15 @@ set [ find default=yes ] redistribute=connected,static /interface gre add name=gre-IHOR-SWE remote-address= local-address= /ip address add address=10.200.2.2/30 interface=gre-IHOR-SWE +# Создать 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-RTK cost=1000 area=backbone -add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=backbone -add interfaces=gre-IHOR-SWE cost=10 area=backbone +add interfaces=gre-SWE-HIPHOST-RTK cost=1000 area=ihor-swe-area +add interfaces=gre-SWE-HIPHOST-MTS cost=2000 area=ihor-swe-area +add interfaces=gre-IHOR-SWE cost=10 area=ihor-swe-area # OSPF redistribute /routing ospf instance diff --git a/ospf_network_fix.md b/ospf_network_fix.md new file mode 100644 index 0000000..9733cac --- /dev/null +++ b/ospf_network_fix.md @@ -0,0 +1,233 @@ +# Исправление OSPF: Получение маршрута 10.200.2.2 через OSPF + +## Проблема + +HOME не может получить маршрут `10.200.2.2%SWE-HIPHOST-MTS` потому что: +- На HOME нет OSPF интерфейса для туннеля `gre-SWE-HIPHOST-MTS` +- OSPF не знает о сети `10.200.2.0/30` (IHOR→SWE) +- Нет пути для получения информации о `10.200.2.2` + +## Анализ текущей ситуации + +### На HOME есть OSPF интерфейсы: +```shell +/routing ospf interface-template print +# Результат: +# gre-MSK-IHOR-RTK (cost=10) +# gre-MSK-IHOR-MTS (cost=100) +# gre-SWE-HIPHOST-RTK (cost=1000) +# gre-SWE-HIPHOST-MTS (cost=2000) +``` + +### На IHOR есть статический маршрут: +```shell +/ip route print where dst-address=0.0.0.0/0 +# Результат: +# dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1 +``` + +### Проблема: +- HOME не знает о сети `10.200.2.0/30` +- Нет OSPF маршрута к `10.200.2.2` + +## Решение 1: Анонсировать сеть 10.200.2.0/30 через OSPF + +### На MSK-IHOR (msk.ihor.rt.shx.su): +```shell +# Убедиться что GRE туннель к SWE в OSPF +/routing ospf interface-template +add interfaces=gre-SWE-HIPHOST cost=10 area=ihor-swe-area + +# Проверить что сеть 10.200.2.0/30 анонсируется +/routing ospf route print +``` + +### На HOME (home.rt.shx.su): +```shell +# Проверить что получаем маршрут к 10.200.2.0/30 +/routing ospf route print + +# Должен показать что-то вроде: +# dst-address=10.200.2.0/30 gateway=10.100.4.2 cost=20 +``` + +## Решение 2: Создать статический маршрут на HOME + +### На HOME (home.rt.shx.su): +```shell +# Добавить статический маршрут к сети 10.200.2.0/30 через IHOR +/ip route +add dst-address=10.200.2.0/30 gateway=10.100.4.2 distance=1 + +# Проверить маршрут +/ip route print where dst-address=10.200.2.0/30 +``` + +## Решение 3: Использовать OSPF redistribute на IHOR + +### На MSK-IHOR (msk.ihor.rt.shx.su): +```shell +# Убедиться что redistribute включает connected маршруты +/routing ospf instance +set [ find default=yes ] redistribute=connected,static + +# Проверить что сеть 10.200.2.0/30 анонсируется +/routing ospf route print +``` + +## Решение 4: Проверить OSPF соседство + +### На HOME (home.rt.shx.su): +```shell +# Проверить OSPF соседей +/routing ospf neighbor print + +# Должен показать IHOR как соседа +``` + +### На MSK-IHOR (msk.ihor.rt.shx.su): +```shell +# Проверить OSPF соседей +/routing ospf neighbor print + +# Должен показать HOME и SWE как соседей +``` + +## Диагностика проблемы + +### Шаг 1: Проверить GRE туннели +```shell +# На HOME +/interface gre print + +# На IHOR +/interface gre print + +# На SWE +/interface gre print +``` + +### Шаг 2: Проверить ping +```shell +# На HOME проверить ping до IHOR +ping 10.100.4.2 count=5 + +# На IHOR проверить ping до SWE +ping 10.200.2.2 count=5 +``` + +### Шаг 3: Проверить OSPF маршруты +```shell +# На HOME +/routing ospf route print + +# На IHOR +/routing ospf route print + +# На SWE +/routing ospf route print +``` + +### Шаг 4: Проверить таблицу маршрутизации +```shell +# На HOME +/ip route print where dst-address=10.200.2.0/30 + +# На IHOR +/ip route print where dst-address=10.200.2.0/30 +``` + +## Полное решение + +### На MSK-IHOR (msk.ihor.rt.shx.su): +```shell +# 1. Убедиться что 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 + +# 2. Добавить в OSPF +/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 + +# 3. Настроить redistribute +/routing ospf instance +set [ find default=yes ] redistribute=connected,static + +# 4. Проверить что сеть анонсируется +/routing ospf route print +``` + +### На HOME (home.rt.shx.su): +```shell +# 1. Проверить что получаем маршрут к 10.200.2.0/30 +/routing ospf route print + +# 2. Если маршрут не получается, добавить статический +/ip route +add dst-address=10.200.2.0/30 gateway=10.100.4.2 distance=1 + +# 3. Проверить маршрут +/ip route print where dst-address=10.200.2.0/30 +``` + +## Проверка решения + +### Тест 1: Проверка OSPF маршрутов +```shell +# На HOME +/routing ospf route print + +# Должен показать: +# dst-address=10.200.2.0/30 gateway=10.100.4.2 cost=20 +``` + +### Тест 2: Проверка ping +```shell +# На HOME проверить ping до 10.200.2.2 +ping 10.200.2.2 count=5 + +# Должен работать через IHOR +``` + +### Тест 3: Проверка traceroute +```shell +# На HOME проверить путь к 10.200.2.2 +traceroute 10.200.2.2 + +# Должен показать: HOME → IHOR → SWE +``` + +## Альтернативное решение: Использовать route tables + +### На HOME (home.rt.shx.su): +```shell +# Создать отдельную routing table для YouTube +/routing table +add name=YouTube fib + +# Добавить маршрут к 10.200.2.0/30 в таблицу YouTube +/ip route +add dst-address=10.200.2.0/30 gateway=10.100.4.2 routing-table=YouTube distance=1 + +# Добавить маршрут 0.0.0.0/0 через 10.200.2.2 в таблицу YouTube +add dst-address=0.0.0.0/0 gateway=10.200.2.2 routing-table=YouTube distance=1 + +# 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 +# ... остальные YouTube подсети +``` + +## Заключение + +Основная проблема в том, что HOME не знает о сети `10.200.2.0/30`. Решения: + +1. **OSPF redistribute** - IHOR должен анонсировать сеть 10.200.2.0/30 +2. **Статический маршрут** - добавить маршрут к 10.200.2.0/30 через IHOR +3. **Route tables** - использовать отдельную таблицу маршрутизации + +Рекомендую начать с проверки OSPF redistribute на IHOR и убедиться что сеть 10.200.2.0/30 анонсируется через OSPF. \ No newline at end of file