Загадочная петля



 
Начать новую тему   Ответить на тему    Форумы -> Технопарк
Автор Сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 10:19    Заголовок сообщения: Загадочная петля Ответить с цитатой

Третий раз за неделю ко мне домой приходит Интернет-мастер. Причина все три раза одна и та же. Внезапно и вероломно пропадает сигнал в кабеле. Кабель прикидывается трупом. Сначала унизительная процедура с девочкой из службы поддержки "переинициализируйте сетевую плату, проверьте, вставлен ли провод вроутер, попробуйте вставить его напрямую в компьютер... и т. д." увещевания о том, что на роутере нет data-сигнала не помогают. Потом приходит он, лезет на чердак и у меня все включается. Говорят, что переставляют в другой разъем мой кабель. Теперь же меня не было утром и жена была дома. Пришел мастер в третий раз за неделю и в этот раз его попросили на "том конце телефона" перечислить все оборудование, которое у меня стоит. Он перечислил и мне вынесли вердикт. Внимение! Роутер ОБРАЗУЕТ ПЕТЛЮ. Почему? Потому, что старый
Жена заподозрила было и спросила: "А обязательно ли покупать ваш?", на что он спокойно сказал: "Нет, любой"

Что за петля? Кто знает?
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
galiaf


galiaf

Зарегистрирован: 2007-09-26
Постов: 31888
Местоположение:

СообщениеДобавлено: Пт 11 Окт 2013 10:32    Заголовок сообщения: Ответить с цитатой

весь покер-клуб очень рад существованию петли ce.gif
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
КАА

Участник команды:
Ленинград

Александр

Зарегистрирован: 2007-09-19
Постов: 28524
Местоположение: СПб

СообщениеДобавлено: Пт 11 Окт 2013 10:35    Заголовок сообщения: Ответить с цитатой

Есть такая проблема у роутеров (маршрутизаторов) - там еще горизонт расщепляют, чтобы с проблемой справиться...
Посмотреть
Приведенный пример хорошо иллюстрирует главную причину нестабильной работы маршрутизаторов, работающих по протоколу RIP. Эта причина коренится в самом принципе работы дистанционно-векторных протоколов - пользовании информацией, полученной из вторых рук. Действительно, маршрутизатор М2 передал маршрутизатору Ml информацию о достижимости сети 201.36.14.0, за достоверность которой он сам не отвечает. Искоренить эту причину полностью нельзя, ведь сам способ построения таблиц маршрутизации связан с передачей чужой информации без указания источника ее происхождения.

Не следует думать, что при любых отказах интерфейсов и маршрутизаторов в сетях возникают маршрутные петли. Если бы маршрутизатор Ml успел передать сообщение о недостижимости сети 201.36.14.0 раньше ложной информации маршрутизатора М2, то маршрутная петля не образовалась бы. Так что маршрутные петли даже без дополнительных методов борьбы с ними, описанными в следующем разделе, возникают в среднем не более чем в половине потенциально возможных случаев.
Методы борьбы с ложными маршрутами в протоколе RIP

Несмотря на то что протокол RIP не в состоянии полностью исключить переходные состояния в сети, когда некоторые маршрутизаторы пользуются устаревшей информацией об уже несуществующих маршрутах, имеется несколько методов, которые во многих случаях решают подобные проблемы.

Ситуация с петлей, образующейся между соседними маршрутизаторами, описанная в предыдущем разделе, надежно решается с помощью метода, получившем название расщепления горизонта (split horizon). Метод заключается в том, что маршрутная информация о некоторой сети, хранящаяся в таблице маршрутизации, никогда не передается тому маршрутизатору, от которого она получена (это следующий маршрутизатор в данном маршруте). Если маршрутизатор М2 в рассмотренном выше примере поддерживает технику расщепления горизонта, то он не передаст маршрутизатору Ml устаревшую информацию о сети 201.36.14.0, так как получил ее именно от маршрутизатора Ml.

