About Forum Blogs NOC Docs Downloads KB Issues Code CI Registration

nocproject.org

#nocproject.org at irc.freenode.net log.
Back to nocproject.org Back to IRC log index
Date: 31.12.2015
anp135 #
05:45
добрррррое утрррро
SomovIS_ #
05:46
Доброе
ss___ #
06:24
заебись утро!
06:25
т.е. доброе всем. Все руки от железа и серваков убрали?
zi_rus #
06:27
ты чеее
06:27
а как же срочно-срочные задачи которые еще месяц назад надо было сделать
06:27
сегодня саое время
06:28
в новый год без долгов
anp135 #
06:31
дернуло меня под нг с ноком связаться -( показали как в профилях множить гокод… все люди в танки играют или бухают, а я нейборы связать пытаюсь..
zi_rus #
06:32
и в этом больше смысла чем в дрочеве в танки
06:32
уж я то знаю
06:32
не один час продрочил там
ss___ #
06:36
гггг а я чай с шоколодкой пью
06:36
перевариваю вчерашние шашлыки и грибы
06:36
збс вчера в бане посидели
06:37
кто то до сих пор не протрезвел)
e_zombie #
06:38
,,
zi_rus #
06:38
да, а сегодня ночью будет второй заход
e_zombie #
06:38
крутяк.
zi_rus #
06:38
спрашивается зачем так синячиться
06:39
здоровья что ли не жалко
e_zombie #
06:39
я вчера захуярил цельную курицу в воге со специями.
06:39
пока не начнёшь платить за обследование - не задумаешься.
06:40
идеально - принять пол бутылочки красного и на пару часиков разврата.
06:42
и нашёл в кладовке бутылку мартини и игристого с прошлого нового года.
06:42
:)
SomovIS_ #
06:44
👍
e_zombie #
06:44
я за секс вместо синьки
ufir #
06:51
в деревне блядь ёлку ставили, бурили отверстие - порвали нахуй буром 50-парник
e_zombie #
06:51
ну ёбтвоюмать(с)
ufir #
06:51
да не то слово, блин
zi_rus #
06:54
нахер там ее ставить, живую вырастить и просто наряжать не судьба?
anp135 #
06:54
всего одну елку на деревню? слабовато
ufir #
06:54
вы просто никогда не были у нас в Марий Эл
zi_rus #
06:54
я много где не был
anp135 #
06:54
у нас по Сочи вдоль трассы меняли опоры освещения, вот там дорожники за день успели 10 столбов поставить и все дырки - в оптику… наши на третьей муфте охерели..
ss___ #
06:57
ufir, я там был))) в завольжье)
ufir #
06:58
Серёга, дык я до вас на мотоцикле доезжал, за пару часов, с перекурами и перекусами
06:59
до вас еще ближе, чем до Казани
06:59
помер создатель Debian Linux Ян Мёрдок
e_zombie #
07:02
RIP
ufir #
07:03
ну - зато у него будут веселые поминки, чо
e_zombie #
07:04
поминки весёлыми не бывают. нахуй нахуй такие мероприятия.
ufir #
07:04
Володий, классику читай
07:06
О'Генри, исповедь юмориста
e_zombie #
07:06
не хотеть.
ufir #
07:07
as you wish ;)
e_zombie #
07:10
https://youtu.be/HE3f7oNFTlE?t=48
07:10
россейские роботы жгут
anp135 #
07:11
умеет поворачивать и стелять. на питоне написан?
e_zombie #
07:11
и ракеты отстреливать.
anp135 #
07:12
точно, на питоне стрелять и ракеты отстреливать это разные скрипты -)
e_zombie #
07:16
память потекла и привет .
zi_rus #
07:19
некрасивый
07:20
чем красивее техника, тем она лучше работает, а это какой-то валенок
07:20
только нок на него не ставьте
e_zombie #
07:23
шушпанцерь
07:23
немцы с такими давно развлекались.
ufir #
07:33
чот меня с двух бакалов шампанского и пары рюмок коньяка вырубает
e_zombie #
07:33
:-D
07:33
натренированный
ufir #
07:33
поспать надо
07:34
да вчера блин. нажрались как черти
evyscr #
07:39
олкоголеки хреновы
e_zombie #
07:41
https://pp.vk.me/c625116/v625116615/3809/tjH4mG2uFFM.jpg
ufir #
07:43
evyscr ну чуть-чуть можно же
dvolodin #
07:46
а сбитые объекты с циклическими зависимостями будут продолжать торчать в куче
07:46
со временем робота замучает совесть
07:47
и под грузом совершенных злодеяний кончится память
evyscr #
07:55
хм
07:55
циклические зависимости
07:55
хм
07:55
нок
07:57
from inv.models.link import Link
Dmitry1 #
08:02
evyscr: смотри, щас запулю lldp для джунипер
08:02
почитай там комментарии
08:03
как раз про то, что сам профиль должен знать, какой у него интерфейс что означает
08:03
а не делать комбайн из lldp скрипта
evyscr #
08:04
ты глупишь
Dmitry1 #
08:05
читай комменты кв коммите
evyscr #
08:05
твой костыль с маками ломает линковку
08:05
dixi
Dmitry1 #
08:05
тот же juniper qfx упорно в lldp выдает ifindex вместо имени интерфейса
evyscr #
08:05
а ещё длинк может тебе много чего выдавать
08:06
иной раз поменять местами port subtype и port name
Dmitry1 #
08:06
evyscr: правильно. а знать, что именно он выдает, должна функция get_interface_names
evyscr #
08:06
хуюшки
08:06
не будет такого
Dmitry1 #
08:06
просто в нее нужно передать больое параметров
evyscr #
08:06
бля, пора форкаться
Dmitry1 #
08:07
не просто "name", а port_subtype, name, и port_description
08:07
а функция сама из этого "сложит" нужное имя интерфейса
08:07
т.е. нужно ломать API
evyscr #
08:07
port subtype: 28, name: 7
Dmitry1 #
08:08
да
08:08
для длинка, например
08:08
если порт-subtype - mac address
evyscr #
08:08
ок, тот же свич, port subtype: 1 name: 7
08:09
это первый порт
Dmitry1 #
08:09
иногда единственный способ узнать настоящий номер порта - это распарсить ports_description
evyscr #
08:10
твоё желание делать это в профиле понятно. твоё желание делать это сразу в профиле - вызывает нехорошие высказывания
Dmitry1 #
08:10
evyscr: platform_regex еще никто не отменял
evyscr #
08:10
какой в жопу platform_regex!
Dmitry1 #
08:10
ты расскажи это джуниперу
evyscr #
08:10
это ебанутые длинки
Dmitry1 #
08:11
который для EX и MX отсылает имя интерфейса, а для QFX - ifIndex
08:11
"evyscr: это ебанутые s/длини/джуниперы/"
dvolodin #
08:13
port subtype у них разный?
SomovIS_ #
08:14
ex тоже отсылает ifindex
08:14
какой софт у тебя?
Dmitry1 #
08:14
show lldp neighbors interface xe-0/1/0.0
dvolodin #
08:14
то, что он отсылает ifindex - это нормально
Dmitry1 #
08:14
Neighbour Information:
dvolodin #
08:15
лишь бы port id subtype был правильны
Dmitry1 #
08:15
Port type : Locally assigned
08:15
Port ID : 566
SomovIS_ #
08:15
Neighbour Information:
08:15
Chassis type : Mac address
08:15
Chassis ID : f0:1c:2d:56:eb:c0
08:15
Port type : Locally assigned
08:15
Port ID : 699
08:15
Port description : Uplink to CSW lacp ae43
08:15
System name : dpmo-asw-43
Dmitry1 #
08:15
System Description : Juniper Networks, Inc. qfx3500s , version 11.3R1.7 Build date: 2011-08-30 14:28:21 UTC
evyscr #
08:15
правильный port id subtype - это не реальность, увы
dvolodin #
08:15
7 тип?
08:15
ну хорошо
08:16
7-й тип у нас перебирал и имя и ifindex
Dmitry1 #
08:17
это должен знать профиль
08:18
а точнее, функция get_interface_names в нем
08:19
а в нее нужно передать port_id_subtype, port_name и port_description
evyscr #
08:19
таким образом, DxS - говнопрофиль, не?
08:19
NOC-1422
Dmitry1 #
08:20
lда
evyscr #
08:20
port_description не всегда есть
08:20
привыкай
Dmitry1 #
08:20
нужно убрать "левые" костыли из DLink.DxS.get_lldp_neighbors
08:20
evyscr: смотри, для длинка
08:22
Port ID Subtype : MAC Address
08:22
Port ID : 00-22-B0-26-8B-FF
08:22
Port Description : D-Link DGS-3627G R3.00.B30 Port
08:22
1
08:22
так вот
evyscr #
08:22
вот не надо брать идеальный случай
Dmitry1 #
08:22
Единственный правильный вариант - взять номер порта, распарсив такое: "D-Link DGS-3627G R3.00.B30 Port 1"
evyscr #
08:22
тащемта нет
Dmitry1 #
08:23
Единственный правильный вариант - взять номер порта, распарсив такое: "D-Link DGS-3627G R3.00.B30 Port 1"
evyscr #
08:23
враньё же
Dmitry1 #
08:25
evyscr: обоснуй ?
evyscr #
08:25
NOC-1422
Dmitry1 #
08:26
evyscr: я выше привел вывод show lldp remote_port. откуда по твоему мнению я должен взять номер порта ?
08:27
заметь, я привел полную информацию, которой должно хватить, для принятия правильного решения
08:28
evyscr: или ты думаешь, что я от нечего делать парсил port_description ?
evyscr #
08:29
ты знаешь, что такое last resort?
Dmitry1 #
08:31
evyscr: ты о чем ?
08:31
Dmitry: Port ID Subtype : MAC Address
08:31
Dmitry: Port ID : 00-22-B0-26-8B-FF
08:31
Dmitry: Port Description : D-Link DGS-3627G R3.00.B30 Port
08:31
Dmitry: 1
08:34
evyscr: я тебе задал прямой вопрос, а ты начинаешь выдумывать что-то
08:35
вот есть вывод show lldp remote_port. нужно с него получить номер порта
evyscr #
08:36
блджад
Dmitry1 #
08:36
т.е. ты ответа дать не можешь ?
evyscr #
08:36
что ж ты не поймёшь-то...
08:36
от комбайна в lldp_discovery не деться
Dmitry1 #
08:36
Dmitry: Dmitry: Port ID Subtype : MAC Address
08:36
Dmitry: Dmitry: Port ID : 00-22-B0-26-8B-FF
08:36
Dmitry: Dmitry: Port Description : D-Link DGS-3627G R3.00.B30 Port
08:36
Dmitry: Dmitry: 1
08:36
Dmitry: evyscr: я тебе задал прямой вопрос, а ты начинаешь выдумывать что-то
08:36
Dmitry: вот есть вывод show lldp remote_port. нужно с него получить номер порта
evyscr #
08:36
port description тянет на last resort
Dmitry1 #
08:37
как из жтого вывода получить номер порта ?
08:37
не увиливай от ответа
evyscr #
08:37
и вообще, забань желание коммитить до 10-го числа
08:37
по маку, блджад
08:37
в том случае, когда он вернёт не None
Dmitry1 #
08:38
evyscr: а теперь внимательно читай "Port Description "
08:38
D-Link DGS-3627G
08:38
D-Link DGS-3627G
08:38
D-Link DGS-3627G
08:38
D-Link DGS-3627G
08:38
прочитал ?
anp135 #
08:38
подскажите пожалуйста регулярку как это гамно (https://paste.ee/p/Oy4BV) распарсить из get_lldp_neighbors.py for match in self.rx_int.finditer(lldp):
evyscr #
08:38
а теперь иди и читай код
08:38
иди и читай код
08:38
иди и читай код
08:38
иди и читай код
08:38
иди и читай код
Dmitry1 #
08:38
а теперь узнай же великую тайну длинка!
evyscr #
08:38
иди и читай код
Dmitry1 #
08:39
D-Link DGS-3627G ДЛЯ ВСЕХ ПОРТОВ ВЫДАЕТ ОДИНАКОВЫЙ MAC АДРЕС
evyscr #
08:39
А ТЕПЕРЬ ИДИ И ЧИТАЙ КОД
08:39
сцуко
08:39
почему ты не прочитал код?
Dmitry1 #
08:39
прочитал
evyscr #
08:39
и что?
08:40
какие выводы?
Dmitry1 #
08:40
для D-Link DGS-3627G оно выдаст не правильный номер порта
evyscr #
08:41
ты лжёшь
08:42
иди и читай код
Dmitry1 #
08:43
# MAC Address
08:43
if n["remote_port_subtype"] == 3:
08:43
- # Try to convert to Interface Name
08:43
- match = self.rx_remote_port_id3.search(s1)
08:43
- if match:
08:43
- n["remote_port_subtype"] = 5
08:43
- n["remote_port"] = match.group("port")
evyscr #
08:43
get_remote_port_by_mac
08:44
иди и читай код
dvolodin #
08:44
вы там только из-за dlink'ов не расколбасьте discovery
evyscr #
08:45
дык, пытаются же
dvolodin #
08:45
вот и не надо
evyscr #
08:45
из благих побуждений и всё такое
08:45
с частично верной задумкой
dvolodin #
08:45
сами методы discovery ничего не должны знать про dlink'и
evyscr #
08:45
без peer-review...
Dmitry1 #
08:45
def get_remote_port_by_mac(self, object, mac):
08:45
self.debug("Remote port mac: %s" % mac)
08:45
try:
08:45
mac = MACAddressParameter().clean(mac)
08:45
except InterfaceTypeError:
08:45
self.debug("Invalid MAC, ignoring")
08:45
return None
08:45
i = Interface.objects.filter(
08:45
managed_object=object.id,
08:45
mac=mac)[:2]
08:45
if len(i) == 1:
08:45
return i[0].name
08:45
elif len(i) > 1:
08:45
self.debug("Non-unique MAC address: %s. Ignoring" % mac)
08:45
return None
e_zombie #
08:46
dvolodin: http://pastebin.com/LjZYBFHq это у меня в сае торчит и как я понимаю нет в девелопе. если оно нужно может его закоммитить ?
Dmitry1 #
08:46
evyscr: покажи мне, где здесь попытка взять номер порта из port_description ?
dvolodin #
08:47
e_zombie: да, можно закоммитить
evyscr #
08:47
а зачем оно _именно_ там?
08:47
вникай в суть NOC-1527 и думай про last resort
Dmitry1 #
08:48
evyscr: я тебе еща раз говорю. Для DGS-3627, и только для него, ЕДИНСТВЕННЫЙ способ узнать номер порта - это распарсить port_description
evyscr #
08:48
и да, коммит-логи "fix" пишут только очень одарённые люди
08:49
"вникай в суть NOC-1527 и думай про last resort"
Dmitry1 #
08:49
Внимательно читаю NOC-1527
08:49
def get_remote_port(self, object, remote_port, remote_port_subtype):
08:49
ткни меня пальцем в переменную "remote_port_description"
08:50
я тебе еща раз говорю. Для DGS-3627, и только для него, ЕДИНСТВЕННЫЙ способ узнать номер порта - это распарсить port_description
evyscr #
08:50
всё, не пытайся разговаривать со мной до 11-го числа
08:51
и, блять, зафризьтесь уже до завершения
dvolodin #
08:51
https://bitbucket.org/nocproject/noc/src/cf3e3476a44033b237753dab0137d653ccad2420/services/discovery/jobs/box/lldp.py?at=feature%2Fmicroservices&fileviewer=file-view-default
08:51
да уж
08:51
у нас рабочий день заканчивается
Dmitry1 #
08:52
dvolodin: Дим, не то
08:52
надо в class IGetLLDPNeighbors(Interface):
08:53
добавить ""remote_port_description": StringParameter(default=None),
08:54
и в def get_remote_interface(self, remote_object, port_id):
08:54
его передавать
dvolodin #
08:55
там ifAlias
08:55
и далеко не у всех
Dmitry1 #
08:55
я уже два раза приводил вывод lldp для DGS-3627G
08:55
он тупо отдает одинаковые MAC адреса для всех физических интерфейсов
08:57
единственный способ - это распарсить то, что он отдает по lldp в "remote_port_description"
08:59
dvolodin: я уже даже задавал вопрос в техподдержку длинка.
dvolodin #
08:59
или просто выкинуть его нафиг :)
Dmitry1 #
09:00
не нужно выкидывать
09:00
нужно поменять class IGetLLDPNeighbors(Interface):
dvolodin #
09:00
да ну ладно, если софт крив
09:00
сделали LLDP для галочки
09:00
типа есть, и отвяжитесь
evyscr #
09:01
нет, дескрипшн всё одно надо передавать
09:01
а софт крив оченно у многих
dvolodin #
09:02
LLDP - дурацкий протокол
09:02
переусложненный до полной невозможности правильной реализации
evyscr #
09:03
dvolodin: btw, http://dpaste.com/0GHVY6M
dvolodin #
09:03
evyscr: ?
Dmitry1 #
09:04
dvolodin: проще действительно передавать description
09:05
а в профиле, в функции get_interface_names его обрабатывать
e_zombie #
09:05
dvolodin: а нафига это в микросервисах ? https://bitbucket.org/nocproject/noc/commits/92bd51b4777a126edc085dd26898332fc2739515
evyscr #
09:05
first_seen, last_seen
dvolodin #
09:06
а что с ними не так?
Dmitry1 #
09:07
dvolodin: сделай, чтобы port_description из lldp записывался в базу
evyscr #
09:07
они есть только у меня :)
dvolodin #
09:07
Dmitry1: мы вообще в базу не пишем lldp
09:08
evyscr: https://bitbucket.org/nocproject/noc/src/cf3e3476a44033b237753dab0137d653ccad2420/inv/models/link.py?at=feature%2Fmicroservices&fileviewer=file-view-default
09:08
не только у тебя
09:09
наверное в сотый раз повторю
Dmitry1 #
09:09
dvolodin: для линка описание в базу не пишешь ?
dvolodin #
09:09
в микросервисах ОЧЕНЬ много доработок
evyscr #
09:09
хуёво, чо
dvolodin #
09:09
и они сильно другие
Dmitry1 #
09:11
dvolodin: смотри, захожу я в MO -> Links
dvolodin #
09:11
а идея с группировкой методов discovery ти с дополнительной проверкой по capabilities оказалась вполне продуктивной
Dmitry1 #
09:11
и вижу "Local Description" и "Remote description"
09:11
так вот - Remote Descripttion - это как раз из LLDP получить можно
evyscr #
09:12
нопе
09:12
lldp - только один из
Dmitry1 #
09:12
dvolodin: Дим, в class IGetLLDPNeighbors(Interface): добавь "remote_port_description": StringParameter(default=None),
09:13
хотя можно было бы добавить еще и system_description
09:13
тоже удобно
dvolodin #
09:14
ну здрасьте
09:14
начнем с того, что description'ы снимаются с интерфейса
09:14
:)
09:14
при чем тут lldp
Dmitry1 #
09:15
притом. это д-линк :(
09:15
если сделать на интерфейсе description, то его отдавт по lldp
09:16
и я увижу как
dvolodin #
09:16
бррр
Dmitry1 #
09:16
Port Description : description_bla-bla
dvolodin #
09:16
ну я и говорю, ifAlias они отдают
Dmitry1 #
09:16
а если не делать на интерфейсе description
09:16
то я увижу
dvolodin #
09:16
и твой метод работать будет только если интерфейсы не подписаны
Dmitry1 #
09:17
Port Description : D-Link DGS-3627G R3.00.B30 Port 1
09:17
и еще раз повторяю
09:17
для D-Link DGS-3627G единственный способ узнать номер порта - это распарсить "Port Description "
09:18
это справедливо для кучи свичей d-link
dvolodin #
09:18
это нерабочий метод
09:19
приличные люди подписывают порты
Dmitry1 #
09:19
Дим. Я специяльно не подписываю порты на длинках, потому как это единственный способ хоть как-то получить карту сети по LLDP
09:20
dvolodin: тебе сложно поменять API ?
09:21
добавить два поля в class IGetLLDPNeighbors(Interface)
dvolodin #
09:21
поля после праздников добавим
Dmitry1 #
09:21
и пару переменных в вызовы get_interface_names()
dvolodin #
09:21
а вот завязываться на их парсинг - я категорически против
09:21
и тем более так вот
Dmitry1 #
09:21
я же говорю, это только для длинков
dvolodin #
09:22
вот именно поэтому
09:22
потом на эти костыли нарываться будут все платформы
Dmitry1 #
09:22
у нас ведь есть функция get_interface_names() в профиле
09:22
туда просто передать еще пару переменных
dvolodin #
09:22
метод можно делать но только в случае гарантированного отсутсвия ложных срабатываний
09:23
каких и зачем?
Dmitry1 #
09:23
сейчас для длинка:
09:23
def get_interface_names(self, name):
09:23
r = []
09:23
if name.startswith("1/") or name.startswith("1:"):
09:23
r += [name[2:]]
09:23
return r
09:24
для JUNOS
09:24
def get_interface_names(self, name):
09:24
names = []
09:24
n = self.convert_interface_name(name)
09:24
if n.endswith(".0"):
09:24
names += [n[:-2]]
09:24
return names
09:26
dvolodin: передавать туде port_subtype и port_description
dvolodin #
09:26
зачем уродовать нормальный метод?
Dmitry1 #
09:27
этот метод уже используется для LLDP
dvolodin #
09:27
это не повод его курочить
09:27
дим
09:27
description
09:28
это такая штука, которую ты можешь, и, в принципе, должен прописывать на интерфейсе
09:28
конкретно для этой модели dlink'ов просто можно сказать, что их LLDP непригоден для построения топологии
09:29
и нужно использовать другие методы
09:29
например - stp
Dmitry1 #
09:29
нет
09:29
у длинка stp не отдает MAC адрес
09:30
у длинка udld не отдает mac адрес
09:30
еще раз повторюсь
09:30
ЕДИНСТВЕННЫЙ метод - распарсить port_description из LLDP
09:31
dvolodin: ты что думаешь, я не пытался как-то это победить ?
09:31
или тебе мою переписку с техрподдержкой длинка показать ?
dvolodin #
09:32
побеждается это очень просто
09:32
соответсвующие требования фиксируются в технических требованиях
09:32
и фиг они продадут хоть одну железку, пока не исправят софт
09:33
это единственное, что на них действует :)
Dmitry1 #
09:33
эта модель снята с производства.
dvolodin #
09:33
а на это есть следующий шаг
buggy-funhouse #
09:33
снова ни о чём разговор
Dmitry1 #
09:33
но народ в свое время купил дофига таких свичей
dvolodin #
09:33
угроза исключения из списка надежных поставщиков оборудования
09:34
с полным снятием вообще всей продукции с конкурсов
09:34
включая CPE
Dmitry1 #
09:34
dvolodin: Дим, а завтра выяснется, что какая-то модель циски имеет такое же поведение
dvolodin #
09:34
huawei, скажем, обязуется производить ЗИП и поддерживать софт - 10 лет с момента продажи
09:35
ну и будут исправлять
buggy-funhouse #
09:35
да не будет ничего делать длинк
e_zombie #
09:36
если оборудование EOL то не всем пофиг ?
dvolodin #
09:36
e_zombie: вопрос в сроке EOL
09:36
посмотри, какое железо поддерживает киса и juniper
zi_rus #
09:36
Dmitry1: я открывал баг в циске потому что в трапе неправильное значение в oid прилетало и у меня ФМ не опознавал этот трап, все они спокойно исправили
Dmitry1 #
09:36
Дим, примо как факт, что в этой серии свичей единственный способ узнать номер порта - это распарсить port_description, отданный по lldp
dvolodin #
09:36
zi_rus: я в свое время заставил Force10 реализовать isis tagging extension
zi_rus #
09:37
вот
09:37
это просто необходимость заставить вендора следовать стандарту и собственной документации
dvolodin #
09:37
просто показал, что за префиксы в таблице вроде 128.0.0.0/1 отрывают яйца
zi_rus #
09:37
эмм
09:37
а что не так
09:38
нормальный префикс
09:38
как все
dvolodin #
09:38
ага
09:38
а рядом был 0/1
zi_rus #
09:38
ну такой же обычный префикс
dvolodin #
09:38
абсолютно
09:38
только не в ту сторону
zi_rus #
09:38
в какую?
dvolodin #
09:39
он default перешибал
zi_rus #
09:39
ну логично
dvolodin #
09:39
через неделю у меня был interim release с FTOS
09:40
через два месяца -- изменения были в следующем релизе
Dmitry1 #
09:40
dvolodin: хватит мерятся пиписьками
09:40
есть проблема, которую можно решить
09:41
я даже больше скажу, на новых версиях софта эта проблема пофиксена
zi_rus #
09:41
проблема эта с одной конкрентой моделью, конкретного дерьмовендора, налабай в скрипте костыль
Dmitry1 #
09:41
но
09:41
это магистральные свичи, которые не перегружаются годами
zi_rus #
09:41
если не можешь вендора заставить исправить
Dmitry1 #
09:41
и никто на них софт менять не будет
zi_rus #
09:42
зависит от мотивации
09:42
если тебе нужен дискавери и длинк исправил проблему, то заводи на ночь работы и обновляй все спокойно
buggy-funhouse #
09:42
чтобы нок работал? ребутать свитч?
09:42
нахерн адо
zi_rus #
09:42
если учесть что проблема в свиче, то почему нет
Dmitry1 #
09:43
zi_rus: в десятке свичей
09:43
магистральных
zi_rus #
09:43
и че
09:43
по-одному
09:43
ночью
09:43
в несколько ночей
Dmitry1 #
09:43
и не только я использую их
09:43
а тысячи контор по всему миру
zi_rus #
09:44
у тебя баг в софте свича, ты хочешь перехуярить все, но только не исправлять этот баг
Dmitry1 #
09:44
что перехуярить ?
zi_rus #
09:44
нок
09:44
только бы не перезагружать
Dmitry1 #
09:44
у нас уже ЕСТЬ функция get_interface_names(self, name)
09:44
которая индивидуальна для кажлого профиля
09:45
и эта функция вызывается как раз при построении линка
09:45
по LLDP
09:45
уже вызывается !
dvolodin #
09:45
он не магистральный для начала
09:45
а просто коммутатор агрегации
Dmitry1 #
09:46
dvolodin: ага, просто коммутатор, с тремя 10G портами
09:46
или у вас магистраль от 100G начинается ?
dvolodin #
09:46
и?
buggy-funhouse #
09:46
ну и аргументы у тебя
zi_rus #
09:46
3 10Ж порта это не магистраль
dvolodin #
09:47
тут еще вопрос, сколько ему в эти десятки пролезет
buggy-funhouse #
09:47
это хоум-свитч
dvolodin #
09:47
они у него вообще-то для стекирования
zi_rus #
09:47
dvolodin: пролезет, нормально там с ээтим
dvolodin #
09:47
Коммутаторы нового поколения серии xStack DGS-3600 предоставляют сетям крупных предприятий и предприятий малого и среднего бизнеса (SMB) высокую производительность, гибкость, безопасность, многоуровневое качество обслуживания (QoS) и в
09:47
подключения резервного источника питания.
09:47
с их же сайта
09:47
SMB :)
09:47
вам же сказали
09:47
где тут магистраль?
zi_rus #
09:48
какое предприятие такая и магистраль
Dmitry1 #
09:48
dvolodin: ты предлагаешь на чердаки ставить 65-е каталисты ?
zi_rus #
09:48
у тебя магистраль на чердаках?
dvolodin #
09:48
я предлагаю называть тривиальный коммутатор для агрегации коммутатором для аггрегации
Dmitry1 #
09:49
да какая разница
dvolodin #
09:49
прямая
09:49
что на нем спокойно можно обновить софт
Dmitry1 #
09:49
в чем проблема в функцию get_interface_names(self, name) добавить еще два параметра ?
buggy-funhouse #
09:49
dvolodin: ок, дай сфот
zi_rus #
09:49
или обновить софт
buggy-funhouse #
09:50
громкие слова про Over 40 supported vendors оказываются на деле marketing bullshit
dvolodin #
09:50
buggy-funhouse: спрашивайте с поставщика
buggy-funhouse #
09:50
поставщитк отказывается
zi_rus #
09:50
опять нок виноват
dvolodin #
09:50
buggy-funhouse около 50
Dmitry1 #
09:50
noc виноват
buggy-funhouse #
09:50
снова
dvolodin #
09:51
есть протокол
09:51
либо вендор его реализует, либо нет
Dmitry1 #
09:51
потому как должен поддерживать эти "Over 40 supported vendors" из коробки
09:51
а не после того, как на железках все настроить
dvolodin #
09:51
у тебя странная логика
09:52
вендор не хочет поддерживать свое железо
09:52
на NOC должен?
Dmitry1 #
09:53
да
dvolodin #
09:53
и опять же -- твой метод работает только при определенных настройках оборудования
Dmitry1 #
09:53
да
dvolodin #
09:53
что противоречит твоим же словам про "из коробки"
09:53
:)
09:54
DView как топологию рисует на них?
Dmitry1 #
09:54
никак
zi_rus #
09:55
тчк
Dmitry1 #
09:55
для некоторых моделей свичей приходится линки руками прорисовывать
dvolodin #
09:55
выводы?
Dmitry1 #
09:56
dvolodin: я предлагаю универсальный способ, а ты не хочешь его делать
dvolodin #
09:56
хороший универсальный способ
Dmitry1 #
09:56
универсальный способ - вынести все "workaround" в профиль
dvolodin #
09:56
1. купить у сомнительного вендора неподдерживаемую железку
09:56
2. поставить ее на "ядро"
09:56
3. снести на ней все description на интерфейсах
Dmitry1 #
09:57
Дим ! Ты прикалываещься ?
dvolodin #
09:57
бизнес-план гномов
09:57
1. collect underpants
09:57
...
09:57
3. profit
Dmitry1 #
09:57
sa/profiles/Juniper/JUNOS/__init__.py
09:57
def get_interface_names(self, name):
dvolodin #
09:57
знаешь, я морально уже гоов сделать description_discovery
Dmitry1 #
09:57
names = []
09:57
n = self.convert_interface_name(name)
09:57
if n.endswith(".0"):
09:57
names += [n[:-2]]
09:57
return names
dvolodin #
09:57
с парсингом соседа и порта из description
09:57
:)
Dmitry1 #
09:57
dvolodin: 1. купить у сомнительного вендора неподдерживаемую железку
09:57
dvolodin: 2. поставить ее на "ядро"
09:57
dvolodin: 3. снести на ней все description на интерфейсах
09:58
Т.е. теперь джунипер - это сомнительный вендор ?
dvolodin #
09:58
почему
09:59
xe-0/0/0 -- физический порт
Dmitry1 #
09:59
ну так ты сам написал, что использование get_interface_names() из профиля - это только для сомнительных вендоров и неподдерживаемых железяк
dvolodin #
09:59
а все протоколы там бегают на unit'ах
10:00
сомнительные вендоры заставляют определять топологию по дефолтным description'ам
10:00
btw, на junos неплохо работает и bfd и oam
Dmitry1 #
10:00
какая разница как ?
10:00
главное, что это можно сделать в get_interface_names() hbpyfrfv
10:01
завтра появятся еще десяток вендоров таких
10:02
если эта функция вернет какок-то значение - именно оно будет верным
10:03
т.е. нужно в discovery
10:04
перед тем, как определять порт по mac, ip, или еще по-чему либо
10:04
сначала вызвать get_interface_names()
10:04
и, если эта функция вернула значение, то использовать его
10:07
dvolodin: вот тебе пример:
10:07
def get_remote_port_by_local(self, object, port):
10:07
for p in object.profile.get_interface_names(n_port):
10:07
i = Interface.objects.filter(
10:07
managed_object=object.id, name=p).first()
10:08
почему это нельзя добавить в get_remote_port_by_mac, by_ip и т.п. ?
10:09
и в get_interface_names() отдавать еще два параметра
anp135 #
10:09
блин, врое докрутился с lldp_neighbors, уже по обоим коробкам написало: Pending link check: KRD-SCH-RBCH37P2-SW45:port e1/1 -> KRD-SCH-RBCH37P2-SW63:Ethernet1/27
10:09
2015-12-31 13:00:36.361547 Scheduling check for KRD-SCH-RBCH37P2-SW45:e1/1 -> KRD-SCH-RBCH37P2-SW63:Ethernet1/27
10:09
и нихера нету в линках связи -(
dvolodin #
10:09
потому как если у вендора маки уникальны на портах, он может отдавать port subtype - mac
Dmitry1 #
10:09
может
dvolodin #
10:09
а если неуникальны, но он продолжает слать маки - он - конь педальный
Dmitry1 #
10:10
тогда функция get_interface_names() вернет пустой результат
dvolodin #
10:10
и discovery такую наколку просекает
Dmitry1 #
10:10
а для вендора dlink.dxs - не пустой
10:12
у нас функция get_interface_names() для всех вендоров, кроме Juniper.JUNOS и DLink.DxS возвращает пустой результат
10:12
переписать ее для двух вендоров - не сильно сложно
10:13
dvolodin: мне на это пол-часа делов
10:15
зато уйдет куча костылей из get_lldp_neighbors
10:16
и мы получим универсальный метод для исправления глюков разных вендоров
10:22
dvolodin: ты согласен со мной ?
dvolodin #
10:26
ладно, хватит на этот год. С наступающим всех
10:26
еду в Прагу, вернусь 11
Dmitry1 #
10:26
коммить оттудова :)
e_zombie #
10:29
:-D
10:29
с праздниками. спасибо за то что много сделал в этом году для нас всех.
ufir #
10:34
Володий - с праздниками. но ты сраный хер, если чо.
e_zombie #
10:36
ты сам хер. и тебя тудаже.
ufir #
10:36
нет, сам ты хер
e_zombie #
10:38
https://pp.vk.me/c622118/v622118151/2f8f9/qZPNZv-a26Y.jpg
10:42
вот кто хер ещё надо выяснить .
anp135 #
10:47
с наступающим. досвидос
SomovIS_ #
10:58
Ребят, балаган еще тот, но как по другому отстаивать свою правоту?!
10:58
Всех с наступающим!
e_zombie #
10:58
и тебя так же .
10:59
все разошлись
SomovIS_ #
10:59
Я с телефона
11:00
Мы в праздники еще выходим, сеть ломать хле)
e_zombie #
11:00
круто. у нас традиция ломать сеть 11 или 12 числа. как выходим на работу. и чтобы так. часов на 6 оставить без инета всю область
SomovIS_ #
11:01
Мы чуть раньше ломать будем
e_zombie #
11:01
молодцы. это правильно.
SomovIS_ #
11:02
Ядро пересобрать. Хотел потестить VC, но не успел вывести из работы, так и живем теперь..
e_zombie #
11:04
успеешь .
11:04
начальница всех разогнала по домам.
11:04
оказывается.
11:04
я думал до трёх работаем по распорядку а уже всех погнали.
11:05
прийдётся идти по бабам.
SomovIS_ #
11:05
У нас сегодня только зам дир был и сеть )
e_zombie #
11:06
нормально и правильно наверное.
SomovIS_ #
11:08
Да, но вот мы не только сетевые ресурсы предоставляем..
e_zombie #
11:08
девочек по вызову тоже ?
SomovIS_ #
11:08
Нет
11:09
В Саратове все так и летают древние самолеты? Был я как-то у вас
11:10
Чуть не обосрался когда летел, пилот не знает что значит "плавно"
e_zombie #
11:10
пока летают. два эмбайра им в пару летает. скоро ещё два купят.
11:10
в декабре начал аэрофлот на суперджетах летать.
11:11
погода от самолёта не зависит .
SomovIS_ #
11:12
Все скрипело, каждый маневр со скрипом был
11:12
Я не про погоду
e_zombie #
11:13
ну теперь будешь на суперджете
SomovIS_ #
11:13
Афк
e_zombie #
11:16
http://hans-gille.livejournal.com/43456.html?nojs=1
11:17
http://hans-gille.livejournal.com/41289.html
SomovIS_ #
11:38
Honeywell хорошая контора, работал с ними как-то
e_zombie #
11:46
корпоративный дух это хорошо. если он позитивный.
11:46
я пошёл.
11:46
всех с наступающим. наступившим и будующим.
11:46
пусть в новом году будет поменьше говна
Tweet
Share this page
Share this page: Tweet