Форум сети Сonvex
 
 

Вернуться   Форум сети Сonvex > Электронное бремя > Web-разработка и програмирование > Языки программирования (C++, Java, Delphi и т.д.)

Ответ
 
Опции темы Опции просмотра
Старый 28.03.2012, 17:23   #11
Mish!
Сотрудник Convex
 
Аватар для Mish!
 
Регистрация: 16.08.2010
Сообщений: 9
cказал Спасибо: 3
сказали Спасибо 7 раз(а) в 5 сообщении
Репутация: 20 [+/-]
По умолчанию

Локальная сеть и содержимое «сетевого окружения» — не одно и то же ;)
Mish! вне форума   Ответить с цитированием
Старый 28.03.2012, 17:29   #12
Champion
CS Admins
 
Аватар для Champion
 
Регистрация: 01.04.2006
Сообщений: 1,583
cказал Спасибо: 555
сказали Спасибо 290 раз(а) в 197 сообщении
Репутация: 130 [+/-]
По умолчанию

Цитата:
Сообщение от Mish! Посмотреть сообщение
Локальная сеть и содержимое «сетевого окружения» — не одно и то же ;)
Дак вот и я про тоже, а ты мне:
Цитата:
Сообщение от Mish! Посмотреть сообщение
Написано же: «Внутренней (локальной) сетью я считаю сеть из всех компьютеров видных мне в локале.»
Через что он по-твоему их видит в "локале"?
__________________
xex
Champion вне форума   Ответить с цитированием
Старый 28.03.2012, 17:32   #13
I'm
Новичок
 
Аватар для I'm
 
Регистрация: 24.03.2006
Адрес: Пио
Сообщений: 76
cказал Спасибо: 8
сказали Спасибо 15 раз(а) в 7 сообщении
Репутация: 10 [+/-]
По умолчанию

Цитата:
Сообщение от Champion Посмотреть сообщение
Что ты понимаешь под "локальной сетью"?
Компьютер, настоящий MAC которого я вижу в, перехваченном мною, пакете, принадлежит моей локальной сети. Т.е. грубо говоря, тот компьютер MAC которого я вижу, а не MAC маршрутизатора на который, в 95% или больше случаев, отправляются пакеты либо в внешнюю сеть либо с внешней сети.

Надеюсь я понятно сформулировал... моя задача как раз и есть найти способ отделять понятие одной сети от другой
I'm вне форума   Ответить с цитированием
Старый 28.03.2012, 17:34   #14
Mish!
Сотрудник Convex
 
Аватар для Mish!
 
Регистрация: 16.08.2010
Сообщений: 9
cказал Спасибо: 3
сказали Спасибо 7 раз(а) в 5 сообщении
Репутация: 20 [+/-]
По умолчанию

Сетевое окружение — результат работы протокола NetBIOS/того что стало его развитием.
Почитать можно, например, тут: http://www.samba.org/samba/docs/man/...kBrowsing.html
К теме «локалки» прямого отношения не имеет!

Mish! добавил 28.03.2012 в 17:40
Короче, общего решения задача не имеет, т.к. любой маршрутизатор, с которым можно свзязаться, будет хотя бы одним интерфейсом в сеть воткнут, и соответственно — находиться в локалке :)

По поводу алгоритма предположения: можно ещё пинговать предполагаемых соседей через маршрутизатор, и если они будут в локалке, маршрутизатор может (но не должен!) ответить ICMP Redirect-ом

Последний раз редактировалось Mish!; 28.03.2012 в 17:40. Причина: Добавлено сообщение
Mish! вне форума   Ответить с цитированием
cказали "Спасибо" Mish! за это сообщение:
I'm (28.03.2012)
Старый 28.03.2012, 17:47   #15
I'm
Новичок
 
Аватар для I'm
 
Регистрация: 24.03.2006
Адрес: Пио
Сообщений: 76
cказал Спасибо: 8
сказали Спасибо 15 раз(а) в 7 сообщении
Репутация: 10 [+/-]
По умолчанию

Цитата:
Сообщение от Mish! Посмотреть сообщение
Короче, общего решения задача не имеет, т.к. любой маршрутизатор, с которым можно свзязаться, будет хотя бы одним интерфейсом в сеть воткнут, и соответственно — находиться в локалке :)
Ну шлюз к примеру можно считать внехой, это как раз не проблема

Цитата:
Сообщение от Mish! Посмотреть сообщение
По поводу алгоритма предположения: можно ещё пинговать предполагаемых соседей через маршрутизатор, и если они будут в локалке, маршрутизатор может (но не должен!) ответить ICMP Redirect-ом
Это конечно вариант, но куда более интереснее смотрится первый вариант который ты предложил, по поводу сбора статистики по арп запросам, вот сейчас как раз обдумываю все за и против....

