Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сетевой фильтр
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
Кузьмич А.В.
Может быть тему я некорректно написал, попробую объяснить.
Есть такая железка (в планах ATMEGA128+RTL8019AS), включается между хабом и компьютером. Вообщем на вход к железки подключается кабель от хаба, а с выхода кабель идет в сетвуху компа. Я буду анализировать пакеты и в зависимость от фильтров буду передовать в комп. С тем как получить пакет и обработать с этим пока проблем нет, но как мне передать их дальше в комп, я так понимаю мне нужно две м/с RTL (одна на входе, одна на выходе). Я вообще чего-то не догоняю, может быть кто-нибуть натолкнет на мысль? Буду рад cheers.gif
MALLOY2
Все это хорошо только вот на меги скорость будет не какая, это первое, второе просто так это не заработает, точнее комп перестанет видеть хаб. тут есть 2 варианта легкий(который навернека криво работать будет) и тяжелый, начнем с легкого:

1) на тот конец который подключается к хабу нужно настроить параметры тачки (MAC адресс, IP, маску сети и т.д.)

1.1) соответственно на конце тачки толжны быть параметры хаба
ну а дальше тупо на уровне MAC все пересылаеш из одного порта в другой.


Второй вариант это самый правельный и надежный тоьлко зделать его не просто а смысл заключается в создании полно функционального роутера с 2 портами. Но мега его не потянет нормально, да и впервом случае скорость будет никакая. По поводу роутера там есть свои протоколы и куча другой фигни, так что копай в ту сторону.
id_gene
Вам точно понадобится два PHY приемопередатчика.
А на МАС-уровне - одного контроллера хватит .
Кузьмич А.В.
Ладно, я понял что пошел не потому пути. Но вот возникла еще одна идея:
Если вход и выход моей платы будут соеденены, а вся аппаратура бедет как бы перехватывать пакеты.
Как вам такая идея? Buffer простой пропускной, т.е. никакие функции не выполняет кроме запрета вывода.
И еще если Атмега не справится то какой контроллер лучше взять?
Кузьмич А.В.
Прошу прощения комп барахлил.
Так вот идея:
Нажмите для просмотра прикрепленного файла
Buffer, если ОЕ установлена, то он просто пропускает сигналы, в противном случае просто закрывает выход.
Далее моя сборка работает как нивидимка для компа, т.е. она просто берет пакет анализирует его и в зависимости от результатов закрывает/открывает буффер. Но есть вопрос как быть с буффером во время обработки пакета? Да и вообще как вам моя идея ? smile.gif Буду рад любым насмешкам, руганям и прочим высказываниям biggrin.gif
Maksim
Цитата(Кузьмич А.В. @ Aug 11 2005, 20:17)
Прошу прощения комп барахлил.
Так вот идея:
Нажмите для просмотра прикрепленного файла
Buffer, если ОЕ установлена, то он просто пропускает сигналы, в противном случае просто закрывает выход.
Далее моя сборка работает как нивидимка для компа, т.е. она просто берет пакет анализирует его и в зависимости от результатов закрывает/открывает буффер. Но есть вопрос как быть с буффером во время обработки пакета? Да и вообще как вам моя идея ? smile.gif  Буду рад любым насмешкам, руганям и прочим высказываниям  biggrin.gif
*

микроконтроллером не успеете, смотри в сторону ПЛИС
MALLOY2
Цитата(Кузьмич А.В. @ Aug 11 2005, 17:13)
Ладно, я понял что пошел не потому пути. Но вот возникла еще одна идея:
Если вход и выход моей платы будут соеденены, а вся аппаратура бедет как бы перехватывать пакеты.
Как вам такая идея? Buffer простой пропускной, т.е. никакие функции не выполняет кроме запрета вывода.
И еще если Атмега не справится то какой контроллер лучше взять?
*


