IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/06/07
~AreEnn
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+relaybot
DUHOVKIN_
Guest7184
Komap-
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tetrimer_
uis
un
unlike
user
weko
whothefuckami
orignal почему то начинаю в родество
onon Наверное у кого-то свободное время появляется
orignal точно не у меня ))
` Показывают бурную деятельность под конец и на начало года 🤔
relaybot 13apophis: Uptime: 1 day, 9 hours, 39 minutes, 23 seconds
relaybot 13apophis: Network status: Firewalled
relaybot 13apophis: Tunnel creation success rate: 72%
orignal свежачок собрал?
relaybot 13apophis: нет на релизе с патчем от китайцев
relaybot 13apophis: патч по профайлингу только
relaybot 13apophis: без явы
relaybot 13apophis: говорили, что работают чтобы яву не брать. Похоже не из за скорости, а какие то политические упрямые идеи.
orignal так собери транк там много чего улучшено
relaybot 13apophis: конечно соберу к понедельнику
orignal Tunnel creation success rate: 73%
orignal как в лучшие времена
Vort ygg что ли?
Vort или Firewalled
Vort у меня 28% за 11 часов аптайма
Vort лучше, чем 10-15%, конечно, но до 70-80% ещё далеко
orignal нет OK
orignal но с отклюбченным транзитом
onon Да это он включил, чтобы только через фф строились
Vort а, понятно
orignal после 2 часов работы
onon И выпендривается тут
Vort у firewalled юзеров, наверно, ситуация будет схожей
Vort так как там транзита хоть и не ноль, но около того
onon 44% на FW
orignal а какой мне смысл?
orignal счас еще один коммит сделаю
orignal одну дыру нашел
Vort нормальный рейт на G узлах, кстати, открывает хорошие возможности для анализа причин просадок рейта
Vort я так делал, запускал два узла параллельно
Vort но потом начались атаки и рейт был хрень что на одном узле, что на другом
Vort и никакого вывода из сравнения сделать было уже нельзя
orignal Vort я по прежнему уврене что причина в том что на банят
orignal из-за транзита
orignal закоммитил
orignal согласитесь такая не слабая дыра была
Vort ну а я уверен, что U узлы тоже садят рейт
Vort причин явно несколько
orignal если правильно эксплуатрировать то можно хорошо сеть засрать
orignal U то само собой
Vort я пока что не понял, что коммит делает
orignal смотри
Vort if (i2p::data::IsRouterBanned ... newRouters.push_back. нафиг нам список баненных роутеров?
orignal опечатка
orignal счас
Vort тогда понятно
orignal суть в том что мы постоянно запрашивали роутеры из интродьюсеров
orignal атакующего было достаточно напихать левых в интролюбсеры чтобы из начинали запрашивать
orignal тепреь все
orignal кроме того мы как дятлы запрашивали несовестимы е снами
onon А чего эту проверку убрал?
onon if (it.iTag && ts < it.iExp)
onon Где-то в другом месте проверяется?
orignal да. там выше строчка
orignal написано же
orignal // introducer is not expired, because in indices
onon Ага, нашёл
onon Правда, что ты в SSU сессию в пробитую дырку не шлёшь пинги?
onon Отмазка про туннельные тесты не катит.
onon Потому что он на одном узле теряется, и на всех остальных unbinding делается
orignal почему не шлю? глю
orignal шлю
onon Ворт сказал только до интродьюсера
orignal ну да
orignal так если данных нет то сессия быстро заврешается
orignal зачем слать то?
onon irc туннель много данных шлёт?
orignal с интрольюсером там проблема в том что в одну сторону только может быть
orignal раз в 30 секунд пинг
orignal а дыра обычно подольше бывает
onon 30 сек - старндартное время NAT unbinding для UDP
orignal ну я согласен надо продумать
onon У тебя пинг задержался или потерялся и всё
orignal надо что то слать чтобы заведомо получать ответ
onon На самом деле у некоторых производителей сейчас 20 сек
orignal а такого сообщения нету
orignal все упирается в это
orignal знаю что есть такая проблема
onon Я может чего забыл, но вроде исходящего пакета было достаточно
onon Нужно освежить
orignal а в обратную сторону как?
onon Если я U узел, я должен слать.
orignal короче думать надо тут
Vort всё же интродьюсеры - это отдкльный случай
onon Что бы дырка не закрылась
orignal согласен что надо
Vort для поддержания _своей_ дырки много не надо
Vort хоть что-то отправить
orignal ну как мы делаем счас с интродьюсером
orignal Vort но тут вопрос во что уперсы
Vort вопрос упёрся в то, что именно отправлять
orignal таким макаром у нас сессии никогда не будут завершаться
onon 10 мин, если не было входящих пакетов
onon С той стороны
orignal мы все время гоним данные даже когда активности нет
orignal и как сессия заврешится?
Vort orignal: по-моему, мы разбирались, что некоторые служебные данные за активность не считаются
orignal у нас все сообщения с данными считаются
orignal сначала придется переделать
Vort а без данных?
orignal если тип пакета "Data" то считается данными
Vort я могу попробовать в логах обсуждение найти....
orignal даже если там только паддинг
orignal да я помню в чем была пробелма
orignal я еще не настолько старый дед ))
Vort ну в таком случае вопроса завершения сессии не стоит
Vort если слать не данные, а что-то другое
Vort данные держат сессию, а какая-то прочая хрень поддерживает дырку
onon А что для SSU нет протокола пинг-понгов?
orignal ну вот надо счнала сделать проверку что именно в данных
orignal onon то то и оно что нету
onon Тогда делай нешифрованные
orignal я деду предлагал завести новое сообщение
orignal так он опять начал
onon Можно просто слать пакет, который вторая сторона дропнет
onon Главное, чтобы через нат был дестинейшен в заголовке
orignal кстати да можно короткий пакет слать
orignal которые сразу дропнется
Vort я таки нашёл лог: major.i2p/ilita/dev/2024/04/18#msg106
Vort orignal: "HolePunch" - это внутри Data или нет?
orignal если и блок и отдельное сообщение
orignal а нет это только отдельное сообщение
Vort то есть, годится для цели пожжержания дыры без подержания сессии?
Vort поддержания*
orignal ну так та сторона будет ошибку кидать
onon А механизма завершения сессии, вроде FIN или ещё как не предусмотрено?
orignal есть блок Terminate
onon Так а можно точнее сформулировать проблему?
onon Если ты говоришь, что сессия никогда не завершится
Vort onon: надо держать дыру не держа сессию
Vort чтобы сессия могла отвалиться по таймауту если нету данных
onon Если одна из сторон сама видит, что не шлёт никаких данных кроме служебных, то может принудительно завершить
onon Если верхние уровни не просят её держать
Vort onon: удержание и от приёма работает
Vort не обязательно слать, можно только принимать
onon Ну так та сторона и завершит
onon Когда устанет
Vort я уже плохо помню, как этот механизм работает, но простого решения, по-моему, там нету
Vort нужен такой пакет, который бы не держал сессию, вот и всё
Vort пустой отправить нельзя
orignal так мы иницируем заврешение по таймауту
orignal ее никто принудительно не завершает
onon Ну если я отправитель, и мне с верхних уровней 10 мин не приходит данных, я завершаю
onon А так я в рамках сессии 10 мин исправно шлю свои пинги
onon Или как вы их там называете
Vort onon: в i2p потоки данных односторонние
onon Ну, и чему это противоречит?
Vort сессия может всю свою "жизнь" работать только в одну сторону
Vort "если я отправитель ... мне ... не приходит данных" - тут два направления в этой фразе
Vort а бывает, что направление всего одно
onon Значит либо данные "правильные" либо кто-то нарочно нам держит сессию, с плохими намерениями
Vort короч я не могу пояснить, получается. может, у orignal получится
onon а бывает, что направление всего одно
onon Ты имеешь в виду роутеры, которые не поддерживают новую логику?
onon Или что?
onon Так они не будут слать пинги
Vort да не нужны тут пинги, нужен keepalive
Vort без ответа то есть
onon Назови как хочешь
Vort "<onon> Или что?" имею в виду, что через транспорт может течь транзит, в одну сторону. и это как бы не совсем "мы" отправляем
Vort и ответа на этот транзит никакого не будет. ушло себе и ушло
onon Значит сессия нужная
onon И закрывать её не стоит
onon Или не так?
onon Если транзит идёт
orignal короче суть в том что сесии заврешаются по таймуту
orignal а если для пинга гнать данные они никогда не заврешатся
onon Ну так а предложение принудительно закрывать сессию если с верхних этажей нет пользовательских данных?
onon Где там косяк в логике?
orignal а если они с той стороны приходят?
onon Ну значит та сторона и закроет, когда закончатся
orignal а если та сторона будет слать пинги то они будут все время приходить
orignal ты не догнал
onon Ну сейчас же не шлёт
orignal сейчас мы просто не шлем ничего
weko Нет именно что пингов
onon А если будет слать, значит она знает новую логику
orignal а счас ты предлагаешь слать чтобы дырку поддерживать
onon И сама закроет соединение когда закончит
orignal а та сторона будет думать что от нас идут данные
orignal и на той стороне аналогично
weko orignal: я понял например шлёп паддинг, если ничего кроме паддинга нет закрываем сессию самостоятельно
onon Нет в моей логике нет "входящих" пакетов
weko Или DateTime
weko Что там ещё
orignal она видит данные только от нас своих данных нет а пинги гонит
onon Только исходящие
orignal weko так я и гвоор что вот это надо переделать
orignal что считать даннными не сообщение Data
orignal а наличие в нем определенных блоков
weko Ну вот решение вполне рабочее
orignal onon а если реально потом данных одностронний
orignal почему мы должны закрывать сесиию?
orignal weko так я сразу это сказал просто руки не дошли починить
weko orignal: сейчас обе стороны должны понять, что сессия закрывается при неактивности и закрывают пассивно? Или всегда активнл
orignal сейчас одна и стороны видит что данных нет в обе сторны и шлет Terminate
weko Активно. Получается если время одинаковое то они одновременно почти это делают
weko С разницой в величину задержки
orignal наврное да
weko Это не вызывает проблем?
weko Получается мы уже закрыли а нам Terminate приходит
orignal неее
orignal мы должидаемы потверждения на него
orignal мы тоже не дураки
weko Получается мы можем ждать подтверждения и к нам приходит Terminate
onon А механизм отклонения Terminate и продолжения сессии предусмотрен?
weko onon: а зачем
weko Если сторона отказывается то какой толк пытаться дальше
onon Надо подумать
weko Так или иначе сессия завершается
onon Значит нужен служебный пакет, который бы продлевал сессию на 10 мин
onon И шлётся когда строится транзитный или наш собственный туннель
onon Даже если коннект уже есть
onon Новый туннель построили - продлили на 10 мин
onon Таймаут вышел - закрываем
weko onon: об этом уже говорили ну и самое элементарное это пинги в туннелях
orignal ну так что упорядочиваем интродьюсеры по времени?
orignal первым пробуем более свежий
onon Раз уж ты сейчас в этом коде копаешься, почему бы и не переделать...
orignal так я думаю верно ли это
onon Мне например навскидку не приходят варианты негативной эксплуатации
onon Чтобы из этого можно было какую-то атаку намутить
orignal каждый раз пытаясь подключиться к роутеры мы будем пробоваь один и тот же итродьюсер
orignal который может быть дохлым
orignal не атака а логика работы
onon Ну так если не получится мы следующие пробуем?
orignal нет
orignal мы пробуем только один
onon В любом случае самый свежий с более высокой вероятностью будет живым
onon Потому как с течением времени вероятность выключения роутера растет
orignal а если таки нет?
onon А таки как?
onon Как нам оценить ещё вероятность?
onon На что мы можем опираться?
onon Какие есть критерии?
onon Если один из интродьюсеров уде есть у нас в подключенных
onon уже*
onon Например
onon Или "пробивать по базе" список интродьюсеров?
onon Выбирать isReal
onon или ещё по каким критериям
onon Что мы ещё можем узнать об каждом из интродьюсеров?
orignal по уму надор пробовать если с первым не получилось то следуюший
onon Просто повесить эту роль на фф
onon Я уже говорил, что дополнительных постоянных коннектов будет не так много
onon А нагрузка тут не тонны трафика
onon А стабильность работы механизма интродьюсинга радикально повысится.
orignal надо основываться на том что есть сейчас
onon Просто сделай, чтобы при выборе итродьюсеров был приоритет на фф
onon А ещё лучше на "ближний" фф
onon Потом можно будет даже не зная интродьюсеров у роутера, спросить на фф.
onon Нету ли у него такого в подопечных
weko В идеале основываться на профилировании
orignal ну если есть то откуда ты таг возьмешь?
onon Какой таг?
orignal ты когда RekayRequest шлешь ты должен сказать таг сессии с чарли
onon Так я не про текущий протокол
onon А про будущий
onon Тогда можно TBM слать
onon We->FF->U->We
onon Это просто как пример, нужно будет делать чтобы не плодить фантомных туннелей
orignal а не ну будущий протокол это сейчас пустая трата времени
onon А думать наперёд не нужно?
orignal нужно
orignal но у меня времени нет )))
onon Тогда выноси на обсуждение вариант отдавать приоритет фф при выборе интрлдьюсера
onon И с дедом обсудить
onon Потому что нам нужна надёжность, сейчас слишком много вариантов, где может случиться отказ.
orignal а как я узнаю флдфил ли это?
orignal толкьо если есть у меня в netdb
onon Мы же выбираем из нетдб разве нет?
onon Я понял, мы о разном думаем
onon Я имею в виду, что я firewalled
onon И я выбираю себе интродьюсера
onon Так вот нужно выбирать ff