IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/07/15
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Most2
Nausicaa
Nikat
Vort
Xeha
`
acetone_
anon2
b3t4f4c3
flumental
karamba_i2p
nemiga
not_bob_afk
onon
plap
poriori_
profetikla
silence__
soos
teeth
tensor
un
weko
whothefuckami
user2 Реквестирую в вебконсоли во вкладке "Router commands" рядом с "Transit tunnels limit" добавление "Transit bw limit" или чего-то подобного с указанием текущих значений и возможностью из изменить.
user2 Имхо, так начинающие пользователи хотя бы увидят, какую ширину канала они предоставляют сети. И кто-нибудь расширит лимиты.
weko Звучит логично
weko Но как говорили тут некоторые подменяют значение и даже не будут подозревать что после рестарта сбросится настройка
weko Поменяют*
user2 Там напоминалка есть
weko Верно
user2 Если он даже расширит лимит временно-мы ничего не теряем. Т.к. в противном случае он его и не расширил бы.
user2 А если он поменяет настройки, а после перезагрузки обнаружит, что вернулись дефолтные настройки - возможно он узнает о существовании конфиг файла.
weko А может думая что всё ок, никогда туда не заглянет. Но это меньшество, так что да, надо сделать
Vort сделал гистограмму с процентом успешных исходящих SSU2 соединений по узлам. выбрал узлы, для которых есть 3 или больше записей:
Vort получилось примерно то, что я ожидал: варианты "всегда успех" и "всегда неудача" самые популярные
Vort но интересно больше то, что в средине: получается, что узлов, с которыми коннект скорее получится, больше, чем тех, с которыми коннект скорее не получится
Vort нашёл баг в i2pd :) мелкий, скорее всего. но стоит починить
Vort скорее всего, там нужно написать buf[offset+size-1]
Vort ещё есть сомнения про if (size > len). не offset + size > len ли там должно быть?
orignal а что с ней не так?
orignal там действительно 12-ый байт в блоке
orignal смотри спек
Vort orignal: так несколько блоков может быть
Vort допустим, Termination - второй блок. а i2pd будет искать reason в первом блоке
orignal да ты прав разумеется это ошибка
orignal buf[offset+11] значит
Vort там же в offset ещё offset++; и offset += 2;
Vort так что или buf[offset+8] или buf[offset+size-1]
Vort // я отойду пока что
Vort про if (size > len) тоже вопрос актуален. не уязавимость ли там
orignal offset + 8
orignal buf[offset+8]
orignal кстати посмотри нету ли той же хрени в NTCP2
orignal offset + size > len разумеется
orignal Tunnel creation success rate: 74%
orignal однако
user Tunnel creation success rate: 10% Однако
orignal так у тебя не транк однако
user Ну да
user 2.48.0
orignal правильно
orignal на нем где что 45% было
user Я тут поковырялся в БД. Посчитал количество роутеров с разными флагами.
user K= 9
user L= 7159
user M= 10
user N= 773
user O= 208
user P= 1184
user X= 1373
user Counter = 10790
orignal ну логично
user Получается у нас около 70% L
orignal по умолчанию же L
user до 48 КБ/сек.
user И в туннелях будут с вероятностью 70% эти узлы
orignal не будут
orignal они не выбираются для клиентских тоннелей
relaybot 13apophis: лол
user ТОлько зондирующие?
relaybot 13apophis: баммер
orignal угу
user А с какого уровня в клиентские туннели попадают?
user M,N,O,P?
ncop А у джава с какого? С такого же?
orignal скорее всего
orignal раньше же P и X не было
Vort "<~orignal> кстати посмотри нету ли той же хрени в NTCP2" там frame[offset + 8]
Vort а вот if (size > len) в наличии
orignal да, надо править
orignal ты поправишь?
Vort я тогда запущу тестовый узел с изменениями и посмотрю на то, как часто ловушка будет срабатывать
Vort сломать транспорты мне совсем не хочется :)
orignal так это однозначно надо чинить
orignal без вариантов
Vort это я просто рассказал о своём методе тестирования
orignal просто я собираюсь проверку таймстампа добавить
Vort orignal: всегда ли Termination блок должен быть с размером в 9 байт? могу добавить проверку, как в NTCP2
orignal нет
Vort только там почему-то if (size >= 9)
orignal 9 обязательно но может быть и больше
Vort а reason должен быть в конце или чётко на 8 позиции?
orignal там после rsn могут идти произвольные данные
orignal четко 9-ый байт
Vort ок
Vort запустил тестовый узел, послежу за ним некоторое время
Vort добавил проверку if (size >= 9) по аналогии с NTCP2
Vort buf[offset + 8] поставил в SSU2 и if (offset + size > len) в два места
orignal нормально
Vort тогда ещё минут 5 тестовый узел подержу и оформлю PR
orignal ага
orignal вернусь через пару часов
Vort ок
Vort за 20 минут аптайма тестового узла проблем не обнаружилось
Vort на основной узел пока что ставить не буду - у меня там статистика собирается, не хочу прерывать сбор
user Пропинговал все опубликованные ipv4 в netDb. Вот что получилось:
user Всего хостов: 3643
user На пинг не ответили: 1493
user Ответили: 2150
user Минимальный пинг: 16.3
user Максимальный: 1125.0
user Средний: 112,94
user Какие из этого можно сделать выводы, я пока не знаю.
user Но может кому интересно.
crystalway user сильно рискуешь. Я могу щас посмотреть логи и увидеть кто пинговал) У меня логируется весь трафик
user Не смотри логи.
user Но в любом случае я с впски пинговал
crystalway Моя нода могла и не папасть в твою базу. Но в любом случае надо быть острожным с такими экспериментами
Vort netdb была взята с онлайн узла?
user Да
Vort дофига что-то неответов
user С флудфила
Vort даже если предположить, что часть юзеров заблокировали пинги
Vort надо было U узлы из эксперимента убирать наверное
Vort джава публикует их IP. но нафига - загадка
Vort вдруг U магическим образом рассосётся небось )
ncop user: медианный пинг до кучи
user Снова распарсил ту же БД с исключением U, получилось 3556 хостов. Т.е, видимо, на статистику это не сильно повлияло.
Vort что-то тут не то. у меня около 500 U узлов с IP в netdb нашлось
Vort всего узлов с IP у меня - 3487
Vort caps=?.{1,5}U
Vort вот так искал U
Vort кривенько конечно
Vort [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
Vort вот так IP искал
user Медианный пинг 73.4 кто-то спрашивал
orignal смержил
Vort хорошо
orignal Vort публикует потому что раньше не было кодов 4 и 6
orignal а посколько idk так и ниасилил выпилить SSU
orignal вот и получается
Vort надо будет и мне эксперимент с пингом повторить. но позже. что-то дофига неответов у user, не нравится мне это
Vort даже если 500 U узлов выкинуть, всё равно дофига
orignal и у них что интродьюсеры есть?
orignal SSU2 разумеется
orignal ih вроде бы
orignal не ну блять это полный пиздец
Vort ну я много видел U с IP адресами и интродьюсерами. не на 100% уверен. надо будет перепроверить
orignal если они продолжают пубдиковать IP
Vort из 782 U + IP нашлось у 688 ih0=
orignal ой дебилы....
orignal счас idk выскажу
orignal вот о таком дебилизме я как то не подумал
orignal починю
Vort то есть, надо игнорировать IP если есть интродьюсеры?
Vort хотя у них же и для R интродьюсеры (если мне не показалось). нахрена только...
Vort у них наверно они всегда тупо есть
orignal естественно
orignal для R может быть
orignal например для 4 интодьюсеры а для 6 напрмяую
Vort ну я имею в виду случай ipv4 R + интродьюсеры
orignal а ipv6 нету?
Vort а вот сейчас буду смотреть
Vort только получше регулярки настрою, у меня тут какое-то расхождение
orignal Vort посмотри там где есть IP есть ли порт
Vort результат первой проверки - ipv4 only + R + интродьюсеры - обычное явление
Vort по второй проверке - ipv4 + U + интродюсеры и есть ли порт?
orignal если порта нет то проще
Vort из 469 ipv4 + U + интродюсеры порт есть у всех есть порт
orignal и порт ненулевой?
orignal мне то в общем то без разницы U и R я все равно не смотрю
Vort ненулевой
Vort но лучше всё же проверять мои находки
Vort в регулярках накосячить проще простого )
Vort хотя я и перепроверяю выборочно
orignal <eyedeekay> That's a good question, I think it might have something to do with when peers change IP or something about the network changes, so they can be re-tested but I don't know for sure.
orignal ну и как тебе это?))
Vort а интродьюсер поможет в случае смены IP ?
orignal так по уму при смене IP сессия не разрывается
orignal с интродьюсером
Vort то есть, получается есть просто два альтернативных метода коннекта - через интродьюсер и напрямик
Vort какой-то да и сработает. наверное :)
orignal неее
orignal когда интрродьюсеры то через них
orignal давным давно публиковали IP чтобы узнать ipv4 там или ipv6
orignal вот как раз для этого и ввели коды 4 и 6
Vort надеюсь хотя бы юзеры с белой статикой могут отрубить интродьюсеров, чтобы не грузить сеть зря
orignal добавлю я проверку
Vort какую? на U флаг что ли?
Vort хотя я вообще не до конца понял проблему
Vort пока что я вижу только лишнюю нагрузку на интродьюсеров когда это не нужно
Vort ну и шанс, что интродьюсер потеряется
orignal если у адреса есть интродьюсеры он считается непубликуемым
Vort хмм
Vort похоже я нашёл узел i2pd такой
Vort и их много таких
Vort i2pd + R + ipv4 + ih0
Vort теперь вопрос, как так вышло
Vort 100 штук нашёл
orignal так точно SSU2?
orignal а в caps то что?
Vort точно. но у меня второй раз числа не сошлись. перепроверяю
orignal надо убедиться что это именно i2pd
orignal счас гляну
orignal а что неправльно например с zg5w?
orignal я везде вижу IP на ipv4
orignal и интродьюсеры на 6
Vort ага, значит я таки неправильно искал
Vort сейчас получше рассмотрю остальных
Vort есть где почитать про caps транспортов?
Vort в общем, регулярками искать интродьюсеры было не самой разумной идеей
Vort ну ничего, я учусь )
Vort у java просто бывают ситуации, когда узел R, NTCP2 содержит ipv4 адрес, но SSU(v2) адреса не содержит, а содержит интродьюсеры
Vort как такое получается не совсем понимаю. входящие UDP у кого-то фаерволом заблочены что ли?
R4SAS да, бывает такое
R4SAS некоторые NATы не пропускают его
Vort речь о пробросе портов что ли?
R4SAS нет, о самом нате
Vort так я про R узлы говорю. откуда там NAT
R4SAS ну тогда да
R4SAS хотя там тоже нат может быть
R4SAS есть же еще PAT
orignal а с джавой действительно такая хрень?
orignal R4SAS стой
orignal я тут боба починил
R4SAS orignal: бегу
orignal надо бы проверить
orignal нашел в чем пробелма
R4SAS то что неделю назад?
R4SAS Uptime: 6 days, 8 hours, 21 minutes, 32 seconds
R4SAS оно уже
orignal ну просто ты не сказал о результатах
R4SAS так некогда
R4SAS когда упадет, тогда и узнаем
R4SAS пока что живет
R4SAS 18251 root 20 0 1355260 155960 7152 S 12.9 7.6 1285:45 `- /opt/i2pd-reg/i2pd
Vort orignal: можешь примерно рассказать о флагах транспортов? чтобы я опять чего не напутал. B C 4 6
Vort ну 4 6 догадываюсь. хотя бывает и ни 4ки, ни 6ки
orignal B C интродьюсер и пир тест
orignal 4 и 6 очевидны
Vort а если ни 4, ни 6 ?
orignal тогда должен быть IP
Vort а, ок
orignal если нет ничего то ошибка
Vort "<~orignal> а с джавой действительно такая хрень?": paste.i2pd.xyz/?dec7df3b948678c3#2tn1pY9kB6YBRs1VJiWs2f4QMoPiCKbu338xHtH1eA3m
Vort вот пример. SSU2v4, SSU2v6 - интродьюсеры, NTCP2v4 - адрес. узел XR
R4SAS orignal: в целом - всё нормально
R4SAS 18:09:21 [CHECKER] Result: Total hosts: 1039, Alive: 736
orignal Vort ну и что?
orignal вопрос был может ли быть в одном SSU и IP и интродьюсеры
R4SAS 19:10:29 [CHECKER] Result: Total hosts: 1039, Alive: 738
orignal то что в твоем примере такое возможно
orignal в них есть параметр итипа forceForewalled
Vort "<~orignal> вопрос был может ли быть в одном SSU и IP и интродьюсеры" нет. то я искал неправильно
orignal то есть такого не бывает?
orignal тогда я скажу idk
Vort находил как раз случаи, когда IP в одном транспорте, а интродьюсеры в другом
orignal так что все в порядке
orignal и у меня нормально опредеяет
Vort поэтому всегда предлагаю мои результаты перепроверять
Vort так как даже при поиске ошибок можно допустить ошибку :)
Vort перепроверю ещё на всякий случай U узлы
Vort начинаю догадываться о сути проблем с R и U флагами
orignal рассказывай
Vort ну не пойму, что именно Unreachable. всё IP адреса, которые есть в RI ?
orignal то есть?
Vort какой смысл U флага?
orignal никакого
orignal я давно говорю что смысла нет
orignal насколько я понимаю он был когда подключение через интредьюсер
orignal но с появлением ipv4
orignal *ipv6
orignal и ситуации что вообще может не быть входяших подключений он не имеет смысла
Vort хотя я потыкал несколько адресов:портов - нет ответа. так что может и есть смысл
Vort сейчас R так потыкаю
Vort R 3 из 4 ответили
orignal ну x3
orignal то есть IP адреса публикует а не отвечает?
orignal а там буква i в NTCP2 есть?
Vort в принципе, если флаг означает "все IP адреса в RI провалили пир тест", то в этом может быть смысл
R4SAS Vort: каким образом ответили?
orignal для NTCP2 не бывает пир теста
Vort R4SAS: просто TCP коннект прошёл. детально не тыкал
Vort "<~orignal> для NTCP2 не бывает пир теста" - тогда странно. может узел просто видит, что нет входящих и всё?
orignal сомневаюсь что такая проверка есть
orignal так что там с i?
Vort надо будет когда-то детально потыкать узлы
Vort "<~orignal> а там буква i в NTCP2 есть?" - для каких узлов? R или U ?
orignal для U
Vort ну вот два ещё раз перероверил - не ответили. i есть
orignal это интересно
orignal это джава?
Vort да
orignal может они ставят интродьюсеры а i забывают убрать ?
Vort telnet 223.16.48.30 30641 и telnet 179.223.196.99 24764 - таймауты
Vort но это старые RI, может просто в оффлайн ушли
orignal но все равно какого хуя такое публикуется?
orignal если Firewalled то такое публикеоваться не должно
Vort покопаю java код. CAPABILITY_UNREACHABLE
Vort вроде 2 места:
Vort if (hidden || _context.getBooleanProperty(PROP_FORCE_UNREACHABLE)) { rv.append(CAPABILITY_UNREACHABLE);
Vort switch (_context.commSystem().getStatus()) { ... case IPV4_DISABLED_IPV6_FIREWALLED: rv.append(CAPABILITY_UNREACHABLE);
Vort ещё поищу
Vort а, там ещё два условия: case DIFFERENT: case REJECT_UNSOLICITED:
Vort а вот это всё R
Vort case IPV4_OK_IPV6_UNKNOWN: case IPV4_OK_IPV6_FIREWALLED: case IPV4_FIREWALLED_IPV6_OK: case IPV4_DISABLED_IPV6_OK: case IPV4_UNKNOWN_IPV6_OK: case IPV4_SNAT_IPV6_OK: rv.append(CAPABILITY_REACHABLE);
Vort получается, что U узлы это в большей части IPV6_ONLY
Vort странно. зачем тогда ipv4 адрес в RI
Vort или это по другим причинам U стоит
Vort а, есть ещё REJECT_UNSOLICITED
Vort We are able to talk to peers that we initiate communication with, but cannot receive unsolicited connections, i.e. Firewalled, on all enabled transports.
Vort вот это больше подходит
Vort STATUS_DIFFERENT - We are behind a symmetric NAT which will make our 'from' address look differently when we talk to multiple people
Vort вот три основных причины у Java для U - REJECT_UNSOLICITED, STATUS_IPV4_DISABLED_IPV6_FIREWALLED и DIFFERENT
Vort boolean fwV4 = isIPv4Firewalled(); boolean fwV6 = isIPv6Firewalled(); if (fwV4 && fwV6) return Status.REJECT_UNSOLICITED;
Vort так что да, по ipv4 к U узлу ломиться смысла мало
orignal <eyedeekay> I read our code, it looks like when we become firewalled we don't remove i from NTCP2
orignal вот ответ
orignal так пусть чинят
orignal я подумаю
orignal что делать
Vort если просто не вычитывать IP адрес из RI при обнаружении буквы U, может ли это что-то сломать?
Vort то есть, приводить при чтении к традиционному для i2pd виду (раз U, то адреса нету)
orignal я счас чиню уже
orignal залил
Vort выглядит хорошо. но пока основной узел обновлять не буду, хочу ещё набрать статистику по SSU2
orignal как хочешь
orignal но вообще то это опять же приздец
Vort такое ощущение, что не последний
orignal естественно
Vort рейт у узла ведёт себя очень загадочно. хочу вычислить, почему. но не знаю, получится ли
Vort вот собираю теперь отлупы по SSU2
Vort но, видимо, и они мало влияют
Vort особенно на U узлы. там около 1% отлупов / банов
Vort похоже, U очень недогружены
Vort и не так уж сложно к ним подключиться, как казалось
Vort где-то ещё баг сидит скорее всего
orignal они и должны быть недогужеными
Vort почему?
orignal потому что U
orignal я вижу хуже ситуацию
Vort LU понятно - ширины канала нету. а остальные?
orignal если у роутера код R
orignal а например по ipv4 недостидим
orignal а NTCP2 публикует адрес
orignal ну за натом сидят
orignal в чем вопрос то?
Vort "<~orignal> ну за натом сидят / в чем вопрос то?" в том, что по моей статистике это не мешает к ним подключаться. возможно, статистика с ошибками, не знаю
Vort или дело в том, что у меня белый адрес
Vort а NAT-NAT будет хуже работать
orignal так а почему тогда U?
Vort потому что прямой связи нет. но через интродьюсер есть. или я что-то не понимаю?
orignal есть
orignal но интродьюсер не всегда надежный
orignal для установки соединения
Vort ну вот по моим данным получается, что через интродьюсер к U подключиться проще, чем к перегруженному и дропающему пакеты R узлу
Vort надо будет получше разобраться, возможно где-то ошибка
Vort слишком уж фантастически звучит
orignal мы же говорили что U недогружены
orignal понятно почему
Vort хотя через них же java вроде перестала транзит гнать
Vort ну и есть вариант, что установить коннект получается нормально, но вот с удержанием коннекта проблема (то самое обновление hole punch). но это надо измерить и сравнить разрывы транспортных коннектов для R и U
Vort может и не в этом дело
Vort то есть, сейчас я вижу странное - повышенное количество таймаутов построения туннелей через U, но при этом пониженное количество таймаутов установки SSU2 сессий к U
orignal странно