TTLを24時間から5分に変更しました。レコードを変更する前に24時間待つ必要がありますか?


37

Rackspace ta専用サーバーのクラウドサーバーからアプリを移行しています。

クラウドサーバーから専用サーバーにデータをコピーするために、アプリケーションを5分間停止させたいので、データをコピーした後、古いサーバーにリクエストが送信されることは望ましくありません。

DNSレコードを新しいサーバーに向けたいのですが、TTLは24時間に設定されていました。300秒に変更しました。ドメインがデータを指す/コピーするIPを更新する前に、24時間待つ必要がありますか?


9
ところで、TTLを待つ場合でも、古いサーバーで構成を編集して、そこで更新が受け入れられないようにすることを強くお勧めします。すべてのDNSリゾルバーが実際に標準に従っているわけではありません。
ピーターグリーン

5
あるホスティングプロバイダーから別のプロバイダーにWebアプリケーションを移動するときに私がしたことは、sshポートフォワーディングを使用して、新しいサーバーに向けられた古いIPをまだ使用している訪問者を取得することでした。
カスペルド

回答:


58

キャッシュされたドメインレコードのコピーを持っている人は24時間更新する必要がないので、もしあなたが5分間の空き時間がないように意図しているなら、未処理のキャッシュがすべて更新されて生きなくなるまで待つべきです5分以上。


23
... 24時間since they last cached it。これは、1〜86399秒のいずれかです。
user9517サポートGoFundMonica

6
@Iain最悪の事態を想定する必要があります。なぜなら、それらの一部またはすべてが、変更の直前にそれをキャッシュしていた可能性があるからです。
バーマー

6
@Barmar何も仮定しないでください。多数のISPがTTLを単純に無視しています。
user9517はGoFundMonica

13
@Iain私はアカマイで働いていました。アカ​​マイは、負荷分散のために短いTTL(60秒など)を多用するCDNです。調査を行ったところ、ほとんどのISPがTTLに準拠していたことがわかりました。
バーマー

1
私はウェブホスティング会社で働いていますが、私たちの経験では、TTLが低い場合は高い場合よりも無視される可能性が高くなります。
ヘンリック-モニカを傷つけるのをやめる

39

それは(潜在的に)さらに悪いことです- 権限のあるサーバーがすべて更新されてから24時間待つ必要があります。更新が発生する通常の方法は、プライマリサーバーのゾーンを変更し、次にセカンダリがそれぞれプライマリサーバーでチェックインするときに新しいゾーンデータを転送することです。チェックインの頻度は、ゾーンのSOAレコードの更新間隔によって制御されます。したがって、最悪の場合、ゾーンの更新間隔+レコードのTTLを待つ必要があります。

また、実際のレコードの変更を待つことあります。セカンダリが6時間ごとにのみ更新される場合、5分間のTTLはあまり役に立ちません。そのため、ゾーンの更新間隔も、クイック変更を可能にしたい期間だけ短くする必要があります。

気を付けてください、これはあなたの設定に適用されないかもしれません。すべての権限のあるサーバーを一緒に更新するシステムを使用している場合、これは問題ではありません(また、RackspaceのDNSセットアップについてはよく知りません)。ただし、24時間のカウントダウンを開始する前に、すべての権限のあるサーバーに個別に照会してdig server.example.com @secondaryserver.example.com)新しいTTLがあることを確認することをお勧めします。


1
これは受け入れられた答えであるはずです。
-dotancohen

4
DNS通知プロトコルを無視しているようです。このプロトコルは、マスターが更新された直後にスレーブサーバーを更新するように指示します。ほとんどのDNSサーバーはこの機能を使用します。
バーマー

@Barmar:それは本当ですが、同時に、マスターはプロバイダーによっては更新に時間がかかる場合があります。(たとえば、一部のプロバイダーは、5分または15分ごとにデータベースからゾーンを再構築するだけですが、最新のプロバイダーは即座にゾーンを再構築します。)
grawity

1
私のコメントは、最近ではほとんど廃止されている更新間隔を待つ問題のみを扱っていました。独自のマスターを操作しない限り、マスターが更新されるのを待つのは本当です。しかし、すべてが安全に更新できるようになる正確な時間に対処する必要はないと思います。5〜15分余分に変更しても、大きな違いはありません。元の質問のポイントは、彼らが丸一日待つ必要があるかどうかです。
バーマー

1
@GordonDavisson:信頼できない場合–確認してください。dig +nssearch example.comすべてのサーバーのSOAをすばやく比較するための便利なツールです。nsdiffは実際の違いを示します。
荒廃

23

はい、お待ちください。もちろん、だれもがTTLを尊重するという保証はありません。


6
+1がすべてTTLに準拠しているわけではないため、DNSの変更を行ってから1週間後にストラグラーが登場するのを見てきました。過去に処理した1つの方法は、新しい一意の名前を新しいサイトのエイリアスとして設定し、古いサイトからのリダイレクトを使用して、www.mycompanyのように古いドメインから新しいドメインにユーザーをリダイレクトすることでした.COM - > newsite.mycompany.com
ジョニー

はい。ただし、多くの人は新しい名前を使用しなければならないという考えを正当に軽deします。名前はブランドです。また、これはHTTPでのみ機能し、他にはほとんど機能しません。
スヴェン

8
別のオプションは、古いサーバーを新しいサーバーへのリバースプロキシとして構成することです。その後、スイッチを入れてから1週間ほど放置し、トラフィックが通過しないときにオフにすることができます。
bdsl

1
TTLに準拠したDNSサーバーを適切に動作しているユーザーは、新しいドメインを参照できません。そして、それはHTTP(S)で「のみ」動作しますが、HTTPはインターネット上でかなり一般的なプロトコルであることがわかると思います。リバースプロキシのセットアップに関するbdslの提案はさらに優れていますが、より多くの作業が必要です
ジョニー

@Johnny新しいドメインの問題は、ユーザーがそのドメインをブックマークするリスクを負うことです。上記の新しいドメインをいつまでもアクセス可能なままにする予定がない限り。
ボブ

5

さまざまなコメントと回答をまとめると、完全な手順は次のようになります。

  1. 権限のあるサーバーをタイムリーに更新できることを確認してください。
  2. TTLを減らします。
  3. すべての権限のあるサーバーに新しいttlがあることを確認します。
  4. 古いTTLでキャッシュされた値が(ほとんど)キャッシュから削除されるように、古いTTLを待ちます(一部のキャッシュは標準を無視する可能性があるため、すべてのキャッシュから削除されることを保証できません)。
  5. 古いサーバー上のサイトを読み取り専用モードにします(または、それができない場合は、「メンテナンス中」ページに置き換えます)。
  6. 古いサーバーから新しいサーバーへの最終コピーを実行します(新しいサーバーに読み取り専用サイトが作成されます)。
  7. DNSレコードを変更します。
  8. すべての権限のあるサーバーに新しいDNSレコードがあることを確認してください。
  9. 新しいttlを待ちます(一部のユーザーがサイトに投稿できるようにし、他のユーザーがこれらの投稿の結果を表示しないようにする必要がない場合は、この手順をスキップできます)。
  10. 新しいサーバー上のサイトを読み取り/書き込みモードにします。
  11. 古いサーバーに、古い読み取り専用コピーであり、ユーザーがDNSを破損した可能性が高いことを通知します。
  12. レコードが非準拠DNSキャッシュからドロップされるまでしばらく待ちます。
  13. 古いサーバーを廃止します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.