• ベストアンサー

ネームサーバーについて

自宅でlinux(RedHat7.2)を使用してFTP、sendamilでサーバー立ち上げています。急に最近アクセスが遅くなったので原因を調べてみたところ、 サーバーのIPが192.168.0.10に設定しているとして、 192.168.0.2のマシンからFTPでサーバーにIPアドレス(192.168.0.10)でアクセスすると、 接続したと同時になぜかネームサーバーに接続していることがわかりました。 それがプライベートアドレスなのに、解決しようとし解決できないためそのタイムラグでアクセスが遅くなっていると考えているのですが、これは正しい考え方なのでしょうか? その場合どうすれば解決するのでしょうか? ネームサーバはプロバイダにあるもので、resolve.confに設定してあるだけで、そのサーバー自体でnamedは動かしていません。

質問者が選んだベストアンサー

  • ベストアンサー
  • ken2
  • ベストアンサー率36% (86/235)
回答No.7

ken2です DNSクライアントは、RedhatやSolarisは、/etc/nsswitch.confの記述にしたがって名前解決の順序を決めています。 hosts: files nisplus nis dns こんな感じです。この場合hostsの解決は、/etc/hosts→NIS Plus→NIS→DNSという感じになります。BSD系は、/etc/hosts.confだったと思います。 /etc/resolv.confで指定されているDNSサーバーは、クライアントからのリクエストに対して自分の持っているゾーン情報にあるものには、そこで答えます。逆引きなども192.168.0.2に対して0.168.192.in-addr.arp.のゾーン情報をもっていれば2.168.192.in-addr.arp.のホスト情報があるのかないのかをすぐに答えます。 つまりこの場合このゾーン情報があることが大事なので、ホスト情報がなくてもかまわないのです。(すぐにないことをクライアントに答えるから) しかし、正引きにしても逆引きにしてもそのDNSサーバーにゾーン情報がない場合には、ルートサーバーに問い合わせに行きます。このルートサーバーは、正引きにも逆引きにも同じく存在します。しかし、当然のことで正引きのDNSのツリーと逆引きのDNSのツリーには、関連がありません。つまり逆引きの自分の上と正引きの自分の上が同じではないわけです。 逆引きも正引きも同じ考え方になります。 一度名前解決したものは、DNSサバーが、有効期間の間キャッシュします。 基本的にアプリケーションがIPアドレスからホスト名を解決しに行く場合は、ログを書いているものが多いような気がします。サーバーの名前クライアントの名前というわけではなくただ単純にIPアドレスからホスト名を解決しようとするだけです。 長々となってしまいましたが、インターネットの世界で、グローバルアドレスとプライベートアドレスを使いわけてアドレスの枯渇化を防ごうとしている現状では、注意していかなければならない問題ですね。

その他の回答 (6)

  • -current
  • ベストアンサー率0% (0/3)
回答No.6

>クライアントのホストを調べるための逆引きや、 >アプリケーションごとの挙動の違いは理解できる >のですが、なぜサーバーのHOST(192.168.0.10) >を調べにいくのかが腑に落ちませんでした。 ほとんどのプログラムのホスト名の解決は、 nslookupを除いて/etc/host.confに記載されて いる順で(defaultだとhosts,bindの順) で解決すると私は理解しておりました。 これで正解なのかは今不安になっていますが、 (独学で学んだもので。。間違ってますでしょうか) ken2様が仰っていた内容より、アクセスされたftpd のみならず、アクセスするftp側でも解決する事も 改めて、勉強になりました。 (考えてみれば当然だったと思います) ところで改めて、JF/DOC/DNS-HOWTOを見直して いたのですが、in-addr.arpaが解決時にどのように 使われ逆引に移るのかが分からないのですが、 KEN2様御存知でしょうか?根本的に間違っていたら 申し訳有りません。時間が有ったら私にも勉強 させて頂ければ幸いです。 つまり、具体的には以下のような感じです。 IPアドレス(192.168.0.10)で入力した時の解決 では、実際168.0.10サーバーや、0.10サーバー 10サーバーについてを今現在自分自身で知って いるかどうかを自分自身でチェックした後、次は 1.ルートサーバーに解決を求めるのでしょうか 2.in-addr.arpaを付加して自分自身で解決しようと して、その後ルートサーバーに聞くのでしょうか よろしくお願いします。

参考URL:
http://www.linux.or.jp/JF/JFdocs/DNS-HOWTO.html
  • ken2
  • ベストアンサー率36% (86/235)
回答No.5

IPアドレスで、FTPにアクセスした場合、FTPは、名前解決をしようとします。これは、telnetなどでも同じです。popサーバーも同じような動きをします。 名前解決は、一般的な設定では、hostsをみて解決できなければ、DNSで、下記決し様とします。しかし、プライベートアドレスの場合は、通常のインターネット上のDNSでは、当然のことながら解決できません。ずーっと探しにいってタイムアウトするのを待つ状態になります。こんな状況から発生する症状です。 解決方法としては、内部用のDNSを構築しプライベートアドレスを解決できるようにする。全てを記述することはありません。ないことがすぐにわかればいいのです。 アプリケーションがDNSを参照しないというオプションがあれがそれを使う。 そのホストのhostsに記述する。 こんな形で、その症状を回避することができます。 インターネットは、DNSにはじまってDNSに終わるということでしょうか。

snake103
質問者

補足

有難う御座います。なるほど、仕組みがよりわかったところで、詳しく現象を調べてみました。 すべてのサーバーのIPが192.168.0.10とします。 1,sendmail SENDMAILの起動について /etc/hosts にそのsendmailのhost(192.168.0.10)が逆引きできるときは早く起動できる。 namedは起動していても関係ない。 SENDMAILの接続(メール送信など) ・【接続時】 クライアントから接続要求が生じると、host(192.168.0.10)と、クライアントIPhost(192.168.0.2) を逆引きを行おうとする。 このとき/etc/hosts、namedで解決できる場合は、問題ない。 また解決できないときも問題ない。 アクセスが遅くなるのは、resolv.confで設定した解決できないnamedにアクセスして解決しようとするときである。 すなわち自分のサーバー上のnamedなら192.168.0の逆引き設置をしておけば問題ないがプロバイダー側のnamedにはないため解 決できず遅れる。 2,sshd 【sendmailの接続と同じ】 3,xinetd系(ipop3) 【sendmailの接続と同じ】 SENDMAILとの違いは、host(192.168.0.10)は/etc/hostsでのみでしか解決しようとしていないからか、自分のサーバーに逆引きの設定 してあっても遅くなる。 3,xinetd系(FTP) 【sendmailの接続と同じ】 ipop3との違いは、host(192.168.0.10)のみに限り/etc/hostsを参照しないため自分のnamedに逆引きの設定が必要となる。 となりました。 クライアントのホストを調べるための逆引きや、アプリケーションごとの挙動の違いは理解できるのですが、なぜサーバーのHOST(192.168.0.10)を調べにいくのかが腑に落ちませんでした。 もう少し締め切らずに、ご意見ありましたらお聞かせください。

  • -current
  • ベストアンサー率0% (0/3)
回答No.4

ご報告てら参考になるか分かりませんが、うちでは、 こんな事が有りました。 flet'sISDN固定IPにてサーバ運用時のことです。 snake様と同じ事が実は起こりました。 ftpのlogin時にtimeoutと起こすのです。 ルーター側で簡易dnsを動かし、 (ルーターにhost登録済み) サーバー側のリゾルバはそのdnsを指していました。 その時のサーバー側の自分に対する、nslookupの結果は ドメインつきの正式名で正引き;グローバル側IP 逆引き;エイリアスだけの答え でした。 そこでaliasのみで正引き;プライベートip と言う結果が得られました。 之がどう関係するか分かりませんが、 メールサーバーとdnsが密接であると聞く事、 dnsの解決は左側から順に消して解決する事、 通常ルーターでパケットフィルタリングする事 ルーターを境とした境界にNATを使ってprivateIPに アドレス変換をしている点 を考えると、ここいらで混乱が起こっても不思議でない かなあと思いました。 ちなみに、ルーターのスイッチを切って入れなおすと 不思議と解決した経験が多かったので、アドレス解決が 上手くいっていないかなあと考えた次第です。 今考えると、クライアント側で逆引きしている とするならば、ken-bo様の仰る通り、lmhostへの 登録がトラブルを避ける一番の解決なのかと 思います。 余計な独り言だったかもしれませんが、 見苦しかったら御免なさい。

snake103
質問者

お礼

有難うございました。 ルーターの再起動などしてみたのですが、私の場合、変化がみられず、ルーター側に簡易dnsを置けないため、結局DNSサーバーを起動する事にしました。 NO5,の補足の現象にお知りになることがあれば教えて下さい。

  • ken-bo
  • ベストアンサー率25% (1/4)
回答No.3

回答2の補足の部分 > sendmail,ipop3d,sshdは,/etc/hostsを参照するため、サーバーアドレス(192.168.0.10)の設定があれば解決される。 > ftpは参照しないため、namedにサーバーアドレス(192.168.0.10)の逆引きを設定し、起動していないと解決されない。 > しかしながら、自分としては > ・急にこのような現象になったことと > ・ftpはxinetdで起動されてるのに、ipop3と同じように/etc/hostsを参照しないこと > ・なぜ逆引きをしようとするのか > が腑に落ちません。 > どなたかお知りじゃないでしょうか? についてですが、逆引きをするのは、サーバの方が、接続をしてきたクライアントのIPアドレスから 素性(ホスト名)を知るために、DNSの逆引きをするからです。何故逆引きをするか、しないかに関 しては、そのようにサーバのプログラムにコーディングされているからです(あるいは、コンパイル オプションでこれを選択できる場合もプログラムによってはあります)  私は、上記引用部分の最初の2行がよく理解できません。サーバの/etc/hostsに登録するのは、サーバ のアドレスではなく、クライアントのはずなのですが、、。  何故急にこのような現象になったかについては、プロバイダ側のDNSの設定に何らかの変更があった からかもしれませんね。

snake103
質問者

お礼

ありがとう御座います。 結局、/etc/hosts とDNSサーバーを起動することで解決することにしました。 詳しく現象を調べてみたのですが、(NO5の補足)何かお知りでしたら教えて下さい。

  • -current
  • ベストアンサー率0% (0/3)
回答No.2

namedを動かしていないと言う事は、 /etc/host.conf ではデフォルトで hosts,bind の筈ですから、サーバー側のhostsに 自分のサブネットのipとエイリアスを 加えておく必要があります。 たまに、sendmail側がdnsを直接参照している のか分かりませんが、global側の自分のipを参照 するようです。(面倒臭いので詳しくは調べていません。)それで、ルータ側のテーブルとコンフリクトしてしまうのか、接続まで時間がかかりtimeoutしてしまうようです。 私は、解決策として、hostsの登録(いろいろなパター ン)+サーバー側でキャッシュ用DNSサーバーを動かし、forwarderとして、ルーター側のdnsを指定してやりま した。(ルーターの簡易dns) resolv.confもrouter側の簡易dnsを指定しました。 (自分でlocalでキャッシュ用のdnsとして使ってました) (かなり過剰な設定ですが。) bindを動かさないのであれば、ルーターで簡易dnsを 動かし、resolv.confでは其方を指定してみては如何 でしょうか。ちなみにルーターのテーブルにhostを 登録できるようであれば、其方にも登録するのも良い かもしれません。 ただ、routerによりますが、物によっては、 応答に対してdomainまで答えてくれない場合が ありますので、そこでまた、コンフリクトする 場合があるようです。 之を防ぐ意味でも、hostsの登録は重要だと思います。 サーバー側のdomainと合わせて登録するパターンと ドメイン抜きで登録するパターンを用意するのが 良いと思います。 後は、logを見て適宜、登録するのも良いかも しれません。 ちょっと古い記憶を辿って書いているので、 間違えがあるかもしれませんが、その時は 容赦お願いします。

