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

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

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

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

DNS

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

サーバ

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

Q&A

1回答

4219閲覧

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

Kokada

総合スコア10

CentOS

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

DNS

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

サーバ

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

0グッド

1クリップ

投稿2015/05/18 13:14

よろしくお願いします。

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”は指定していません。

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

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

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

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

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

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

guest

回答1

0

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

投稿2015/05/18 16:27

TaichiYanagiya

総合スコア12146

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

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

Kokada

2015/05/19 12:03

早速回答頂き、ありがとうございます。 notify-sourceについては、設定していません。 試しに設定してみたのですが、いずれも事象は同じでした。 named.confですが、master指定の部分は以下記述です。 Bind9.8の場合、他に何かパラメータを追記する必要など あるのでしょうか? ----------------------------------- zone "<Domain>" IN { type master; file "<ZoneFilename>"; notify yes; also-notify { <SlaveのIP>; }; // notify-source: <本サーバのIP>; }; -----------------------------------
TaichiYanagiya

2015/05/20 03: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 のエラーが出ていないかどうか。
Kokada

2015/05/21 14: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 #
TaichiYanagiya

2015/05/21 16: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 を見ているのですが、デバッグログを出すコードが無く、調査は困難だと思います。
Kokada

2015/05/25 05:14

コメントありがとうございます。 "-e trace=bind" スイッチを付与しない状態で実行しましたが 残念ながら”EADDRNOTAVAIL ”は出力されませんでした。 別にテストのzone定義をしてみても、 また、別のテストサーバ上にある”bind9.7”で同じ定義を実行してみても、 同じように"dns_request_createvia: failed address not available"が 出力されることもあり、Option部分での定義漏れがあるのかとも 指摘を受けたのですが..。 いずれにせよ、これからbind9.3系でDNSを作成するのは できれば避けたいと思っており、もう少し調べたいと思います。 もし、何か引っかかる点などあれば、ご指摘いただけると幸いです。
TaichiYanagiya

2015/05/25 05:48

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

2015/05/26 13:05

UDPポート自体はListenが10未満です。 あと、当然といえば当然なのですが also-nitify{}; 部分をコメントアウトすると "dns_request_createvia: failed address not available"は出力されません。 # もちろんslave側へのパケットも出力されませんが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問