open-degu / USER_COMMUNITY

Deguの使い方に関する疑問を投稿、回答するためのIssueを提供しています。
4 stars 2 forks source link

awsとのconnectionエラー #30

Open sasakura5440 opened 5 years ago

sasakura5440 commented 5 years ago

DeguゲートウェイA6を使用しております。 Deguマニュアル通りにAWSの設定を終え、DeguのマックアドレスをAWSに送りモノにマックアドレスを登録しようとしていますが、上手く登録できません。 DeguゲートウェイのLogを確認してみますと、 armadillo degu-manager[697]: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='iot.us-east-2.amazonaws.com', port=443): Max retries exceeded with url: /thing-types/Degu (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xb60ed530>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) の表示があり、AWSとのコネクションエラーが発生しているようです。 原因が不明で困っています。 因みに、社内有線Lanのネットワークはproxy設定が必要となりますので、/etc/environmentに http_proxy=http://xxxxxx https_proxy=http://xxxxxx ftp_proxy=http://xxxxxx HTTP_PROXY=http://xxxxxx HTTPS_PROXY=http://xxxxxx FTP_PROXY=http://xxxxxx のように、proxy設定をしています。またこの状態で、apt-get update が可能ですので、インターネットアクセスはしています。 以上、よろしくお願い致します。

naomitodori commented 5 years ago

エラーログの中に Temporary failure in name resolution とあるため、おそらくDNS関連のエラーかと思います。

DNSの設定をご確認いただけますでしょうか。 DeguゲートウェイA6のDNS設定につきましては 下記Armadillo-640 製品マニュアルをご参照ください。 https://users.atmark-techno.com/armadillo-640/manual

sasakura5440 commented 5 years ago

お世話になります。 DNSの設定を下記の4種類試してみました。 1回目 cat resolv.conf(以前からresolv.confに設定しておりました) nameserver 172.20.10.1 2回目 cat resolv.conf domain local-network search local-network nameserver 192.0.2.1 3回目 cat resolv.conf domain local-network search local-network nameserver 172.20.10.1 4回目 cat resolv.conf(社内で使用しているDNSです) domain local-network search local-network nameserver 218.224.234.74

の以上を試してみましたが、結果はawsに接続できませんでした。 syslogのメッセージ 2回目 Nov 4 02:19:05 armadillo degu-manager[710]: requests.exceptions. ConnectionError: HTTPSConnectionPool(host='iot.us-east-2.amazonaws.com', port=443): Max retries exceeded with url: /thing-types/Degu (Caused by NewConnectionError ('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xb6162530>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) 3回目 Nov 4 02:19:07 armadillo degu-manager[700]: requests.packages.urllib3.exceptions. MaxRetryError: HTTPSConnectionPool(host='iot.us-east-2.amazonaws.com', port=443): Max retries exceeded with url: /thing-types/Degu (Caused by NewConnectionError ('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xb6176530>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) 4回目 Nov 4 02:19:05 armadillo degu-manager[704]: requests.exceptions. ConnectionError: HTTPSConnectionPool(host='iot.us-east-2.amazonaws.com', port=443): Max retries exceeded with url: /thing-types/Degu (Caused by NewConnectionError ('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xb611f530>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

です。また、resize && systemctl status degu-managerの結果も下記に記載致します。 root@armadillo:~# resize && systemctl status degu-manager COLUMNS=200; LINES=24; export COLUMNS LINES; ● degu-manager.service Loaded: loaded (/lib/systemd/system/degu-manager.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2016-11-04 02:19:08 JST; 50s ago Process: 700 ExecStart=/usr/bin/degu-manager --register-gw (code=exited, status=1/FAILURE) Process: 382 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS) Main PID: 700 (code=exited, status=1/FAILURE)

Nov 04 02:19:07 armadillo degu-manager[700]: File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 204, in _get_response Nov 04 02:19:07 armadillo degu-manager[700]: proxies=self.proxies, timeout=self.timeout) Nov 04 02:19:07 armadillo degu-manager[700]: File "/usr/lib/python3/dist-packages/requests/sessions.py", line 609, in send Nov 04 02:19:07 armadillo degu-manager[700]: r = adapter.send(request, **kwargs) Nov 04 02:19:07 armadillo degu-manager[700]: File "/usr/lib/python3/dist-packages/requests/adapters.py", line 487, in send Nov 04 02:19:07 armadillo degu-manager[700]: raise ConnectionError(e, request=request) Nov 04 02:19:07 armadillo degu-manager[700]: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='iot.us-east-2.amazonaws.com', port=443): Max retries exceeded with url: /thing-types/Degu (C Nov 04 02:19:08 armadillo systemd[1]: degu-manager.service: Main process exited, code=exited, status=1/FAILURE Nov 04 02:19:08 armadillo systemd[1]: degu-manager.service: Unit entered failed state. Nov 04 02:19:08 armadillo systemd[1]: degu-manager.service: Failed with result 'exit-code'. lines 1-17/17 (END)

以上、よろしくお願い致します。

ohsawa commented 5 years ago

aptはSSLを使わないので、設定の確認にはcurlでSSLを使うサーバーに アクセスして試してみてください。

単にプロキシを使ってもこの現象が再現しないので、ご利用のproxy サーバーのアクセスログを確認して何が起きているのか確認されるのが ベストだと思います。

また、ここでdegu-managerでのGWとDeguの登録にはHTTPSを使っていますが、 登録後に個々のdeguの状態をAWSに転送する通信はSSL+MQTTなので http/httpsプロキシには対応していません。 ポート8883宛のSSL化されたMQTTの通信が可能な通信環境を用意する必要があります。

sasakura5440 commented 5 years ago

ご回答、有難うございます。 弊社内の環境では、  ポート8883宛のSSL化されたMQTTの通信が可能な通信環境を用意する必要があります。 が難し可能性がございます。 少し、検討してみます。