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

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

ただいまの
回答率

90.61%

  • CentOS

    2642questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • サーバ

    757questions

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

  • DNS

    273questions

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

bind9.8でdns_request_createvia: failed address not availableエラー

受付中

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 1,037

Kokada

score 3

よろしくお願いします。 

CentOS5で構築していたMasterDNS(bind9.3)の予防交換用として
CentOS6(bind9.8)上にMasterDNSを構築しています。

取り急ぎ、masterとなるzone情報はそのまま複製、
bindの設定自体もbind9.3系で使用していたnamed.confに
bind9.8系で新たに追加となったdnssec関連のパラメータをoption{}内に
記述した状態で起動したところ、ローカルでは名前解決ができ、
動作上問題が無いと思っていたのですが、slave指定したDNSには
ログも無く、ZONE転送ができていませんでした。

CentOS6のMasterDNSのログを確認したところ
# notify: debug 3: zone <DOMAIN>/IN: sending notify to <SlaveDNSのIP>#53
と出力されていましたが、
tcpdumpで確認したところ、slave側へのnotifyがパケットとして出力していない状況です。

また
# dns_request_createvia: failed address not available
というログが直後に出力されており、このログの意味するところがわかりません。
# Google検索では”transfer-sourceパラメータの誤り”が引っかかりましたが、”transfer-source”は指定していません。

同様の事象を経験したなど、なにかご存知の方がいれば
情報を頂けませんでしょうか?

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

+1

"dns_request_createvia: failed address not available" が master 側で出ているとすると、Nofity を送信する際、送信元IPアドレスに bind() できないためだと思います。
master:named.conf で notify-source を設定していないでしょうか。
notify-source を設定している場合、自身のIPアドレスになっていますでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/05/19 21:03

    早速回答頂き、ありがとうございます。

    notify-sourceについては、設定していません。
    試しに設定してみたのですが、いずれも事象は同じでした。

    named.confですが、master指定の部分は以下記述です。
    Bind9.8の場合、他に何かパラメータを追記する必要など
    あるのでしょうか?

    -----------------------------------
    zone "<Domain>" IN {
    type master;
    file "<ZoneFilename>";
    notify yes;
    also-notify {
    <SlaveのIP>;
    };
    // notify-source: <本サーバのIP>;
    };
    -----------------------------------

    キャンセル

  • 2015/05/20 12:39

    bind-9.8 で特にパラメータを追加する必要はないと思います。

    IPアドレスではないとすると、空きポートが無い?
    1024-65535/UDP の中からランダムに(64回?)選択して bind() に失敗している?
    ちょっと考えにくいですが。

    strace でシステムコールをトレースできますでしょうか。

    # strace -p (namedのPID) -f -e trace=bind > strace.log 2>&1

    ログが大量に出るため、"-e trace=bind" で bind()システムコールに絞っています。
    strace を実行中に Notify を出すようにし、"dns_request_createvia: failed address not available" のタイミングで strace のログに EADDRNOTAVAIL のエラーが出ていないかどうか。

    キャンセル

  • 2015/05/21 23:25

    再び情報頂きありがとうございます。
    連絡いただいたコマンドでトレースしてみましたので
    以下報告します。

    1) namedのPIDを調べる(PID=17198)
    2) <ZoneFilename>内のSerial値をカウントアップ
    3) 別コンソールで
    # strace -p 17198 -f -e trace=bind > strace.log 2>&1
    を実行
    4) PIDを変更しないよう
      # rndc reload
    実施。

    -- 結果 ---
    ・トレースログの内容は以下の通りです。 

    # cat strace.log
    Process 17198 attached with 4 threads - interrupt to quit
    [pid 17199] bind(7, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
    Process 17198 detached
    Process 17199 detached
    Process 17200 detached
    Process 17201 detached
    #

    キャンセル

  • 2015/05/22 01:47

    あれ? 以下のようなログが出力されるされると思ったのですが、当てが外れました。

    bind(数字, {sa_family=AF_INET, sin_port=htons(送信元ポート), sin_addr=inet_addr("送信元IP")}, 数字) = -1 EADDRNOTAVAIL (Cannot assign requested address)

    "-e trace=bind" を付けない場合はどうでしょうか。EADDRNOTAVAIL が出ませんでしょうか。connect() で出るなら、kernel のバグ(https://access.redhat.com/ja/solutions/1240703)かもしれません。2.6.32-431.el6 以降にアップデートせよ、とのことです。

    EADDRNOTAVAIL が出ない場合、システムコールではなく、bind 内部のロジックで "return (ISC_R_ADDRNOTAVAIL)" となっている箇所かもしれません。lib/dns/dispatch.c を見ているのですが、デバッグログを出すコードが無く、調査は困難だと思います。

    キャンセル

  • 2015/05/25 14:14

    コメントありがとうございます。

    "-e trace=bind" スイッチを付与しない状態で実行しましたが
    残念ながら”EADDRNOTAVAIL ”は出力されませんでした。

    別にテストのzone定義をしてみても、
    また、別のテストサーバ上にある”bind9.7”で同じ定義を実行してみても、
    同じように"dns_request_createvia: failed address not available"が
    出力されることもあり、Option部分での定義漏れがあるのかとも
    指摘を受けたのですが..。

    いずれにせよ、これからbind9.3系でDNSを作成するのは
    できれば避けたいと思っており、もう少し調べたいと思います。

    もし、何か引っかかる点などあれば、ご指摘いただけると幸いです。

    キャンセル

  • 2015/05/25 14:48

    EADDRNOTAVAIL 出ませんでしたか。ちょっとわかりません。
    "ss -uan" や "netstat -uan" で UDP ポートがたくさん使われているということはありませんでしょうか。

    キャンセル

  • 2015/05/26 22:05

    UDPポート自体はListenが10未満です。

    あと、当然といえば当然なのですが
    also-nitify{}; 部分をコメントアウトすると
    "dns_request_createvia: failed address not available"は出力されません。

    # もちろんslave側へのパケットも出力されませんが。

    キャンセル

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

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

関連した質問

  • 解決済

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

    お世話になっております。 utunと申します。 現在CentOS6.4上で、samba4によるActive Directoryを構築しておりますが、 これに当たりDNSで一つ問題

  • 解決済

    サーバー管理ツール「Ajenti」のインストール方法について教えて下さい。

    AjentiをCentOS7にインストールしたいのですがうまく設定できず...困ってます。 http://ajenti.org/ 使用したコマンドなど。 ○ Ajentiのイ

  • 解決済

    1つの仮想サーバ上のSQUIDでの複数IP運用について

    いつもお世話になっております。 現在、GMO ALTUSにて1つの仮想サーバにSQUIDを導入して プロキシサーバとして稼働させています。 CentOS 6.4 S

  • 解決済

    CentOS7 Firewalld について

    前提・実現したいこと 現在、サーバ更改に伴い、CentOS6から7への更改を検討しております。 NW機器のFWがない環境のため、現在iptablesで行っている フィルタリン

  • 解決済

    CentOS7.2のfirewallの設定方法について

    前提・実現したいこと ApacheをインストールしたCentOS7.2の環境で、以下のような設定を行いたいです。 ・sshはアドレスA、Bから可能 ・HTTP接続はアドレ

  • 解決済

    DNSのエラーメッセージ

    vagrantを使って仮想環境でcentos7.2を立ち上げてbindをインストールしました。 name.confの中にincludeを書いて、namedの中でname.conf

  • 解決済

    nginxにて起動が失敗します

    前提・実現したいこと 現在、マストドンを自分のサーバーに作成しようとしています。 systemctl start nginx にて以下のエラーメッセージが発生しました

  • 解決済

    MACアドレスによるsshアクセス権限

    Centos7 のサーバで、接続元のPCのMACアドレスによるsshアクセス権限は可能なのでしょうか? 単純な質問で申し訳ありませんが、その場合の設定方法をご教授いただけると助かり

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

  • CentOS

    2642questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • サーバ

    757questions

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

  • DNS

    273questions

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