TOPに戻る
  • Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
キャッシュ屋ブログ|レッドボックス

REDBOX Labo

CDN・WEB高速化ブログ

  • お問い合わせ
  • 運営会社
Home > CDN > CDN とCNAME Apexドメインの制限

CDN とCNAME Apexドメインの制限

11/30 CDN

  • TwiiterTwiiter
  • FacebookFacebook
  • はてなブックマークはてなブックマーク
  • PocketPocket
CDNとCNAME、Apexドメインの制限

CDNを利用する上で避けては通れないのがDNSとの関係です。CNAMEレコードには制約事項がありCDNを利用する上で課題となる場合があります。今回はApexドメインという特殊なドメインとCNAMEレコードの制限についての紹介です。

CNAMEレコードとは

CDNはDNSの仕組みをうまく利用しアクセス元から一番近いエッジサーバーのIPアドレスを応答後、最終的にネットワーク的に近い場所にあるエッジサーバーへ誘導します。これらのロジックを利用している関係上、CDN事業者への切り替えはCDNベンダーが提供するサブドメインにCNAMEレコードを定義する方式が必須と言っても過言ではありません。

CNAMEとは

まず、CNAMEレコードについておさらいです。CNAMEとは既に定義されてるドメイン名の別名を定義することです。おなじみのAレコードは以下のようなフォーマットでドメイン名とIPアドレスを1対1で紐付けます。※DNSの機能などによってこの限りではありませんが今回は割愛します。

・通常のAレコード

www.redbox.ne.jp  A     WebサーバーIPアドレス

CNAMEレコードは、以下のようにIPアドレスではなくホスト名(FQDN)を指定し、最終的に指定したホスト名のAレコードを参照させる仕組みです。

・CNAME利用時

www.redbox.ne.jp CNAME test.redbox.ne.jp

CNAMEは、CDNのようにベンダーが提供するサービスにおいて、独自ドメインを利用するために用いられることが多いです。

代表的なサービスとしては、Heroku、AWS(ALB・CloudFront)、github pages、Google Appsなどが挙げられます。CDNは多数のエッジサーバー群のIPアドレスから成り立っており、アクセス元から近いエッジサーバーに都度誘導する必要があるため、Aレコードで直接エッジサーバーのIPアドレスを指定できません。そのため、応答するIPアドレスが都度変化に対応できるよう別名が定義できるCNAMEレコードを利用します。

CNAMEの制約

CDNに限らず外部サービスを独自ドメインで利用する上で、CNAMEレコードの設定は欠かせません。便利なCNAMEレコードですが、実はRFC 1912 で他のレコードと同居できないという制約があります。

2.4 CNAME records
A CNAME record is not allowed to coexist with any other data.
an A record, or even a TXT record. Especially do not try to combine CNAMEs and NS records like this!

具体的に以下のようなレコードは設定ができません。

・同じドメイン名で複数CNAME設定すること

www.redbox.ne.jp. CNAME cdn1.redbox.ne.jp.

www.redbox.ne.jp. CNAME cdn2.redbox.ne.jp.

・CNAME以外のレコード(Aレコード)との同居

www.redbox.ne.jp. CNAME cdn1.redbox.ne.jp.

www.redbox.ne.jp. A   1.2.3.4

・MXレコードとの同居

redbox.ne.jp. CNAME cdn1.redbox.ne.jp.

redbox.ne.jp. MX    mail.redbox.ne.jp.

・NSレコードとの同居

redbox.ne.jp. CNAME cdn1.redbox.ne.jp.

redbox.ne.jp. NS    ns1.redbox.ne.jp.

Route53などのクラウド型DNSサービスの多くは、RFCでNGとなるレコードは登録できないようになっています。しかし、DNSサーバー(bind、djbdns、NSD等)で自社DNSサーバーを運用している場合は注意が必要です。それは、クラウド型DNSサービスのように警告がでるわけではなく、そのまま設定できてしまうソフトウェアもあるためRFCに従ったレコードを登録しないといけません。

自前DNSサーバーで間違った登録した際の影響

もし誤って自前DNSサーバーにCNAMEと他のレコードを一緒に設定してしまうと、 正しく名前解決できなくなります。 よって、ブラウザでアクセスできなかったりメールが届かないといった問題が起こるようになります。

