[Moscow.pm] Взрыв мозга или занимательная топология
Александр Букреев
pesniru на gmail.com
Сб Ноя 24 13:17:14 PST 2007
> > Идея Андрея хороша, но проходя последовательно по дереву от оконечных
> > устройств ты никогда не получишь полное дерево, т.к. на практике в
> > большой сети встречаются ситуации, когда есть пропуски. Т.е. соседние
> > коммутаторы не видят друг-друга. Проходя последовательно у вас будет в
> > этом месте затык. Проходя по всем связям по очереди, у вас просто
> > построится несколько деревьев. Которые уже можно дособрать вручную...
> дособирать вручную проблематично при огромном количестве хостов.
Огромное количество - это сколько? ;-)
На сети в 600 коммутаторов недостроенных связей получается 2-4 в
зависимости от времени суток получения данных. Можно достроить логику.
Т.е. достраивать по неоднозначным связям. Мне этого не требовалось.
2-4 отсутствующие связи честно вписывались в допустимую погрешность +
вручную дописываются просто после просмотра получившихся отрисованных
деревьев. А можно снимать несколько раз данные с промежутками, но не
сбрасывать старые, а аккумулировать за какой-то разумный период...
> >> проблема в том, что корневым устройством может быть любое :)
> > Эм. Вам и нужно ЛЮБОЕ устройство. Оно требуется только для вычислений.
> > К самой топологии сети оно может не иметь отношения, т.е. не являться
> > реальным корнем дерева. Проще в качестве него выбрать устройство,
> > которое видит максимальное количество адресов коммутаторов на
> > максимальном количестве портов.
> оно в итоге вычисляется само собой.
Тут выбор: вы или берете что-то за корневое и строите максимальное
количество связей или вычисляете корневое, но получаете приличные
разрывы в связях.
> > Эм. Поясни, что ты именуешь как private и public в данной задачке...
> легко. private - порт с единственным подключенным устройством.
> public(null) - куча адресов на одном порту.
Помня определение устройства в твоем посте - у меня такие порты в
рассчетах не учавствуют. У меня там ставит 0, т.к. строилась карта
построения сети без учета оконечных устройств. 15к+ устройств рисовать
- это перебор. :-)
> >> select switch,port,count(*) from mactable where status is null and
> >> macaddr not in (select macaddr from mactable where switch='10.6.204.21'
> >> and status = 'private') group by switch,port;
> >> убирает из этого списка порт с downlinkом.
> > Хм. Я тут структурами перла оперировал. Проще в памяти поработать, чем
> > мускуль напрягать. ;-)
> с перлом не совсем проще.
> когда адресов 8 штук проще, когда 500 уже проблема. count считать
> приходится таки и исключения.
Странно. Не вижу никаких проблем обсчитать 15 тыс оконечных устройств
перлом, буде была бы такая задача...
> > Соответственно строим эти связи и все. Полностью все связи получены.
> это всё понятно. логически и визуально задача решается за пару минут, а
> когда скажем топология сети неизвестна и картинки нет ?
Так именно это и решаем. :-)
> плясать не от чего.
Плясать от данных, собранных с коммутаторов.
Как же не от чего?
Ты же данные не предоставил?
Вот я их сам и нарисовал с первого, что под руку попалось.
С картинки.
Ты картинку из головы выбрось.
Были данные - получили дерево. Все.
> В данном мной примере всего 14 свичей, из них 4 по 24
> порта(23,26,27,28), и 10 по 50 портов. Реально сейчас свичей 25 штук,
> через неделю-две будет 29, потом прибавится 3 удалённых офиса и еще 6
> свичей разных мастей :) и это не предел. просто я не стал сюда включать
> глобальную конфигурацию.
Ну, меряться не будем. Я количество обсчитываемого этим алгоритмом
оборудования выше уже указал. :-)
Итого у тебя получается допустим 100 коммутаторов по 50 портов. Итого
обсчитываем 5000 портов. Т.е. хэш на 5000 ключей, где значениями лежит
допустим массив видимых на этом порту устройств. Бр-ррр. В чем
проблема? Для таких объемов больших вычислительных мощностей не
требуется...
> Иметь полную структурную схему нарисованную
> руками получается просто нерационально, хоть она и есть, но она
> устаревает очень быстро. Люди двигаются с места на место. Компы прыгают
> со свича на свич.
> Вотъ такие пироги.
Тут - полностью согласен. Т.е. документировать сеть конечно нужно, но
для актуализации все равно автоматически построенная схема нужна...
Подробная информация о списке рассылки Moscow-pm