Статистика
- На сайте игроков:
- Всего:
- Партии:
- Завершены:
- Активные:
|
Автор |
Сообщение |
sagus•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 10:19 Заголовок сообщения: Загадочная петля |
|
|
Третий раз за неделю ко мне домой приходит Интернет-мастер. Причина все три раза одна и та же. Внезапно и вероломно пропадает сигнал в кабеле. Кабель прикидывается трупом. Сначала унизительная процедура с девочкой из службы поддержки "переинициализируйте сетевую плату, проверьте, вставлен ли провод вроутер, попробуйте вставить его напрямую в компьютер... и т. д." увещевания о том, что на роутере нет data-сигнала не помогают. Потом приходит он, лезет на чердак и у меня все включается. Говорят, что переставляют в другой разъем мой кабель. Теперь же меня не было утром и жена была дома. Пришел мастер в третий раз за неделю и в этот раз его попросили на "том конце телефона" перечислить все оборудование, которое у меня стоит. Он перечислил и мне вынесли вердикт. Внимение! Роутер ОБРАЗУЕТ ПЕТЛЮ. Почему? Потому, что старый
Жена заподозрила было и спросила: "А обязательно ли покупать ваш?", на что он спокойно сказал: "Нет, любой"
Что за петля? Кто знает?
|
|
Вернуться к началу |
|
|
galiaf•
Зарегистрирован: 2007-09-26 Постов: 31888 Местоположение:
|
Добавлено: Пт 11 Окт 2013 10:32 Заголовок сообщения: |
|
|
весь покер-клуб очень рад существованию петли
|
|
Вернуться к началу |
|
|
КАА•
Зарегистрирован: 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•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 12:10 Заголовок сообщения: |
|
|
Большое спасибо!! Удивлен дважды, ведь ему ничего не стоило "впарить" свой роутер жене, который они тут всем ставят.
На выхах поеду покупать новый роутер, чтобы клуб не переживал
|
|
Вернуться к началу |
|
|
Борисыч•
Зарегистрирован: 2006-11-23 Постов: 33304 Местоположение: Знаю прикуп - живу в Сочи
|
|
Вернуться к началу |
|
|
Борисыч•
Зарегистрирован: 2006-11-23 Постов: 33304 Местоположение: Знаю прикуп - живу в Сочи
|
Добавлено: Пт 11 Окт 2013 14:15 Заголовок сообщения: |
|
|
А приходил инженер или монтажник? Он уверен, что именно петля? Если он всего лишь менял сетевой интерфейс на коммутаторе, то проблемой может служить широковещательный шторм.
|
|
Вернуться к началу |
|
|
viza•
Зарегистрирован: 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•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 15:53 Заголовок сообщения: |
|
|
Борисыч писал(а): |
А приходил инженер или монтажник? Он уверен, что именно петля? Если он всего лишь менял сетевой интерфейс на коммутаторе, то проблемой может служить широковещательный шторм. |
Приходил Специалист. Квалификация его мне неизвестна, но на вопросы отвечает бодро и обстоятельно. Сказал, что "выгорел ик-порт" в прошлую субботу. В среду второй сказал, что смотрел на чердаке и что там всего два свободных порта, кроме моего. Он сначала воткнул в один - результата нет (походу это субботний мой же ) Потом в последний свободный и все заработало. Я ему кинул провокационочку вроде "а может, что по пачкорду в результате скачков напряжения (ведь роутер то у меня не в ИБПшке) уходит разряд и порт от этого выгорает?" ))) Он сказал "да, вполне, советую кабель провести через бесперебойник тоже". Я решил больше его ни о чем не спрашивать. А сегодня утром, жена рассказывает, что он (субботний) сказал что ничего не выгорает а просто заблокированы порты. Он позвонил в офис и ему их разблокировали.
|
|
Вернуться к началу |
|
|
sagus•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 15:56 Заголовок сообщения: |
|
|
Борисыч писал(а): |
Ваще перезагрузка роутера должна надолго избавлять от этой беды. |
В смысле? Просто ребутнуть? Я так делаю достаточно часто для того, что бы это не случалось вообще никогда ) Или что-то сложнее?
|
|
Вернуться к началу |
|
|
sagus•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 16:02 Заголовок сообщения: Re: Загадочная петля |
|
|
viza писал(а): |
Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба. |
Вот вот. Получается что мой роутер виноват.
|
|
Вернуться к началу |
|
|
viza•
Зарегистрирован: 2010-11-27 Постов: 608 Местоположение: Stockholm
|
Добавлено: Пт 11 Окт 2013 16:38 Заголовок сообщения: Re: Загадочная петля |
|
|
sagus писал(а): |
viza писал(а): |
Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба. |
Вот вот. Получается что мой роутер виноват. |
А что нам кондукторам -если деньги за билет отданы,пусть висят в дверях-лишь бы автобус ехал и ладно!
|
|
Вернуться к началу |
|
|
sagus•
Зарегистрирован: 2010-01-12 Постов: 1452 Местоположение: Тюсква
|
Добавлено: Пт 11 Окт 2013 18:48 Заголовок сообщения: |
|
|
не очень понял
|
|
Вернуться к началу |
|
|
Борисыч•
Зарегистрирован: 2006-11-23 Постов: 33304 Местоположение: Знаю прикуп - живу в Сочи
|
Добавлено: Сб 12 Окт 2013 04:29 Заголовок сообщения: |
|
|
sagus писал(а): |
Борисыч писал(а): |
Ваще перезагрузка роутера должна надолго избавлять от этой беды. |
В смысле? Просто ребутнуть? Я так делаю достаточно часто для того, что бы это не случалось вообще никогда ) Или что-то сложнее? |
Просто ребутнуть.
|
|
Вернуться к началу |
|
|
viza•
Зарегистрирован: 2010-11-27 Постов: 608 Местоположение: Stockholm
|
|
Вернуться к началу |
|
|
codeman•
Зарегистрирован: 2009-08-29 Постов: 4178 Местоположение: г.Мирный, р.САХА
|
Добавлено: Сб 12 Окт 2013 22:21 Заголовок сообщения: Re: Загадочная петля |
|
|
sagus писал(а): |
Третий раз за неделю ко мне домой приходит Интернет-мастер. Причина все три раза одна и та же. Внезапно и вероломно пропадает сигнал в кабеле. Кабель прикидывается трупом. Сначала унизительная процедура с девочкой из службы поддержки "переинициализируйте сетевую плату, проверьте, вставлен ли провод вроутер, попробуйте вставить его напрямую в компьютер... и т. д." увещевания о том, что на роутере нет data-сигнала не помогают. Потом приходит он, лезет на чердак и у меня все включается. Говорят, что переставляют в другой разъем мой кабель. Теперь же меня не было утром и жена была дома. Пришел мастер в третий раз за неделю и в этот раз его попросили на "том конце телефона" перечислить все оборудование, которое у меня стоит. Он перечислил и мне вынесли ветрдикт. Внимение! Роутер ОБРАЗУЕТ ПЕТЛЮ. Почему? Потому, что старый
Жена заподозрила было и спросила: "А обязательно ли покупать ваш?", на что он спокойно сказал: "Нет, любой"
Что за петля? Кто знает? |
петля, это из сетевой топологии..
оконечное оборудование сети настроено не правильно..
при любых раскладах вина провайдера, за исключением явного пункта в договоре на услугу, что абонент несет ответственность за оконечное оборудование..
|
|
Вернуться к началу |
|
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|
|