faq обучение настройка
Текущее время: Пн июл 21, 2025 16:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Пн янв 26, 2009 19:27 
Не в сети

Зарегистрирован: Вт дек 12, 2006 13:18
Сообщений: 44
Обнаружилась ошибка в коммутаторах DLink серий DES38xx DGS31xx (так же оно есть еще и в 3Com SS2). Ошибка связана с неправильным алгоритмом при выборе порта и приводит к потерям пакетов и деградации производительности.

Ошибка легко повторяется при использвании следующей схемы:

Код:
+-------------------+      +----------+                     +--------+
| Router  1         |      | Switch 1 |                     | Switch |
+-------------------+      +----------+          . . .      +--------+  +--------+
| vlan1 ---\        |      | /port 1  ==100M=== . L2  . ===== port1  |  |        |
|          + eth0   ===1GE===+ port25  |         .     .     |        === Router |
| vlan2 ---/        |      | \port 2  ==100M=== . NET . ===== port2  |  |        |
+-------------------+      +----------+          . . .      +--------+  +--------+


Есть роутер (1) в котором есть 3 интерфейса: 2 vlan и один релаьный интерфейс 1000Mbit.
в linux это выглядит так:
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
ifconfig eth0 up
vconfig add eth0 1
vconfig add eth0 2
ifconfig vlan1 192.168.1.1
ifconfig vlan2 192.168.2.1
через гигабитный порт eth0 подключен Switch 1, где ошибка и происходит.
конфигурация свича:
create vlan v1 tag 1
create vlan v2 tag 2
conf vlan v1 add tag 1,25 ; 25 - порт в сторону рутера, 1 - порт "наружу"
conf vlan v2 add tag 2,25 ; 25 - порт в сторону рутера, 2 - порт "наружу"
Ну можно еще удалить из 1 и 2 порта все, что там есть untagged, дабы не было никакой связи между этими портами.
Порты 1 и 2 свича (1) - 100М , воткнуты в некую сеть, которая транспортирует трафик без потерь, и сохраняет теги 802.1q. Для эксперемента можно соединить cross over патчкордом с другим свитчем, который настраивается зеркально свичу 1.

В результате имеем сеть из двух роутеров, где есть 2 vlan с тегами 1 и 2. Роутеры соеденены между собой коммутаторами, где каждый тег идет в своем порту (первый тег в первом порту, второй во втором).

Mac адрес на интерфейсах vlan1 и vlan2 в первом и втором рутерах одинаковый, и соответствует mac адресу интерфейса eth0. Дальше роутере 2 запускаем iperf в режиме сервера (или заменяем на iptables -I INPUT -j DROP -p udp -s 192.168.0.0/23 --dport 5001 так как статистика тут не нужна). Адрес этого роутера будет на vlan1 192.168.1.2 , на vlan2 192.168.2.2.
На роутере 1 запускаем iperf в режиме генератора:
iperf -c 192.168.1.2 -u -B 100M -t 100000 &
iperf -c 192.168.2.2 -u -B 100M -t 100000 &
и смотрим прохождение трафикачерез интерфейсы в данной схеме.
На роутере 1 в интерфейсах vlan1 и vlan2 будет по 100М, как и должно быть, на eth0 будет сумма vlan1+vlan2 200Мбит, на порту 25 первого свича будет 200Мбит, а вот на портах 1 и 2 этого же коммутатора будет уже по 50Мбит. Почему ? Ведь оба порта 100М, в каждом из портов находится только один 802.1q vlan. Видимо тут есть ошибка, связанная с тем, что при выборе порта назначения в коммутаторе ка каком-то этапе не проверяется тег 802.1q, а смотрится лишь в mac адрес назначения. Соответственно, никаких ошибок на портах (sh e p порт) не видно.
И, если прибить один из генерирующих iperf-ов , то в порту, соответствующему vlan, где трафик остался будет 100Мбит.
Данная ошибка воспроизводится 100% на придеденнных выше типах свичей, перезагрузка самих свичей (с сохраненной конфигурацией) проблему не решает. Прошивка свичей везде самая свежая.

ЗЫ: я знаю, что есть агрегация портов в свиче и т.д. но желания использовать его нет, из-за невозможности свича эффективно балансировать нагрузку между портами.
ЗЫЫ: нагрузку можно легко смотреть через ifstat, который так же умеет снимать данные и через SNMP.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 26, 2009 19:33 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Перезвоните пожалуйста завтра в офис по телефону 744-00-99 доб.390. или укажите в личку Ваш телефон.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB