発生している問題
フレッツ光クロスV6プラス固定IPのデュアルスタック環境下で一部サービスに接続できない問題が発生しています。
- Discordのボイスチャット
- Switchbotのハブがネットにつながらない
まだ未解決ですがトラシュー過程をメモがてら残しておきます。
調査
プロセスIDを確認
タスクマネージャ -> 詳細 を開き上部の検索欄からDiscordを検索する
DiscordのプロセスIDが確認できた
- 2776
- 44656
- 40376
- 41280
- 42456
- 36424
プロセスIDから使用しているポート番号を確認
netstatで各プロセスIDの通信を表示し使用中のIP・ポートを確認します。
PS ~> netstat -ano | find '"2776"'
PS ~> netstat -ano | find '"44656"'
PS ~> netstat -ano | find '"40376"'
PS ~> netstat -ano | find '"41280"'
TCP 192.168.10.100:53629 162.159.138.232:443 ESTABLISHED 41280
TCP 192.168.10.100:55208 162.159.130.234:443 ESTABLISHED 41280
TCP [240b:251:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:57223 [2600:1901:1:a8::]:443 ESTABLISHED 41280
TCP [240b:251:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:65070 [2606:4700:7::a29f:81eb]:443 ESTABLISHED 41280
PS ~> netstat -ano | find '"41280"'
TCP 192.168.10.100:53629 162.159.138.232:443 ESTABLISHED 41280
TCP 192.168.10.100:55208 162.159.130.234:443 ESTABLISHED 41280
TCP [240b:251:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:57223 [2600:1901:1:a8::]:443 ESTABLISHED 41280
TCP [240b:251:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:65103 [2606:4700:7::a29f:81eb]:443 ESTABLISHED 41280
PS ~> netstat -ano | find '"42456"'
TCP 127.0.0.1:6463 0.0.0.0:0 LISTENING 42456
PS ~> netstat -ano | find '"36424"'
PS ~>
ボイスチャットに接続したときにIPが変化するのは42180だけなのでそのあたりの通信を見ていきます。
パケットキャプチャ
WireSharkでパケットキャプチャし問題が起きていそうな通信を探ってみます。
PID 41280の4行目がボイスチャットへの接続思考をするたびにポート番号のみ変動しているので宛先IPで絞込をします。
もっと真っ黒かと思ってたけど・・・
WebRTCのプロトコルは全然詳しくないのでぱっと見で判断できませんでした。
余談
WebRTCの挙動について調べていたところ下記のページを見つけました。
v6ネットワーク上でv6に対応していないソフトウェアがWebRTCで通信する場合DNS64+NAT64で通信しますが事はそう単純ではないとの事。
これを踏まえ、v6環境下でのWebRTCに追試調べていると下記のフォーラムに辿り着きました。
Google翻訳
Discord の音声は機能せず、Steam クライアントはログインできず、v6 を考慮していない WebRTC の多くの機能は機能しません。IPv4 リテラル アドレスを使用できると想定されているものはすべて機能しません。Java ソフトウェアは、設定しない限り、デフォルトで IPv4 DNS ルックアップを使用しますjava.net.preferIPv6Addresses=true。つまり、Minecraft などのゲームやその他の Java ソフトウェアは、そのオプションを指定しない限り接続に失敗します。Node.js もデフォルトで DNS に IPv4 を使用するため、npm インストールなどが機能しません。うーん、思いつくのはこれだけです。自分のネットワークでは NAT64 を実行しているので、これはすべて個人的な経験です。
v6オンリーのネットワークで同じ問題が起きている人は一定数居そうです。解決には至っていませんがなんとなくDNSが悪そうという見当をつけることはできました。
ちなみにLAN内のAndroid端末からCloudflare 1.1.1.1経由で接続した場合は問題なくボイスチャットに入れます。
Cloudflare 1.1.1.1経由だと問題なくDiscordに繋がるのは確認できた
— hmzn (@himajin_zip) March 27, 2025
画面共有も見える pic.twitter.com/Xv2oPqv6Un
今後の対応
我が家はv6オンリーではないのでDNSサーバーを立てて名前解決時にv4のアドレスを渡せば解決できるのでは?と思ったのでとりあえずDNSサーバーの構築からやっていきます。
進展があればまた追記しようかと思います。