LINUX.ORG.RU
ФорумAdmin

OSPF


0

0

Добрый день. В общем задача такая: есть несколько подсетей, замкнутых 
в кольцо. Выглядит так:


          (192.168.0.1)   R1   (192.168.1.1)
                   /              \
                  /                \
                 /                  \
                /                    \
               /                      \
         (192.168.0.2)              (192.168.1.2)
              R3                          R2
         (192.168.2.2) ------------ (192.168.2.1)

Цель такая: если пропадает линк R1-R3, чтобы пакеты пошли по R1-R2-R3.

Решил использовать протокол OSPF. Поставил zebra, насторойки 
следующие:

На всех хостах одинаковый (кроме hostname)
 zebra.conf:
  hostname r1
  passowrd *
  enable password *
  interface sbni0
  interface sbni1
  multicast
  log file /var/log/zebra.log

ospfd.conf @ R1:
  hostname r1
  passowrd *
  enable password *
  router ospf
   network 192.168.0.0/24 area 0
   network 192.168.1.0/24 area 0
  log file /var/log/ospfd.log

@R2
  -- cut --
  router ospf
   network 192.168.1.0/24 area 0
   network 192.168.2.0/24 area 0

@R3
  -- cut --
  router ospf
   network 192.168.0.0/24 area 0
   network 192.168.2.0/24 area 0

Запускаю zebra и ospfd, в итоге получаю на всех роутерах добавочный
маршрут в ту сеть, в которую они не подключены напрямую (например,
R1 получает маршрут в сеть 192.168.2.0/24 чере роутер 192.168.0.2).

Но того, что хотелось, не получилось: к примеру, если падает линк
R3-R2 (192.168.2.2-192.168.2.1), то R2 можно пинговать только через
интерфейс 192.168.1.2, но не 192.168.2.1, т.е. таблица маршрутизации
не изменилась. Где я накосячил ?
★★★★★

P.S. еще пример: если R2 получил маршрут в 192.168.0.0/24 через R1 (192.168.1.1), а затем линк R2-R1 разрывается, то через некоторое время сязь восстанавливается через роутер R3 (182.168.2.2). Но описанная выше проблема остается нерешенной...

roy ★★★★★
() автор топика

> Но того, что хотелось, не получилось: к примеру, если падает линк R3-R2 (192.168.2.2-192.168.2.1), то R2 можно пинговать только через интерфейс 192.168.1.2, но не 192.168.2.1, т.е. таблица маршрутизации не изменилась. Где я накосячил ?

А откуда пингуешь?

Если с R3 то все логично. ибо 2.1 в той же сети что и 2.2 и пинговаться в обход он и не должен.

zhiltsov
()
Ответ на: комментарий от zhiltsov

Т.е. в такой постановке вопроса ("Цель такая: если пропадает линк R1-R3, чтобы пакеты пошли по R1-R2-R3") - задач ну уровне динамической маршрутизации нерешаема ? В принципе я тож к этому сколнялся. Если пинговать по ип, который не в той же сети, то все ок.

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

Решаема.

Все завидит от точки зрения: те линки что ты привел можно назвать магистральными, т.к. в этих сегментах более одного маршрутизатора. Если к этим маршрутизаторам подкчлючать клиентов не в эти сети, а в другие, то клиенты друг друга будут видеть при падеях __Магистарльных__ линий.

Если тебе нужно чтобы при любой визичекой возможности были видны сами маршрутизаторы, то подними на lo отдельный IP (c маской 255.255.255.255) и анонсируй их по OSPF. Тогда маршрутизаторы по этим IP тоже будешь всегда видеть.

Если тебе у тебя есть сегмент распадается на два. (обрыв линка) то внутри сегмента взязность нарушена, и чтобы ее восстановить, нужно не L3 реешние, а L2.

zhiltsov
()
Ответ на: комментарий от zhiltsov

Спасибо за ответ ! Если честно, с динамической маршрутизацией столкнулся совсем недавно, поэтому не совсем все понял. L2 точно не подойдет, т.к. сеть строится на разном оборудовании (adsl модемы, езернет, wifi) и по требованиям нужно именно на уровне ip маршрутизации все рашать.

>Если тебе нужно чтобы при любой визичекой возможности были видны сами маршрутизаторы, то подними на lo отдельный IP (c маской 255.255.255.255) и анонсируй их по OSPF. Тогда маршрутизаторы по этим IP тоже будешь всегда видеть.

А здесь можно поподробнее ? По-моему это то что нужно, но если честно я не могу понять, как это делать. Можете прям на моем примере это показать? Особенно интересует как его анонсировать.

Заранее большое спасибо !

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

На каждом сервер подымается свой IP адрес не привязаный с физическому интерфейсу.
Например так:

r1# ifconfig lo:1 192.168.3.1 netmask 255.255.255.255
r2# ifconfig lo:2 192.168.3.2 netmask 255.255.255.255
r3# ifconfig lo:3 192.168.3.3 netmask 255.255.255.255

в ospf делается запись что нужно (по идее не нужно, но у меня без этого вроде неработало :), но я особо не заморачивался )

router ospf
  network 192.168.3.0/24 area 0

после этого на маршрутизаторах должны появиться маршруты про компьютеры с адресами 192.168.3.1 3.2 3.3 и все, по этим адресам они будут доступны даже при обрывах линка, или отключении физических сетевых карт. В принципе сервисы (http,mail,dns и т.п.) лучше вешать на такие интерфейсы (это если компьютер еше и маршрутизатор), тогда проще будет жить: физичекси переносить сервера с места на место, менять топологию сети и т.п.



zhiltsov
()
Ответ на: комментарий от zhiltsov

Оргомное спасибо, завтра проверю, но идея очень интересная ! )

roy ★★★★★
() автор топика
Ответ на: комментарий от zhiltsov

Еще раз спасибо, все работает как хотелось )

roy ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.