I'm добавил 28.03.2012 в 18:07
Кажется я тут ошибся:
Цитата:
Сообщение от I'm Посмотреть сообщение
Как показала практика(WireShark) использовать мак адресе шлюза далеко не во всех случаях верно. Некоторые пакеты уходят на внешние ip при этом имея совсем какие-то левые маки, причем эти маки не широковещательные.
Сейчас запустил WireShark и сделал соответствующий фильтр: оказалось что существует множество разнотипных пакетов, которые посылаются не на шлюз и не имеют его мак в Destination однако имеют там различного рода маки типа(01:00:5e:00:00:fb, 01:00:5e:40:98:8f, 01:00:5e:7f:ff:fa, 33:33:00:01:00:02, 33:33:00:00:00:0c) а также разнородные (как я понимаю - широковещательные) ip адреса (239.192.152.143, 239.255.255.250, ...). Не знаю уходят ли они при этом на внешнюю сеть, но в их теле идут http запросы...

Последний раз редактировалось I'm; 28.03.2012 в 18:08. Причина: Добавлено сообщение
I'm вне форума   Ответить с цитированием
Старый 28.03.2012, 18:20   #16
Kenshin
Постоялец
 
Аватар для Kenshin
 
Регистрация: 11.09.2008
Сообщений: 1,028
cказал Спасибо: 225
сказали Спасибо 231 раз(а) в 172 сообщении
Репутация: 315 [+/-]
По умолчанию

А можете топологию примерную нарисовать? На мой взгляд, то, что вы пытаетесь сделать просто невозможно. По ARP узнаете только компы из подсети, а узнать топологию всего остального можно только ловя пакеты динамической маршрутизиции, и то, не факт что вы по ним все узнаете (кто знает, что там за протоколы используются). Ну и потом, мне не очень понятно, как вам доступны приватные адреса. Ведь вы должны стучаться на внешний интерфейс маршрутизатора, чтобы попасть в приватную подсеть.
__________________
Kenshin вне форума   Ответить с цитированием
Старый 28.03.2012, 18:41   #17
I'm
Новичок
 
Аватар для I'm
 
Регистрация: 24.03.2006
Адрес: Пио
Сообщений: 76
cказал Спасибо: 8
сказали Спасибо 15 раз(а) в 7 сообщении
Репутация: 10 [+/-]
По умолчанию

Цитата:
Сообщение от Kenshin Посмотреть сообщение
А можете топологию примерную нарисовать? На мой взгляд, то, что вы пытаетесь сделать просто невозможно. По ARP узнаете только компы из подсети, а узнать топологию всего остального можно только ловя пакеты динамической маршрутизиции, и то, не факт что вы по ним все узнаете (кто знает, что там за протоколы используются). Ну и потом, мне не очень понятно, как вам доступны приватные адреса. Ведь вы должны стучаться на внешний интерфейс маршрутизатора, чтобы попасть в приватную подсеть.
Во-первых, данная программа не должна быть привязана к какой-то конкретной топологии и работать должна вне зависимости от неё.
Во-вторых, под пакетами динамической маршрутизации Вы понимаете RIP протокол? Выявление того, какая там серая сеть стоит за маршрутизатором, который входит в мою "локальную сеть" - абсолютно не нужно, просто буду считать что мак интерфейса маршрутизатора и есть локальный компьютер и, то что на него уходит то и буду записывать.
В-третьих, у нашего любимого провайдера настроены шлюзы следующим образом(как я понимаю) что они сразу объединяют несколько сетей в одну, например на один шлюз приходится сеть 82.193.148.0/24, 172.21.40.0/24 и 172.21.41.0/24 при этом каждый компьютер из каждой сети друг друга видит на прямую, и множество широковещательных пакетов из одной сети гуляет в другой. Это просто такой частный случай, однако программа должна адекватно это понимать и правильно разделять внешнюю и "локальную сеть". Поэтому я и пытаюсь придумать какой-то универсальный алгоритм для распознавания к какой сети относится данный пакет.

На счет устройства сети в конвексе я могу ошибаться, это лишь моё предположение...
I'm вне форума   Ответить с цитированием
Старый 28.03.2012, 22:01   #18
Kenshin
Постоялец
 
Аватар для Kenshin
 
Регистрация: 11.09.2008
Сообщений: 1,028
cказал Спасибо: 225
сказали Спасибо 231 раз(а) в 172 сообщении
Репутация: 315 [+/-]
По умолчанию

Ну смотри, о чем я говорю. Ты находишься за роутером. Что за ним - темный лес. Там может быть все что угодно. Если принадлежность пакета к твоей подсети определить легко, то что же делать с остальными? Руководствоваться мак-адресами в корне неверно, ибо это второй слой, который работает в пределах одной подсети. Твоя задача - анализировать информацию с третьего уровня (ип-адреса). Единственный способ определить все подсети, находящиеся в одной локалке - построить карту сети! А эту информацию можно достать только читая пакеты динамической маршрутизации. Из всех протоколов маршрутизации прочитать реально только рип. Остальные обмениваются инфой только между роутерами, либо нужно знать некоторые параметры сети, типа area ID. Я уже не говорю о шифровании. Ну а про недостатки РИПа ты, наверное, в курсе.
__________________
Kenshin вне форума   Ответить с цитированием
cказали "Спасибо" Kenshin за это сообщение:
I'm (29.03.2012)
Старый 29.03.2012, 01:45   #19
I'm
Новичок
 
Аватар для I'm
 
Регистрация: 24.03.2006
Адрес: Пио
Сообщений: 76
cказал Спасибо: 8
сказали Спасибо 15 раз(а) в 7 сообщении
Репутация: 10 [+/-]
По умолчанию

Цитата:
Сообщение от Kenshin Посмотреть сообщение
Ну смотри, о чем я говорю. Ты находишься за роутером. Что за ним - темный лес. Там может быть все что угодно. Если принадлежность пакета к твоей подсети определить легко, то что же делать с остальными?...
Кажись мы опять друг друга не правильно поняли. Постораюсь объяснить что в моем понимания является "локальной сетью". См. рис.:
пример.JPG
Если я нахожусь в сети 172.21.41.0/24, допустим у меня ип 172.21.41.40, то в моем понимании "локальная сеть" должна включать группу B( компьютеры обведенные зеленым), а на компьютеры за чьим-то маршрутизатором(группа А) мне пофиг. Весь трафик идущий на компьютеры в группу А я буду начислять 172.21.41.155. При этом я спокойно получаю арп пакеты от соседних сетей 172.21.40.0/24 и 82.193.148.0/24.
Второй вариант: я нахожусь в группе А и имею ип 192.168.1.15. Для меня локальной сетью будет только группа А(192.168.1.0/24). По сути программа ловит все пакеты какие пролетают мимо интерфейса сетевой карты, а поскольку стоит маршрутизатор я сомневаюсь что он будет пропускать большое количество пакетов из вышестоящей сети(172.21.41.0/24) и не предназначенный нижестоящей(192.168.1.0/24), а если и будет... наверно стоит их обозначить как внешние. На самом деле, мне нужно этот вариант проверить на практике и посмотреть какие пакеты, не предназначенные на прямую нижестоящей сети(192.168.1.0/24), попадают в неё, и есть ли вообще таковые.

Цитата:
Сообщение от Kenshin Посмотреть сообщение
Руководствоваться мак-адресами в корне неверно, ибо это второй слой, который работает в пределах одной подсети.
На счет одной подсети, как показывает практика, это не так(есть исключения зависящие от настройки шлюза, собственно как раз рассмотренный мною вариант). А насчет того стоит ли полностью полагаться на мак адреса, я сам до сих пор сомневаюсь, по-этому и ищу альтернативный способ определения сети источника/приемника пакета.

Протокол RIP вообще меня не затрагивает, т.к. он находится на границе сетей, таких как я описал во-втором примере, а при первом примере мне глубоко пофиг что находится за тем маршрутизатором в сети. А информацию о существовании сетей 82.193.148.0/24, 172.21.40.0/24 и 172.21.41.0/24 между ними же, он не передает.

Последний раз редактировалось I'm; 29.03.2012 в 01:54. Причина: рисунок не открывался
I'm вне форума   Ответить с цитированием
Старый 02.04.2012, 17:59   #20
I'm
Новичок
 
Аватар для I'm
 
Регистрация: 24.03.2006
Адрес: Пио
Сообщений: 76
cказал Спасибо: 8
сказали Спасибо 15 раз(а) в 7 сообщении
Репутация: 10 [+/-]
По умолчанию

На днях проконсультировался с преподавателем, он мне подсказал, что к чему. На самом деле я сам до конца не понимал, какой именно результат я хочу получить. Дело в том, что хоть я и вижу трафик соседних сетей, в основном это широковещательные запросы и мультикасты. Реальный трафик из соседней сети я не увижу, хотя и могу захватить часть пакетов принадлежащей той сети, но так или иначе какой-либо картины они не составят. В связи с этим я решил сильно сузить понятие локальной сети до стандартного понимания ip&mask. Поэтому я решил написать следующий алгоритм:

Если пакет исходит от моего MAC-адреса или из моей сети(пример, если мой ip 172.21.41.218, а маска /24 то сетью будут 172.21.41.0/24), то считать этот пакет исходящим из моей сети.

Если пакет предназначается ip-адресу из моей сети, то считать его входящим в мою локальную сеть.

Все остальное считать шумом и отображать только на графике активности трафика как входящий трафик.

Алгоритм до конца ещё не проверил, может что надумаю ещё поменять.
В итоге получается, что я решил откинуть "лишние" сети, поскольку активность трафика в них почти не видна, а найти решение, чтобы отделить эти сети от внешних, у меня так и не получилось.

Всем, кто принимал участие в дискуссии, Большое спасибо.
I'm вне форума   Ответить с цитированием
Ответ

Закладки

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +5, время: 13:46.


Convex
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot