Jump to content
kalibannez

Подключение с роутера к девайсам в локальной сети

Recommended Posts

Здравствуйте!

Я пытаюсь поднять на роутере homebridge, и проделав довольно длинный путь, столкнулся с проблемой, от которой не знаю куда копать.

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

Я установил homebridge на роутере, написал для него конфиг:

Скрытый текст

{
    "mdns": { "interface": "192.168.1.1" },
    "bridge": {
        "name": "HomebridgeGiga2",
        "username": "50:FF:20:01:10:BD",
        "port": 61538,
        "pin": "111-11-111"
    },

    "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",

    "accessories": [],
  "platforms":[]
}

и запускаю таким образом:

 DEBUG=* homebridge -D

iPhone находит устройство, подключается к нему, но останавливается на строке вида

HAPServer [50:FF:20:01:10:BD] Pair step 1/5 +33ms

Путем модификации исходников homebridge я обнаружил, что процесс зависает на строке

var srpServer = new srp.Server(srpParams, bufferShim.from(salt), bufferShim.from("Pair-Setup"), bufferShim.from(this.accessoryInfo.pincode), key);

Здесь есть важный (по моему мнению) момент- без указания "mdns": { "interface": "192.168.1.1" }, устройство вовсе не обнаруживалось телефоном.

Дабы двигаться хоть куда-то, я установил homebridge на мак, и снял tcpdump с обоих homebridge. ip телефона 192.168.1.44, мака 192.168.1.70, роутера 192.168.1.1.

Вот с роутера:

Скрытый текст

