はじめに
- 突然インターネットが繋がらなくなった!と思ったら、銀行口座残高が足りず引き落としできていなかった。
- 支払い前に色々疑って設定をかなり変えて、設定後に起きた話。
- インフラの知識はあまりなく、すでに完成されたAWSのインフラに対してログ見たりLambda編集したり、 S3使ったり、ECSやEC2内でソースコードいじってテストで使ったりする程度。
- ネットワークは苦手意識が強い
問題
- DNSの名前解決ができずNintendo Switch、Nintendo Switch2だけインターネット接続できない
- 他の機器は問題なくインターネット接続できている
解決
- ルーターでIPv4の設定を動的IPからPPPoEに変更して解決
- Nintendo SwitchはIPv6非対応、Nintendo Switch2は対応だがたまにIPv6でうまくいかないことがあるらしい
終わりに
あまりまとまっていないのですが、トラシューの流れをほぼ時系列で
ルーターと無線LAN子機の親子入れ替えを戻す
- プロバイダーに料金を払う必要があると気づく前に、ルーターが頻繁に再起動必要になることで疑っていた。なので親機と子機(同一製品)を入れ替えていた
- それが原因で別のネットワーク?の認識となり古いDNS送信先がDHCPから送られている?みたいな理解で場当たり的にやったがうまくいかず
- 元に戻すための接続設定がなかなかうまくいかず、IPv4をPPPoEにしたらつながった気がするが、設定画面の画面遷移が変な感じだったのでなぜかつながった状態
デバッグ用にパブリックDNSへの接続を試す
- ルーター、Nintendo Switch側でGoogleのパブリックDNS(8.8.8.8, 8.8.4.4)への接続を試した
- しかしのちにわかるが、そもそもこの時点ではルーターの設定誤りでIPv6でしかインターネットに出られなかったので意味がない
IPv6の設定をルーターで切ってみる
- DNSはIPv6で解決していて、インターネットにはIPv4で接続している?じゃあIPv6の設定を切るとどうなる?という理解で試した
- 他の機器も含めて全てインターネットに繋がらなくなり、インターネットにIPv6接続必須と仮説を得る
Nintendo SwitchのMACアドレスを控えてルーターのログを見る
- 一旦古いログデータは消して(見てなかったので)Nintendo Switchのインターネット接続操作をしたときのログを取得
- claudeに貼り付けて分析してもらう「nintendo switch, switch2がdnsの名前解決できずインターネット接続できない。他の機器はインターネットつながっている。dnsはルーターから自動割り振りでipv6を使っていそう。今はswithで試していて、{ホゲホゲ}がmacアドレス」と投げた
- 「WPA認証(4-Way Handshake)は毎回完了しており、DHCPv4のACKも返っています。したがって、パスワード間違いやIP取得失敗が原因ではありません」と言われる
- curlでIPv4とIPv6でmacbookからgoogleへの接続確認を提案される
提案されたコマンドの実行
- 以下を実行し、前者はレスポンスが長時間かえってこない、後者はかえってきた
#IPv4
curl -4 -I https://www.google.com
#IPv6
curl -6 -I https://www.google.com
IPv4の接続をPPPoEにしてIPv6の設定を切って試す
- 最初の頃のことを思い出し、ルーターでIPv4の設定をPPPoEにする
- そしてルーターのIPv6設定をオフにする
- macbookでまずインターネットにつながることを確認
Nintendo Switch、Nintendo Switch2の接続成功確認
- IPv4でインターネットにつながる状態であれば接続できた!
- 確認できたのでルーターのIPv6の設定は戻しておく
振り返り
- 結局なんでもアセスメント、行動の設計をしないで場当たり的にやると、手間を増やすだけなんだなあと感じた
- バグだったら原因をログなどから特定する、開発だったらユーザーストーリーを考える。根本のwhyを大事にして行動を設計しないと事故が起きるだけでなく、無限にモグラ叩きのように工数が膨らむ
- そういう基本を大事にすればAIは優秀なアシスタントであり強い味方だなと思った
参考
- 公式ではIPv6非対応など明記されているものは見つけられませんでした
- しかし非公式でそのような情報をさまざま見かけたのと、公式には以下のような言及はありました
インターネットサービスプロバイダーと「IPv6 サービス」を利用する契約になっている場合、可能であれば、一時的にIPv6接続を停止することで改善するか確認する
