LINUX.ORG.RU
ФорумAdmin

Обеспечение бесперебойности работы сети


0

0

Допустим имеется такая схема:

... -- router1(eth0) -- [ СЕТЬ ] -- (eth0)router2 -- ...
       (eth1) \__________________________/ (eth1)

Т.е. router1 и router2 соединены не только через сеть "СЕТЬ",
но и отдельным резервным линком друг с другом.


Вопрос: существует ли какое-либо ПО или методы обеспечения
работоспособности сети (доступности ПК) при разрыве внутри СЕТИ ?

... -- router1(eth0) -- [ полусеть1 ]     (разрыв)     [ полусеть2 ] -- (eth0)router2 -- ...
       (eth1) \______________________________________________________________/ (eth1)

Т.е. нужно чтоб после разрыва, к примеру, router2 знал о том,
что тачилы из "полусеть2" доступны непосредственно через eth0,
а остальные ("полусеть1") - только через router1.
Причем при восстановлении связи в сети все бы возвращалось на свои места.

Пытался читать про STP (Spanning Tree Protocol), но что-то он меня не впечатлил,
кажется он не решит моей проблемы (в плане использования только на router-ах,
switch-и внутри сети его не умеют, "тупые"). Или все таки я ошибаюсь ? :-)
Может ли кто-нибудь сказать что-либо по этой теме ? В какую сторону смотреть ? :-)
★★★★★

Ответ на: комментарий от ManJak

Хотя, если честно, то не представляю, как это можно на линухе сделать =(

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

Вот и я о том же :-)
В принципе идея организовать это вручную (скрипты + iproute2) появилась сразу, просто думал может существует что-то готовое, стандартное, чтоб не изобретать велосипед :-)
Но наверное так и сделаю, так что спасибо всем, кто откликнулся :-)

> Что-тьо нигде не слышал
http://www.opennet.ru/docs/HOWTO/BRIDGE-STP-HOWTO/index.html

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

>просто думал может существует что-то готовое, стандартное

Не, ну OSPF почити наверняка ("почти", потому что я только в теории читал %) это решает, вот только насколько оно сложно в настройке/обслуживании?..

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

> почти наверняка это решает
Т.е. OSPF сможет "ping-ануть" все тачки в этой сети, увидеть какие из них живые и прописать маршруты к ним (к каждой) напрямую через карточку, а маршрут на сеть (т.е. на все остальные компы) исправить так, чтоб шел через другой router ? :-) (да еще с нужным TTL, чтоб не бегало туда-сюда сотню раз)
Просто интересует сам механизм :-)

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

А там, где предполагается разрыв - это какой-то конкретный длиный линк, или заранее это место не определено? ;)

Я тут подумал... Ведь маршрутизатор по определению работает с сетями, а если в случае разрыва обе "подсети" будут иметь одинаковую адресацию, то ничего он не найдет, мне кажется. Разве что прописать каждую машину в таблице.

И если я прав, то маршрутизация тут вообще не "при делах", нужно решать это дело как-то иначе %(

А даже если и сделать скриптами, как ты укажешь куда отправлять пакеты иначе, как не прописав тоже каждую машину?

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

Да, заранее это место не известно, иначе мы просто постарались бы сделать так, чтоб оно не "ломалось", чем городить это все :-)

> как ты укажешь куда отправлять пакеты иначе, как не прописав тоже каждую машину?
Ну да, так и придется :-) Алгоритм примерно такой: вначале есть маршрут на всю сеть через нужную карточку. Периодически идет ping на соседний router через сеть. Если этот ping не прошел, посылается другой ping уже по резервному каналу. Если канал/соседний_router жив - делается сканирование всех тачил (ping, ARP request, ... - чем угодно). Список всех ответивших заносится в отдельную таблицу маршрутизации (для удобства), прописывается ip rule для нее перед правилом, которое отправляет в таблицу main. В main маршрут на всю сеть через карточку заменяется таким же маршрутом, но через соседний router.
На соседнем router-е происходят аналогичные действия.
Чтоб не получилось зацикливания (например при приходе пакетов на IP, который не виден ни тем, ни другим router-ом), можно к примеру при пересылке задавать минимальный TTL. Или еще как-то, пока особо не думал.
Все эти действия периодически повторяются, поэтому появившиеся/выключившиеся/переместившиеся тачилы через некоторое время автоматически смогут нормально работать.
Естественно, что при появлении ping-а между router-ами через сеть, все маршруты возвращаются в исходную позицию (перезадается маршут на сеть через карточку, удаляется добавленное ip rule).

Или все это сильно попахивает маразмом ? :-)

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

>Или все это сильно попахивает маразмом ? :-)

Да уж... %)) "Черезжопность" подобного решения наталкивает на мысль, что просто обязан существовать способ "понормальнее", но вероятно, он гораздо дороже :)

Но работать наверное будет ;)) Хотя, если купить пару нормальных свитчей с поддержкой ST, раз уж так важна надежность... ;)

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

OSPF однозначно. 
Не сложен в настройке, тем более что от него нужно всего лишь исправлять в таблице маршрутизации компов маршрут по умолчанию.
Реальные примеры конфигов.
! -*- ospf -*-
!
! OSPFd sample configuration file
!
!
hostname 
password 
!enable password please-set-at-here
!
!router ospf
!  network 192.168.1.0/24 area 0
!
log stdout

Конфиг с Cisco
! Основной протокол в сети eigrp, OSPF настроен потому что это международный стандарт и есть на Linux.
router ospf 1
 router-id 192.168.2.1
 log-adjacency-changes detail
 redistribute eigrp 1 metric 50 metric-type 1 subnets route-map DEFAULT-ONLY
 network 192.168.2.0 0.0.0.3 area 0.0.0.0
 default-information originate
 distribute-list 4 in Vlan963
!
route-map DEFAULT-ONLY permit 0
 match ip address 5
!
access-list 5 permit 0.0.0.0
access-list 5 deny   any

Для второго роутера нужно поменять метрику, в зависимости от его назначения - основной или резервный.
Для резервирования серверов можно в них поставить еще по одной карточке, два свича и далее как было изображено.
Если в нарисованной схеме исползуются маршрутизаторы Cisco то у них есть такая штука HSRP, настраивается просто никакая ZEBRA не нужна.

STP - это протокол канального уровня применяется в сетях построенных на коммутаторах с избыточными связями.

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

Идея интересная, рассмотрю, спасибо !

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