|
|
ru.networks- RU.NETWORKS ------------------------------------------------------------------ From : Vadim Guchenko 2:5020/400 05 Oct 2004 22:31:10 To : Anton V. Yuzhaninov Subject : Re: Лавинообразное подвисание свичей --------------------------------------------------------------------------------
Hello, Anton!
You wrote to Vadim Guchenko on Tue, 5 Oct 2004 16:59:28 +0000 (UTC):
AVY>>> Если свитч все полученые пакеты будет отправлять обратно через,
AVY>>> тот же порт, то он легко может нарушить рабту _всего_ сегмента.
VG>> Каким образом?
AVY> Пакеты с одинаковым src-mac будут сначало приходить с того порта
AVY> где действительно раположена станция с таким маком, а потом с того
AVY> порта к которому подключен этот дохлый свитч, в результате таблица
AVY> будет постоянно переписываться и свитч просто впадет в ступор.
Попробую представить... Предположим есть 3-х портовый правильно работающий
свич. К нему на 1-м порту подключен клиент1 с мак1, на 2-м порту клиент2 с
мак2, а на 3-м порту - глючный свич, который возвращает все пакеты назад
(хотя свич не должен так делать ни при каких условиях - это ж как
заглючить-то надо):
1 - клиент1 (мак1)
2 - клиент2 (мак2)
3 - глючный свич
Таблица мак-адресов в свиче пуста. Пусть клиент1 шлет пакет клиенту2. Пакет
приходит с порта 1. Свич запоминает, что мак1 находится на порту 1, но т.к.
в таблице адресов нет мак2, то он отправляет пакет во все порты, кроме 1.
Клиент2 получает пакет и обрабатывает его. В это время глючный свич
возвращает пакет назад. Hормальный свич получает пакет с 3-го порта,
исправляет в таблице адресов номер порта у мак1 с 1 на 3 и отправляет пакет
опять во все порты, кроме 3. В итоге клиент2 получит повторный пакет и
отбросит его, а клиент1 просто проигнорирует пакет. Таблица мак-адресов к
этому моменту:
мак1 - 3 порт.
Теперь клиент2 шлет ответ клиенту1. Пакет приходит в свич с 2-го порта. Свич
добавляет в таблицу адресов мак2 и его порт - 2. Далее, свич ищет в таблице
порт для мак1 и находит - 3. Отправляет пакет в 3-й порт. Пакет возвращается
назад. Свич делает корректировку: мак2 теперь находится на 3-м порту. А где
находится мак1? Тоже на 3-м. Пакет отбрасывается и не доходит до адресата.
Таблица мак-адресов:
мак1 - 3 порт.
мак2 - 3 порт.
Теперь пусть клиент2 пошлет пакет повторно клиенту1. Пакет придет с 2-го
порта, свич изменит в таблице номер порта у мак2 с 3 на 2 и отправит пакет в
3-й порт. Пакет вернется и свич опять переместит мак2 на 3-й порт. То же
самое будет, если и клиент1 решит сделать повторную передачу клиенту2.
Обобщая на сеть из нескольких свичей с одним глючным: если любой клиент с
любого свича посылает пакет на адрес, которого нет в таблицах свичей, то
пакет расходится по всем свичам и доходит до глючного. Глючный свич отсылает
пакет обратно и он опять расходится по всей сети. И теперь все свичи будут
думать, что пакет изначально был послан глючным свичем и все ответы направят
ему. Т.е. ни один ответ не дойдет до клиента, который посылал запрос, если
конечно ответ от глючного свича разойдется по сети быстрее, чем придет ответ
от клиента. А если учесть, что время жизни мак-адресов в свичах конечно, а
компьютеры в сети иногда и выключаются, то сеть с таким свичем стремится к
тому, что ни на один запрос клиентов не будет получен ответ.
И что, свич реально может так заглючить? Или это чисто теоретический случай?
With best regards, Vadim Guchenko. E-mail: s0lver@kraslan.ru
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.networks/64889491e98a.html, оценка из 5, голосов 10
|