Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Предложение по доработке плагина ZeroTier One #104

Open
cronyx opened this issue Nov 5, 2022 · 0 comments
Open

Comments

@cronyx
Copy link
Member

cronyx commented Nov 5, 2022

Цель доработки (переработки) избавиться от парсинга конфига сети и перейти на использование команд к демону с ответами в json, что поможет избавиться от тупняков в стадии настройки при отсуствии авторизации со стороны контроллера (страница остается в бесконечной загрузке пока не будет произведена авторизация устрйства). А так же избавить плагин от лишних кнопок на активацию демона.

Изначально, имеем слайдер активации плагина, он же активирует демона zerotier-one посредством скрипта S90zerotier при нажатии кнопки Сохранить. Плагин вместе с демоном активируются независимо от того, заполнено ли поле Network ID.
Как только плагин активирован и демон запущен, можно получить ID камеры в сети и ее статус командой zerotier-cli info -j:

результат:

{
 "address": "68b93c6681",
 "clock": 1667643999381,
 "config": {
  "settings": {
   "allowTcpFallbackRelay": true,
   "listeningOn": [
    "192.168.0.111/9993",
    "192.168.0.111/33884",
    "192.168.0.111/53666"
   ],
   "portMappingEnabled": true,
   "primaryPort": 9993,
   "secondaryPort": 0,
   "softwareUpdate": "disable",
   "softwareUpdateChannel": "release",
   "tertiaryPort": 0
  }
 },
 "online": true,
 "planetWorldId": 149604618,
 "planetWorldTimestamp": 1644592324813,
 "publicIdentity": "68b93c6681:0:3215651423a6278ea7fe86454d5b5cfda4dd33c7a4228a9c9bccc1dc216f301605b28c720b60186039fe25dc7480daddf05b23a4ca93d7fd5d42c46b912fd633",
 "tcpFallbackActive": false,
 "version": "1.10.1",
 "versionBuild": 0,
 "versionMajor": 1,
 "versionMinor": 10,
 "versionRev": 1
}

Из этого выхлопа было бы полезно видеть ID камеры ("address":), так как его можно запросить для авторизации на контроллере в случае удаленного саппорта.

Если на первой стадии, вместе с активацией плагина, был введен Network ID, сразу выполняем join в сеть командой zerotier-cli join network_id (команда без ожидания результата) и после запрашиваем статус командой zerotier-cli listnetworks -j:

результат:

- состояние без авторизации на контроллере:

[
 {
  "allowDNS": false,
  "allowDefault": false,
  "allowGlobal": false,
  "allowManaged": true,
  "assignedAddresses": [],
  "bridge": false,
  "broadcastEnabled": false,
  "dhcp": false,
  "dns": {
   "domain": "",
   "servers": []
  },
  "id": "a0cbf4b62a41da0f",
  "mac": "0e:b2:f8:16:d0:75",
  "mtu": 2800,
  "multicastSubscriptions": [
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:01"
   },
   {
    "adi": 0,
    "mac": "33:33:00:00:00:01"
   },
   {
    "adi": 0,
    "mac": "33:33:ff:16:d0:75"
   }
  ],
  "name": "",
  "netconfRevision": 0,
  "nwid": "a0cbf4b62a41da0f",
  "portDeviceName": "ztc3q3k3bf",
  "portError": 0,
  "routes": [],
  "status": "ACCESS_DENIED",
  "type": "PRIVATE"
 }
]

- с авторизацией на контроллере:

[
 {
  "allowDNS": false,
  "allowDefault": false,
  "allowGlobal": false,
  "allowManaged": true,
  "assignedAddresses": [
   "172.30.100.152/24"
  ],
  "bridge": false,
  "broadcastEnabled": true,
  "dhcp": false,
  "dns": {
   "domain": "",
   "servers": []
  },
  "id": "a0cbf4b62a41da0f",
  "mac": "0e:b2:f8:16:d0:75",
  "mtu": 2800,
  "multicastSubscriptions": [
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:01"
   },
   {
    "adi": 0,
    "mac": "33:33:00:00:00:01"
   },
   {
    "adi": 0,
    "mac": "33:33:ff:16:d0:75"
   }
  ],
  "name": "cronyx",
  "netconfRevision": 18,
  "nwid": "a0cbf4b62a41da0f",
  "portDeviceName": "ztc3q3k3bf",
  "portError": 0,
  "routes": [
   {
    "flags": 0,
    "metric": 0,
    "target": "0.0.0.0/0",
    "via": "172.30.100.56"
   },
   {
    "flags": 0,
    "metric": 0,
    "target": "172.30.100.0/24",
    "via": null
   }
  ],
  "status": "OK",
  "type": "PRIVATE"
 }
]

Отсюда было бы полезно получить и вывести (?в строку?) в центральном блоке страницы: имя сети ("name":), имя интерфейса ("portDeviceName":), мак ("mac":), IP адрес ("assignedAddresses":) и состояние соединения ("status":), завершать строку должна кнопка leave.

При нажатии на кнопку [leave] zerotier-cli leave network_id команда выполняются без ожидания результата, после выполения, повторяется вызов команды zerotier-cli listnetworks -j для актуализации информации о подключении.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant