QUICを使用している際に、その通信がNATによってアドレス変換を行われているかを検出する「QUIC Address Extension」という提案仕様がAppleの人らによって出されています。
具体的には、送信元IPアドレスがなんであるかを通信相手に確認します。そうすることで、途中でIPアドレスが変換されているかを確認することが出来ます。
NATがいなければ、NATリバインディングを避けるためにPINGフレームを送る必要もありません。一方で、NATを検出した場合はコネクションIDとポートを定期的に変えることがよりプライバシーを高めることになります。
概要
自身のIPでアドレスが相手にどのように見えているか確認する、「PUBLIC_ADDRESS_REQUESTフレーム」と「PUBLIC_ADDRESS_RESPONSE フレーム」を定義します。
- PUBLIC_ADDRESS_REQUESTフレームを送信することで、自身のIPアドレスを相手に確認要求を出します。
- PUBLIC_ADDRESS_REQUESTフレームを受け取った側は、相手のIPアドレスとポートをPUBLIC_ADDRESS_RESPONSEフレームにお繰り返します。
こうして、自身の送信元IPアドレスがなんであるかを確認することが出来ます。
もちろん、PUBLIC_ADDRESS_REQUESTフレームとPUBLIC_ADDRESS_RESPONSEフレームは暗号化されているため、第三者に見ることは出来ません。
その他
同様の拡張がTLSでも提案されています。「TLS Client Network Address Extension」という提案仕様で、著者は一部異なりますが同じくAppleの人らによる提案です。