Практически все сегодняшние маршрутизаторы, работающие по протоколу RIP, используют технику расщепления горизонта.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 12:10    Заголовок сообщения: Ответить с цитатой

Большое спасибо!! Удивлен дважды, ведь ему ничего не стоило "впарить" свой роутер жене, который они тут всем ставят.
На выхах поеду покупать новый роутер, чтобы клуб не переживал ab.gif
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
Борисыч

Капитан команды Участник команды:
Команда!

Борисыч

Зарегистрирован: 2006-11-23
Постов: 33304
Местоположение: Знаю прикуп - живу в Сочи

СообщениеДобавлено: Пт 11 Окт 2013 14:12    Заголовок сообщения: Ответить с цитатой

sagus писал(а):
Большое спасибо!! Удивлен дважды, ведь ему ничего не стоило "впарить" свой роутер жене, который они тут всем ставят.
На выхах поеду покупать новый роутер, чтобы клуб не переживал ab.gif
Обнови прошивку роутера. Наверняка уже пофиксили это дело.

Ваще перезагрузка роутера должна надолго избавлять от этой беды.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
Борисыч

Капитан команды Участник команды:
Команда!

Борисыч

Зарегистрирован: 2006-11-23
Постов: 33304
Местоположение: Знаю прикуп - живу в Сочи

СообщениеДобавлено: Пт 11 Окт 2013 14:15    Заголовок сообщения: Ответить с цитатой

А приходил инженер или монтажник? Он уверен, что именно петля? Если он всего лишь менял сетевой интерфейс на коммутаторе, то проблемой может служить широковещательный шторм.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
viza

Участник команды:
Драники

Mikka

Зарегистрирован: 2010-11-27
Постов: 608
Местоположение: Stockholm

СообщениеДобавлено: Пт 11 Окт 2013 14:48    Заголовок сообщения: Re: Загадочная петля Ответить с цитатой

[quote="sagus"]Третий раз за неделю ко мне домой приходит Интернет-мастер. Причина все три раза одна и та же. Внезапно и вероломно пропадает сигнал в кабеле. Кабель прикидывается трупом. Сначала унизительная процедура с девочкой из службы поддержки "переинициализируйте сетевую плату, проверьте, вставлен ли провод вроутер, попробуйте вставить его напрямую в компьютер... и т. д." увещевания о том, что на роутере нет data-сигнала не помогают. Потом приходит он, лезет на чердак и у меня все включается. Говорят, что переставляют в другой разъем мой кабель. Теперь же меня не было утром и жена была дома. Пришел мастер в третий раз за неделю и в этот раз его попросили на "том конце телефона" перечислить все оборудование, которое у меня стоит. Он перечислил и мне вынесли вердикт. Внимение! Роутер ОБРАЗУЕТ ПЕТЛЮ. Почему? Потому, что старый
Жена заподозрила было и спросила: "А обязательно ли покупать ваш?", на что он спокойно сказал: "Нет, любой"

Что за петля? Кто знает?Одним из самых страшных бичей сети ethernet являются, так называемые, петли. Они возникают когда (в основном из-за человеческого фактора) в топологии сети образуется кольцо. К примеру, два порта коммутатора соединили патч-кордом (часто бывает когда два свича заменяют на один и не глядя втыкают всё, что было) или запустили узел по новой линии, а старую отключить забыли (последствия могут быт печальными и трудно выявляемыми). В результате такой петли пакеты начинают множиться, сбиваются таблицы коммутации и начинается лавинообразный рост трафика. В таких условиях возможны зависания сетевого оборудования и полное нарушение работы сети.