Нет так тоже не выйдет, так как каждый порт имеет уникальный MAC адресс. И этот адресс испульзуется многими протоколами, такими как ARP, возникнет такая ситуация что пакет даже до вуас не долитит так как свитч посмотрит что у него на этом порту нет такого MACа и не будет слать, но если будет стоять ХАБ (он тупой в отличии от свитча, но помоему таких уже не делают) то может и будет жить как то.
Кузьмич А.В.
Цитата(MALLOY2 @ Aug 11 2005, 15:44)
Все это хорошо только вот на меги скорость будет не какая, это первое, второе просто так это не заработает, точнее комп перестанет видеть хаб. тут есть 2 варианта легкий(который навернека криво работать будет) и тяжелый, начнем с легкого:

1) на тот конец который подключается к хабу нужно настроить параметры тачки (MAC адресс, IP, маску сети и т.д.)

1.1) соответственно на конце тачки толжны быть параметры хаба
ну а дальше тупо на уровне MAC все пересылаеш из одного порта в другой.


Ну а вообще меня этот вариант устраивает (т.к. я хочу сделать это устройство скорее для успокоения своей души, да и вообще на нее никто не претендует smile.gif ), скорость мне не важна, хотя лучше 100М.
Но опять же вопрос: какой контроллер лучше взять (ПЛИС не подходит по личной неприязни к онным). И в чем будет кривизна работы?
Ведь насколько я это понимаю хаб (или что-то подобное) будет воспринимать меня как комп, а комп как хаб. Соответственно никаких проблем не должно быть. cool.gif
id_gene
Вы получаете кадр Ethernet со вложенным TCP пакетом.
Начинаете его читать со входа и писать в выход, прямо со всеми заголовками, попутно отслеживая нужные поля. Если фильтр срабатывает - вы пишете в выход заведомую чушь (все единицы или пятерки или что-то) - тогда комп получает ошибку контрольной суммы и выбрасывает кадр. Если фильтр не срабатывает - кадр проходит насквозь.
Возможно, в некоторых контроллерах можно отменить передачу пакета и убить пакет на входе - тогда можно чушь не писать.
Вы прозрачны. Дешево и сердито.
Похоже на ваш ключ, только на логическом уровне.

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

Если вы начнете пакты разбирать, вырезать заголовки - то из на выходе нужно будет обратно вставлять. Тут зависит от настроек МАС-контроллера - что он вырежет, и что сможет назад сам прилепить. Обычно он контрольные суммы и преамбулы канального уровня сам умеет вставлять.

Канал односторонний, конечно. От хаба к компу. В обратную сторону вам же не надо фильтровать?
Насчет скоростей микроконтроллера не знаю - считайте.

Об уникальных адресах каждого порта - для хабов и коммутаторов в обычном режиме работы они не используются. И вам, наверное, тоже не надо.
MALLOY2
Да кривизна будет в том что нельзя так просто все зделать. Вот не большой принцип работы сети.

Что происходит в сети, при приеме хабом пакета он в пакете смотрит MAC клиента и IP клиента, далее просматривает ARP таблицу и если есть связь мака с IP он передает на тот порт пакет, если нету посылает широковещательный MAC запрос по всем портам если таковой МАК нашелся посылается ARP запрос на этот МАК так определяется на каком порту весит нужный клиент. Ну а если не нашелся но скажет что такового не существует, так вот вся беда втом что MAC запрос обрабатывается PHY аппаратно и этогт пакет ты не передаш на тачку, следовательно о существовании твоей машины кроме твоего порта никто не узнает.
Кузьмич А.В.
А если сделать автоопределение мак адреса, т.е. при подключении устройство выясняет мас и айпи адрес компа, прописывает их в себя со стороны хаба, и работает от имени компа. Т.е. никаких настроек вручную делать не придется. А хаб тоже имеет свой айпи и мак?
id_gene
2 MALLOY2:
всем этим занимается комп, насколько я понимаю - АРП разрешениями и соотвествием IP & MAC -адресов. И все арп таблицы вы можете посмотреть у себя командой arp -a

