[Moscow.pm] Взрыв мозга или занимательная топология

Naim Shafiev shafiev на gmail.com
Сб Ноя 24 13:11:15 PST 2007


Мда.Задача очень не тривиальна.По сути как я
понимаю нужно придумать алгоритм обхода  ориентировано графа с повторами и
пропусками.В
 понедельник пойду штурмовать математиков по дискретке пусть предложат
решение :)

24.11.07, Kaltashkin Eugene <zhecka на gmail.com> написал(а):
>
> Александр Букреев пишет:
> >> Идея Андрея была хороша. проверил её на деле, результаты уже есть.
> >> Но с оговорками.
> >>
> >
> > Какие получились оговорки?
> >
> см. предыдущее письмо.
> > Идея Андрея хороша, но проходя последовательно по дереву от оконечных
> > устройств ты никогда не получишь полное дерево, т.к. на практике в
> > большой сети встречаются ситуации, когда есть пропуски. Т.е. соседние
> > коммутаторы не видят друг-друга. Проходя последовательно у вас будет в
> > этом месте затык. Проходя по всем связям по очереди, у вас просто
> > построится несколько деревьев. Которые уже можно дособрать вручную...
> >
> дособирать вручную проблематично при огромном количестве хостов.
> >> проблема в том, что корневым устройством может быть любое :)
> >>
> > Эм. Вам и нужно ЛЮБОЕ устройство. Оно требуется только для вычислений.
> > К самой топологии сети оно может не иметь отношения, т.е. не являться
> > реальным корнем дерева. Проще в качестве него выбрать устройство,
> > которое видит максимальное количество адресов коммутаторов на
> > максимальном количестве портов.
> >
> оно в итоге вычисляется само собой.
> > Эм. Поясни, что ты именуешь как private и public в данной задачке...
> >
> легко. private - порт с единственным подключенным устройством.
> public(null) - куча адресов на одном порту.
> >> select switch,port,count(*) from mactable where status is null group by
> >> switch,port;
> >> даёт полный список количества устройств на портах up/downлинков.
> >> запрос
> >> 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 считать
> приходится таки и исключения.
>
> > Порядок действий:
> > - выбираем корневое устройство
> > - получаем список: устройство-порт = список устройств на порту
> > - отбрасываем те связки "устройство-порт" у которых в списке устройств
> > присутствует корень.
> > В итоге получили список даунлинков на связках "устройство-порт".
> >
> >
> > Дальше начинаем строить связи:
> > 3 - d9 (однозначная связь), записываем, выкидываем везде d9
> >
> > После прохода по всем однозначным связям получает картинка:
> > 2.8: 3
> > 2.1: 1
> > Соответственно строим эти связи и все. Полностью все связи получены.
> >
> это всё понятно. логически и визуально задача решается за пару минут, а
> когда скажем топология сети неизвестна и картинки нет ? плясать не от
> чего.
> В данном мной примере всего 14 свичей, из них 4 по 24
> порта(23,26,27,28), и 10 по 50 портов. Реально сейчас свичей 25 штук,
> через неделю-две будет 29, потом прибавится 3 удалённых офиса и еще 6
> свичей разных мастей :) и это не предел. просто я не стал сюда включать
> глобальную конфигурацию. Иметь полную структурную схему нарисованную
> руками получается просто нерационально, хоть она и есть, но она
> устаревает очень быстро. Люди двигаются с места на место. Компы прыгают
> со свича на свич.
> Вотъ такие пироги.
>
> ______________________________________________________________________
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20071125/7ae2d2c1/attachment-0001.html 


Подробная информация о списке рассылки Moscow-pm