2010-11-10 5 views
1

У меня есть сеть малого бизнеса с несколькими коммутаторами, конечными устройствами, но только с одним маршрутизатором. Я хочу показать топологию сети, как хотелось бы графику (с маршрутизатором сверху).Информация о сетевой топологии

У меня только доступ к адресам сетевого уровня, поэтому мне удалось получить для каждого устройства в сети его IP-адрес и IP-сеть, т.е. 192.168.2.9 и 192.168.2.0 (маска 255.255.255.0) для каждого интерфейса, который устройство имеет.

Я предполагаю, что смогу проанализировать данные и построить логические соединения сети. Итак, я хочу спросить, есть ли я на правильном пути, чтобы узнать топологию сети (по крайней мере, для ее логических соединений).

Все это делается программно (c, и цель-c) и предназначено для школьного проекта.

PLUS: Кто-нибудь знает какую-либо библиотеку, которая бы нарисовала (с учетом этой информации) топологию?

+2

Не знаю, что такое топология сети, но, возможно, [Graphviz] (http://www.graphviz.org/) может предоставить необходимые возможности рисования (см. Также статью [Wikipedia]] (http: // en .wikipedia.org/вики/Graphviz)). – pmg

+0

Я не знаю, как это реализовано, но я знаю * многие инструменты мониторинга (включая OpenNMS) делают это (хотя и в Java для OpenNMS). Аналогично, я знаю, что инструмент HP SAV (который поставляется с инструментом HP Server Automation) может сделать это в сочетании с Network Automation. Я полагаю, вы уже «nmap» в вашей среде? – warren

+0

также, это похоже на ваш предыдущий вопрос: http://stackoverflow.com/questions/3509876/network-topology – warren

ответ

1

Итак, у вас есть IP-адрес каждого устройства, это полезный старт. Оттуда «ручной алгоритм» может быть:

for each ip in devices 
    traceroute ip 
    for each hop in traceroute 
     add hop to graph (if it's not there already) 

Что вы делаете, добавляя каждый сетевой хмель между собой и устройством структуры графа. Если узел (hop) уже найден, вы добавляете новый ребро. Если нет, вы добавляете ребро и вершину. Конечным результатом будет график каждого узла в сети и пути, необходимые для их достижения - ваша топология.

Итак, все, что вам нужно сделать, это реализовать traceroute самостоятельно, построить структуру графика, чтобы сохранить результаты ваших трассировок traceroute, а затем сделать что-нибудь, чтобы построить все это красиво! Каждый из них может генерировать много собственных вопросов.

Как вы отметили эту Objective-C, я сделаю прыжок и предположим, что вы делаете это на Mac. Если это так, ваши графические потребности хорошо сочетаются с API-интерфейсом Cocoa.

+0

Да, я сделал это как в Linux, так и в Mac, поэтому я могу использовать рисунок Cocoa. Дело в том, что я не использовал какао, и у меня не так много времени, чтобы учиться.Поэтому я должен использовать любую библиотеку, которая является самой быстрой для изучения и имеет самую большую документацию. – gvalero87

+0

Я не знаю полной сферы вашего проекта, но если вы можете уйти от предложения @ CodeninjaTim ниже, это было бы намного проще для вас (сложный бит не рисует линии и прямоугольники, он выясняет, как выложить сюжет, который Cocoa вам не поможет). Рисунок какао довольно прост, и учебники Apple неплохие, но я нашел это http://cocoadevcentral.com/d/intro_to_quartz/ очень полезным, как первое введение, если вы идете по этому маршруту. –

1

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

+0

Спасибо @Codeninja, Окончательный ответ будет делать обе вещи, запустить псевдо-алгоритм @Tim, предложенный и на пути написания точечного файла с помощью сети. – gvalero87

Смежные вопросы