И тут со дна постучали
Дада, я опять потерялся, хотя обещал, но так бывает иногда, а иногда не бывает. Не стоит воспринимать это на свой личный счёт. Сегодня я здесь и сегодня я поделюсь с вами что же и ге же происходило всё это время.
Январь закончился, некоторые трудовые отношения закончились, межличностные отношения тоже закончились, в общем конец января и начало февраля окзались временем чтобы собирать камни и делать выводы. Вплоть до 21го числа я занимался в основном тем, что возил н асвоём сарае вещи с одной квартиры на другую и знаете что – переезд хуже трёх пожаров, я даже не все вещи вывез, но меня это так утомило, что в последний заход я просто забил болт на оставшееся. Возможно если бы я был чуть поумнее – то делал бы всё это не водиночку, но мы сильны задним умом и слишком самостоятельны чтобы прям попросить кого-то о помощи.
Также в феврале, внезапно, в моей жизни появился нарвский кот. Тут особо нечего рассказать, хороший, интересный человек, с желанием уйти обратно в художку, 3д и прочими гуманитарными увлечениями. Сейчас, правда, её немного анноит сдача диплома, но я уверен, что к сроку всё получится и этот стресс закончится. Как я и писал – ездим туда-сюда, потихоньку перемешиваем вещи, ругаемся, миримся, в общем всё как у всех. 31го летим в Милан, посмотрим что там у этих итальянцев, поедим пасты, сходим на озеро Комо.
В начале марта я наконец раскидал все свои проблемы, беды с башкой, рабочие вопросики и вынырнул на полшишечки из пучины. Появилось немного свободного времени и я наконец собрал и подключил свой компутер дома. Решил изучить что же такое WSL (Windows Subsystem for Linux). В общих чертах, как я понимаю, это виртуальная машина с Linux, которая достаточно глубоко интегрирована в Windows, вплоть до возможности запускать X11 приложения.
Первое столкновение с WSL произошло ещё в окружении Windows 10, но как оказалось, WSL 1 имеет большие ограничения и пришлось обновляться до Windows 11, чтобы получить new, shiny technology в свою копилочку. Долго я ковырялся с TPM 2.0, чтобы всё подготовить для работы 11ой винды, настраивал BIOS и так, и сяк, но в итоге заборол проблему. Итак, нововведения – у windows, внезапно, появился новый удобный терминал Windows Terminal (до urxvt, конечно, не дотягивает, но намного лучше, чем cmd/powershell), в который дополнительное завезли ни много, ни мало – прозрачность. В общем я не то, чтобы влюбился, но жить в винде стало определённо веселее.
Дальше WSL – стильно, модно, молодёжно – три команды и вот мы уже в системе. Из удобств – нативные Linux приложения, ssh, telnet, tcpdump (бесполезен в виду особенностей работы WSL), mpv (внезапно X11 приложения нативно работают в Windows, моё уважение), pass (таки rofi тоже вполне себе работает, рисует менюшки, предлагает выбор, местами, правда кривовато, но работает) и многое, многое другое.
Но, как это часто бывает, у WSL есть множество проблем, которые по мнению разработчиков этой технологии наоборот делают жизнь рядового пользователя лучше (ведь мама знает лучше, да), но по факту руинят всё до чего только можно дотронуться. Лезем под капот и обнаруживаем, что WSL это по сути Hyper-V виртуальная машина, запущенная в каком-то своём совершенно отдельном окружении и которая даже в интефрейсе управления VM (Hyper-V Manager) не светится никаким образом. Причиной же, по которой мы начали погружаться в эту пучину боли и отчаяния является то, что из linux окружения, например, я никаким образом не мог достучаться до других виртуальных машин в том же инстансе Hyper-V.
Но зачем мне другие виртуалки, спросите вы – а я вам отвечу – поскольку я последнее время плотно занимаюсь сетями и всем с ними связанным – я немного подсел на GNS3 – это такое opensource решение, которое позволяет запускать виртуальные роутеры, фаерволы, свитчи и просто оконечные виртуалки, перевязывать их портами и строить виртуальные сети, чтобы понимать как и что будет работать в боевых условиях. В общем это некий виртуальный тестовый стенд для ленивых, но я в очередной раз для себя убедился, что иметь физический шкаф, набитый разного рода оборудованием является лучшим решением, чем вот эта вот виртуализация, но мы отвлеклись.
Итак, на Linux GNS3 работает очень классно и удобно, используя libvirt+qemu в системе он не требует больше ничего для своей работы, всё красиво, удобно, сверкает лампочками и гоняет терабиты трафика. Но Windows... У Windows всегда свой путь. Для начала немного теории – есть в современных процессорах набор инструкций, которые позволяют выполнять инструкции виртуальных машин так, будто эти самые виртальные машины запущены на реальном железе. Соответственно всё работает быстрее, выселее и лучше. Название этой подсистемы в ядре Linux – KVM (kernel virtual machine). В свою очередь у Microsoft своя виртуализация, которая называется Hyper-V и которая, при включении, монополизирует доступ к этим KVM инструкциям не позволяя другим системам виртуализации (Virtualbox, VMWare) получать доступ к инструкциям виртуализации. Libvirt для Windows не существует родного, соответственно чтобы GNS3 работал нормально требуется запустить какую-то дополнительную виртуалку, в которой будет доступен KVM и в которой будет libvirt.
Открываем первый люк и ныряем в него – как сделать так, чтобы VirtualBox получил доступ к KVM – получается самый простой вариант отключить Hyper-V. Отключаем, перезагружаемся и на этом этапе мы узнаём, что WSL2 работает на основе Hyper-V. Получается на данном этапе у нас либо GNS3, либо WSL. Нас это совершенно не устраивает. Включаем Hyper-V обратно, перезагружаемся, теряем сеть, никакие команды её не восстанавливают. Как починить Windows – переустановить. Сказано – сделано. Открываем второй люк – видим, что у многих пользователей GNS3 тоже проблемы с Hyper-V и виртуалкой для запуска роутеров. Гуглим, гуглим, читаем тонны информации и находим, что на самом деле GNS3 умеет кое-как работать с Hyper-V + рядом приложен образ виртуальной машины для последней. Долго ли, коротко ли – машина заливается, запускается и работает, но в конечном итоге GNS всё равно рассказывает о том, что у него какие-то проблемы с доступами. Гуглим дальше и обнаруживаем, что для управления Hyper-V виртуальными машинами пользователю нужно выдать некие неопределённые администраторские права через POLICY EDITOR. Читаем, ищем xml файл с этими полиси, а его нет, тупо нет. Нигде. Штош, вспоминаем бурную молодости и то, что в винде есть ещё такое понятие как группы, ищем группу связанную с Hyper-V, докидываем туда себя, перезагружаемся и voila! GNS3 видит виртуалку, сам её запускает, останавливает, подключается, в общем мечта – лекарство найдено, можно снимать халаты, мыть руки и идти домой.
Мжно было бы, если бы не одно но – GNS3 и правда заработал, образы роутеров и фаерволов и правда начали загружаться на эту виртуалку, я даже смог через telnet подключаться к этим роутерам, но juniper, с которыми я и работаю последний год плотно, так и не соизволил загрузиться на всём этом сетапе. Сначала он очень медленно жуёт ядро, а потом выпадает в coredump. Занавес, аплодисменты, поклоны.
Делая выводы из всего этого действа не могу не отметить, что Microsoft со всеми их нововведениями делает очень интересные и правильные вещи, но, как это обычно и бывает, совершенно не дожимает до конца в критических местах. Да, Windows 11 стала намного дружелюбнее к продвинутым пользователям, но к сожалению для меня она всё так же остаётся исключительно лаунчером для требовательных игр, sad, but true.