Хаб вообще ничего не делает, только соединяет каналы. Логически заменяет коаксиал, в который втыкаются все.
Свитч - коммутирует по МАС-адресам (новые версии, конечно, коммутируют на 3м уровне, но мало). Подключитесь к управляемому свитчу и посмотрите - там только МАС-адреса.

А в устройстве - если канал от компа будет насковзь в свитч проходитть - то у последенго в таблицах будет запись на нужном порту. Фильтровать нужно только в одну сторону.
MALLOY2
Цитата(id_gene @ Aug 12 2005, 13:22)
2 MALLOY2:
всем этим занимается комп, насколько я понимаю - АРП разрешениями и соотвествием IP & MAC -адресов. И все арп таблицы вы можете посмотреть у себя командой arp -a

Хаб вообще ничего не делает, только соединяет каналы. Логически заменяет коаксиал, в который втыкаются все.
Свитч - коммутирует по МАС-адресам (новые версии, конечно, коммутируют на 3м уровне, но мало). Подключитесь к управляемому свитчу и посмотрите - там только МАС-адреса.

А в устройстве - если канал от компа будет насковзь в свитч проходитть - то у последенго в таблицах будет запись на нужном порту. Фильтровать нужно только в одну сторону.
*


Имеено я ж про это и говорю что комутация по мак адрессам, и он не сможет скомутировать на комп. Одним словом нужно делать свитч 2 портовый и разбирать как он работает. об этом я всамом начале говорил.

Вобщем про все можно почитать здесь http://www.unix.org.ua/tcpip/
Кузьмич А.В.
Я кстати тоже где-то слышал что ARP пакеты обрабатывает компьютер. Но во всяком случе в даташите должно быть описано про ARP пакеты, однако я там это-го не нашел. Хотя я может коряво смотрел smile3046.gif
MALLOY2
Цитата(Кузьмич А.В. @ Aug 12 2005, 17:01)
Я кстати тоже где-то слышал что ARP пакеты обрабатывает компьютер. Но во всяком случе в даташите должно быть описано про ARP пакеты, однако я там это-го не нашел. Хотя я может коряво смотрел smile3046.gif
*


ARP пакеты обрабатывает компьютер, но его нужно доставить по MAC - уровню. Вот здесь собака роется, здесь и вступает в силу алгоритм работы свитчей роутеров хабов и другой комутационной аппаратуры.
Кузьмич А.В.
Цитата(MALLOY2 @ Aug 12 2005, 17:38)
ARP пакеты обрабатывает компьютер, но его нужно доставить по MAC - уровню.
*


Т.е. ARP пакеты обрабатывает MAC а не PHY?
Ведь PHY это же физический уровень, и транспортировкой пакетов занимается именно он. Тогда мне не понятна фраза "доставить по МАС".
MALLOY2
PHY это визический уровень который описывает физические линии, а ARP это уже стек протоколов TCP/IP (так сказать интернет протокол)в изернет сетях этот стек (тобиш все его протоколы) передаются с помощью изернет протоколов (MAC, DLC и т.д.), так вот тибе сначала нужно эти протоколы разгребсти, а потом уже заниматься TCP/IP или ARP или ICMP вобщем что там будет лететь по протоколу MAC. А для тогог чтобы передать стек TCP/Ip по можему уже используются модемные протоколы (PPP,SLIP, и т.д.)
Кузьмич А.В.
А еще пару вопросов:
1) В каком виде сигналы выходят из микросхем PHY и MAC, в цифровом или аналоговом?
2) В даташитах по этим микросхемам написано, что в сети 10М они работают на 2.5 МГц, а в сетях 100М на 25МГц. Т.о. чтобы выбрать процессор который успелбы обработать пакеты, мне необходимо ориентироваться на эти скорости (ну соответственно надо брать немного больше). Или же есть какие-то другие критерии?
MALLOY2
Цитата(Кузьмич А.В. @ Aug 13 2005, 11:03)
А еще пару вопросов:
1) В каком виде сигналы выходят из микросхем PHY и MAC, в цифровом или аналоговом?
2) В даташитах по этим микросхемам написано, что в сети 10М они работают на 2.5 МГц, а в сетях 100М на 25МГц. Т.о. чтобы выбрать процессор который успелбы обработать пакеты, мне необходимо ориентироваться на эти скорости (ну соответственно надо брать немного больше). Или же есть какие-то другие критерии?
*


