NSIDとは
NSID (Name Server Identifier)は、IPアドレスを共有する複数のDNSサーバがある場合に、 どのDNSサーバが応答したかを識別できる、オプションの機能です。 EDNS*1*2を用いた仕組みで、 RFC 5001*3で標準化されています。
DNSサーバの運用形態として、 IP anycast*4やロードバランシングなどを用いて、 複数のDNSサーバで一つのIPアドレスを共有することがあります。 そうした状況では、ある特定の問い合わせが実際にどのサーバから応答されたのか、 判別することが難しいという問題があります。
サーバを特定するには、 問い合わせの応答時間やDNSサーバまでの経路から推測するなどの方法がありますが、 信頼性も低く、確実に特定できる方法ではありません。 例えば、DNSサーバがIP anycastで構成されている場合、 経路情報が変更されているなどの理由で、予想していたサーバとは異なるサーバに対して、 問い合わせをしている可能性があります。
これを改善し、確実に問い合わせ先のDNSサーバを特定できるように標準化されたものがNSIDです。 NSIDでは、識別子となるデータをそれぞれのDNSサーバに設定しておき、 リゾルバやクライアントがNSIDを問い合わせた際には、 サーバから個別に設定された識別子を受け取ります。 これにより、例えば動作検証などの目的で複数のサーバのうち、ある1台を特定したい際に、 個別のサーバを判別できるようになります。
なお、NSIDはオプションの機能であり、サーバに識別子を設定するかどうかは、 サーバ運用者に委ねられています。
*1 Extension Mechanisms for DNS (EDNS(0))
https://tools.ietf.org/html/rfc6891
*2 インターネット用語1分解説「EDNS0とは」
https://www.nic.ad.jp/ja/basics/terms/edns0.html
*3 DNS Name Server Identifier (NSID) Option
https://tools.ietf.org/html/rfc5001
*4 インターネット用語1分解説
「エニーキャストアドレス(Anycast Address)とは」
https://www.nic.ad.jp/ja/basics/terms/pti.html