21:22:55.350682 ARP, Request who-has 192.168.1.201 tell 192.168.1.1, length 28
21:22:55.351406 ARP, Request who-has 192.168.1.202 tell 192.168.1.1, length 28
21:22:55.351478 ARP, Request who-has 192.168.1.203 tell 192.168.1.1, length 28
21:22:55.367616 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:22:55.554347 IP 192.168.1.44.5353 > 224.0.0.251.5353: 0 [1au] PTR (QM)? _hap._tcp.local. (62)
21:22:55.554621 IP6 fe80::8e0:9540:93d2:5823.5353 > ff02::fb.5353: 0 [1au] PTR (QM)? _hap._tcp.local. (62)
21:22:56.351045 ARP, Request who-has 192.168.1.204 tell 192.168.1.1, length 28
21:22:56.351152 ARP, Request who-has 192.168.1.205 tell 192.168.1.1, length 28
21:22:56.351210 ARP, Request who-has 192.168.1.206 tell 192.168.1.1, length 28
21:22:57.350687 ARP, Request who-has 192.168.1.207 tell 192.168.1.1, length 28
21:22:57.350766 ARP, Request who-has 192.168.1.208 tell 192.168.1.1, length 28
21:22:57.350804 ARP, Request who-has 192.168.1.209 tell 192.168.1.1, length 28
21:22:58.350706 ARP, Request who-has 192.168.1.210 tell 192.168.1.1, length 28
21:22:58.350784 ARP, Request who-has 192.168.1.211 tell 192.168.1.1, length 28
21:22:58.350823 ARP, Request who-has 192.168.1.212 tell 192.168.1.1, length 28
21:22:58.378864 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:22:58.540737 IP 192.168.1.44.5353 > 224.0.0.251.5353: 0 [1au] PTR (QM)? _hap._tcp.local. (62)
21:22:58.541112 IP6 fe80::8e0:9540:93d2:5823.5353 > ff02::fb.5353: 0 [1au] PTR (QM)? _hap._tcp.local. (62)
21:22:59.350318 ARP, Request who-has 192.168.1.213 tell 192.168.1.1, length 28
21:22:59.350391 ARP, Request who-has 192.168.1.214 tell 192.168.1.1, length 28
21:22:59.350430 ARP, Request who-has 192.168.1.215 tell 192.168.1.1, length 28
21:23:00.349848 ARP, Request who-has 192.168.1.216 tell 192.168.1.1, length 28
21:23:00.349927 ARP, Request who-has 192.168.1.217 tell 192.168.1.1, length 28
21:23:00.349966 ARP, Request who-has 192.168.1.218 tell 192.168.1.1, length 28
21:23:00.716996 IP 192.168.1.1 > all-systems.mcast.net: igmp query v2
21:23:01.349142 ARP, Request who-has 192.168.1.219 tell 192.168.1.1, length 28
21:23:01.349220 ARP, Request who-has 192.168.1.220 tell 192.168.1.1, length 28
21:23:01.349258 ARP, Request who-has 192.168.1.221 tell 192.168.1.1, length 28
21:23:01.404660 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:23:02.348682 ARP, Request who-has 192.168.1.222 tell 192.168.1.1, length 28
21:23:02.348763 ARP, Request who-has 192.168.1.223 tell 192.168.1.1, length 28
21:23:02.348802 ARP, Request who-has 192.168.1.224 tell 192.168.1.1, length 28
21:23:02.348911 ARP, Request who-has 192.168.1.62 tell 192.168.1.1, length 28
21:23:02.711895 IP 192.168.1.44.5353 > 224.0.0.251.5353: 0 [1a] [2q] [1au] PTR (QM)? _homekit._tcp.local. PTR (QM)? _sleep-proxy._udp.local. (141)
21:23:02.712140 IP6 fe80::8e0:9540:93d2:5823.5353 > ff02::fb.5353: 0 [1a] [2q] [1au] PTR (QM)? _homekit._tcp.local. PTR (QM)? _sleep-proxy._udp.local. (141)
21:23:03.347686 ARP, Request who-has 192.168.1.225 tell 192.168.1.1, length 28
21:23:03.347775 ARP, Request who-has 192.168.1.226 tell 192.168.1.1, length 28
21:23:03.347844 ARP, Request who-has 192.168.1.227 tell 192.168.1.1, length 28
21:23:04.347273 ARP, Request who-has 192.168.1.228 tell 192.168.1.1, length 28
21:23:04.347371 ARP, Request who-has 192.168.1.229 tell 192.168.1.1, length 28
21:23:04.347429 ARP, Request who-has 192.168.1.230 tell 192.168.1.1, length 28
21:23:04.397592 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:23:05.346895 ARP, Request who-has 192.168.1.231 tell 192.168.1.1, length 28
21:23:05.346992 ARP, Request who-has 192.168.1.232 tell 192.168.1.1, length 28
21:23:05.347050 ARP, Request who-has 192.168.1.233 tell 192.168.1.1, length 28
21:23:05.813188 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 397
21:23:05.813470 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 469
21:23:05.813668 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:23:05.813881 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 465
21:23:05.814075 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:23:05.814306 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 445
21:23:05.814511 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:23:05.814716 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 459
21:23:05.814924 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 477
21:23:05.815127 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461
21:23:05.815337 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461

Вот с мака:

Скрытый текст

