Edited at

Arch linuxでAWS Consoleに繋がらなくなった件

少し前に自宅の作業環境をMacからArch linuxに変えたんですが、なぜかAWS Consoleにまともに接続できなくなって結構困っていたのですが、とりあえず解決したようなのでメモがてら残しておきます。


事象

ブラウザでAWS ConsoleにつなぐとすぐにDNSエラーになる(Chromeだと DNS PROBE FINISHED NXDOMAIN といわれる奴)

実際ターミナルでも

$ curl ap-northeast-1.console.aws.amazon.com

curl: (6) Could not resolve host: ap-northeast-1.console.aws.amazon.com

名前解決できてないようで。

ネットワーク関連で特別何かを導入しているわけでもなく、Arch Wikiのsystemd-networkd を参考に systemd-networkdsystemd-resolved を立ち上げてWikiに記載の通りに /etc/nsswitch.confhostsresolveを追加したくらいです。

hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns

ちなみにsystemdのバージョンは239.300-2です。


結論

結構いろいろ調べた結果、結論としては /etc/systemd/resolved.conf の [Resolve]セクションのDNSSECを明示的に

DNSSEC=noとしてsystemd-resolvedを再起動したら解決しました。

これでとりあえず名前解決できるようにはなりましたがこのオプションの意味をちゃんと調べてないのでこの対応が良いのかは正直分かりません。


結論までの途中経過

一応、結論に至るまでの途中経過をざっくり記載しておくと


  • /etc/nsswitch.confhostsからresolveを消すと問題が解消したのでsystemd-resolved関連で何か問題があるっぽいと推測。


  • systemd-resolveコマンド経由でap-northeast-1.console.aws.amazon.comの名前解決ができない。


   # systemd-resolved ap-northeast-1.console.aws.amazon.com

ap-northeast-1.console.aws.amazon.com: resolve call failed: DNSSEC validation failed: no-signature