人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

複数のドメインをvaluedomainにて取得し、バーチャルドメインとしてひとつのサーバに割り当てています。

サーバに障害が起こったときに、ddns機能を通じてバックアップサーバにDNS情報を書き換えようと思い、
CNAMEを使うところまでは教えてもらったのですが(こうすれば複数ドメインのDNS書き換えをしなくても、CNAMEした先のAレコード(この場合、host.example-b.com)を書き換えるだけでバックアップサーバへ飛ぶ設定がいけるようなので)、@example.comなど、MXレコードを設定している場合、

そのexample.comをCNAMEで設定してしまうと、MXレコードがCNAMEした先のドメインhost.example-b.comのMXレコードを見に行くようです。
どのように設定すればいいのでしょうか。
もしくは大量のドメインを簡単にddnsで変更出来る方法などあればいいのですが。

現在の設定例内容です。(valuedomainでの設定)

example.com
------
cname www host.example-b.com
cname @ host.example-b.com
a mail yyy.yyy.yyy.yyy
mx mail.example.com. 10
txt @ v=spf1 mx ~all
------
これだとメールの配送がうまくいきませんでした。

●質問者: chirubo
●カテゴリ:コンピュータ インターネット
✍キーワード:ALL DDNS DNS example.com MX
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● leona_simasima
●27ポイント

これだとメールの配送がうまくいきませんでした。

メーラのエラーメッセージとdig(あるいはnslookup)の結果を貼って貰えると,回答がつきやすいと思います.

@IT:DNS Tips:digコマンドとnslookupコマンドの違いとは


とりあえず,出された情報で気になる点がいくつかあります.

MXレコードにCNAMEを指定してはいけないことに注意してください.(リンク先はMicrosoftのサイトですが,Windows依存の問題ではありません.)


value-domainではHTTP get/postリクエストにより,ダイナミックDNS設定が出来ます

ので,スクリプトが書ければ,DiCE等より柔軟に機能が実現できると思います.

環境がないので検証できませんが,だいたいこんな感じでしょうか.ホスト名に「*」が指定できないとか,エラーチェックをしてないとか色々問題はありますが.

#!/bin/sh
DYNURI='http://dyn.value-domain.com/cgi-bin/dyn.fcg?'
MYDOMAIN='example.com'
MYPASS='password_for_ddns_change'
MYHOSTS='www www2 mail'
#IPADDR='xxx.yyy.zzz.aaa'
IPADDR="`wget -O - 'http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip' 2>/dev/null`"


for h in ${MYHOSTS}; do
 URI="'${DYNURI}d=${MYDOMAIN}&p=${MYPASS}&i=${IPADDR}h=${h}'"
 wget "${URI}"
done
◎質問者からの返答

ありがとうございます。

CNAMEでの.は試してみます。

またhost.example-b.comのレコード例も書いておきます。

(青枠の書き方がわからない;)

example-b.com

----

a www xxx.xxx.xxx.xxx

a @ xxx.xxx.xxx.xxx

a host xxx.xxx.xxx.xxx

a mail zzz.zzz.zzz.zzz

mx mail.example-b.com. 10

txt @ v=spf1 mx ~all

-----

またdigの結果なのですが、文字数制限に引っかかってしまいましたので、張れていませんでした。

こちらです。

dig example.com mx

-----

; <<>> DiG 9.2.4 <<>> example.com mx

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42549

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:

;example.com. IN MX

;; ANSWER SECTION:

example.com. 56 IN CNAME host.example-b.com.

host.example-b.com. 65 IN MX 20 mail.example-b.com.

;; ADDITIONAL SECTION:

mail.example-b.com. 65 IN A zzz.zzz.zzz.zzz

-----


2 ● leona_simasima
●27ポイント

以前の関連質問を拝見しました.ほとんど同じ事が答えられていますね.

サーバA(127.127.127.127/32),サーバB(128.128.128.128/32)で同じサービスが動いている.サーバAが落ちたら,サーバBをバックアップとして使う・・・ということですよね.

なぜここで example.com と example-b.com 2つのドメインが必要になるのかよく分からないので,できるだけ具体的に説明して貰えないでしょうか.

私が今理解しているのは,次のような形です.

mail A 127.127.127.127

www A 127.127.127.127

www2 CNAME www

blog CNAME www

@ MX mail.example.com. 10

mail A 128.128.128.128

www A 128.128.128.128

www2 CNAME www

blog CNAME www

