本文へスキップ
IPeek

SRV ルックアップ

サービスロケーションレコード

チェック中…

SRVレコードとは?

SRV(Service)レコードは、特定のサービス(SIP、XMPP、LDAP、Microsoftのautodiscoverなど)のホスト名とポートを、負荷分散のための優先度と重みとともに広告します。Aレコードと異なり、サービスがどこにあるかだけでなくどのポートにあるかも伝えるため、アプリケーションはハードコードされた設定なしにサービスを見つけられます。_service._proto.domainの形式で照会します。

SRVレコードの形式の仕組み

SRVレコードは特徴的なパターンで名付けられます。_service._proto.domain、例えば_sip._tcp.example.comです。アンダースコアは通常のホスト名との衝突を防ぎます。レコードのデータは4つの値を保持します。優先度、重み、ポート、ターゲットです。優先度はMXのように機能し、数字が小さいほど先に試されます。重みは同じ優先度のターゲット間で負荷を分散し、重みが大きいほど比例して多くのトラフィックを受けます。ポートはサービスが待ち受けるTCPまたはUDPポートで、ターゲットはそれを提供するホスト名であり、独自のAまたはAAAAレコードを持つ必要があります。

SRV検索結果の読み解き方

IPeekは、照会したサービス名に対する各SRVレコードの優先度、重み、ポート、ターゲットホストを返します。まず優先度を読みます。クライアントは優先度の低いターゲットを、高いものへフォールバックする前に使います。優先度が等しい中では、重みが各ターゲットが受けるトラフィックの割合を決めます。ポートが期待するサービスと一致することを確認してください。SIPは5060、LDAPは389、多くのautodiscoverは443です。各ターゲットが有効なホストに解決されることを確認します。結果が空なら、そのサービスはその名前でドメインに広告されていません。

SRVレコードが必要なとき

SRVレコードは、クライアントが固定設定に頼るのではなくサービスを自動的に発見しなければならないときに重要です。Microsoft Teams、Skype for Business、SIPプロバイダーは、音声やプレゼンスのサーバーを見つけるためにこれらを使います。XMPPチャット、LDAPディレクトリ検索、Minecraftサーバー、Kerberosもすべて、SRVによる発見に依存します。大きな利点は柔軟性です。サービスを新しいホストやポートへ移したり、複数のサーバーに分散させたりしても、クライアントは再設定なしにSRVレコードに従います。サービスが特定の_service._proto名を要求する場合は、対応するSRVレコードを公開しないとクライアントは見つけられません。

よくある質問

_service._proto.domainという命名形式は何を意味しますか?

このパターンは、SRVレコードが記述するサービスとプロトコルによってレコードを名付けます。_serviceはサービスラベル(_sipや_ldapなど)、_protoはトランスポート(_tcpまたは_udp)、domainはあなたのドメインです。例えば、_sip._tcp.example.comはTCP上のSIPを広告します。先頭のアンダースコアは、これらのラベルが通常のホスト名と衝突しないようにします。

SRVレコードの優先度と重みはどう機能しますか?

優先度と重みは、クライアントがどのターゲットを選ぶかを制御します。優先度はMXレコードのように機能し、クライアントは優先度の低いターゲットを最初に試し、大きい番号へフォールバックします。優先度を共有するターゲット間では、重みが各ターゲットが受けるトラフィックの割合を設定するため、重みが大きいほど多くの接続を引き寄せます。両者を合わせて、フェイルオーバーと負荷分散の両方を可能にします。

SRVレコードとAレコードの違いは何ですか?

Aレコードはホスト名をIPアドレスにマッピングしますが、SRVレコードはさらにポートを指定し、名前付きサービスに対する優先度と重みを追加します。SRVは、サービスがどこで、どのポートで稼働するか、そして負荷をどう分散するかをクライアントが発見できるようにします。これは単なるAレコードでは表現できません。SRVのターゲットは、解決のために依然Aレコードに依存します。

SRVレコードを一般的に使うサービスは何ですか?

SIPやVoIPシステム、XMPPチャット、LDAPやActive Directory、Kerberos、Microsoft TeamsやSkype for Business、さらにはMinecraftサーバーがSRVレコードをよく使います。ハードコードされたホストとポートの設定なしに自動的なサービス発見から恩恵を受けるプロトコルは、どれも候補です。クライアントは該当する_service._proto名を照会するよう書かれている必要があります。

SRV検索が結果を返さないのはなぜですか?

空のSRV結果は通常、その正確な_service._proto.domain名でレコードが公開されていないことを意味します。サービスラベル、プロトコル、ドメインがアンダースコアを含めて正しく綴られているか確認してください。サービスが期待と異なる名前を使っているか、レコードが単に存在しない可能性があります。クライアントアプリケーションが必要とする正確な名前を確認してください。