21:24:02.287454 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:24:02.330006 ARP, Request who-has 192.168.1.153 tell 192.168.1.1, length 28
21:24:02.330085 ARP, Request who-has 192.168.1.154 tell 192.168.1.1, length 28
21:24:02.330125 ARP, Request who-has 192.168.1.155 tell 192.168.1.1, length 28
21:24:03.329574 ARP, Request who-has 192.168.1.156 tell 192.168.1.1, length 28
21:24:03.329686 ARP, Request who-has 192.168.1.157 tell 192.168.1.1, length 28
21:24:03.329749 ARP, Request who-has 192.168.1.158 tell 192.168.1.1, length 28
21:24:04.329115 ARP, Request who-has 192.168.1.159 tell 192.168.1.1, length 28
21:24:04.329201 ARP, Request who-has 192.168.1.160 tell 192.168.1.1, length 28
21:24:04.329240 ARP, Request who-has 192.168.1.161 tell 192.168.1.1, length 28
21:24:04.329305 ARP, Request who-has 192.168.1.62 tell 192.168.1.1, length 28
21:24:04.329405 ARP, Request who-has 192.168.1.48 tell 192.168.1.1, length 28кп
21:24:04.888521 IP 192.168.1.1.5353 > 224.0.0.251.5353: 0*- [0q] 7/0/0 PTR HomebridgeGiga2-8259._чhap._tcp.local., SRV 50_FF_20_01_10_BD.local.:61538 0 0, TXT "md=HomebridgeGiga2" "pv=1.0" "id=50:FF:20:01:10:BD" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=X7q/mQ==", A 10.138.59.244, A 192.168.1.1, A 10.1.30.1, A 89.169.50.169 (444)
21:24:05.291332 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C.ч_hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:24:05.329121 ARP, Request who-has 192.168.1.162 tell 192.168.1.1, length 28
21:24:05.329201 ARP, Request who-has 192.168.1.163 tell 192.168.1.1, length 28
21:24:05.329241 ARP, Request who-has 192.168.1.164 tell 192.168.1.1, length 28
21:24:05.701852 IP 192.168.1.1 > all-systems.mcast.net: igmp query v2
21:24:05.869760 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 397
21:24:05.870037 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 469
21:24:05.870232 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:05.870416 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 465
21:24:05.870618 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:05.870822 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 445
21:24:05.871016 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:05.871225 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 459
21:24:05.871431 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 477
21:24:05.871642 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461
21:24:05.871841 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461
21:24:06.047821 IP 192.168.1.44.5353 > 224.0.0.251.5353: 0 [1a] SRV (QU)? Homebridge-mac-740C._hap._tcp.local. (91)
21:24:06.048104 IP6 fe80::8e0:9540:93d2:5823.5353 > ff02::fb.5353: 0 [1a] SRV (QU)? Homebridge-mac-740C._hap._tcp.local. (91)
21:24:06.122763 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461
21:24:06.122959 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 461
21:24:06.123068 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 477
21:24:06.123175 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 459
21:24:06.123303 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:06.123412 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 445
21:24:06.123529 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:06.123638 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 465
21:24:06.123745 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 406
21:24:06.123864 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 469
21:24:06.123973 IP 192.168.1.1.55754 > 239.255.255.250.1900: UDP, length 397
21:24:06.328810 ARP, Request who-has 192.168.1.165 tell 192.168.1.1, length 28
21:24:06.328951 ARP, Request who-has 192.168.1.166 tell 192.168.1.1, length 28
21:24:06.329015 ARP, Request who-has 192.168.1.167 tell 192.168.1.1, length 28
21:24:06.614605 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=0" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
21:24:06.781344 IP 192.168.1.44.5353 > 224.0.0.251.5353: 0 [1a] SRV (QU)? Homebridge-mac-740C._hap._tcp.local. (91)
21:24:06.781605 IP6 fe80::8e0:9540:93d2:5823.5353 > ff02::fb.5353: 0 [1a] SRV (QU)? Homebridge-mac-740C._hap._tcp.local. (91)
21:24:07.328425 ARP, Request who-has 192.168.1.168 tell 192.168.1.1, length 28
21:24:07.328509 ARP, Request who-has 192.168.1.169 tell 192.168.1.1, length 28
21:24:07.328550 ARP, Request who-has 192.168.1.170 tell 192.168.1.1, length 28
21:24:07.894999 IP 192.168.1.1.5353 > 224.0.0.251.5353: 0*- [0q] 7/0/0 PTR HomebridgeGiga2-8259._hap._tcp.local., SRV 50_FF_20_01_10_BD.local.:61538 0 0, TXT "md=HomebridgeGiga2" "pv=1.0" "id=50:FF:20:01:10:BD" "c#=2" "s#=1" "ff=0" "ci=2" "sf=1" "sh=X7q/mQ==", A 10.138.59.244, A 192.168.1.1, A 10.1.30.1, A 89.169.50.169 (444)
21:24:08.327998 ARP, Request who-has 192.168.1.171 tell 192.168.1.1, length 28
21:24:08.328074 ARP, Request who-has 192.168.1.172 tell 192.168.1.1, length 28
21:24:08.328113 ARP, Request who-has 192.168.1.173 tell 192.168.1.1, length 28
21:24:09.327591 ARP, Request who-has 192.168.1.174 tell 192.168.1.1, length 28
21:24:09.327674 ARP, Request who-has 192.168.1.175 tell 192.168.1.1, length 28
21:24:09.327716 ARP, Request who-has 192.168.1.176 tell 192.168.1.1, length 28
21:24:09.617344 IP 192.168.1.70.5353 > 224.0.0.251.5353: 0*- [0q] 9/0/0 PTR Homebridge-mac-740C._hap._tcp.local., SRV 51_FF_20_01_10_BA.local.:61536 0 0, TXT "md=Homebridge-mac" "pv=1.0" "id=51:FF:20:01:10:BA" "c#=2" "s#=1" "ff=0" "ci=2" "sf=0" "sh=YSQrqg==", A 192.168.1.70, AAAA fe80::9c08:9cff:febc:800, AAAA fe80::b6ce:6600:2e2e:1179, AAAA fe80::2229:3a53:b13c:f3b9, AAAA fe80::9d00:f7e4:9e70:293d, AAAA fe80::aede:48ff:fe00:1122 (578)
 

