Купил VR-шлем — встал вопрос, как его активировать. Всего было несколько вариантов:
1. Включить ПНВ на телефоне, раздать hotspot и подключить к нему шлем
Оно не заработало. При раздаче hotspot телефон создаёт отдельный bridge для клиентов, и их трафик идёт в обход пользовательского ПНВ ( телефон Xiaomi Redmi). Делать что-то с root правами не хотелось.
2. Подключить Wi-Fi интерфейс на ПК к основному Ethernet интерфейсу. Много гайдов, сделать просто. Так некоторые мои знакомые подключают свои ТВ для просмотра ютуба.
Проблема в том, что у моего ПК нет Wi-Fi интерфейса)))
3. Как оказалось, на Keenetic уже есть компонент для подключения к серверам Openconnect. Решил использовать его.
OpenConnect/ocserv сервер у меня уже был. Keenetic не поддерживает аутентификацию по сертификатам, так что пришлось менять на 'pam'.
После ввода все данных в WEB GUI для интерфейса, я его запустил. Интерфейс поднялся, но состояние его было установлено как 'Unknown'. Попробовав перенаправить пакеты через этот интерфейс увидел что оно не работает. IN/OUT счётчики справа от интерфейса не изменялись.
Подключившись по SSH к Keenetic, посмотрел логи. Увидел, что подключение установилось и аутентификация прошла, после подключился к серверу Linux с OpenConnect и увидел то же самое - интерфейс под клиента создан, он не флапает, адрес для клиента выделен.
В CLI Keenetic начал смотреть на маршруты и на IP адрес интерфейса OpenConnect. Заметил, что Keenetic не получил никакого Provision`а от сервера для поднятого интерфейса - маршрутов никаких нет, адреса на интерфейсе тоже нет.
Я начал проставлять настройки IP адреса и маршрутов вручную.
Всего сделал 4 команды и подключение заработало.
(config)> ip route x.x.x.x 255.255.255.255 ISP // Маршрут для route lookup, где x.x.x.x - IP адрес OpenConnect сервера
(config)> ip route 0.0.0.0 128.0.0.0 10.0.252.1 // 10.0.252.1 - gateway интерфейс для клиентов на сервере OpenConnect. Маршрутизируем все адреса через него
(config)> ip route 128.0.0.0 128.0.0.0 10.0.252.1 // То же самое, что и выше, но захватываем второй блок сетей.
// 0.0.0.0/0 я поделил на два потому-что не хотел никак трогать освноной маршрут получаемый от провайдера.
(config)> interface OpenConnect0 // Заходим в view нужного интерфейса
(config-if)> ip address 10.0.252.11 255.255.255.0 // IP адрес который выделил сервер OpenConnect для этого клиента
// Делать на интерфейсе больше ничего не надо.
Если помню правильно, это всё что я делал)
После этого винипух интернетик появился и шлем начал качать обновления.
Сразу скажу, что по скорости оно уступало стандартным клиентам этого протокола (OpenConnect GUI, AnyConnect). Разбираться с этой проблемой я не стал, установил всё необходимое, я поудалял эти настройки. Главное, что задачу свою оно выполнило).