web-dev-qa-db-ja.com

RFC 2782に違反してCNAMEエイリアスを指すSRVレコードを公開しましたか?

SRVレコードに骨を折る必要があるいくつかの仕事の責任の過程で、私はDNSの発掘で見ているものとWikipediaのステートメントを調整しようとしています。

WikipediaのSRVレコードエントリ によれば、

sRVレコードのターゲットは、アドレスレコード(AまたはAAAAレコード)を持つホスト名を指す必要があります。 CNAMEレコードでホスト名を指すことは、有効な構成ではありません。

しかし、DigがCNAMEレコードのエイリアスである名前を指すSRVレコードを返すレコードが表示されます。

つまり、次のようなものです。

> Dig _https._tcp.alpha.domain.com SRV

;; QUESTION SECTION:
;_https._tcp.alpha.domain.com.    IN    SRV

;; ANSWER SECTION:
_https._tcp.alpha.domain.com 59 IN SRV 30 30 4443 alias.domain.com


> Dig alias.domain.com

;; QUESTION SECTION:
;alias.domain.com.    IN    A

;; ANSWER SECTION:
alias.domain.com.  35  IN  CNAME canonical.name.amazonaws.com.
canonical.name.amazonaws.com. 35 IN A 52.78.234.189
canonical.name.amazonaws.com. 35 IN A 107.21.179.88
canonical.name.amazonaws.com. 35 IN A 52.12.126.92

SRVレコードは、Wikipediaのエントリで許可されていない方法で構成されているようです。私は何を誤解していますか? SRVレコードが、アドレスレコードではなくCNAMEレコードを持つalias.domain.comを指していることを示していませんか?

15
Scott

あなたが引用しているウィキペディアの記事は、SRVレコードに関連する RFC 2782 の状態を報告しています。

目標

ターゲットホストのドメイン名。この名前には1つ以上のアドレスレコードが存在する必要があり、名前はエイリアスであってはなりません(RFC 1034またはRFC 2181の意味で)。

あなたが見ているのはルールの明らかな違反です。ただし、mightは機能します(そして通常は機能します)クライアントアプリケーションは、SRVレコードが応答でAレコードのみを予期している場合でも、CNAMEレコードを適切に処理するのに十分スマートであることを探しています。

しかし、それはまたまったく機能しない可能性があります:サポートされておらず、クライアントアプリケーションに完全に依存しています。したがって、適切なルールに従っていないため、エラーや予期しない結果が発生する可能性があるため、回避する必要があります。

これは、MXレコードをCNAMEにポイントするのと似ています。CNAMEは one だけでなく、just wrongとして定義されています 2 RFCですが、それはかなり一般的な慣行です(そして、メールサーバーには問題がないようです)。

10
Massimo

はい、それは制限された動作の例です。制限自体は、「ターゲット」の定義の RFC 2781 によるものです。

   Target
        The domain name of the target Host.  There MUST be one or more
        address records for this name, the name MUST NOT be an alias (in
        the sense of RFC 1034 or RFC 2181).  Implementors are urged, but
        not required, to return the address record(s) in the Additional
        Data section.  Unless and until permitted by future standards
        action, name compression is not to be used for this field.

        A Target of "." means that the service is decidedly not
        available at this domain.

禁止された構成を許可するDNSサーバーソフトウェアは、残念ながら新しいものではありません。 NSMXなどのエイリアスターゲットが禁止されている他のレコードタイプの場合と同様に、これは発生する可能性があります。 (上記の通り)

それが実際に見つかるからといって、それが「大丈夫」であることを意味するわけではなく、標準が無視されたときに何が起こるかは製品ごとに異なります。私はSRVレコードとの相互作用をテストしていませんが、エイリアスを指すNSレコードに関するISC BINDによる非常によく知られている設計決定はです。再帰中に見つかった場合は、レコードを完全に削除します。すべてのNSレコードがこの方法で削除されると、すべてのクエリの結果は、問題のサブドメインのSERVFAILになります。

要するに、標準に固執することです。それが唯一安全なことです。

1
Andrew B