реклама на сайте
подробности

 
 
> Таблица MAC-адресов в коммутаторе, Как добавить в нее запись?
troiden
сообщение Apr 5 2012, 19:02
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 19-02-09
Из: Москва
Пользователь №: 45 069



Сначала вводная часть:
В простейшем случае есть схема, представленная в прикрепленном файле. 1 и 2 - устройства на базе FPGA с гигабитным портом, 3 - обычный компьютер, всё это связано через обычный неуправляемый коммутатор. Устройство 1 шлет UDP-поток данных на устройство 2, в котором происходит обработка, и результирующие данные отсылаются опять-таки через UDP с 2 на компьютер 3. По логике работы, в коммутаторе есть таблица соответствия MAC-адресов портам и в нормальном режиме работы коммутатор должен слать поток от устройства 1 только на четвертый порт, а на восьмом пакетов этого потока быть не должно, и соответственно данные с устройства 2 должны приходить только на восьмой порт. Именно такое поведение наблюдается, если слать данные с 2 на 3 или напрямую с 1 на 3 - пакеты приходят только на восьмой порт, остальные остаются неактивными.
Однако если слать данные с 1 на 2, то коммутатор начинает спамить пакетами на все порты. Насколько я понимаю, это связано с отсуствием записи в MAC-таблице коммутатора о соответствии устройства 2 определенному порту.
Ну а теперь сам вопрос: как добавить эту запись?

Что было испробовано:
1. Устройство 2 шлет UDP-поток на 3.
2. Устройство 2 шлет широковещательные ARP-сообщения со своими MAC и IP адресами.
3. Устройство 2 шлет ICMP echo запрос (Ping) на 3.
4. Устройство 2 принимает ARP-запрос со своим IP-адресом и отвечает отправителю верным ARP-ответом.

Однако же, ни один из приведенных методов ассоциации устройства определенному порту не вызвал.

Совместное использование двух последних решений привело к тому, что устройство 2 может беспрепятственно пинговать компьютер 3, т.е. через коммутатор проходит цепочка сообщений Ping request от 2 к 3 -> ARP request от 3 к 2 -> ARP reply от 2 к 3 -> Ping reply от 3 к 2. Следовательно, сами сообщения составлены правильно, через коммутатор проходят, но желаемого результата не дают.

Куда следует копать дальше? Может, для заполнения MAC-таблицы нужны TCP-пакеты?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tolik1
сообщение Apr 9 2012, 05:07
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016



Цитата(troiden @ Apr 5 2012, 22:02) *
Куда следует копать дальше? Может, для заполнения MAC-таблицы нужны TCP-пакеты?

Начните с того, что замените устройства с FPGA на персональные компы и симитируйте на них обмен данными. Если эффект повторится, то меняйте коммутатор, если нет - смотрите реализацию UDP на FPGA.
PS 1)по личному опыту знаю, что таблица ARP может периодически обновляться(получается примерно что и у Вас)
2)А на сколько Вас вообще это напрягает?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 19:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016