?

Log in

No account? Create an account
Журнал Друзья Календарь Биография Пещера Назад Назад Вперед Вперед
Dear lazyweb... - Timur I. Bakeyev
Безумный Тимурк
b_a_t
b_a_t
Dear lazyweb...
Требуется помошь зала :) Интересно только BSD-ным гикам и сетевикам :)



Туплю :) Итак, дано - 2 раутера(gw{1,2}) на основе PFSence, каждый со своим выходом в инет и default раутами, получаемыми по OSPF от провайдеров; два управляемых свича(sw{1,2}) NetGear и кучка(s{1,2}) серверов, каждый с двумя сетевыми интерфейсами(eth{0,1}) под управлением FreeBSD. Задача - собрать из всего этого барахла наиболее устойчивую и надежную схему подключения. Т.е. как минимум, эта сеть должна суметь пережить падение одного из роутеров, свичей и отказа одного сетевого интерфейса на любом из серверов. В любом порядке :)

Внимание, вопрос! Как это лучше всего сделать?

На текущий момент некоторое подобие сделано с помощью OSPF во внутренней сети, где каждый раутер анонсирует себя как default gateway, но с разными весами. По умолчанию трафик идет через gw1, в случае его падения - переключается на gw2. Каждый роутер сидит в своей приватной сети, со своим свичом и подключенными к данному свичу соответствующими интерфейсами серверов. Т.е. eth0 -> sw1 -> gw1, eth1-> sw2 -> gw2.

До кучи sw1 и sw2 соеденены между собой кросс-кабелем, так что каждая сеть видна в соседнем сегменте. Как ни смешно, все это даже работает. Но, есть ощущение, что чисто по ошибке :)))

Одна из проблем - это куча подобных сообщений на серверах:
Nov 13 23:37:17 s0 ospfd[56956]: Packet from [10.10.1.100] received on wrong link eth0
Nov 13 23:37:17 s0 ospfd[56956]: Packet from [10.10.0.100] received on wrong link eth1

Что, очевидно, является результатом кросс-линка. К сожалению, без него default gateway не хотят переключаться в случае падения. Да и вообще не устанавливаются :)

Конфиг zebra на роутере:
interface bge0
 ip address 172.16.81.254/30

interface bge1
 ip address 10.10.0.1/24
!!!!!!!!!!!!ospfd.conf!!!!!!!!!!!!!!!!!!
access-list deny-all deny 0.0.0.0/0
interface bge0
 ip ospf authentication
 ip ospf authentication-key NoSex
 ip ospf cost 200

interface bge1

router ospf
 ospf router-id 172.16.81.254
 network 10.10.0.0/24 area 10.10.0.0
 network 10.10.1.0/24 area 10.10.0.0
 network 172.16.81.254/30 area 0.0.0.0
 area 0 authentication
 area 10.10.0.0 export-list deny-all
 area 10.10.0.0 import-list deny-all

Второй роутер идентичен, кроме IP адреса и веса на bge0 и сети 10.10.1.0/24 на bge1.

И, соответственно на FreeBSD сервере в quagga:
interface eth0
    ip address 10.10.0.100/24
interface eth1
    ip address 10.10.1.100/24
!!!!!!!!!!ospfd.conf!!!!!!!!!!!!!!!!!
interface eth0
interface eth1

router ospf
    router-id 10.10.0.100
    network 10.10.0.0/24 area 10.10.0.0
    network 10.10.1.0/24 area 10.10.0.0

Вот, как-то так... Мои познания в динамической маршрутизации ограничиваются тем, что я знаю, что она работает :) Так что не пинайте сильно :) Лучше скажите, что делать :)

P.S> Цыски купить не предлагать :)

Tags: , , , , ,
Current Mood: silly silly

Читать 6 комментария или Leave a comment
Comments
From: ex_snoobot367 Date: November 14th, 2006 01:43 am (UTC) (Link)
со свичами как решить не знаю, наверное они без spanning tree.
а для остального - был какой не помню проект, вполне приличный, где демон на mac уровне сёк падение интерфейса другой машины с таким же демоном и поднимал ip на живом, только я непомню как его звали этот проект и есть ли он для бизди твоей
dma From: dma Date: November 14th, 2006 07:50 am (UTC) (Link)
Это в линуксе, и называется IPVS.
b_a_t From: b_a_t Date: November 14th, 2006 12:50 pm (UTC) (Link)
У нас похожее есть - CARP зовется. Но тут оно как-то перпендикулярно...
dma From: dma Date: November 14th, 2006 01:22 pm (UTC) (Link)
Отчего ж. Его ведь можно и перевернуть.
Роутеры на внутреннем интерфейсе шарят этот самый CARP.
ПРи падении внешнего канала (продумать heartbeat) демон гасится, при появлении - поднимается обратно.
default gw для клиентских машин - этот самый адрес.
И всё, собственно.

Кстати, можно сделать и вообще несколько default gw с разными метриками. Главное - при падении канала принудительно интерфейс опускать.
b_a_t From: b_a_t Date: November 14th, 2006 12:47 pm (UTC) (Link)
STP есть, только какая от него польза?

А вместо демона есть CARP - Common Address Redundancy Protocol. В принципе, как раз это дает, только на одной сетке... А тут их 2 физически, так что не знаю, как это использовать :( Хотя заманчиво, конечно :)
mafanas From: mafanas Date: November 14th, 2006 03:04 pm (UTC) (Link)
свитчи соединяешь между собой, на портах, в которые воткнуты сервера, поднимаешь одинаковые соответсвующие виланы, на серверах интерфейсы ставишь в bridge. имхо, так. самый простой вариант, чтобы не заморачиваться с оспф и иже с ним. если свитчи поддерживают стекирование, то можно попробовать объединить через либо LACP либо EtherChannel (на нетгире вроде называется trunk) вот.
Читать 6 комментария или Leave a comment