先ほどのようにMXレコードと被っていると、メールが突然送れなくなりますし、NSレコードと被っていると全てのレコードが参照出来ず、そのドメインで設定されているサービスが全て名前解決できなくなるという最悪の事態も起こりえます。そのため、自前DNSサーバーでCNAMEを設定するときはしっかり既存のレコードに何が登録されているか確認することをお勧めします。

CNAMEレコードが利用できないApexドメインとは?

cdn dns

ここまではCNAMEレコードの制約とおさらいでした。ここからは本題のCNAME設定ができないApexドメインについてご紹介します。Apexドメイン(Naked Domainとも呼ばれる)とは、ホスト部が無いドメインのことを指します。

Apexドメインの例:redbox.ne.jp
(www.redbox.ne.jpはwwwが付与されているためApexドメインではありません。)

Zone Apex(ドメイン名そのもの)のDNS設定では、最低でもNS(ネームサーバ)レコードの指定が必要であるため、既にホスト部がないドメイン名のNSレコードが必ず存在していることになります。おそらく皆様のDNSサーバ-のレコードにも同じようにNSレコードが登録されているはずです。ApexドメインをCNAME設定しようとすると、既にNSレコードが存在するため、他のレコードと共存することができないという制約に引っかかり結果定義ができないということになります。

NSレコードが存在するためCNAME追加できない例

redbox.ne.jp  CNAME aaa.redbox.ne.jp

redbox.ne.jp  NS  ns.redbox.ne.jp

CNAMEの制約を回避するAliasレコード

大手AWSも従来までDNSサービス Route53にてApexドメインを利用しているユーザーは、AWSで提供しているALBやCloudFrontにCNAMEすることができませんでした。しかし、Route53はAliasレコードという機能を実装しCNAMEの制約を回避しています。

Aliasレコードとは

Aliasレコードとは、DNSサーバー内部ではCNAMEのような別名として扱い外部DNSから参照される際にAレコードとして見せるという機能です。

Aliasレコードの仕組み

CDNはALBやCloudFrontなど状況に応じて割り当てIPアドレスが変更になりますが、Aliasレコードを設定すると、Aliasレコードの先のFQDNに紐付いているIPアドレスを変化に応じて返すような動作となります。しかし、AliasレコードはあくまでDNSベンダー独自実装となり、AWSのように独自ドメインや外部サービスに対してApexドメインをAlias設定できない場合もあるため、事前にしっかり仕様を確認しておくことがとっても大事です。

ApexドメインでCDNを利用する方法

apex対応DNSサーバ

ApexドメインをCDNで利用したい場合、CNAMEは使えません。ではどうすれば利用できるようになるのかいくつか方法をご紹介します。

CNAME Flattening(Alias)機能つきDNSサービスの利用

現在CNAMEレコードで設定する外部サービスは以前よりかなり多くなってきました。また、ブランディングなどの目的でなるべくわかりやすく短いドメインを利用する目的からApexドメインが用いられるケースも多くみられます。このような背景から、Apexドメインに対応したDNSサービスというのも増えてきました。

一番現実的なのはCNAME Flattening対応DNSサービスに乗り換えてしまうことです。CNAME Flatteningとは以下のようにApexドメインに対してCNAMEレコード設定を行い、権威DNSがCNAMEで定義された先のIPアドレスを検索しそのIPアドレスをクライアントに応答します。これにより、通常他のレコードと同居できないというCNAMEの制約をDNSサーバーの振る舞いで回避する機能です。

・CNAME Flattingレコード例

redbox.ne.jp   CNAME aaa.redbox.ne.jp

aaa.redbox.ne.jp  A  1.2.3.4

※redbox.ne.jpでレコードを参照すると1.2.3.4が返却される

CNAME Flattening対応DNSベンダーは以下の通りです。

CNAME Flattening(Aliasレコード)対応ベンダー

・Gehirn DNS(サービス自体は米CloudFlareのDNS)

・dozens(国産自前DNS)サービス終了

・Route53(AWS内のサービスにしか利用できない制限あり。)

・DNSimple

・DNS Made Easy

CDNベンダーのDNSサーバーを利用

大手CDNベンダーではDNSサービスも同時に提供していることがあります。これは、CDNベンダーのGSLBに直接登録することでApexドメインの利用を実現していますが、結局のところDNS事業者を変更することには変わりありません。

ANAMEとは

ANAMEレコードとは

AliasレコードはDNSサーバー内部ではCNAMEのような扱いをし、外部からの応答はあくまでRFCに順序したAレコードのように振る舞う機能で技術でカバーしている感が否めません。そのためAWSのように、実は外部ドメインに対して利用できないなどの制約も存在します。そこで、近年ではANAME(Address-specific DNS aliases)というレコードの定義が進められています。