Помимо настоящих петель не редки случаи когда при выгорания порта (коммутатора или сетевой карты) он начинает возвращать полученные пакеты назад в сеть, при этом чаще всего соединение согласовывается в 10M, а линк поднимается даже при отключенном кабеле. Когда в сегменте такой порт только один, последствия могут быть не столь плачевными, но всё же весьма чувствительны (особенно сильно страдают пользователи висты и семёрки). В любом случае с такими вещами нужно нещадно бороться и понимать тот факт, что намеренно или случайно создавая петлю, пусть и на небольшой период времени, можно отключить целый сегмент сети.

Матчасть

К счастью большинство современных управляемых коммутаторов, в том или ином виде, имеют функции выявления петель (loopdetect, stp), и даже более того, семейство протоколов stp позволяет специально строить кольцевую топологию (для повышения отказоустойчивости и надёжности). Но тут есть и обратная сторона медали, не редко случается так, что один сгоревший порт может оставить без связи целый район. Или скажем у того же stp перестроение топологии происходит далеко не мгновенно, связь в этот момент, естественно, оставляет желать лучшего. Кроме того, некоторые производители весьма халатно относятся к реализации протоколов обнаружения петель, скажем DES-3016 (глинк) вообще не может определить петлю если просто соединить два его порта.

Принципы выявления

Принцип обнаружения петель (loopdetect) довольно простой. В сеть отправляется специальный пакет с броадкаст адресом (предназначен всем) и если он вернулся назад, считаем, что сеть за этим интерфейсом закольцована. Дальнейшие действия зависят от типа оборудования и настроек. Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба.

Если вся сеть управляемая, то выявить и устранить петлю довольно не сложно. Но не так уж мало сетей где к одному порту подключена цепочка из 5 — 6 неуправляемых коммутаторов. Устранение такой петли может занять немало времени и сил. Процесс поиска же сводится к последовательному отключению (включению) портов. Для определения наличия петли используется либо вышестоящий управляемый коммутатор, либо какой-нибудь снифер (wireshark, tcpdump). Первый способ весьма опасен в следствие наличия задержки между включением и выключением блокировки, в лучшем случае у пользователей просто будут лаги, а в худшем — сработает loopdetect выше по линии и отвалится уже куда больший сегмент. Во втором случае опасности для пользователей нет, но зато намного сложнее определять наличие петли (особенно в небольшом сегменте, где мало броадкаст трафика), всё-таки снифер вещь, по определению, пассивная.

Своими руками

Как было сказано выше, аппаратных реализаций поиска петель хватает с лихвой. Так что не долго думая, включаю wireshark настраиваю фильтр и смотрю, что и как делает коммутатор. Собственно всё просто: в порт отправляется пакет ethernet с адресом назначения cf:00:00:00:00:00, типом 0x9000 (CTP) и c неведомым номером функции 256 (в найденной мной документации описаны только две). Адрес назначение является броадкастовым, так что при наличии в сети петли назад должно вернутся несколько копий этого пакета.

Сперва определился с библиотеками:
Для захвата и отправки сырых пакетов воспользуюсь библиотекой pcapy;
С генерацией пакетов мне поможет dpkt;
Для воспроизведения звука воспользуюсь pyaudeo и wave;
Ну и несколько стандартных библиотек.

Далее все легко и просто. Создаю экземпляр класса pcapy.open_live c выбранным интерфейсом и добавляю к нему фильтр. Создаю первый цикл, который будет периодически отправлять пакет, а внутри него второй, что бы захватывать и обрабатывать вернувшиеся пакеты. Если захваченный пакет идентичен отправленному, то добавляется +1 к счётчику. Если после истечения тайм аута получено больше одной копии пакета, проигрывается звук, а на консоль выводится сообщение о петле.

С получившимся скриптом можно ознакомится далее.
import pcapy, dpkt , sys
import time , random, socket
import pyaudio , wave

def packetBody(length):
rez = []
for x in range(0,length):
rez.append(random.choice('0123456789abcdef') + random.choice('0123456789abcdef'))
return rez

class loopDetector:
packetCount = 0
loopCount = 0
timeout = 1

