5.2. Diameter ピア発見 (Diameter Peer Discovery)
Diameter エージェント (agent) の動的発見を許可すると, Diameter サービスのより単純で堅牢な展開が可能になります. 相互運用可能なピア発見のために, 手動設定と DNS のメカニズムを以下に示します. いずれも既存の IETF 標準に基づきます. すべての Diameter 実装は両方をサポートしなければなりません (MUST), いずれか一方の使用もよいです (MAY).
Diameter ピア発見が行われるのは主に 2 つの場合です. 第一に Diameter クライアントが第一ホップの Diameter エージェントを発見する場合, 第二に Diameter エージェントが Diameter 操作のさらなる処理のために別のエージェントを発見する場合です. いずれも, 次の「探索順序」が推奨されます.
-
実装は静的 (手動) 設定された Diameter エージェントの位置リストを参照します. 存在し応答があれば使用します.
-
特定レルムのサーバに対する NAPTR クエリを行います. どのレルムを探すかは事前に分かっている必要があり, 例えば Diameter 操作の対象となった NAI の「レルム」から推測できます.
Diameter における NAPTR の用法は S-NAPTR DDDS アプリケーション [RFC3958] に従い, SERVICE フィールドに希望アプリケーションとサポートするアプリケーションプロトコルのタグを含めます. Diameter アプリケーションのサービスタグは aaa で, プロトコルタグは diameter.tcp, diameter.sctp, diameter.dtls, diameter.tls.tcp です [RFC6408].
クライアントは [RFC3958] の解決手順に従い, 適切なピアの SRV, A, または AAAA を見つけます. NAPTR の replacement フィールドのドメイン接尾辞は元のクエリのドメインと一致すべきです (SHOULD). 付録 B に例があります.
- NAPTR がなければ, 次の SRV を直接問い合わせます: TCP 上の Diameter は
_diameter._tcp.realm, TLS は_diameters._tcp.realm, SCTP は_diameter._sctp.realm, DTLS は_diameters._sctp.realm. SRV があれば [RFC2782] に従い SRV のターゲットホスト名に対する A/AAAA を問い合わせます. SRV がなければ諦めます.
サイト証明書 (site certificate) を使う場合, NAPTR クエリと replacement のドメイン名の両方が, TLS/TCP と DTLS/SCTP または IKE 交換でサーバが提示したサイト証明書に基づき有効でなければなりません (MUST). 同様に SRV クエリと SRV レコードのターゲットのドメイン名も同じサイト証明書に基づき有効でなければなりません. そうでなければ攻撃者が DNS を別ドメインの値に改ざんでき, クライアントは意図か攻撃かを検証できません.
また, Diameter ピアは発見されたピアがその役割を行う権限があることを確認しなければなりません (MUST). IKE または TLS/TCP・DTLS/SCTP による認証, または DNSSEC による DNS RR の検証だけでは不十分です. 例: Web サーバが有効な証明書を持ち DNS に保護された RR があっても, Diameter サーバとしての権限は意味しません.
権限付与は例えば Diameter サーバ認証局 (CA) の設定により行えます. サーバ CA が Diameter サーバに証明書を発行し, 拡張キー用途 [RFC5280] の OID で主体が Diameter サーバであることを示します. その証明書を TLS/TCP, DTLS/SCTP, または IKE の交渉で使用します. ただし執筆時点では Diameter サーバ専用 CA は存在しません.
動的に発見されたピアはピアテーブル (セクション 2.6) にエントリを作成します. DNS 経由のエントリは DNS TTL 内に期限切れ (または更新) しなければなりません (MUST). ローカルレルム外で発見された場合, ピアのレルムのルーティングテーブルエントリ (セクション 2.7) を作成し, その有効期限はピアの有効期限と一致させなければなりません (MUST).