MAC - это не микросхема, это протокол, а PHY так называют микросхемы которые преобразовывают цивровые уровни в уровни изернет, плюс обслуживают MAC уровень, но не все.
Сигнал там цифро-аналоговый, 3х уровневый, туда пока можеш не лезть там очени сложные схемы. Про эти частоты можеш забыть они тибе не нужны, ориентированися нужно на пропускную способность микросхемы PHY. Советую выбирать микросхемы PHY c стандартной шиной что то типа Intel bus но таких мало и я сейчас не могу вспомнить, широко распространены микросхем с интерфейсом MII но если у процессора нет этого интерфейса ты потеряеш немного скорости на программной реализации этого интерфейса. Ну и про скорость если ты получиш пропускную скорость выше 3 метра считай что девайс удался. На проце врядли больше получиш.
Кузьмич А.В.
Цитата(MALLOY2 @ Aug 13 2005, 11:33)
Советую выбирать микросхемы PHY c стандартной шиной что то типа Intel bus но таких мало и я сейчас не могу вспомнить, широко распространены микросхем с интерфейсом MII но если у процессора  нет этого интерфейса ты потеряеш немного скорости на программной реализации этого интерфейса.
*


Хочу с Вами не согласиться. MII интерфейса у процессоров не бывает. MII это интерфейс взаимодействия PHY c MAC (IEEE802.3u).
id_gene
http://forum.electronix.ru/index.php?showtopic=6810
http://forum.electronix.ru/index.php?showtopic=6431&st=20#

ищите больше, читайте внимательнее
лучше через гугл
MALLOY2
Цитата(Кузьмич А.В. @ Aug 18 2005, 12:33)
Цитата(MALLOY2 @ Aug 13 2005, 11:33)

Советую выбирать микросхемы PHY c стандартной шиной что то типа Intel bus но таких мало и я сейчас не могу вспомнить, широко распространены микросхем с интерфейсом MII но если у процессора  нет этого интерфейса ты потеряеш немного скорости на программной реализации этого интерфейса.
*


Хочу с Вами не согласиться. MII интерфейса у процессоров не бывает. MII это интерфейс взаимодействия PHY c MAC (IEEE802.3u).
*




как это не бывает, а у AT91rm9200 что по вашему ?
Media Independent Interface (MII) or Reduced Media Independent Interface (RMII)
Кузьмич А.В.
Цитата(MALLOY2 @ Aug 18 2005, 13:55)
как это не бывает, а у AT91rm9200 что  по вашему ?
Media Independent Interface (MII) or Reduced Media Independent Interface (RMII)
*

AT91RM9200 имеет всроенный МАС и именно МАС и имеет MII интерфейс для подключения к PHY.
MALLOY2
Цитата(Кузьмич А.В. @ Aug 18 2005, 14:20)
Цитата(MALLOY2 @ Aug 18 2005, 13:55)
как это не бывает, а у AT91rm9200 что  по вашему ?
Media Independent Interface (MII) or Reduced Media Independent Interface (RMII)
*

AT91RM9200 имеет всроенный МАС и именно МАС и имеет MII интерфейс для подключения к PHY.
*



еще раз говорю MAC это протокол MII это электрический интерфейс, никто тибе не мешет его реализовать на MEGA128. только скорость медленная будет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.