def __init__(self,iface):
self.iface = iface
self.pcaper = pcapy.open_live(iface,100,1,500)
self.Mac = '00:19:5b:'+':'.join(packetBody(3))
self.pcaper.setfilter('ether dst cf:00:00:00:00:00 and ether src %s' % self.Mac)
wf = wave.open('alarm.wav', 'rb')
self.pyA = pyaudio.PyAudio()
self.stream = self.pyA.open(format =
self.pyA.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = wf.getframerate(),
output = True)
self.wfData = wf.readframes(100000)
wf.close()

def __del__(self):
self.stream.stop_stream()
self.stream.close()
self.pyA.terminate()

def PlayAlarm(self):
self.stream.write(self.wfData)

def Capture(self,hdr,data):
if data == str(self.sPkt):
self.packetReceived += 1

def Process(self):
while 1:
try:
pktData = '00000001' + ''.join(packetBody(42))
self.sPkt = dpkt.ethernet.Ethernet(dst="cf0000000000".decode('hex'),
src=''.join(self.Mac.split(':')).decode('hex'),
type=36864,data=pktData.decode('hex'))
endTime = time.time() + self.timeout
print "Send packet to %s" % self.iface
self.packetCount += 1
self.pcaper.sendpacket(str(self.sPkt))
self.packetReceived = 0
while time.time() < endTime:
try:
self.pcaper.dispatch(-1,self.Capture)
except socket.timeout:
pass
if self.packetReceived > 1:
self.loopCount += 1
print "Loop Detected. Duplication found %s" % self.packetReceived
self.PlayAlarm()
except KeyboardInterrupt:
break
print "Packets sent: ", self.packetCount , "Loops discovered : " , self.loopCount

def main():
dev_list =
n = 0
iface = ''
for x in pcapy.findalldevs():
dev_list[n] = x
n += 1
try:
iface = dev_list[0]
except KeyError:
print "No device found"
exit(1)
if len(sys.argv) == 2:
try:
if sys.argv[1] in ['list','ls','all']:
for x in dev_list:
print 'Index:', x, 'Device name:' ,dev_list[x]
return 0
else:
iface = dev_list[int(sys.argv[1])]
except KeyError:
print "Invalid device id, trying use first"
iface = dev_list[0]
ld = loopDetector(iface)
ld.Process()

if __name__ == "__main__":
main()
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 15:53    Заголовок сообщения: Ответить с цитатой

Борисыч писал(а):
А приходил инженер или монтажник? Он уверен, что именно петля? Если он всего лишь менял сетевой интерфейс на коммутаторе, то проблемой может служить широковещательный шторм.

Приходил Специалист. Квалификация его мне неизвестна, но на вопросы отвечает бодро и обстоятельно. Сказал, что "выгорел ик-порт" в прошлую субботу. В среду второй сказал, что смотрел на чердаке и что там всего два свободных порта, кроме моего. Он сначала воткнул в один - результата нет (походу это субботний мой же ab.gif ) Потом в последний свободный и все заработало. Я ему кинул провокационочку вроде "а может, что по пачкорду в результате скачков напряжения (ведь роутер то у меня не в ИБПшке) уходит разряд и порт от этого выгорает?" ))) Он сказал "да, вполне, советую кабель провести через бесперебойник тоже". Я решил больше его ни о чем не спрашивать. А сегодня утром, жена рассказывает, что он (субботний) сказал что ничего не выгорает а просто заблокированы порты. Он позвонил в офис и ему их разблокировали.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 15:56    Заголовок сообщения: Ответить с цитатой

Борисыч писал(а):
Ваще перезагрузка роутера должна надолго избавлять от этой беды.
В смысле? Просто ребутнуть? Я так делаю достаточно часто для того, что бы это не случалось вообще никогда ) Или что-то сложнее?
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 16:02    Заголовок сообщения: Re: Загадочная петля Ответить с цитатой