ANAMEレコードはCNAMEと同じような動きをしますが、Aliasレコードなどと異なりAまたはAAAAレコードへの問い合わせのみリダイレクトを行う動作をします。よって、ApexドメインでMXレコードやNSレコードなどがあったとしても、AやAAAAレコードがなければCNAMEのような振る舞いが正式に可能となります。

まとめ

CDNを利用する上でCNAMEレコードは切ってもきれない関係です。現在利用しているドメインがApexドメインの場合、まず利用中のDNSサーバーがApexドメインに対応しているかどうか確認しましょう。そして、Apexドメイン対応といってもDNSベンダー独自仕様の可能性もあるため外部ドメインに対して利用できるかどうかも合わせて確認する必要があります。

CDNの動作確認も完了し、いざ切り替えするタイミングで慌てないようCDN導入前にしっかりと現状を制約事項を確認しておくことが重要です。

ANAMEが正式策定された際には、AliasレコードのようにDNSベンダー独自仕様に振り回されること無く統一された取り決めが浸透するともっと使いやすく便利になってくるでしょう。

コンテンツ配信に特化したプロフェッショナルチーム

レッドボックスでは、決まった枠にとらわれないCDNサービス・高速化サービスを提供しており、トライアルの段階からお客様のご要望をお伺いし最適なカスタマイズを行っています。 そのため他社では出来なかったことが実現出来るかもしれません。 まずは、「こんなことはできるの??」といった簡単なご質問からお待ちしております!

レッドボックスに相談!
  • TwiiterTwiiter
  • FacebookFacebook
  • はてなブックマークはてなブックマーク
  • PocketPocket

最初のサイドバー

人気記事

まだデータがありません。

定額CDN

高品質×低価格
定額CDNサービス

お客様のご予算・ご要望をお伺いし、より効率がいい負荷分散システムを提供します。

カテゴリー一覧

  • CDN
  • CMS
  • Linux
  • Network
  • OSS
  • Vmware
  • Web高速化
  • WordPress
  • おすすめ記事
  • セキュリティ

キーワードから探す

1812j acl brotli CDN CDN仕組み centos chrome cisco Client HInts curl ESXi5 gzip HLS http http/2 https httpヘッダ HTTPヘッダー linux pat pppoe router server push Service Worker varyヘッダー Vmware vmware tools VOD WEB最速王 WEB高速化 zabbix キャッシュ コンテンツ圧縮 スクリプト デバッグ バックアップ バックエンド フロントエンド レスポンスタイム測定 仕組み 優勝 圧縮 画像リサイズ 調査方法 高速化

UPDATE新着投稿記事

HTTP/3 の特徴 HTTP/2とQUICの違い

6/29CDN, おすすめ記事

CDN開始前に確認すべきポイント一覧

CDN を導入する上で確認すべき注意点とは?

6/1CDN

オンライン動画をCDNで負荷分散 教育

オンライン学習動画をCDNで負荷分散(テレワーク対策)

4/19CDN

HTTP/2 Server Pushの仕組みとCDN

HTTP/2 Server Pushとは?(CDN サーバープッシュでWeb高速化)

11/10CDN, Web高速化

PICK UPおすすめ記事

  1. CDN
    CDNのキャッシュ設定 CDN の設定 キャッシュコントロールする手段 メリット・デメリット
    2017.10.23
  2. CDN
    CDNでHIT率を高める方法 CDN で高いHIT率にするチューニングとは
    2017.11.06
  3. CDN
    CDNとWAFによるセキュリティ対策 CDNとWAFが選ばれる理由(セキュリティ対策)
    2019.10.04
  4. CDN
    オンライン動画をCDNで負荷分散 教育 オンライン学習動画をCDNで負荷分散(テレワーク対策)
    2020.04.19
  • お問い合わせ
  • 運営会社

Footer

国産CDNのレッドボックス

レッドボックスはコンテンツ配信に特化したプロフェッショナルチームです。

お電話でもお気軽にお問い合わせください!
TEL.03-6431-0076
営業時間 10:00 – 18:00(平日)

Copyright © 2017–2025 REDBOX - All Rights Reserved

よりよいエクスペリエンスを提供するため、当ウェブサイトでは Cookie を使用しています。引き続き閲覧する場合、Cookie の使用を承諾したものとみなされます。OK