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

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

ただいまの
回答率

87.49%

DNSサーバで、自身のIPを自動登録しない方法

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 4,649

score 410

お世話になっております。
utunと申します。

現在CentOS6.4上で、samba4によるActive Directoryを構築しておりますが、
これに当たりDNSで一つ問題が出ております。
構築環境として、Eucalyptus上の仮想マシンを利用している関係で、
参照したいPC群がいるセグメントから見えるDNSサーバのIPと、
実際にDNSサーバが持っている物理IPが異なっています。

例)物理IP:172.24.0.2、外部からの参照用IP:192.168.0.2

この例の場合、DNSサーバのAレコードに「172.24.0.2」が自動的に登録されてしまうのですが、
これを永続的に消す、もしくはDNS参照時に参照されなくする事はできないでしょうか。

尚、DNSサーバはsamba4内臓のモノを利用しておりますが、BIND9等で解決可能な様であれば移行も検討しております。
その辺りについてもご存知の方がいらっしゃいましたら、ご教授願えないかと思っております。


お忙しい中とは存じますが、ご助力頂ければ幸いです。
宜しくお願い致します。

追記:試行済みの内容
既に試した事について記載が漏れておりました。
以下のコマンドにて、一度物理IPの削除、及び外部向けIPの追加を行っております。
# 自身の外部向けレコードを追加
samba-tool dns add localhost example.net host1 A 192.168.0.2 -Uadministrator
samba-tool dns add localhost example.net @ A 192.168.0.2  -Uadministrator
# 自身の内部向けレコード削除
samba-tool dns delete localhost example.net host1 A 172.24.0.2 -Uadministrator
samba-tool dns delete localhost example.net @ A 172.24.0.2 -Uadministrator
ただ、これを行っても10分ほど経つと自動で物理IPが再登録されてしまいます。

追記:構成
ざっくり構成を載せます。
Eucalyptusは、AWSのEC2と同じような動きをします。
この為、内部の仮想マシンで持っているPrivate IPと、外部から参照する際に利用するPublic IPをそれぞれ持ちますが、仮想マシンのNIC自体にPublic IPが振られるわけではなく、あくまでNATによって特定IPと紐づけている様な形になります。
![イメージ説明][WIDTH:600](7bc5d75e07bffed4f6b6865fa510005d.png)

追記:ソース調査
ソースの中を漁ってみた結果について、何かあれば追記していきます。

1、DNS updateについて
samba-4.1.16/source4/dsdb/dns/dns_update.c:644
service->nameupdate.interval    = lpcfg_parm_int(task->lp_ctx, NULL,
                              "dnsupdate", "name interval", 600); /* in seconds */
ここを見ると、どうもデフォルトで10分毎に更新処理が走っている様に見えます。
ただ、影響範囲が分からないので、単純に止めたり、デフォルト時間を10年とかにして問題無いかは現状不明です。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

+2

自己レスです。
# 自身の内部向けレコード削除
samba-tool dns delete localhost example.net host1 A 172.24.0.2 -Uadministrator
samba-tool dns delete localhost example.net @ A 172.24.0.2 -Uadministrator
結局のところ、上記のようにすると、内部的にエラー(※)が出ており、cron等で10分おきに消す事も考えておりましたが、断念する事になりました。
DNSサーバを別途立てれば行ける気がするので、次回はそういった方法を試してみようと思います。
Eucalyptus上で立てていたのは、おいおいAWS EC2に移植したいという野望があった為ですが、EC2(samba4)+Route53を試してみるのも面白そうですね。

※エラー
dnsserver: Invalid zone operation IsSigneddnsserver: Invalid zone operation IsSigneddnsserver: Invalid zone operation IsSigneddnsserver: Invalid zone operation IsSigneddnsserver: Invalid zone operation IsSigneddnsserver: Invalid zone operation IsSigned/usr/local/samba/sbin/samba_dnsupdate: ; TSIG error with server: tsig verify failure
/usr/local/samba/sbin/samba_dnsupdate: ; TSIG error with server: tsig verify failure
../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_OBJECT_NAME_NOT_FOUND

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

samba4で有れば、samba-toolコマンドでdnsレコードを編集可能です。

samba-tool dns update <サーバ> <ゾーン> <名前> <レコード> <旧> <新>

deleteした後、addする手段も有ります。
参考サイト 

dnsレコードが追加されるのはdomain provision実行時だけかと思いますので、再実行しない
限り値は保持されると思います。 
また、dnsがWindowsクライアントからドメインコントローラのアドレスを要求された際、応答するのはSRVレコードの設定アドレスとなるので、SRVレコードもチェックされた方が良いかと思います。
参考サイト

Eucalyptusの知識が無い点、不足が有りましたら済みません。Aレコードが書き換わる理由ですが、上位DNS(dns forwarder指定の)からの伝搬ということは無いでしょうか(可能性は低そうですが)。

他の手段ですが、smb.confのinterfaceに参照用IPを設定するのとbind interfaces onlyでインターフェイスに制限を掛ける手段が考えられます。この場合、sambaプロセスの起動前に参照用IPは活性化している必要が有ります。実施した経験は有りませんので参考情報として下さい。
smb.conf

また、samba4の利用目的はActiveDirectoryDomainControlerの新規構築でしょうか。既存のActiveDirectoryに参加させることが目的であれば、DNSの設定は不要となります。

DNS切り替えに関する説明サイトです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/02/18 15:11

    ご回答誠に有難うございます。
    試行した内容について記載が漏れており、大変申し訳ございません。
    samba-toolによる追加削除は、質問文に追記した通り、既に試しておりました。
    ただ、その後すぐに、自動で物理IPが追加されてしまいます。
    cron周りも見てみましたが、どうもその辺は関係ない様で、samba自身が定期チェックしているのだと思っております。

    ご提示頂いたupdateにつきましても、念のため試させて頂きましたが、同様に後から物理IPが自動登録されてしまう状況です。
    また、SRVレコードもチェックいたしましたが、こちらはFQDNにて登録されている為、IPどうこうとは関係無さそうでした。

    宜しくお願い致します。

    キャンセル

  • 2015/02/18 17:51

    こちらこそ、失礼いたしました。思い当たる点について、回答に追記致しました。

    キャンセル

  • 2015/02/18 18:55

    有難う御座います。

    dns forwarderにつきましては、とりあえず一旦8.8.8.8(GoogleのDNS)を利用している為、内部IPが外から伝播してきている可能性は無いと考えております。

    smb.confのinterfaceにつきまして、構成を追記させて頂きましたが、実際に内部にそのIPのNICが存在する訳ではないので、難しそうです。
    簡単に試してみた所、管理用のアクセス自体が出来なくなってしまいました。
    ただ、何かトリッキーなやり方は有りそうな気がするので、ここは追って調査致します。

    利用目的につきまして、「ActiveDirectoryDomainControlerの新規構築」です。
    samba4の情報も出揃って、落ち着いてきたと思いますので、これを機に作ってみようといった感じです。

    キャンセル

  • 2015/02/18 20:33

    参照用アドレスはバインドできないようですね。失礼いたしました。
    BIND9との連動方法についてリンクを載せましたが、事象が収まる確信が無いので参考情報として下さい。

    キャンセル

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

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る