自宅でlinux(RedHat7.2)を使用してFTP、sendamilでサーバー立ち上げています。急に最近アクセスが遅くなったので原因を調べてみたところ、
サーバーのIPが192.168.0.10に設定しているとして、
192.168.0.2のマシンからFTPでサーバーにIPアドレス(192.168.0.10)でアクセスすると、
接続したと同時になぜかネームサーバーに接続していることがわかりました。
それがプライベートアドレスなのに、解決しようとし解決できないためそのタイムラグでアクセスが遅くなっていると考えているのですが、これは正しい考え方なのでしょうか?
その場合どうすれば解決するのでしょうか?
ネームサーバはプロバイダにあるもので、resolve.confに設定してあるだけで、そのサーバー自体でnamedは動かしていません。
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アドレスからホスト名を解決しようとするだけです。
長々となってしまいましたが、インターネットの世界で、グローバルアドレスとプライベートアドレスを使いわけてアドレスの枯渇化を防ごうとしている現状では、注意していかなければならない問題ですね。
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
No.5
- 回答日時:
IPアドレスで、FTPにアクセスした場合、FTPは、名前解決をしようとします。
これは、telnetなどでも同じです。popサーバーも同じような動きをします。名前解決は、一般的な設定では、hostsをみて解決できなければ、DNSで、下記決し様とします。しかし、プライベートアドレスの場合は、通常のインターネット上のDNSでは、当然のことながら解決できません。ずーっと探しにいってタイムアウトするのを待つ状態になります。こんな状況から発生する症状です。
解決方法としては、内部用のDNSを構築しプライベートアドレスを解決できるようにする。全てを記述することはありません。ないことがすぐにわかればいいのです。
アプリケーションがDNSを参照しないというオプションがあれがそれを使う。
そのホストのhostsに記述する。
こんな形で、その症状を回避することができます。
インターネットは、DNSにはじまってDNSに終わるということでしょうか。
この回答への補足
有難う御座います。なるほど、仕組みがよりわかったところで、詳しく現象を調べてみました。
すべてのサーバーの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)を調べにいくのかが腑に落ちませんでした。
もう少し締め切らずに、ご意見ありましたらお聞かせください。
No.4
- 回答日時:
ご報告てら参考になるか分かりませんが、うちでは、
こんな事が有りました。
flet'sISDN固定IPにてサーバ運用時のことです。
snake様と同じ事が実は起こりました。
ftpのlogin時にtimeoutと起こすのです。
ルーター側で簡易dnsを動かし、
(ルーターにhost登録済み)
サーバー側のリゾルバはそのdnsを指していました。
その時のサーバー側の自分に対する、nslookupの結果は
ドメインつきの正式名で正引き;グローバル側IP
逆引き;エイリアスだけの答え
でした。
そこでaliasのみで正引き;プライベートip
と言う結果が得られました。
之がどう関係するか分かりませんが、
メールサーバーとdnsが密接であると聞く事、
dnsの解決は左側から順に消して解決する事、
通常ルーターでパケットフィルタリングする事
ルーターを境とした境界にNATを使ってprivateIPに
アドレス変換をしている点
を考えると、ここいらで混乱が起こっても不思議でない
かなあと思いました。
ちなみに、ルーターのスイッチを切って入れなおすと
不思議と解決した経験が多かったので、アドレス解決が
上手くいっていないかなあと考えた次第です。
今考えると、クライアント側で逆引きしている
とするならば、ken-bo様の仰る通り、lmhostへの
登録がトラブルを避ける一番の解決なのかと
思います。
余計な独り言だったかもしれませんが、
見苦しかったら御免なさい。
有難うございました。
ルーターの再起動などしてみたのですが、私の場合、変化がみられず、ルーター側に簡易dnsを置けないため、結局DNSサーバーを起動する事にしました。
NO5,の補足の現象にお知りになることがあれば教えて下さい。
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の設定に何らかの変更があった
からかもしれませんね。
ありがとう御座います。
結局、/etc/hosts とDNSサーバーを起動することで解決することにしました。
詳しく現象を調べてみたのですが、(NO5の補足)何かお知りでしたら教えて下さい。
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を見て適宜、登録するのも良いかも
しれません。
ちょっと古い記憶を辿って書いているので、
間違えがあるかもしれませんが、その時は
容赦お願いします。
この回答への補足
有難う御座いました。
一応下記のように解決はしました。
sendmail,ipop3d,sshdは,/etc/hostsを参照するため、サーバーアドレス(192.168.0.10)の設定があれば解決される。
ftpは参照しないため、namedにサーバーアドレス(192.168.0.10)の逆引きを設定し、起動していないと解決されない。
しかしながら、自分としては
・急にこのような現象になったことと
・ftpはxinetdで起動されてるのに、ipop3と同じように/etc/hostsを参照しないこと
・なぜ逆引きをしようとするのか
が腑に落ちません。
どなたかお知りじゃないでしょうか?
もう少し締め切らずに待ってみようと思います。笑。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- サーバー ネットワークの構成に困っています 3 2023/07/05 11:55
- ネットワーク 自作のサーバーPCが自宅内のネットワークに接続できない 3 2023/01/24 16:58
- その他(インターネット接続・インフラ) テザリングで繋がる Wi-Fiで繋がらない Filezilla FTP 1 2023/05/25 10:31
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- Gmail SPFレコードとDNSサーバーについて、gmailを設定できるかどうか 2 2023/06/10 23:55
- その他(コンピューター・テクノロジー) DHCPサーバーについて、、、。 職場のネットワーク環境で困っています。サーバーはWindows s 3 2023/01/04 10:15
- VPN VPNは設定した方がいいですか? VPNには常時接続するべき? 1 2023/05/25 17:43
- UNIX・Linux raspberry piを使ったWebサーバー制作をしています、接続するネットワークを変更したときに 1 2023/01/09 15:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同一のホスト名で何か問題があ...
-
ホスト名localhost.localdomain...
-
「DNSサーバーを自動的に取得す...
-
パスワード設定していないユー...
-
DNSサーバを設定したのですがns...
-
”Tortoise SVN” と ”Subversio...
-
エラーメールで"too many hops"...
-
エクセルで#N/Aを含めた平均値...
-
AWSでSSH接続をしたいのですが...
-
Mailの送信済みメールボックス...
-
リモートデスクトップ接続でパ...
-
VirtualBoxのGuestマシンのネッ...
-
TortoiseSVNでアクセスエラー
-
1つのサーバにFTPサイトを2つ以...
-
pingでポートの指定
-
エクセルVBA 関数エラー箇所を...
-
エクセル #N/Aを印刷時に表示...
-
teratermで旧字体(異字体)を...
-
Thunderbird) 送信したメールが...
-
マクロでのエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同一のホスト名で何か問題があ...
-
ホスト名localhost.localdomain...
-
DHCPでのホスト名とホスト機と...
-
NetBIOS名の名前解決ができない
-
ルーター越えでファイル共有したい
-
パスワード設定していないユー...
-
DNSサーバを設定したのですがns...
-
リモートデスクトップ接続でパ...
-
AWSでSSH接続をしたいのですが...
-
エラーメールで"too many hops"...
-
エクセルで#N/Aを含めた平均値...
-
Mailの送信済みメールボックス...
-
”Tortoise SVN” と ”Subversio...
-
循環参照にならない方法があっ...
-
iPadの受信メールが消える
-
「DNSサーバーを自動的に取得す...
-
コマンドでのFTP転送が進まない。
-
ワークグループ設定のPCの名前解決
-
VirtualBoxのGuestマシンのネッ...
-
ドメインに参加しようとするとD...
おすすめ情報