追記(2022/10/13):ここで取り上げましたWebサイトは改善されたようです。

ここ最近、IPv4アドレスとIPv6アドレスを端末に割り当てるのが流行っている(?)
これを「デュアルスタック」なんて呼んだりする。

なぜそんなことをするのか、そもそもなんで2種類のアドレスが存在していて普及している(し始めている)のかという話はもっと詳しい人たちがいらっしゃるので譲る。

私はデュアルスタックはアドレス空間を2つも管理することになるから面倒だ、という怠惰な思考から、シングルスタックなら1つで済むよね、という発想になる。IPv6へ移行しようという流れに乗るのであれば、むしろIPv6だけで何とかしちゃえ、という暴挙に出た。

暴挙と書いたが、実はそういうRFCと実装が既に存在している。RFCでいうと、 RFC 6146 がそれっぽい。端末にIPv6アドレスだけの割り当ての場合、直接IPv4シングルスタックホストには接続できないのだが、これをうまいこと解決する仕組みにが標準化されている。そしてその実装もある。NAT64はjoolで手軽に利用できるし、DNS64は対応するDNSサーバーに設定を入れることで実現する。

実際に導入して、普通のサイトなら問題なく接続できる。ちょっと遅いサイトとかもあるが、待てば使える。
ただ、どうしても接続できないサイトがあった。MOBY(モビー)というWebサイト。

調べたところ、DNSで名前解決をするとIPv4とIPv6のサーバーアドレスを返してくる。だが、実際に接続できるのはIPv4サーバーのみで、IPv6サーバーへは接続できない。デュアルスタック環境であれば、IPv6で接続し、失敗したらIPv4へフォールバックする。ただ、IPv6シングルスタック環境の場合、IPv6で接続を試みて失敗したら、IPv4へのフォールバックができず、そのままWebサイトへのアクセスは失敗する。

こんな状態になってるWebサイトが存在してるんだな、という知見を得た。