@ MX mail.example.com. 10


※前回の回答のシェルスクリプト13行目で,「&」とすべきところが「&」に変換されてしまっています.適当に読み直して下さい.

※青枠については,人力検索はてなのヘルプ - 人力検索はてなで利用可能なはてな記法一覧内の,「引用記法」,「pre記法」,「スーパーpre記法」をご覧下さい.

◎質問者からの返答

2つのドメインが必要な理由ですが、

ひとつのマスターサーバ(host.example-b.com)にバーチャルドメインの形でドメイン(example.comなど)を複数個設定しております。

もしhost.example-b.comが落ちた場合に、host.example-b.comのAレコードをバックアップサーバ用のIP(例えば、128.128.128.128)に設定をすれば、

複数個のバーチャルドメイン、一つ一つをDDNSで切り替える必要が無くなるのではという形です。

なので、イメージはこのような形になります。


マスターサーバ(example-b.com)のDNS設定

host A 127.127.127.127

www A 127.127.127.127

mail A 130.130.130.130

@ MX mail.example-b.com. 10


example.com のDNS設定(同様の形が複数個あります)

www CNAME host.example-b.com.

@ CNAME host.example-b.com.

mail A 130.130.130.130

@ MX mail.example.com. 10


host.example-b.comサーバが落ちたときの example-b.com のDNS設定

host A 128.128.128.128

www A 128.128.128.128 <-これはどちらでもいいですが。

mail A 130.130.130.130

@ MX mail.example-b.com. 10


>※青枠については,人力検索はてなのヘルプ - 人力検索はてなで利用可能なはてな記法一覧内の,「引用記法」,「pre記法」,「スーパーpre記法」をご覧下さい.

ありがとうございます。

シェルスクリプトの場合ですと、MYDOMAIN='example.com'

の部分に複数個のDDNSに対応するドメインを列挙をしないといけないので、管理の上でどうしていけばいいのかなと考えています。


3 ● leona_simasima
●26ポイント

なるほど.ようやく理解しました.質問時の文字数制限は辛いですね.

簡単のため,例示ドメイン名を変えます.

役割 IPアドレス(固定)
wwwマスタサーバ 127.127.127.127
wwwバックアップサーバ 128.128.128.128
mailマスタサーバ 130.130.130.130
mailバックアップサーバ 131.131.131.131
host A 127.127.127.127
www A 127.127.127.127
mail A 130.130.130.130
@ MX mail.master.com. 10
@ CNAME host.master.com.
@ MX mail.master.com. 10
@ CNAME host.master.com.
@ MX mail.master.com. 10
host A 128.128.128.128
www A 128.128.128.128
mail A 131.131.131.131
@ MX mail.master.com. 10

このような設定でいいのではないでしょうか.これなら,MXレコードはCNAMEレコードを参照しないし,DNS書き換えはmaster.comに対してだけでOKです.

DNS書き換えは,前述のスクリプトなり,DiCEなりで行います.


※前回の回答のシェルスクリプト13行目で,「&」とすべきところが「&」に変換されてしまっています.適当に読み直して下さい.

意味が分かりませんね.

「&」が「&amp;」に変換されてしまっていますので,13行目の正しい記述は次の通りです.(&を半角に.)

URI="'${DYNURI}d=${MYDOMAIN}&p=${MYPASS}&i=${IPADDR}&h=${h}'"

・・・ということで規定回数の回答をしちゃいました.問題があるようでしたら,コメント欄を空けて頂ければ,分かる範囲で対応させて頂きます.

◎質問者からの返答

回答数上限を変更できるようでしたので、ふやしておきました^^;

>virtual1.com のDNS

@ CNAME host.master.com.

@ MX mail.master.com. 10

こちらの形だと、MXレコードごと委譲するような形になっており、メールサーバの設定(outlookなどでのpop/smtp設定)はmail.master.comとなるような気がしますが、virtual1.comでのメール設定をする方法はありませんでしょうか?


virtual1.comなどを置いているWEBサーバはひとつ(この場合master.com)なのですが、メールサーバの方は少しですが違うサーバに飛ばしている場合があるので、対処できないかなと思いまして。

この形だとWEBサーバ、メールサーバ共に同一のmaster.comを見に行くようになっておりますので。

しかし、なかなか難しいような気がしてきました;

>「&」が「&amp;」に変換されてしまっていますので,13行目の正しい記述は次の通りです.(&を半角に.)

わざわざありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