11

Продолжаю "кодить" не зная ни одного языка программирования

Для ЛЛ: Продолжение поста о том как сделал полезную для себя утилиту на Python не зная ни одного языка программирования при помощи ChatGPT.

В прошлом посте высказал мнение, что используя ChatGPT вполне себе можно решить свою небольшую цифровую проблемку, делюсь новостями по реализации задуманного.

Напомню, задача была перенаправлять трафик к определенным доменам через VPN. Сложность заключалась в том, что заворачивать в туннель нужно было трафик к доменам, а не IP адресам т.е. именно к DNS именам IP адреса которых постоянно меняются, что делает практически бесполезным их добавление в статические маршруты или VPN конфиг. Но основной проблемой был относительно слабый роутер Keenetic Air использовать на котором готовые решения было затруднительно или скорее даже невозможно в силу отсутствия USB порта и очень малого количества ROM, которого с трудом хватает даже для свежих родных прошивок.

Итак, благодаря тому, что OpenAI пусть и ограниченно но для всех желающих открыла доступ к ChatGPT Plus удалось сдвинутся с места и решить практически все имевшиеся проблемы.

С новой языковой моделью стало проще договориться, хотя правильнее наверное будет сказать, что она стала лучше понимать что я от нее хочу и в результате утилита была доработана.
Основные изменения:
- аптайм работы увеличен с нескольких минут до 100% времени.
- повышена скорость работы.
- убраны задержки при выполнении операций по SSH.
- лог консоли стал более информативным.

Для тех кто дочитал до этого места, опишу логику работы:
Программа запущена на VPS который одновременно является VPN сервером. На домашнем роутере основным DNS установлен IP адрес сервера с запущенной программой.
Программа принимает DNS запрос от хоста, используя вышестоящий DNS сервер разрешает его в IP адрес и дает ответ хосту, после чего проверяет DNS имя (совпадения по первым октетам) на наличие в пользовательском списке и в случае совпадения через SSH отправляет роутеру команду на добавление IP адресов этого DNS имени в статические маршруты, указывая в качестве шлюза для этих IP адресов настроенное в роутере VPN соединение.

Что не получается решить: отправка всех команд за одну SSH сессию, сейчас для каждой команды инициируется отдельное подключение. Никак этот момент победить не получается.
Что хочется добавить: работу с несколькими рекурсивными DNS серверами. Сейчас используется один вышестоящий DNS и очень редко, но бывает, он вылетает в таймаут по количеству запросов в секунду.

Однако производительности и текущей конфигурации хватает для обслуживания всех домашних устройств без каких-либо значительных задержек.

Пост запилил себе на память, но, если кто чего подскажет - будет хорошо, а если кому-то окажется полезным так и вообще - восторг. Код доступен на GitHub.

Всем – Добра.

UPD:

Решено:
- отправка всех команд в одной SSH сессии.
- работа с несколькими рекурсивными DNS серверами.
Восстановлена работа:
- кэша IP-адресов для которых были добавлены статические маршруты.
- локального DNS кэша.
Новое:
- асинхронный код.
- информативный лог.
Итог:
Устранены задержки работы, снижено количество обращений к вышестоящему DNS серверу и роутеру, повышена стабильность работы и информативность происходящего.

На будущее (когда-нибудь):
- инсталлятор\деинсталлятор с пошаговой настройкой после установки.
- перевести на C++ .... ))

Предыстория здесь.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества