質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

2回答

10811閲覧

DNSラウンドロビン。サーバーが502を返すときは冗長化にならない?

rik

総合スコア1151

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2015/07/10 18:27

DNSラウンドロビンが正常に設定できているとします。
1台のサーバーに障害発生して無反応ではなく502 BadGateway を返す場合はどうなりますか?

無反応ならクライアント側は次のIPアドレスを探しに行くのでしょうけど、
502であろうと反応がある場合はそのIPアドレスを使い続けるという事ですよね?
こういったケースの場合は冗長化にならないと理解していいでしょうか?
この場合、502を返すサーバーを停止させれば無反応になりますので手動で停止させるという
手段もありうるという事でしょうか?

また、TTLを短めにするという説明が多くありますが具体的には何分ぐらいにするのか、一定の法則はありますでしょうか?
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

502であろうと反応がある場合はそのIPアドレスを使い続けるという事ですよね?
こういったケースの場合は冗長化にならないと理解していいでしょうか?

そうです。

この場合、502を返すサーバーを停止させれば無反応になりますので手動で停止させるという
手段もありうるという事でしょうか?

まずは障害のあったサーバをAレコードからいったん消すのが良いと思います。復旧させたときにいきなり本番のクエリを受け取ってしまうからです。そのうえで、停止するなり障害原因を探るなりしましょう。復旧を確認したら、再度Aレコードに追加するのを忘れずに。
(もちろん、DNSのレンスポンスから消えるまでTTLの時間はかかってしまいます)

また、TTLを短めにするという説明が多くありますが具体的には何分ぐらいにするのか、一定の法則はありますでしょうか?

負荷分散を重視しているところは300秒が多いようです(youtubeやyahooなど)。twitter.comなんかは30秒です。これら大手は死活監視(ヘルスチェック)をちゃんとやっているから短くできるので、普通はそこまで短くする必要はないでしょう。例えばteratail.comは3600秒です。主観ですけども30分~120分程度が普通かなぁと思います。

投稿2015/07/10 21:55

sharow

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rik

2015/07/10 23:57

ありがとうございます。知りたい内容をズバリご回答いただきました。
guest

0

すでに解決済みとなっておりますが、
冗長と負荷分散が混ざっておられるようでしたので、

単純にDNSサーバのラウンドロビンだけを使用する前提で、
回答をさせて頂きます。

無反応ならクライアント側は次のIPアドレスを探しに行くのでしょうけど、

一般的なOSとブラウザを使用した場合、探しに行きません。
接続できないで終了します。

接続できるように見えるのは、
TTLが短くしてあり、もう一度ユーザーが接続をしようとしたときに
DNSサーバから別のIPアドレスが返ってくるからです。

その際に同じIP(繋がらない)がDNSサーバから返ってきた場合は、
当然のことながら、接続できません。

また、クライアントOS側もDNSキャッシュをもつので、
毎回DNSサーバに問い合わせるわけではありません。

どれぐらいキャッシュを持つのかは調べたことはありませんが、
数分ぐらいは持っているのではないでしょうか。

502であろうと反応がある場合はそのIPアドレスを使い続けるという事ですよね?
こういったケースの場合は冗長化にならないと理解していいでしょうか?
この場合、502を返すサーバーを停止させれば無反応になりますので手動で停止させるという
手段もありうるという事でしょうか?

上記のように、単純なDNSサーバのラウンドロビンだけでは、
負荷分散はできても冗長化はできません。

接続先のサーバの状態にかかわらず、
文字通り順番にIPアドレスを回答するだけです。

また、TTLを短めにするという説明が多くありますが具体的には何分ぐらいにするのか、一定の法則はありますでしょうか?

ラウンドロビンを使うときの法則などは特になく、
管理者の人が適当に決めてるのが実情で、
特に要件がなければ、1分や5分にしたりします。

大手の会社さんでDNSサーバのラウンドロビンを使っているのは、
回線を冗長したり、複数のデータセンターを使用する場合などではないでしょうか

その場合は、ちゃんと冗長化できるように、
サーバの生死確認とDNSサーバを連動させる機能の付いた機器を導入したりします。

私は、単純にサーバの負荷分散と冗長化を行う際は、
DNSのラウンドロビンを使わず、リバースプロキシ型ロードバランサーを使います。
そうすれば貴重なグローバルIPアドレスが一つで済むので。

「Linux Virtual Server」と「Keepalived」で作る冗長化ロードバランサ
Nginxのロードバランサー構築

投稿2015/07/16 07:41

norinori

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rik

2015/07/16 09:29

ありがとうございます。 リバースプロキシ型ロードバランサ、Nginxロードバランサなどおぼろげに言葉は見たりしておりましたが、まだ質問できる程の知識も無く、もう少し勉強してから質問させていただければと思います。今回の目的は負荷分散ではなく冗長化です。負荷分散の必要性は現在のところ全くありません。 Nginxが入っているサーバーを数台用意できるならば容易に冗長化可能なのか、もう少し調べてみますがもしこんな質問でお答えいただけるなら大変うれしいです。
norinori

2015/07/16 13:25 編集

Nginxは勉強中なので、私のコメントは かなり正確性はありませんが、 ロードバランサー ーーー WEBサーバ ーーー DB という構成で NginxをWEBサーバとして使うのであれば セッション管理やデータの整合性は、 動かすプログラム側でしていくので、 単純なものであれば何も問題なく冗長化できるはずです。 ロードバランサーとして使うのであれば、 前回の投稿でリンクさせて頂いた 【Nginxのロードバランサー構築 】だけだと 複数のサーバ(Nginx)を使えません。 クライアントが接続する際のグローバルIPアドレスが複数になってしまい ご質問の主題であるDNSのラウンドロビンを使うこととなり、 元の木阿弥です。 そのため通常は、KeepalivedかPacemakerを使って、 一つグローバルIPアドレスを複数台のサーバで使うようしていきます。 Keepalivedは、前回の投稿でリンクさせて頂いた 【「Linux Virtual Server」と「Keepalived」で作る冗長化ロードバランサ 】に そのあたりの概要や設定内容が詳しく掲載されておりますので、 参考になるかと思います。 高いレベルでの冗長をする場合は、DBの冗長まで考えないと DBがこけると全てが無駄ってこともあります。 DBの冗長は、PacemakerとDRBDなどを組み合わせてました。 Apacheの冗長化の内容ですが、下記サイトが参考になるかと思います。 DRBD+Pacemaker+Corosyncを利用したWEBサーバの冗長化 http://www.oss-d.net/drbd-pacemaker-corosync Linux-HA Japan プロジェクトをご覧になると 冗長化についての情報は結構手に入ると思います。 http://linux-ha.osdn.jp/wp/
rik

2015/07/16 14:29

ありがとうございます。大変詳しいご説明を頂き感謝いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問