Информация о топологии сети - PullRequest
1 голос
/ 11 ноября 2010

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

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

1 голос
/ 12 ноября 2010

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

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

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

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

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

...