viza писал(а):
Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба.

Вот вот. Получается что мой роутер виноват.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
viza

Участник команды:
Драники

Mikka

Зарегистрирован: 2010-11-27
Постов: 608
Местоположение: Stockholm

СообщениеДобавлено: Пт 11 Окт 2013 16:38    Заголовок сообщения: Re: Загадочная петля Ответить с цитатой

sagus писал(а):
viza писал(а):
Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба.

Вот вот. Получается что мой роутер виноват.
А что нам кондукторам -если деньги за билет отданы,пусть висят в дверях-лишь бы автобус ехал и ладно!
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
sagus


sagus

Зарегистрирован: 2010-01-12
Постов: 1452
Местоположение: Тюсква

СообщениеДобавлено: Пт 11 Окт 2013 18:48    Заголовок сообщения: Ответить с цитатой

не очень понял ah.gif
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
Борисыч

Капитан команды Участник команды:
Команда!

Борисыч

Зарегистрирован: 2006-11-23
Постов: 33304
Местоположение: Знаю прикуп - живу в Сочи

СообщениеДобавлено: Сб 12 Окт 2013 04:29    Заголовок сообщения: Ответить с цитатой

sagus писал(а):
Борисыч писал(а):
Ваще перезагрузка роутера должна надолго избавлять от этой беды.
В смысле? Просто ребутнуть? Я так делаю достаточно часто для того, что бы это не случалось вообще никогда ) Или что-то сложнее?
Просто ребутнуть.
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
viza

Участник команды:
Драники

Mikka

Зарегистрирован: 2010-11-27
Постов: 608
Местоположение: Stockholm

СообщениеДобавлено: Сб 12 Окт 2013 15:34    Заголовок сообщения: Ответить с цитатой

sagus писал(а):
не очень понял ah.gif
Ну это если у тебя один электропровод ,а на нем 10 розеток(через 3 метра каждая) и ни одной распределительной коробки и все они(розетки) задействованы!
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
codeman

Участник команды:
Евразия

Рыжов Эрнест

Зарегистрирован: 2009-08-29
Постов: 4178
Местоположение: г.Мирный, р.САХА

СообщениеДобавлено: Сб 12 Окт 2013 22:21    Заголовок сообщения: Re: Загадочная петля Ответить с цитатой

sagus писал(а):
Третий раз за неделю ко мне домой приходит Интернет-мастер. Причина все три раза одна и та же. Внезапно и вероломно пропадает сигнал в кабеле. Кабель прикидывается трупом. Сначала унизительная процедура с девочкой из службы поддержки "переинициализируйте сетевую плату, проверьте, вставлен ли провод вроутер, попробуйте вставить его напрямую в компьютер... и т. д." увещевания о том, что на роутере нет data-сигнала не помогают. Потом приходит он, лезет на чердак и у меня все включается. Говорят, что переставляют в другой разъем мой кабель. Теперь же меня не было утром и жена была дома. Пришел мастер в третий раз за неделю и в этот раз его попросили на "том конце телефона" перечислить все оборудование, которое у меня стоит. Он перечислил и мне вынесли ветрдикт. Внимение! Роутер ОБРАЗУЕТ ПЕТЛЮ. Почему? Потому, что старый
Жена заподозрила было и спросила: "А обязательно ли покупать ваш?", на что он спокойно сказал: "Нет, любой"

Что за петля? Кто знает?

петля, это из сетевой топологии.. ab.gif
оконечное оборудование сети настроено не правильно.. ac.gif
при любых раскладах вина провайдера, за исключением явного пункта в договоре на услугу, что абонент несет ответственность за оконечное оборудование.. ce.gif
Вернуться к началу
Посмотреть профайл Отправить личное сообщение
Начать новую тему   Ответить на тему    Форумы -> Технопарк Часовой пояс: GMT +3:00
 

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах