LoginSignup
1
1

More than 5 years have passed since last update.

エラー時の備えその3(DNSキャッシュ機能)

Last updated at Posted at 2015-12-24

DNSキャッシュ機能

概要

DNSサーバの情報をキャッシュとしてROMAインスタンスが保存しておく機能
インスタンスがIPアドレスではなくHostName等で作成されている場合の為の機能

  • ( romaA_10001みたいな) DNS_cash.png

動き

なんらかの理由でDNSサーバとのアクセスが出来なくなった場合、IPアドレスでもFQDNでもない名前のinstanceの場合、ROMAが別サーバにあるinstanceにアクセスできなくなってしまう

これを防ぐため、ROMA起動時にDNSの情報をキャッシュとして各instanceに保持し、このデータを基に通信を行う

不足の事態でDNSサーバがダウンしてもROMAのinstance間の通信は担保される!!

使い方

configで設定する方法

DNS_CAHINGの値をtrueにする

config.rb
.
.
# lookup hostname to the nameserver everytime or only first time.
# if set true, the result of lookup will keep.
DNS_CACHING = true
.
.

動的変更コマンド

ROMA起動後にROMAを止めずに変更したい場合は、以下のコマンドを実行

> switch_dns_caching [on|off]

Example

条件

  • IPアドレスでもFQDNでもない名前でインスタンスを作成する (今回は以下のように作成)
  • インスタンス
    • vm1_20001
    • vm1_20002
    • vm2_20001
    • vm2_20002
  • サーバ
    • vm1( 192.168.223.2 )
    • vm1( 192.168.223.3 )
  • /etc/hosts 以下のように追記
192.168.223.2 vm1
192.168.223.3 vm2

確認

DNSキャッシュ機能offの場合

vm1サーバにて
# vi /etc/hosts
  ###以下の行を削除する
  192.168.223.3 vm2

$ telnet vm1 20001
> balse
  {"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}

自サーバ内のvm1のサーバはbalse(クラスター終了コマンド)を受け取っているが、vm2は送り先がわからずnilになっている

DNSキャッシュ機能onの場合

vm1サーバにて
# vi /etc/hosts
  ###以下の行を削除する
  192.168.223.3 vm2

$ telnet vm1 20001
> balse
  {"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}

/etc/hostsを削除したが、instance自体にDNS情報を保存しているのでその情報に基づいてvm2にも正常にbalseコマンドを送ることができた!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1