пятница, 28 октября 2022 г.

Обучение

ну профессия ит и правда такая - учиться каждый день. по факту ты выбираешь что делать - работать, или учиться. если работать, то в какой-то момент тебе скажут - ты лох, ты дед-пердун, ты мастодонт, ты ничего не знаешь, пшёл вон пёс. если учиться, то не работать. приходится искать условный баланс, хорошо, если в компании это понимают. Но обычно идёт волнами: компании на тебя насрать, тебя нанимают, выжимают со словами - иди нахер со своей учёбой, нам это нужно вчера, давай работай, потом выкидывают ☝ как пса, нанимают молодых и умных, потом ты идёш в говноконтору, там учишься, потом опять на высокую зарплату :). 

пятница, 7 октября 2022 г.

Свой путь

Мне кажется у нас есть прям неплохой материал для для доклада на каком-нибудь хайлоаде
- наш путь в микросервисы - почему мы в разных сервисах используем одну базу
- наш путь в gitflow - как сломать себе шею во время комита
- наш путь в тестировании - как писать тесты для красоты
- наш путь в документации - документация - это я!
- наш путь в метрики - как собирать метрики через jfr


Потому что мы - русские. С нами бох. У нас свой путь - православие, самодержавие, народность.

---

"Мы были в аду и сейчас расскажем, как мы оттуда выбрались."

Отказались от спринга?

Дата доклада - "неизвестно"🤣


среда, 10 августа 2022 г.

Spring мазда

Сука блядский йобаный spring. Для его создателей в аду есть отдельный котел. А для мудацких любителей ссаного спринга есть другой котел. И этот блять котел с любителями, он сука внутри того котла, который с создателями. Но блять вылезая из внешнего котла ты сука попадаешь во внутренний. Гореть вам блять вечно в аду!



О качестве спринга можно судить по ... объёму созданной энтузиастами документации.

Нет, правда - если бы всё было так хорошо и так понятно, то скажите зачем бы тогда были эти миллиард и одна статья на любую тему по спрингу. И еще десять миллиардов вопросов по этой теме на stackoverflow.

Но если вы открываете tutorial на тему какой-нибудь кафки или elasticsearch, вроде делаете его и ... ой, а как же подключиться к реальной кафке - вроде я всё сделал по бумажке, а почему коннекчусь до сих пор к тестконтейнеру на локалхосте? И "да не вопрос - вот же stack overflow, baeldung, миллионы примеров - ща всё будет". Но блин, такое впечатление, что спиздил с завода самолёт, собрал, получился пулемёт и теперь тебе надо "доработать изделие напильником". Спринг старые русские чтоле пишут, которые не могут забыть свои железные конструкторы номер 3 и номер 5?



Framework должен решать две проблемы - уменьшать порог входы и снижать объём boilerplate кода. Другими словами framework должен упрощать. Spring, а особенно spring boot, неплохо справляются с задачей снижения объёма кода. Но уменьшают ли они порог входа? Любую проблему в спринге можно решить одной строчкой кода. Чтобы найти эту строчку часто надо потратить целый день.


понедельник, 4 апреля 2022 г.

Я - прогромист

Получила фидбек от [RedLab], к сожалению не готовы сделать вам предложение. Вот краткое обоснование:

- по всем компонентам стэка очень слабый уровень

- Java - в основном старые версии (5,6,7)

- Spring - использовал только как контейнер, т.е. только базовые функции, без глубокого погружения

- SQL -откровенно слабо, не было серьезных задач, не работал с JPA/Hibernates

- Cassandra- так же только элементарные запросы, без глубокого погружения

- Кафка - только запись в топики, без глубокого понимания возможностей системы

- Java Core - с теорией слабо, практика тоже 


четверг, 3 февраля 2022 г.

Как подружить марусю и home assistant

Как я уже говорил раньше, я считал рекламу главной проблемой капитализма и поэтому постоянно на нее покупаюсь. На самом деле оказалось, что проблема капитализма в стагнирующем рынке - пока рынок растет от капитализма есть польза, как только рынок перестает расти капитализм превращается в олигополию и от этого всем один только вред. Как бы то ни было в одной рекламно-но востной статье я увидел, что на али предлагают умную колонку Xiaomi Mi AI Speaker мощностью 12 Вт за 3 680 рублей с марусей от mail.ru внутри. Это дешевле, чем Яндекс станция мини. Посмотрел - вроде у маруси есть API, думаю надо брать - там разберемся.

Что умеет маруся как умная колонка - играет музыку с VK, управляет видео с Wink по подписке VK Combo за 169 руб./мес, есть поддержка некоторых умных домов. Поддерживает умный дом Xiaomi, но только в русском регионе - обычно для Xiaomi все выбирает регион китай потому что для китая число поддерживаемых устройств гораздо больше. Есть поддержка Yeelight, Roborock. Может позвонить на аккаунт VK или на другую марусю. Развлечения - типа новости, анекдоты, время, таймер, будильник, поиск. Позвонить с моего телефона не может, хотя колонка и может подключаться к телефону как bluetooth гарнитура. Ну в общем с самим телефоном особо не взаимодействует. DLNA нет. С календарем не взаимодействует, почту проверяет только в аккаунте mail.ru. Может вызвать такси с сервиса Ситимобил. Есть API для разработки скилов. Есть пуши для скилов, но если я понимаю все правильно, то колонку нельзя заставить что-то сказать "просто так" - например по событию от умного дома.

Но я то покупал колонку для того, чтобы не брать с полки телефон, когда надо выключить свет в спальне. Оказалось, что у маруси есть кастомная поддержка умного дома через Web Hooks (пункт DIY Hooks в списке умных домов маруси). Добавили ее в канун 2021 года. Поддерживает только включение-выключение. Этой фиче явно не уделяется много внимания - ждать чего-то нового не стоит - например в android приложении пункт DIY Hooks немного глючит. Есть возможность задать свои Http Headers (например для авторизации). Есть возможность передать json в теле запроса. Http запрос отправляется с внешнего адреса, поэтому для интеграции надо будет выставить web интерфейс home assistant в интернет. Не всегда обязательно иметь для этого белый IP - например, если у вас роутер ZyXel, то можно использовать их сервис KeenDNS.

Мой умный дом работает в основном под управлением HomeAssistant. И Mi Home немножко. HomeAssistant не создан для простых людей - чтобы им пользоваться нужны некоторые специальные навыки и знания. Поэтому и инструкции особо не нужны - народ догадливый - сам разберется. Но я все же оставлю это здесь, для тех, кто еще размышляет о покупке маруси или установке home assistant.

Для доступа к сервисам Home Assistant через web нам понадобится долгосрочный токен доступа. Идем в HomeAssistant - левая колонка навигации, самый низ, имя или иконка пользователя, жмем. В открывшейся странице "Профиль" пункт "Долгосрочные токены доступа" - генерируем и сохраняем.



Затем идем на сайт с описанием HomeAssistant web API и вясняем, что нам надо отправить POST запрос на URL `/api/services/<domain>/<service>`.

Чтобы понять какой сервис нам надо дернуть идем в HomeAssistant - Панель разработчика - Службы - ищем нужную службу и нужный объект (цель). Я выбрал сервис "Выключатель: Turn on (switch.turn_on)", цель - "пространство Bedroom". Можно протестировать сервис нажав "Вызвать службу" и убедиться, что он действительно делает то, что вы от него ожидаете. После этого жмем "Перейти в режим Yaml" и смотрим что там.



Получился вот такой YAML:


Исходя из этого нам надо сделать такой http запрос:

URL: https://<hass_addr>/api/services/switch/turn_on

Http Headers: 

  • Authorization: Bearer $LONG_LIVING_TOKEN
  • Content-Type: application/json, 

Body (payload): {"area_id": "bedroom"}

Можно попробовать выполнить этот запрос через curl и убедиться, что все работает.

```

LONG_LIVING_TOKEN='...'

HASS_ADDR='...'

curl -X POST -H "Authorization: Bearer $LONG_LIVING_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"area_id": "bedroom"}' \

  "https://${HASS_ADDR}/api/services/switch/turn_off"

```


Все, мы готовы к настройке маруси. Готовим yaml файл со списком устройств и http запросами, которые необходимо вызвать для включения и выключения устройства. Вот пример от разработчиков маруси - yaml файл, который разработчики маруси отображают в приложении. Вот список типов устройств. Думаю тип устройства нужен, чтобы маруся лучше могла распознать действие. Ну, например, свет можно включить, а кофеварку запустить.



Свой yaml файл для включения и выключения света в спальне я выложил на GitHub, без LongLivingToken и без адреса сервера - моя вера в людей не стопроцентна.

Вам надо создать свой yaml файл на основе примеров, вставить туда адрес своего доступного из интернета Home Assistant сервера и свой Long Living Token. Адреса типа 192.168.х.х или 10.х.х.х не подойдут! Затем этот файл надо как-то передать на телефон и в процессе настройки скопировать в буфер обмена. В android приложении есть кнопка загрузить файл, но она не работает.

Заходим в приложение маруся на смартфоне, настройки, выбираем "Умный дом", листаем список умных домов вниз, выбираем "DIY Hooks", жмем "Войти в VK", выбираем "Умный дом загрузка описания формата YAML или JSON" и вставляем наш YAML файл и жмем "Сохранить".


Далее следует шаманство. После сохранения описания оно появляется в списке, но его можно из списка удалить. Нам так не надо, нам надо выбрать. Чтобы кнопка действия с описанием стала "Выбрать" нужно подшаманить - я жал назад до выхода на экран со списком умных домов, опять выбирал "DIY Hooks", жал (или не жал) "Войти в VK" и видел список, в котором кнопка была "Выбрать". Возможно тут придется поэкспериментировать. Возможно это проблема Android, в iOS приложении все хорошо. Нажимаем кнопку "выбрать" на нашем созданном описании. И все, после этого можно пользоваться. Просто говорим "маруся включи свет в спальне".

Нормального обновления JSON описания устройств я не увидел. Чтобы обновить (например для добавления нового устройства) - я отключаю в марусе Умный дом DIY Hooks (маруся - настройки - "Умный дом" - "DIY Hooks" - кнопка "Отключить сервис"), потом заново его настраиваю. Но старые настройки не исчезают - можно откатиться к предыдущей работающей конфигурации.
Для настройки нескольких устройств надо просто все устройства добавить в список. Когда будете копипастить, не забудьте исправить id устройства.
Удачной автоматизации.
Стоит напомнить, что марусин Умный дом DIY Hooks позволяет включать и выключать устройства. Что-то более сложное, включающее обратное взаимодействие - например "маруся, скажи какая температура в спальне" он сделать не может. Для этого надо писать полноценный скилл. Но это уже совсем другая история.

пятница, 7 января 2022 г.

Настройка Wireguard VPN

Эта статья - продолжение `Настройка маршрутизации в сети с неподконтрольным роутером`. Итак имеем домашнюю локальную сеть, роутер от провайдера без возможности прошивки и настройки. Ставим в локальной сети сервер. Настраиваем на сервере Wireguard VPN и связываем две локальные сети. Другая локальная сеть - маршрутизатор Xiaomi Mi Router 3G с прошивкой Padavan и Entware. В принципе инструкций по настройке Wireguard - масса. Лично я долго не мог понять, да и сейчас не понимаю, зачем нужно каждому wg устройству назначать адрес из частного диапазона. Могу понять зачем это нужно для одного клиента - ему же нужен какой-то адрес. Но зачем это нужно если связывать две разных сети - непонятно. У специалистов настройка wireguard вообще не вызывает никаких проблем, но я не они. Кстати мне больше всего понравилась инструкция на сайте keenetic - по ней я все и делал.

Параметры

  • Локальная сеть - 192.168.2.0/24
  • Роутер - 192.168.2.1
  • Сервер - 192.168.2.4, ethernet интерфейс - enp1s0
  • Другая локальная сеть (за xiaomi mi router) - 192.168.3.0/24
  • wireguard device network (частный диапазон IP адресов из которого назначаются адреса wireguard интерфейсам) - 10.253.1.0/24
    • сервер wireguard address - 10.253.1.2
    • android клиент - 10.253.1.10
    • xiaomi mi router wireguard - 10.253.1.3

Dnsmasq

Чтобы все работало в локальной сети необходимо добавить два новых маршрута, которые мы анонсируем через DHCP, чтобы трафик в другую локальную сеть и wireguard device network шел через наш сервер:

Wireguard сервер

Ставим пакет wireguard.
Генерируем пару ключей (открытый + закрытый) для сервера:
```
cd /etc/wireguard
wg genkey > private-key
wg pubkey > public-key < private-key
```
Конфигурация /etc/wireguard/wg0.conf
Запускаем `systemctl start wg-quick@wg0.service`
Включаем автозапуск `systemctl enable wg-quick@wg0.service`
В ubuntu все работает - создается интерфейс wg0, создаются маршруты.
Проверить статус можно командой `wg showconf wg0`, `wg show`, маршруты командой `ip route`.
В настройках роутера пробрасываем wireguard порт до сервера.

Andoid client

Нет смысла еще раз писать то, что уже неплохо написано до нас. Публичный ключ с Android клиента добавляем в соответствующую секцию конфигурации wireguard.

Entware + Padavan

Файлы настроек:

Для работы Entware на прошивке Padavan нужна USB флешка. Как ставить entware написано в padavan wiki.
Ставим пакет wireguard-go: `opkg install wireguard-go`. Теоретически можно использовать утилиту `wg-quick` для настройки интерфейса и маршрутизатора, но у меня оно почему-то не заработало :(.
Итак настраиваем wireguard вручную как написано на официальном сайте. Создаем файл конфигурации /opt/etc/wireguard/wg0.conf и делаем

```
wireguard-go wg0
ip address add dev wg0 10.253.1.3/24
wg setconf wg0 /opt/etc/wireguard/wg0.conf
ip link set up dev wg0
ip route add 192.168.2.0/24 dev wg0 src 192.168.3.1
iptables -t filter -A INPUT -i wg0 -j ACCEPT
iptables -t filter -A FORWARD -i wg0 -j ACCEPT
```

По какой-то причине эту строчку конфигурации из секции [Interfaces] конфига `wg setconf` не принял, поэтому я ее закоментировал:
```
[Interfaces]
Address = 10.253.1.3/24
```

Примечание:
Маршрут `ip route add 10.253.1.0/24 dev wg0 src 10.253.1.3` добавился сам.
Переопределяем iptables policy по умолчанию для цепочек INPUT, FORWARD таблицы filter - у меня значения по-умолчанию были DROP, с ними маршрутизация из локальной сети 192.168.2.0/24 в 192.168.3.0/24 (в мою локальную сеть) не работала.

Настройка iptables

После некоторых обновлений конфигурации маршрутизатора (например обновление правил белых/черных списков по mac адресу - web интерфейс маршрутизатора -> Advanced settings -> Firewall -> MAC Filter) маршрутизатор с прошивкой padavan сбрасывает правила iptables. Чтобы все продолжало работать в прошивке есть файлик `/opt/etc/init.d/S10iptables` (softlinkg) -> `/opt/bin/update_iptables.sh`, который запускается после обновления конфигурации. В него заносим все правила iptables - у меня там правила для wireguard и правила, которые я настроил для прозрачного использования tor в локальной сети, который настроил по этой инструкции.

Доступ к роутеру из VPN

Поскольку на роутере таблицу маршрутизации мы настроить не можем, то не можем и получить к нему доступ из VPN напрямую. Чтобы получить web доступ к роутеру можно добавить nginx reverse proxy configuration. Например на порту 8081. Ссылку на файл колнфигурации надо добавить в директорию /etc/nginx/sites-enabled - `ln -s /etc/nginx/sites-available/local ./`.
Перезагружаем конфигурацию nginx: `systemctl reload nginx`.
Теперь роутер доступен по адресу `http://192.168.2.4:8081`.
 

Настройка маршрутизации в сети с неподконтрольным роутером

Я ненавижу рекламу, но постоянно на нее покупаюсь. Увидел в подъезде объявление МГТС - 500 мегабит за 500 рублей в месяц, настоящий IP, IPv6. Из минусов - всего лишь необходимость сверлить стену и вешать в квартире чужой роутер. Думаю надо брать - разберемся как-нибудь. (На самом деле нет, но об этом позже). Гигабитный роутер с WiFi 5G, без возможности модификации прошивки и установки софта (с вероятностью, но об этом еще позже). Задача - настроить VPN с другой сетью и прозрачное для клиентов использование ресурсов из луковой сети (The Onion Router aka TOR) с использованием своего сервера в локальной сети.

Думаю данная статья не потянет на полноценное руководство. Слишком разные возможности и потребности у людей - разное железо. Скорее некоторый указатель пути по которому можно пойти. Например для сервера можно использовать малину. Возможно даже с pi-hole. Я, например, поставил недорогой x86 сервер с распаянным на материнской плате процессором, поставил ubuntu и использую его в том числе как файловый, home assistant, веб и сервер приложений.

В общем я хотел, чтобы была возможность использовать WiFi интерфейс роутера, а также, чтобы клиенты локальной сети получили прозрачный доступ к некоторым внешним ресурсам без дополнительной настройки на стороне клиента. И не хотелось понапрасну пропускать весь трафик через сторонний сервер - хотелось, чтобы обычный интернет трафик шел напрямую на роутер, а специальный обрабатывался сервером. Решил, что отключу на маршрутизаторе DHCP и DNS server, поставлю DHCP на свой сервер, который будет анонсировать правильные маршруты по DHCP и на котором будет крутиться dns, vpn и tor daemon. С vpn все понятно - если другая локальная сеть имеет другие адреса, то достаточно просто настроить маршрутизацию. Для прозрачного доступа к ресурсам через луковый маршрутизатор решил использовать связку dnsmasq + tor.VirtualAddrNetwork + tor.DNS. Настраиваем dnsmasq для предопределенных доменов из списка, чтобы для их разрешения он использовал tor. После этого домены из луковой сети будут иметь специфичные адреса из специального выделенного диапазона частных адресов и можно использовать обычные правила маршрутизации для перенаправления этого трафика в tor.TransPort с использованием правил iptables. Для соединения локальных сетей по vpn использовал wireguard. В другой локалке стоит обычный роутер пока с прошивкой padavan + entware.

Итак ключевые параметры:

  • Локальная сеть - 192.168.2.0/24. У роутера локальной сети статический белый IP
  • Другая локальная сеть (доступ к которой получаем через vpn) - 192.168.3.0/24
  • Роутер - 192.168.2.1
  • Сервер - 192.168.2.4, имя ethernet интерфейс - enp1s0
  • tor
    • private network (VirtualAddrNetwork) - 10.254.0.0/16
    • dns server (DNSPort) - 127.0.0.1:9053
    • transparent proxy address (TransPort) - 0.0.0.0:9040
  • dnscrypt-proxy (DoH) address - 127.0.0.1:9153
  • wireguard device network (частный диапазон IP адресов из которого назначаются адреса wireguard интерфейсам) - 10.253.1.0/24
    • сервер wireguard address - 10.253.1.2
    • android клиент - 10.253.1.10
    • vpn сервер другой локалки - 10.253.1.3

Сервер

Как я уже говорил у меня сервер - обычный x86 с Ubuntu 20.04 LTS.

Установливаем пакеты (`apt install <packet>`):

  • iptables-persistent - сохранение и восстановление правил iptables
  • tor
  • dnsmasq - DNS + DHCP сервер
  • dnscrypt-proxy - DoH DNS клиент
  • systemd + netplan.io - были установлены по умолчанию и используются для настройки сети
  • wireguard - vpn
Настраиваем статический сетевой интерфейс - /etc/netplan/eth0-static.yaml и запускаем `netplan apply` для применения изменений.
Для включения маршрутизации установливаем параметры ядра:
```
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
```
и правим файл /etc/sysctl.conf для сохранения изменений после перезагрузки.

Настроиваем iptables - для таблицы filter установливаем default policy ACCEPT для цепочек INPUT и FORWARD - /etc/iptables/rules.v4. И перезагружаем правила `netfilter-persistent start` или `iptables-restore < /etc/iptables/rules.v4`.

Настройки dnsmasq

В /etc/default/dnsmasq добавляем опцию для игнорирования файлов с расширением *.i.
Локальные устройства прописываем в /etc/dnsmasq.d/src/lan_hosts.csv.i для задания фиксированных IP адресов.
Домены для доступа к которым будем использовать tor прописываем в /etc/dnsmasq.d/src/dns_tor_domains.txt.i
Для анонса маршрутов используется DHCP опция classless-static-route и microsoft-classless-static-route - 249 (на всякий случай). В принципе можно было бы попробовать и не отключать DHCP сервер на роутере, а просто анонсировать дополнительные маршруты. Проблема возникла на телефоне Android Xiaomi Mi 9T. Он не использовал маршруты с DHCP, использовал только один маршрут по умолчанию. Не уверен, что на всех андроидах есть такая проблема. Пришлось для андроидов сделать специальные настройки и перенаправлять весь трафик от андроид клиентов на сервер.
Специальные настройки для андроид - нет маршрутов, сервер используется в качестве маршрутизатора.
Для примения настроек запускаем `dnsmasq_reconfig.sh` - более подробно описано в разделе "Обновление конфигурации".

Настройки tor

Порт для socks5 proxy - SocksPort
Запрещаем выходные ноды в некоторых странах - ExcludeExitNodes
Порт для transparent proxy - TransPort
Порт DNS - DNSPort
Частный диапазон адресов из которых будут назначаться IP для серверов к которым мы будем ходить через tor - VirtualAddrNetwork
Список доменов которые мы будем резолвить через tor и которые будут иметь адреса из нашего частного диапазона (см. VirtualAddrNetwork) - AutomapHostsSuffixes - настраивается скриптом dnsmasq_reconfig.sh и сохраняется в файл /etc/tor/hosts_suffixes.cfg.

DoH

Конфигурация /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Примечание: я немного изменил способ запуска dnscrypt-proxy потому что мне показалось, что он не работает. В настройках по умолчанию он запускается через systemd.socket - то есть порт слушает systemd и запускает dnscrypt-proxy когда нужно, а я его запускаю напрямую. Не думаю что это нужно. Для смены порта в конфигурации по умолчанию - когда dnscrypt активируется через systemd.socket надо выполнить `systemctl edit dnscrypt-proxy.socket` и установить
```
ListenStream=127.0.0.1:9153
ListenDatagram=127.0.0.1:9153
```
Должен появиться файл /etc/systemd/system/dnscrypt-proxy.socket.d/override.conf

Обновление конфигурации

Добавляем домен на который хотим ходить через tor в /etc/dnsmasq.d/src/dns_tor_domains.txt.i
Добавляем статический адрес устройства локальной сети в /etc/dnsmasq.d/src/lan_hosts.csv.i
Запускаем скрипт dnsmasq_reconfig.sh, который сгеренрирует файлы настройки для dnsmasq (/etc/dnsmasq.d/ lan_hosts.cfg.i, resolv.conf.i), tor (/etc/tor/hosts_suffixes.cfg) и все перезапустит для обновления конфигурации.
Для сброса DNS кэша:
На клиентском линуксе с systemd-resolve запускаем `sudo systemd-resolve --flush-caches`
На клиенте с windows запускаем `ipconfig /flushdns` в командной строке с правами администратора.
В google chrome открываем страничку `chrome://net-internals/#dns`, сбрасываем кэш браузера.

Плач Ярославны

Ну и напоследок напишу почему всё это оказалось ненужным
во-первых в какой-то момент МГТС отобрала настоящий IP и посадила всех за NAT. Почему-то в этот момент отвалился корпоративный VPN и в службе поддержки порекомендовали подключить выделенный IP
во-вторых после подключения выделенного IP перестал работать IPv6. Служба поддержки сообщила, что МГТС в принципе никогда и не поддерживала IPv6. Ну то есть он какбы работает, но его работу не гарантируют. На форумах есть объяснение на эту тему - типа выделяют статический IP, но IPv6 статический выделить не могут и чтобы  никого не смущать при подключении статического IP тупо обрубают v6.
в-третьих тех поддержка МГТС ужасна. Повысили тариф на 100 рубей. Сначала у меня был роутер sercomm rv6699 - вроде все более-менее работало. И это был не самый плохой вариант - там был доступ к iptables. Говорят его даже можно перепрошить. Был косяк - к внешнему IP адресу нельзя было достучаться из локальной сети по http и https - но это решалось удалениеми 2 правил iptables. Но потом я решил назначить фиксированный канал сети WiFi 5G. Канал не назначился - начал прыгать, я обратился в техподдержку и мне заменили роутер на ZTE ZXHN F680. И это оказалось полным концом. Он не пробрасывал DHCP пакеты из локальной сети в WiFi. Мою схему я использовать уже не мог. Техподдержкой был послан с заключением "в конфигурации по умолчанию странички грузятся, все остальное не наши проблемы". Думал может попробую использовать DNS от роутера, но там совсем шлак. Максимум можно настроить - 10 статических адресов в локальной сети. Статические и динамические адреса должны быть в одном диапазоне.
в-четрвертых у МГТС есть полный доступ к вашему роутеру. А иметь третье лицо, а вернее даже целую компанию в своей локальной сети - это как-то даже негигиенично. Ну то есть ты как бы перед ними голый. И они тебе такие - чувак - не смущайся, мы не смотрим.
Вывод - можно и МГТС, но отключать WiFi и переводить роутер в режим моста (не факт, что это можно сделать, не факт, что это не слетит после принудидтельного обновления, не факт, что это не запретят).
Говорят, что роутер Sercomm RV6699 v4 можно перепрошить. Хотел попробовать, но не могу - у меня этого роутера больше нет - мне его заменили на ZTE ZXHN F680.
Еще говорят, что можно купить коробочку мене чем за 1.5 тыс. рублей и она будет работать бриджом - думаю это хороший вариант.