К маку, соответственно, все подключается без проблем.

Однако, я не умею в чтение tcpdump и системное администрирование, и всё, что я сейчас вижу и понимаю- указывает на то, что homebridge не может открыть подключение к телефону и просто зависает на подключении до достижения таймаута. При этом, телефон homebridge на роутере видит и пытается подключиться. К слову, без опции "mdns": { "interface": "192.168.1.1" } я вполне мог достучаться до homebridge на роутере через telnet, но телефон его не видел (что еще раз подталкивает меня к мысли о том, что роутер рубит коннект).

 

Подскажите, пожалуйста, куда копать. Заранее спасибо!

Edited by kalibannez
Уточнение информации

Share this post


Link to post
Share on other sites
В 08.01.2019 в 22:00, kalibannez сказал:

HAPServer [50:FF:20:01:10:BD] Pair step 1/5 +33ms

Я как раз позавчера начал настраивать Homebridge и столкнулся с тем же самым.

В 08.01.2019 в 22:00, kalibannez сказал:

var srpServer = new srp.Server(srpParams, bufferShim.from(salt), bufferShim.from("Pair-Setup"), bufferShim.from(this.accessoryInfo.pincode), key);

Проблема в том, что SRP шифрование очень требовательно к ресурсам, собственно поэтому все HomeKit устройства такие дорогие - там специальный алгоритм шифрования, который быстро работает на очень слабых устройствах.

Я смог обойти это место, переписал исходники, но там будет еще одно, которое обойти не удастся, поэтому сделал очень хитрый трюк.

SRP нужен только для первого раза - сопряжения iOS и Bridge. Берем запускаем Homebridge на компьютере, без платформ, с теме же настройками bridge, что и на роутере. Делаем сопряжение, а потом переносим папки persist и accessories с компьютера на роутер. Homebridge на компьютере нам больше не нужен, а iOS уже будет считать, что сделал пару с Homebridge на роутере.

Edited by sc0rp1d

Share this post


Link to post
Share on other sites
В 08.01.2019 в 22:00, kalibannez сказал:

Здесь есть важный (по моему мнению) момент- без указания "mdns": { "interface": "192.168.1.1" }, устройство вовсе не обнаруживалось телефоном.

Да, тут вы правы, это нужно на роутере так как на нем много различных интерфейсов, а Homebridge и его зависимости не умеют нормально работать в мульти-интерфейсном режиме.

Share this post


Link to post
Share on other sites

Подскажите, как можно запустить процесс homebridge при старте самого роутера?  У меня он настроен через Debian 10

Share this post


Link to post
Share on other sites

Я бы разрабам homebridge написал на гитхабе. Правда я так и сделал. Вот жду ответ. Правда с другим роутером. Но очень надеюсь, что у вас все получится. 

Edited by Exrector

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...