• ベストアンサー

逆引きチェックを無くすには

RedHat Linuxにsendmail,qpoperを入れてメールサービスを提供しています。 そこで、SMTPやTELNETの接続が非常に遅くなる障害が発生しました。 足りない頭をフル回転した調査の結果「DNS逆引き解決」が原因じゃないかというところまできて、 回避策として、サーバのHOSTSに接続するクライアント全てを記載して、とりあえず解決したようにみえました。 そこでお伺いしたいことは以下の2つです。 ・原因、解決策はこれであっていたのでしょうか? ・SMTP等のサービス((x)inetdから呼び出されるもの全て?)で逆引き解決はなぜ必要?しないように出来ないの? よろしくお願いいたします。

noname#41381
noname#41381

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

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

逆引きを回避することはできません。qpopperは、逆引きをしないようですが、ipop3は、逆引きするので、sendmailと同じ事が起きます。 手としては、自分自身で、DNSサーバーを立てて、DNSは、自分自身を見るようにします。そして、その自分自身のDNSに必要な部分の逆引きを書いておくのです。 ゾーンを記述しておくだけで結構です。ないことがわかれば、すぐにあきらめます。 ないことがわからなくて(たとえば、プライベートアドレス)ずっと探しにいって、タイムアウトまで時間をかけてしますのです。さっさと逆引きゾーンを見て、その中に記述のないことがわかればいいのです。 hostsに書くか、DNSに書くかです。この手のトラブルは、結構わかりにくいですね。

noname#41381
質問者

お礼

回答ありがとうございました。 かなり参考になりました。 で早速接続が遅いプライベートアドレスの逆引きゾーン(ホストの記述なし) を作成したところ、 いい感じにSMTP接続できるようになりました。 なるほど!こういうことだったんですね。 それと、MinatoHosumiさん、Frayさん、ありがとうございました。 この場でお礼申し上げます。

その他の回答 (2)

  • Frey
  • ベストアンサー率60% (14/23)
回答No.2

MinatoHosumiへの補足のとおりです。 ログへ書き込むときに、DNSの逆引きを行っています。 逆引きが成功すれば、HOST名を書き込みます。 TimeOutになれば、仕方がないのでIPアドレスを書き込みます。 ご質問の時間がかかる原因は、DSN逆引き時のTimeOut待ちの時間だと思われます。 実際に、Web/Telnetのログで同様の現象が発生しました。 逆引きファイルに適当にHost名を並べて回避したことがあります。

noname#41381
質問者

お礼

回答ありがとうございます。 おぉ、やっぱりログですか。...よみが当たってうれしいです\(^o^)/ そこで、POP接続が"OK"で、SMTPが"NG"ということは、 使っているsendmailのログってことですよね。 sendmailのログオプションとかで逆引きをしないようにする  ってのができればいいんですけど、この回避策は良くないのかな?

回答No.1

全てはお答えできないので、アドバイスを。 原因については、kanop_98さんの仰るとおり、恐らく逆引き 解決でしょう。 /etc/resolv.confに記載されているnameserverの IPアドレスに間違いは無いですか。 ネームサーバのIPアドレスが正しいのならば、そのネーム サーバの設定か、ネームサーバまでの経路に問題があるかも しれませんので、そのあたりを確認した方が良いかもしれま せん。 (当面の解決方法としては/etc/hostsにクライアントを記述 するという方法でも悪くないでしょうが。)

noname#41381
質問者

補足

早速のご回答ありがとうございました。 > /etc/resolv.confに記載されているnameserverの > IPアドレスに間違いは無いですか。 > 大丈夫みたいです。 サーバからnslookupで正常に引くことが出来ます。(これって大丈夫ってこと?) 昔、ご指摘あった通り間違ったアドレスを指定していて telnetのloginが出るまで非常に遅かったことがありました^ ^;) ちなみに、SMTP接続する端末(逆引きされる端末)はDNSのホストとしては 設定していません。(台数が多いので) これを書いていて思ったのですが、 ログの設定でホスト名を拾いにいってる ってなんてことは? どうなのでしょう?

関連するQ&A

  • FTP,sendmailの反応が遅い

    趣味で家庭内LANを作っております。 Linuxでつっくたサーバーマシン上のFTPへの接続に非常に時間がかかります。 名前解決はネットワーク上のどのマシンもhostsファイルで矛盾なくぬかりなく行われているはずです。 また、FTPサーバーはinetdで起動しています。 hosts.allowでも明示的に in.ftpd 192.168.10.0/255.255.255.0 というふうに指定してあります。 同じようにinetdで起動しているtelnetサーバーはすいすい反応します。 TCP接続まではすぐにできているのですが、その後のサーバープログラムの反応が遅いのです。 どなたか解決法をご存知の方、知恵をお貸しください。 ちなみに、自分の職場のsendmail&ftpも同様に遅いです。こちらはDHCPでipをもらっているクライアントマシンも多数あります。もし、なにか思いつくことがありましたらこちらも教えてください。

  • DNSサーバーの逆引きができません

    DNSサーバーの逆引きができません… 初心者なのですが、この問題を解決するにはプロパイダに問い合わせるしかないのでしょうか? 接続には地元catvを使用しております。 自分のパソコンから設定できるのであればどなたか設定方法を教えてください…

  • 逆引きが出来ないDNSで何か不都合が有りますか

    OCNエコノミーで独自ドメインのインターネット環境を運用しています。自社で管理しているのはプライマリDNSサーバ、メールサーバで、ホームページはOCNのホスティングサービスを利用しています。サーバの管理コスト/OCNへの支払料金が馬鹿にならないので、OCNエコノミーは解約し、インターネットへの接続はフレッツADSLで行ない、各種サーバ(メールサーバは除く)はアウトソーシングしてしまおうと考えています。 そこでDNSはIIJの「DNSアウトソースサービス」を利用したく思います。このサービスはIIJ内でプライマリ/セカンダリDNSサーバを管理してくれるという物です。また提供されるサービスは正引きのみで、IIJの専用線サービスを利用していないと逆引きが出来ないとの事でした。 そこで質問ですが、正引きさえ出来れば別段問題は無さそうですが、逆引きが出来ないと何か不都合が生じるでしょうか。

  • telnetで接続できないです・・・

    こんばんは。 Redhat Linux ES4をインストールしたのですが、 WindowsXPからtelnetで接続することができません・・・。 両者はプライベートなネットワークで繋がっています。 WindowsXPからLinuxにtelnetすると、接続拒否されます(ポート23に接続できません)。 また、pingすると、Linuxから応答があります。 Linuxで、telnet localhostを実行しても、接続拒否されます。 パケットは到達しているので、ファイアウォールの設定や、ケーブル等の物理的な問題でなく、 ただ単にtelnetのサービスが起動していないのでは?と思っています。 /etc/hosts.allowには、ALL:ALLを記述して、Linuxを再起動しましたが、改善されませんでした。 また、/etc/inetd.confはありませんでした。代わりに、/etc/xinetd.confがありました。 xinetd.confについては設定していません。 過去の質問も拝見したのですが、どうもよく分からなくて・・・ そこで以下について聞きたいです。 1.どうすれば、telnetで接続可能になりますでしょうか?何か設定が足らないのでしょうか? 2.色々なLinuxがありますが、Redhat Linuxでは、telnetに関する設定が必要なのでしょうか? 3.ftpに関しても同様に、何か設定が必要なのでしょうか? 宜しくお願い致します。

  • 逆引きゾーンファイルをまとめたい。

    OS:RedHatLinux DNS:BIND9 構成:プライマリDNS1台、セカンダリDNS1台 BINDを利用して管理するゾーンがたくさん出てくる場合、逆引きゾーンファイルをある程度分ける必要があると思います。しかし、新規に逆引きゾーンを追加すると、プライマリとセカンダリのnamed.confに新しいゾーン情報を定義しなければならないので、保守性が落ちます。 そこで、named.confに以下のようにゾーンを定義し、逆引きゾーンファイル「test.com.rev」の中に、全ての逆引きレコードを突っ込んでみました。 ---------------------------- zone "in-addr.arpa" IN { type master; file "test.com.rev"; allow-update { none; }; }; ---------------------------- こうすると、確かにまとめられはするんですが、test.com.revに書いてある逆引きレコード以外は、逆引きしても名前解決できません(あたりまえですが)。 何とかひとつにまとめたいと色々調べてみたのですが、そろそろ挫折しそうです・・・。 雑文で申し訳ありませんが、何かよい方法がないか、ご教示頂ければ幸いです。

  • Railsにおける逆引きの無効

    ruby1.8.6 & rails2.3.4 & Win2003環境下でrailsアプリを作っています。 ある程度作りこんで  ruby script/server で起動したところローカル(サーバ上)だと画面表示は速いのに別のPC(クライアント)から接続すると時間がかかります。いろいろ調べたところ、どうやらサーバがクライアントのPCの名前解決をしようとしているようです。いわゆるIPからの逆引きをしようとしてタイムアウトまで待ってから画面を表示している模様。そこでサーバ側のhostsにクライアントPCのhostsを書けば早くなりました。しかしこれだと不特定PC向けにWEBサーバを公開できないので、この逆引きを無効にさせたいとおもっていますが、やり方がわかりません。どこのファイルにどんなふうに書けばよいのでしょうか? デフォルトだとサーバはwebrickなのでwebrick::genericserverにある DoNotReverseLookupあたりを書けばよいのかもしれませんが、どのファイルにどんな風に書くのかわかりませんし、そもそもこの考え方が間違っているかもしれません。 どなたかわかる方いないでしょうか?

  • VineLinux3.1のサーバにtelnetアクセスできない。

    VineLinux3.1をインストールいたしました。 telnetでアクセスしようとしてもできません。 google等いろいろ調べたのですが、分かりませんでした。 なぜでしょうか? よろしくお願いします。 【状況】 ・他のPCからtelnetしようとしても、  Connection closed by foreign host ・Vineのコンソールから  telnet 127.0.0.1  としても同様。 ・コンソールからの ping 127.0.0.1  他のPCからの  ping *.*.*.* は問題ないです。 ・ps -ef でみると inetdのプロセスは起動してます。 ・他のコンソールからtelnetでアクセスし用としているときに、  ps -ef を見ると、telnetのサービスは起動してます。 【インストール後に設定したこと】 ・/etc/inetd.conf のtelnet部分についてコメントを外しました。 ・/etc/hosts.allow  には、  ALL : 127.0.0.1  ALL : *.*.*.*  を設定しました。 ・/etc/hosts.deny には何も設定してません。 ・apt-get update/upgradeを行ってます。

  • Linux hosts.allowでのアクセス制御

    いつもありがとうございます。 RedHat hosts.allowでのアクセス制御について設定方法を質問させて頂きます。 /etc/hosts.allowに以下のサービスについて制御したいと思っております。 ************************************************************* http ssh icmp smtp ntp pgadmin samba postgresql dns ************************************************************* 以下「hosts.allow」の内容 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ # ssh sshd: 192.168.1. # http httpd: ALL # dns domain: ALL # icmp icmp: ALL # ntp ntpd: ALL # netbios-ssn netbios-ssn: ALL # smtp smtp: ALL # postgresql postgresql: 192.168.1. # pgadmin pgadmin: 192.168.1. -------------------------------------------------------------------- 上記にて設定すると、SSHのみ適用されますが他の設定が反映されません。 ※hosts.denyは「ALL: ALL」としております。 また、ファイアーウォールを有効にすると、SSHも含め接続できなくなります。 ※ファイアーウォールのルールは定義していません。 初心者からの質問で申し訳ありません。 アドバイスの程よろしくお願い致します。

  • RedHat 6.2 のtelnetのリモートアクセスができない

    RedHat6.2をPCにインストールしたのですが、 Telnetのローカルログインは、できるのですが、リモート ログインができません。 設定がわるいのでしょうか。 インストール方法としては、サーバパッケージでインストールしました。 一応チェックした点としては、 etc/hosts.allow etc/hosts.denny etc/inetd.conf リモート端末は、Tera Termですが、サーバのポート23 は、クライアントからは、見えてます。 ローカルだと、ログオンしてカーネルが走って、login: が表示します。 リモートだと、接続するのですが、肝心のlogin:がでません。 ご存知の方は、教えてください。

  • DNSサーバで逆引きができない件につきまして

    現在、内向けと外向けのDNSを1台のサーバで運用しており、専用線をあるISPと契約しています。 そのISPにはホスティングサービスで逆引きのセカンダリサーバ立ててもらっております。 そのISPから逆引きゾーンファイルの転送ができていないとのお話を頂きました。正引きゾーンファイルの方は問題なく転送されているそうです。 そのISPの方に調べていただいたのですが、正引きは問題なくできておりますが、逆引きができない状態になっているとのことでした。 DNSの設定方法は一つの正引きゾーンファイルにグローバルアドレスとプライベートアドレスを登録し、逆引きゾーンファイルは内向けと外向けと二つ作成し、named.confにはそれぞれそのファイル名を指定しています。外向けの逆引きゾーンファイルの設定はそのISPから言われたとおりに設定しております。 なお、内向けのDNSは一見問題なく動いているように見えるのですが(内部で立てているHTTPサーバをIEで閲覧する時にアドレス欄がホスト名でも閲覧することが可能です)、Windowsのnslookupを使用して確認しようとするとserver failedというエラーが表示されてうまく名前解決ができません。 やはり内向けと外向けとを一つのサーバで運用しているのが良くないのでしょうか? お分かりになる方がいらっしゃいましたらご教授くださいよろしくお願いいたします。 DNSサーバの OSはLinux7.2、 BINDのバージョンは8です。