amano
2020年1月17日 20時42分
soracom simからAWS側のPrivate IP(http://172.XX.XX.234)ではAPIレスポンス返ってきますが、ドメイン名url(http://xxxxxx)では返ってきません。
ドメイン名でAPIレスポンスが返ってくるようにする方法を教えてください。
armadillo(192.168.15.100)-soracom sim側VPC(10.128.XX.XX)-AWS側VPC DNSサーバー(172.XX.XX.2)の構成になっております。
現状の設定等を記載します。
root@armadillo:~# ifconfig eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:11:0c:20:01:61 txqueuelen 1000 (イーサネット) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (ローカルループバック) RX packets 328 bytes 26232 (25.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 328 bytes 26232 (25.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 usb1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.15.100 netmask 255.255.255.0 broadcast 192.168.15.255 inet6 fe80::e13a:895b:5f9e:23b5 prefixlen 64 scopeid 0x20<link> ether 02:80:70:08:07:00 txqueuelen 1000 (イーサネット) RX packets 85 bytes 10062 (9.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 232 bytes 23598 (23.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 38:d2:69:df:9f:93 txqueuelen 1000 (イーサネット) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@armadillo:~# cat /etc/resolv.conf # Generated by NetworkManager search lan nameserver 192.168.15.1
root@armadillo:~# cat /etc/NetworkManager/NetworkManager.conf [main] plugins=ifupdown,keyfile [ifupdown] managed=false [device] wifi.scan-rand-mac-address=no
root@armadillo:~# cat /etc/NetworkManager/system-connections/sora [connection] id=sora uuid=6e85f6e6-1234-4893-957b-4d803c6bd539 type=gsm interface-name=ttyACM0 permissions= timestamp=1579256927 [gsm] apn=soracom.io number=*99# password=sora username=sora [ipv4] dns=192.168.15.1; dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto
※dns=192.168.15.1;は設定してもしなくてもレスポンスありませんでした。
その他dns=DNSサーバー(172.XX.XX.2)にしてみたり、固定IP設定してみたりしましたが、
以下のエラー内容になってしまいます。
エラー内容
HTTPConnectionPool(host='XXXXXXXXXXX', port=80): Max retries exceeded with url: /api/v1/pma/healthstatus (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x763b5270>: Failed to establish a new connection: [Errno -5] No address associated with hostname',))
コメント
amano
以下にコマンド実行結果を記載します。
root@armadillo:~# nslookup google.com Server: 192.168.15.1 Address: 192.168.15.1#53 Non-authoritative answer: Name: google.com Address: 172.217.26.46 alot@armadillo:~# nslookup http://xxxxxx Server: 192.168.15.1 Address: 192.168.15.1#53 ** server can't find http://xxxxxx: NXDOMAIN root@armadillo:~# random: crng init done route カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース default OpenWrt.lan 0.0.0.0 UG 700 0 0 usb1 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 usb1 192.168.15.0 0.0.0.0 255.255.255.0 U 700 0 0 usb1 root@armadillo:~#
>soracom sim VPC と AWS VPCの接続はどのように行っているのでしょうか。
>SORACOM Canalを利用している状況でしょうか。
→はい、Canalを利用しております。
at_koseki
古関です。
ご確認ありがとうございます。
google.comの名前は引けている状況ですが、AWS側VPCの方の名前が引けていないですね。
AWS側やSORACOM Canal側にどのような設定を実施したでしょうか?
Canalは私も評価したことが無いのですが、
下記の情報は参考にならないでしょうか。
※ 既知の情報だったら申し訳ありません
https://blog.soracom.jp/blog/2019/09/05/isolated-access-to-aws/
※「プライベートDNS」部分
https://dev.classmethod.jp/soracom/serve-managed-dns-to-soracom-air/
at_koseki
古関です。
> alot@armadillo:~# nslookup http://xxxxxx
> Server: 192.168.15.1
> Address: 192.168.15.1#53
>
> ** server can't find http://xxxxxx: NXDOMAIN
ごめんなさい。一点再確認おねがいします。
nslookupは"http"を入れて実行できないようです。
以下のように再度コマンドを入力・結果をいただけますか?
# nslookup xxxxxx
※"xxxxx"にはAWS VPC側のドメイン名を"http://"を付けないで入力してください。
amano
> ごめんなさい。一点再確認おねがいします。
>
> nslookupは"http"を入れて実行できないようです。
> 以下のように再度コマンドを入力・結果をいただけますか?
>
> # nslookup xxxxxx
> ※"xxxxx"にはAWS VPC側のドメイン名を"http://"を付けないで入力してください。
>
上記確認しました。
root@armadillo:~# nslookup xxxxxx Server: 192.168.15.1 Address: 192.168.15.1#53 Non-authoritative answer: *** Can't find xxxxxx: No answer root@armadillo:~# nslookup beam.soracom.io Server: 192.168.15.1 Address: 192.168.15.1#53 Non-authoritative answer: Name: beam.soracom.io Address: 100.127.127.100 root@armadillo:~#
※beam.soracom.ioは参考までに打ってみました。(soracom beamを利用しているわけではありません)
nslookup beam.soracom.ioの結果と同じような結果を期待しております。
at_koseki
古関です。
やはり、インターネット側の名前は引けていて
AWS側VPCの方の名前が引けていない状況です。
> AWS側やSORACOM Canal側にどのような設定を実施したでしょうか?
こちらはどのような状況でしょうか?
> https://dev.classmethod.jp/soracom/serve-managed-dns-to-soracom-air/
「SORACOM CanalおよびカスタムDNSのセットアップ」を見ると
ソラコムユーザーコンソール側にカスタムのDNSを追加すれば
Armadillo側の設定はAPN/user/passwordのみ設定し、
LTEのデータ接続をすれば、他は何も気にしなくても良いように見えます。
こちらは既に確認・設定済みでしょうか。
akio_tsuchiya
一点気になる点があります。
SORACOM Canalは、AWSのアクセスポイントまでのピアーツーピアサービスではないでしょうか?
次に、AWSの内側は、通常、Rute53が必須と考えます。
ちょっと前までは、EC2等のコンピュートサービスが常時動いていた時は、このコンピュートサービスに、
DNSまがいの事をさせることができました。
現在は、Lambdaを派生とするイベント処理型のコンピュートサービスに移行した場合、
AWS内部のDNSを肩代わりするサービスが必須となると思います。
> 古関です。
>
> やはり、インターネット側の名前は引けていて
> AWS側VPCの方の名前が引けていない状況です。
>
> > AWS側やSORACOM Canal側にどのような設定を実施したでしょうか?
> こちらはどのような状況でしょうか?
>
> > https://dev.classmethod.jp/soracom/serve-managed-dns-to-soracom-air/
> 「SORACOM CanalおよびカスタムDNSのセットアップ」を見ると
> ソラコムユーザーコンソール側にカスタムのDNSを追加すれば
> Armadillo側の設定はAPN/user/passwordのみ設定し、
> LTEのデータ接続をすれば、他は何も気にしなくても良いように見えます。
> こちらは既に確認・設定済みでしょうか。
amano
amano
設定し、確認しましたが、名前解決できませんでした。結果を記載します。
root@armadillo:~# cat /etc/resolv.conf # Generated by NetworkManager search lan nameserver 192.168.15.1 root@armadillo:~# nslookup carwash.mk.internal Server: 192.168.15.1 Address: 192.168.15.1#53 Non-authoritative answer: *** Can't find carwash.mk.internal: No answer root@armadillo:~# route カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース default OpenWrt.lan 0.0.0.0 UG 700 0 0 usb1 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 usb1 192.168.15.0 0.0.0.0 255.255.255.0 U 700 0 0 usb1 root@armadillo:~# nslookup google.com Server: 192.168.15.1 Address: 192.168.15.1#53 Non-authoritative answer: Name: google.com Address: 172.217.26.14 root@armadillo:~#
ちなみに
raspberry Pi Zero + モバイルルータ(AtermMR03 NEC製)
では名前解決できました。
raspiの結果やsoracom関連の設定を添付します。
ファイル | ファイルの説明 |
---|---|
添付.zip |
akio_tsuchiya
先程、Rute53を提案した土屋と申します。
申し訳ありません。
先程までの状況から、AWS内部の情報が取得できていないだけの単純な内容と思っておりましたが、
私の思いとは、大きく違うようでした。
誠に、申し訳ありません。
> 設定し、確認しましたが、名前解決できませんでした。結果を記載します。
>
> root@armadillo:~# cat /etc/resolv.conf > # Generated by NetworkManager > search lan > nameserver 192.168.15.1 > root@armadillo:~# nslookup carwash.mk.internal > Server: 192.168.15.1 > Address: 192.168.15.1#53 > > Non-authoritative answer: > *** Can't find carwash.mk.internal: No answer > > root@armadillo:~# route > カーネルIP経路テーブル > 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース > default OpenWrt.lan 0.0.0.0 UG 700 0 0 usb1 > link-local 0.0.0.0 255.255.0.0 U 1000 0 0 usb1 > 192.168.15.0 0.0.0.0 255.255.255.0 U 700 0 0 usb1 > root@armadillo:~# nslookup google.com > Server: 192.168.15.1 > Address: 192.168.15.1#53 > > Non-authoritative answer: > Name: google.com > Address: 172.217.26.14 > > root@armadillo:~# >
>
> ちなみに
> raspberry Pi Zero + モバイルルータ(AtermMR03 NEC製)
> では名前解決できました。
> raspiの結果やsoracom関連の設定を添付します。
>
amano
状況的には以下となります。
①G3L
1,Route53に設定したドメイン(carwash.mk.internal):NG
2,固定IP:OK
3,Priavte DNS(xxxxxx.amazonaws.com):NG
(4,soracom.io:OK)
②raspi
1,Route53に設定したドメイン:OK
2,固定IP:OK
3,Priavte DNS:OK
運用で利用したいのは①-1です。
Rute53についてはnslookup google.comの名前解決に必要でしたので、引き続き利用致します。
1点気になる点がございます。
root@armadillo:~# cat /etc/resolv.conf # Generated by NetworkManager search lan nameserver 192.168.15.1 root@armadillo:~#
search lan
②raspiのresolv.confには"search lan"の記載がありませんでした。
今回の症状と関係ありますでしょうか。
また、削除する方法はありますでしょうか。
よろしくお願い致します。
amano
すみません。一応名前解決は出来ました。
しかし他の問題が発生しました。
・名前解決について
以下を変更しました。
root@armadillo:~# nano /etc/NetworkManager/NetworkManager.conf [main] plugins=ifupdown,keyfile dns=none
dns=noneを追加
root@armadillo:~# nano /etc/resolv.conf nameserver 172.16.XX.XX nameserver 192.168.15.1
nameserver 172.16.XX.XX(Route 53 Inbound Resolverのアドレス)
ご迷惑お掛けしました。
・新たな問題
上記ファイルを盛り込んでルートファイルシステムを作成しようと思い、
x1-debian-builder(v2.1.1)で実行するとエラーが発生し、途中で終わってしまいます。
何か解決方法はありますでしょうか。
エラーが発生したときのATDEのコンソールを添付します。
resolv.confを削除すると正常に実行されます。
よろしくお願い致します。
ファイル | ファイルの説明 |
---|---|
エラー時.txt | エラーが発生したときのATDEのコンソール |
at_koseki
古関です。
> root@armadillo:~# nano /etc/NetworkManager/NetworkManager.conf
> dns=noneを追加
>
> root@armadillo:~# nano /etc/resolv.conf
> nameserver 172.16.XX.XX
> nameserver 192.168.15.1
x1-debian-builderはATDE(x86上)でArmのエミュレータ(qemu-user-static)を動かし、
aptでArm版 debianパッケージをインストールする仕組みになってます。
aptによるインストール実行前に、/etc/resolv.confを書き換えてしまい、qemu debianから、
aptサーバーの名前解決ができなくなり、aptのインストールができないのかもしれません。
x1-debian-builderでの/etc/resolv.conf の変更はどのようにして行っているでしょうか?
apt-getが実施されるより前に、resolve.confを書き換えると、インストールに失敗すると思います。
aiotg3l_resources/resources/fixup の最終行にcpする形で入れるとできそうです。
別案としては、次のようにコネクション設定を作成してはいかがでしょうか?
nmcli connection add type gsm ifname ttyACM0 apn soracom.io user sora password sora ipv4.ignore-auto-dns yes ipv4.dns "172.16.XX.XX,192.168.15.1"
amano
ご回答ありがとうございます。
解決しました。
最終的には以下でインストールに成功しました。
aiotg3l_resources/resources/NetworkManager.conf
[main] plugins=ifupdown,keyfile #dns=none [ifupdown] managed=false [device] wifi.scan-rand-mac-address=no
aiotg3l_resources/etc/NetworkManager/system-connections/sora
[ipv4] dns=172.16.XX.XX; dns-search= ignore-auto-dns=true method=auto
ありがとうございました。
amano
再び名前解決できなくなりました。前回とは少し状況が異なります。
AWS側再構築によりurlが変更になり疎通確認を行ったところ、レスポンスが返ってこなくなりました。
Route53やカスタムDNSは新しい設定に変更しました。
【Route53 PrivateArias】 http://XXXXX.XX.develop.local/api/v1/pma/healthstatus エラーが発生しました HTTPConnectionPool(host='XXXXX.XX.develop.local', port=80): Max retries exceeded with url: /api/v1/pma/healthstatus (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x764f2e90>: Failed to establish a new connection: [Errno -2] Name or service not known',)) 【固定IP】 http://172.16.aa.aa/api/v1/pma/healthstatus 200 {'operation_stopped_flag': 0, 'health_stopped_flag': 0, 'paymachine_cd': '50001'}
上記はpython3でrequestsした結果です。
固定IPは期待通りのレスポンスが返ってきております。
【前回の状況とは異なる点】
nslookupでは正常な応答が返ってきている点
root@armadillo:~# nslookup XXXXX.XX.develop.local Server: 172.16.aa.cc Address: 172.16.aa.cc#53 Non-authoritative answer: Name: XXXXX.XX.develop.local Address: 172.16.aa.aa Name: XXXXX.XX.develop.local Address: 172.16.bb.bb root@armadillo:~#
前回の問題解決前はnslookupで名前解決できませんでした。(XXXXX.test.internal)
何か解決策ありますでしょうか。
at_koseki
2020年1月27日 13時33分
古関です。
問題切り分けのためにArmadillo-IoT側で以下のコマンドを実行し結果をいただけますでしょうか?
# nslookup google.com
# nslookup http://xxxxxx
# route
もし差し支えなければ教えていただきたいのですが、
soracom sim VPC と AWS VPCの接続はどのように行っているのでしょうか。
SORACOM Canalを利用している状況でしょうか。