Лор,
есть скрипт/приложение, работающий по таким правилам:
1) оно может показывать пользователю свой собственный вывод (буковки, цифирки, итп), и принимать от него
2) оно может показывать пользователю вывод другого такого же скрипта, находящегося локально или удаленно, и перенаправлять ввод (тоже и локально и удаленно)
3) основной источник вывода и получатель ввода - ssh и bash
Таким образом мы получаем
1) что-то вроде терминала,
2) который может легко симулировать интерактивное поведение пользователя
3) и масштабировать это интерактивное поведение в большом объеме (внутри сети, между сетями, итп)
4) при этом не имея абсолютно никаких встроенных ограничений :)
Краеугольная фича этой штуки - авторизация ssh/bash прямым текстом из скрипта, что, естественно, абсолютно запрещено в «настоящем» ssh. Причем мы можем делать такие plaintext-логины даже внутрь защищенных сетей и впнов, и не только на конкретную машину - а на произвольное количество машин в сетевом графе. Это как бы десерт =)
Сейчас это реализовано на питоне (относительно хорошо), жаве (относительно плохо), си (нерабочий набросок). Это связано с распространенностью. Питон есть, скажем, на половине машин, жава - на 10%,.. си есть везде, но еще ниасилил разобраться как на нем это хорошо написать =)
А сейчас собсна проблема.
Допустим, у нас есть паразитный туннель A->B->C->D между компьютерами A,B,C,D. Точнее, даже не компьютерами, а пользователями, но не так важно. На каждом из звеньев выполняется наш паразитный ssh-прокси.
Абсолютно безопасный вариант, когда пользователь разлогинивается в обратном порядке - сначала на машине D, (осталась цепочка A->B->C), потом на C (осталась цепочка A->B), итп.
НО теперь допустим, пользователь закрыл соединение на машине A (нажал крестик в терминале). Цепочка B->C->D никуда не девалась! То же самое произойдет, если связь между A и B внезапно порвется (н-р по таймауту).
Как бы хорошо поступить с такими «висячими» цепочками?
Сейчас есть нечто под названием wiremon, являющееся частью паразитного ssh-прокси, которое отображает - какие цепочки соединений сейчас проходят через текущего пользователя/компьютер, какие цепочки начинаются, и какие заканчиваются на этом пользователе.
К «началам» цепочек можно подсоединиться в интерактивном режиме, владея концом цепочки - можно убить ее целиком без необходимости разлогиниваться задом наперед на сотне машин. Кроме того, можно просмотреть список цепочек и убить любую выбранную, или вообще все.
Мне кажется, что такой wiremon - вполне олдскульно, но не вполне удобно. Неудобно и вообще, и особенно неудобно при убивании родительских нод (как в случае нажатия крестика на «самом первом терминале»). Это так неудобно, что начиная с какого-то момента я начал логиниться с опцией «залогиниться и убить все сессии кроме текущей, где бы они ни находились».
Еще, я не совсем разобрался, как сделать удобную навигацию по циклам внутри графа сети. Я имею в виду ситуации типа вот таких цепочек: A->B->C->B->C->D. С одной стороны, нафиг это не нужно (сеть на которой идут эксперименты можно спокойно воспринимать как дерево, хотя это и не совсем так), и сейчас такие соединения запрещены. С другой стороны, для упрощения вещей людям, которые не хотят запоминать маршруты, это бы пригодилось.
От того как поступать с циклическими графами зависит, как именно хранить данные о роутинге. Сейчас это просто текстовый файл с минимальной информацией. Если отслеживать циклы и недоступные участки - нужно ведь добавить какую-нибудь инфу для удобной аналитики? Как бы поудобней организвать параллелизм? В случае дерева команды не пересекаются, но для произвольного графа это не так.
В толксы, потому что (если вдруг кто асилил этот топик), у кое-кого может возникнуть острый баттхерт по понятным причинам, а ему место в толксах.

Ответ на:
комментарий
от rafister

Ответ на:
комментарий
от Komintern


Ответ на:
комментарий
от Komintern





Ответ на:
комментарий
от Vit

Ответ на:
комментарий
от Tanger

Ответ на:
комментарий
от Evil_Wizard

Ответ на:
комментарий
от rapid

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Висячие дома (2020)
- Форум Висячий модем (2002)
- Форум Убивание дочернего процесса (2007)
- Форум Визуализатор цепочек iptables (2013)
- Форум iptables проверка цепочек (2003)
- Форум Ввести обязательные апдейты (2016)
- Форум программа прибивающая висячие процессы (2013)
- Форум как «пробудить» висячую виртуалку? (2012)
- Форум Висячая пунктуация в диссертации (2011)
- Форум Убивание дубликатов при копировании (2021)