snake103
質問者

補足

有難う御座いました。 一応下記のように解決はしました。 sendmail,ipop3d,sshdは,/etc/hostsを参照するため、サーバーアドレス(192.168.0.10)の設定があれば解決される。 ftpは参照しないため、namedにサーバーアドレス(192.168.0.10)の逆引きを設定し、起動していないと解決されない。 しかしながら、自分としては ・急にこのような現象になったことと ・ftpはxinetdで起動されてるのに、ipop3と同じように/etc/hostsを参照しないこと ・なぜ逆引きをしようとするのか が腑に落ちません。 どなたかお知りじゃないでしょうか? もう少し締め切らずに待ってみようと思います。笑。

  • neko_nya
  • ベストアンサー率16% (1/6)
回答No.1

このthreadが参考になると思います http://search.luky.org/fol.2001/msg02697.html 日本のLinux情報 http://www.linux.or.jp/ Linux JF Project http://www.linux.or.jp/JF/ JM Project http://www.linux.or.jp/JM/ Linux 関連 ドキュメント 検索システム http://search.luky.org/

参考URL:
http://search.luky.org/fol.2001/msg02697.html
snake103
質問者

お礼

解決しました。(回答NO2の補足により) ありがとうございました。

関連するQ&A

  • ルーターの下のネームサーバー、 正しく起動しているか確実に確認できる方法?

    ルーターの下にLinuxサーバーを立ち上げています。 ルーターはPPPOE接続して、グローバルIPを持っていますが、下に繋がっているLinuxサーバーは 19.168.1.5にあります。 この場合、/var/namedにある設定ファイルは、 192.168.1.5で設定すべきものでしょうか、それともグローバルIPでよいのでしょうか? /etc/rc.d/init.d/named restartで何回やっても [失敗] [OK] の繰り返しなので、結局途中で落ちていると思います。 nmap localhostでは、53/tcp open domain とポートスキャンで確認できるし、 ps aux | grep namedで named 1969 .. .. .. S .. .. .. /usr/sbin/name named 1970 .. .. .. S .. .. .. /usr/sbin/name named 1971 .. .. .. S .. .. .. /usr/sbin/name named 1972 .. .. .. S .. .. .. /usr/sbin/name named 1973 .. .. .. S .. .. .. /usr/sbin/name と表示されるし、 WWWは、外からでも見れるのですが、ネームサーバーのrestartで失敗,OKの繰り返しなので ネームサーバーが正しく動いているか、わかりません。 確実に確認できる方法が知りたいです。

  • 複数ドメインをサーバにwwwなしであてられますか

    1つのIPアドレスで複数ドメインを設定した場合に、 ドメインにwwwをつけずにアクセスできるように 設定が可能でしょうか? BINDのnamed.confにヒントがありそうですが、、、 サーバはLinuxでApacheです 例)hogehoge.comとhogehoge.netで http://www.hogehoge.com/ → http://hogehoge.com/ http://www.hogehoge.net/ → http://hogehoge.net/

  • ネームサーバーについての質問です。

    ネームサーバーについての質問です。 ネームサーバーについて、やりたい事、させたい事が誤っているかもしれませんが,よろしくお願いします。 現在、1台のPCでwebサーバ設定完了。同機にネームーサーバを設定を行いたい。 ネットワークはケーブル回線です。(LAN構造) ネームサーバアドレス、グローバルアドレス等はISPから自動取得。 (ネームサーバ構築理由) グローバルIPが動的であるため、ルーターをリセットするとグローバルIPが変更される。 ドメインとグローバルIPの迅速な関連づけをしたいので、ネームサーバー構築を行いたい。 (ドメインを取得したサービス会社より変更が可能ですが、変更まで長時間かかる。) (質問) この場合はISPのネームサーバをmasterにするとの、夜に電源を落としてしまう私のPCをmasterにするのと、どちらが良いのでしょうか? また、ISPのネームサーバは、私のネームサーバのmaster又はslaveになれるのでしょうか? (質問2) 私の方がmasterである場合、ISP側はゾーンファイルの転送を受けるのでしょうか? (質問2) 「named.conf」の設定に関してなのですが、 私の方をmasterとした場合に仮に私のdomain名が”AAA.com”でネームサーバ機のプライベートIPが”192.168.1.15”,グローバルIPがxxx.xxx.xxx.xxxとします。 ISPのドメイン名が”BBB.com”とします。 #マスターゾーンの定義 zone "AAA.com" IN{ type master; file "AAA.com.db"; }; #スレイブゾーンの定義 zone "BBB.com" IN{ type slave; masters {xxx.xxx.xxx.xxx;}; file "BBB.com-slave.db"; }; でよろしいのでしょうか? 何か見当違いな質問をしているかもしれませんが、よろしくお願いします。 m(_ _)m

  • ネームサーバについての質問

    ネームサーバーについての質問です。 現在ケーブル回線(LAN構造)においてサーバ構築を しています。 固定のグローバルIP接続をしています。 DNS設定はISPのDNSアドレスに固定。 この状態でネームサーバーを構築する事は二重にネームサーバーが存在する事になるのですか? また、何か問題が発生することがあるのでしょうか? ISPのDNSサーバーアドレスを削除して、自前のネームサーバーで運用は出来るのでしょうか? まだ、ネームサーバーは構築できていません。 よろしくお願いします。

  • ネームサーバーの更新について

    こんにちは、honiyonです。   自ネットワークのWWWサーバーのIPアドレスの変更し、それに併せ自ネットワークのネームサーバーの値を更新しても、WWWサーバーにアクセスしようとするクライアントが使用しているネームサーバーには大抵キャッシュ機能があり、このキャッシュの期限切れを待たないと新しいIPアドレスでアクセスしてもらえませんよね。   この更新から、その更新が行き渡るまでのブランクを埋める手段としては、暫くは旧IPと新IPの両方で運用するという手段が常用だと思いますが、それ以外の、ブランク無しにアクセスしてもらう為の手段はありますでしょうか?   ちょっと環境の事情で、旧IPと新IP両方を動じに運用出来ないのですが、アクセス不可なブランク時間を作りたくないのです。   宜しくお願いします(..

  • 静的アドレス変換で公開しているFTPサーバにLAN内からアクセス

    FTPサーバ機能のあるNASを静的アドレス変換にて外部からアクセスできるようにしています。 外部からアクセスする分には問題ないのですが、LAN内からグローバルIPアドレスでFTPサーバに接続しようとすると接続でできません。 ローカルIPアドレスで接続すれば接続できるのでそんなに問題はないのですが、なぜつながらないのかが気になります。 設定の肝になるようなことがあれば、教えてください。 よろしくお願いします。

  • 2台目のLinuxでwebサーバーを立てるには?

    1台目がRedhat7.3をつかっておりそこですべてweb・mail・FTP・DNSすべて設定しております。 ハードディスクの容量が少なくなったのを機に2台目を設置しました。構成は以下のとおり =============================================       ┏━━━┓        ルーター       ┗━━━┛       21*.111.0.2 ┏━━━━━┷━━━━━┓ ┏━━━┓         ┏━━━┓ ┃Linux1┃        ┃Linux2┃ ┗━━━┛        ┗━━━┛ 21*.111.0.4        21*.111.0.5 ns.hogehoge.com www.hogehoge.com www.other.net     www2.other.net =========================================== Linux1はIPが 21*.111.0.4でホスト名が ns.hogehoge.com デフォルトのwebサーバーアドレスが www.hogehoge.comとします。 バーチャルホストでwww.other.netも設定しております。 そこでLinux2でwww2.other.netのアドレスでアクセスできるようにしたいのですがわからずにこまっております。IPアドレスを直接たたくとWebは見れます。 21*.111.0.5とwww2.other.netを整合するにはどのようにすればいいのでしょうか? サーバー自体を設定する以外にもwhoisの設定も必要ですか? 是非とも回答お待ちしております。

  • DNSサーバを構築しています。/etc/rc.d/init.d/named reloadのところでエラーになってしまいます。

    RedHat Linux 9 でサーバを構築しています。 DNSサーバを作成しているところでつまづいてしまいました。 vi /etc/named.conf のところで正引き、逆引きのゾーンを追記し、 vi /var/named/**.jp.db の正引きゾーンデータベースを作成し、 逆引きの方もゾーンデータベースを作成しました。 あとは、etc/rc.d/init.d/named start とやって起動させ、 namedが自動起動するように chkconfig named on と実行しました。 しかし、設定を反映しようと、 /etc/rc.d/init.d/named reload としたのですが、 何度やっても失敗と出てしまいます。 画面には、一部を書きに記述すると、 Reloading named: usage : killall [OPTION] [--] name ・・・    killall -l, --list killall -V --version -l,--list list all know signal name -V,--version display version infomation となっていました。 とりあえず、shutdown -r now で再起動しましたが、 設定が反映されていないようで、次の vi /etc/resolv.conf でIPアドレスを記述したあと、 nslookup コマンドを実行してDNSサーバのテストでやってもエラーになってしまいます。 何が原因でしょうか? 長々と書いてすみません。分かる方、どうかよろしくお願いします。

  • 自宅サーバにアクセスできるが、wwwをつけるとアクセスできない

    FedoraCore4 Apache2.0で自宅サーバを組んでいます。 固定IPではないため、http://www.dyndns.com/とDiCEでIPを更新しています。 ウェブサーバを立ち上げたのですが、 ホストがyahoo.co.jpとして、 http;//yahoo.co.jp にはアクセスできるのですが、wwwをつけて http://www.yahoo.co.jp にはアクセスできず、http://www2.websitepulse.com//tools.php3 でテストをすると Status: Connection error - Couldn't resolve といわれて名前が解決できない、というようなこと(?)を言われます。 自分的に怪しいと思っているのがApacheの「httpd.conf」の設定なのですが、現在は以下のようになっています。 ServerName yahoo.co.jp:80 これを ServerName www.yahoo.co.jp:80 にすると、wwwをつけようとつけまいと接続できなくなってしまいます。 他に関係がありそうな設定などはあるでしょうか? よろしくお願いします。

  • メールサーバーの構築(3)

    こんにちは。この件に関して前回まで、回答・アドバイスしてくださった方有難う御座います。 今、既存のネットワーク中(大学・会社など)にメールサーバーを構築しています。(OS:Red Hat Linux6.2J) Eudoraというメーラーを使用すると、受信はしっかりとできます。しかし、送信ができませんでした。(サーバーマシンからは送信できました。) この問題に関して、EudoraのSMTPサーバの設定をホスト名からIPアドレスに変更したことにより送信できるようになりました。これにより、どうやら、DNSの設定に問題があるということなのですが・・・ まず、既存のネットワークに構築する場合、キャッシュ(オンリー)サーバーとして設定すればいいと、書籍に書いてあったので、そのように設定したつもりです。 /etc/resolv.conf domain abc.def.ac.jp 自ホストのドメイン名 nameserver 123.45.678.90 中継サーバーIPアドレス /etc/named.boot ; ;a caching only nameserver config ; directory /var/named cache . named.ca primary 0.0.127.in-addr.arpa named.local /etc/named.confはインストール時と設定は変えていません。 どこか、間違えているところがあるとおもうのですが・・・?? あと、/etc/hostsにIPアドレスとホスト名を書いておいても、DNSの設定は必要なのでしょうか?DNSの設定をする以前は、pingをかけるとホスト名でつながっていることが確認できるのですが、nslookupを実行すると、うまくいきませんでした。これは、なぜなのでしょうか・・?pingの時はホストが見つけられているのに・・と思いました。 表現が不適切なところもあるかもしれませんが、アドバイスなどしていただければ助かります。よろしくお願い致します。