RedHatLinux9について質問です。

http://www.itbdns.com/
に登録し、メールサーバを作りました。

POPとSMTPをサーバのローカルなIPアドレス(192.168.1.20)
にすると
メールの送受信ができるのですが、
LAN外のDNSSに登録した名前(tikutaku.itbdns.com)
に設定しメールを送受信すると
サーバ接続のタイムアウトになってしまいます。
ホスト名で接続するにはどのような設定をすればよいでしょうか?
ご助言いただきたく宜しくお願いします。

<ポイント>
・メールすでに開通しています。
・LAN構成

※ネットワーク構成
ADSLモデム-NV→ハブ---------A(RedHatLinux ipchanger 動作)
        |___________B(Windows)


なおこの質問は
http://q.hatena.ne.jp/1180481941
の質問から発展したものとなっています。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2007/06/05 17:03:10
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tezcello No.6

回答回数460ベストアンサー獲得回数69

ポイント100pt

進展の無い内容で発言回数ばかり増えてしまいますので、回答受付中でもコメントがつけられるようにしていただけるといいと思います。


> 設定はしているのですが届かないです。

「メールはすでに開通しています」をメールを受信できていると解釈していましたが、違うのでしょうか?

また、これはB号機からですか?それともWANからですか?

(僕は自宅サーバのチェックの際、WANからのアクセスは、携帯のブラウザやメールでよくチェックしてます)

届かなかったときのエラーは何でしたか?

環境依存で名前が違いかもしれませんが(うちはVineです)、

messages, secure, maillog などに何か出力されていませんか?

  サーバの設定で、ログのレベルをデバッグにすると詳細なログが出されます。

  一時的に変更してみるといいかも知れませんね。


> 一番の回答者JULYさんから...

B号機からA号機のSMTPサーバを使ってメールを送ろうとする場合、NAT機能が働いていては困るのでは?(グローバルIPアドレス的には自分から自分へのアクセス、しかもローカルではない...になっていてサーバが反応しないのではと解釈しました。

LAN内からのアクセスなので、NATではなく、ローカルのIPアドレスでアクセスしてなければ、A号機は反応しないのではと思います。

http://q.hatena.ne.jp/1180581261

id:harunoharuno

>「メールはすでに開通しています」をメールを受信できていると解釈していましたが、違うのでしょうか?

>また、これはB号機からですか?それともWANからですか?

現状の説明が足りず困惑させてしまい申し訳ないです。

メールが開通したと判断したのは以下の二点が確認できたからです。

・B号機に入っているメーラーからぷららのSMTPを使いメールを送信し

A号機(LinuxのPOP)で受信することに成功。

 また、B号機に入っているLinux用のメーラからA号機に来ているメールの確認が出来た。

・B号機に入っているA号機のLinuxサーバーを使うメーラーからLinuxのSMTPを使い

 メールを送信し、B号機(ぷららのPOP)で受信することに成功。

しかし、

SMTPやPOPを192.168.1.20のようなローカルな値からtikutaku.itbdns.comに

切り替えるとSMTPサーバやPOPサーバとの接続に失敗し、メールの送受信

ができなくなります。

警告は以下のとおりです。

POP3サーバーが60秒の間、応答しません。あと60秒待ちますか?

アカウント:itb

サーバー:tikutaku.itbdns.com

>>(僕は自宅サーバのチェックの際、WANからのアクセスは、携帯のブラウザやメールでよくチェックしてます)

>>届かなかったときのエラーは何でしたか?

>>環境依存で名前が違いかもしれませんが(うちはVineです)、

接続すら出来ていません。。


>messages, secure, maillog などに何か出力されていませんか?

messages

secureはよくわかりませんがとりあえずメールログ確認します。

>> 一番の回答者JULYさんから...

>>B号機からA号機のSMTPサーバを使ってメールを送ろうとする場合、

>>NAT機能が働いていては困るのでは?

>>(グローバルIPアドレス的には自分から自分へのアクセス、

>>しかもローカルではない...になっていてサーバが反応しないのではと解釈しました。

>>LAN内からのアクセスなので、NATではなく、ローカルのIPアドレスでアクセスしてなければ、

>>A号機は反応しないのではと思います。

ご指摘のとおりです。

上でも言っていますが、

SMTPやPOPにローカルIPアドレスを設定したときしかメールの送受信ができません。

私はJULYさんの回答

>>サーバ側は自分のプライベートなアドレスを送信元アドレスとして、

>>クライアントへパケットを送ってしまいます。

からWAN、LAN内に関係なく

グローバルアドレスで出した要求に対し、NAT転送により

ローカルアドレスでデータが戻るためメール送受信ができない

というように理解したのですが・・・・・

WANの場合は問題なくメール接続できるのですか?

コメント欄有効にしましたのでまた

教えていただきたく宜しくお願いします。

2007/06/01 18:34:21

その他の回答5件)

id:JULY No.1

回答回数966ベストアンサー獲得回数247

ポイント100pt

nslookup - DNSサーバに名前解決の問い合わせを行う

tikutaku.itbdns.com を DNS に問い合わせてみると、おそらく、グローバル IP アドレスが帰ってくると思います。

この IP アドレスに対して、内側からアクセスしようとすると、

・PC はデフォルトゲートウェイ(ルータ)へパケットを投げる。

・ルータは、そのパケットが自分のインターネット側の IP アドレスであることが分かる。

となります。ここまでは良いのですが、ルータが

・自分のインターネット側の IP アドレスで、送られてきたパケットのポート番号に対して、Static な NAT が設定されていることに気づく。

・NAT 先へパケットを転送する。

という動作を期待すると、問題が発生します。

クライアントからはグローバルな IP アドレスに対してパケットを送るのに対し、もし上記のような転送がルータで行われると、サーバ側は自分のプライベートなアドレスを送信元アドレスとして、クライアントへパケットを送ってしまいます。

クライアントから見ると、送ってもいない相手先(クライアントはあくまでもグローバルな IP アドレスへ送っている)から戻りのパケットが来ていることになるので、そのパケットを無視します。

ということで、コネクションが成立せず、タイムアウトで切れてしまいます。

これを解決する手段としては、クライアント側の PC で、C:\Windows\System32\drivers\etc\hosts のファイルを編集して、「tikutaku.itbdns.com」が「192.168.1.20」である、という設定を入れる方法があります。ただし、クライアント側の PC がノートパソコンだったりして、公衆無線 LAN などからインターネット経由でアクセスしようとすると、本来、グローバル IP アドレスが欲しいところで、プライベートのアドレスが帰ってくることになるため、今度は、家の外からはつながらない、ということになります。

現行機種は知りませんが、以前、YAMAHA の NetVolante シリーズでは、ルータに「tikutaku.itbdns.com は 192.168.1.20 と答える」といった、簡易的なローカル DNS 機能があったので、ルータにこういった機能があれば、この問題は解決するのですが、なかなかそういった機能を持つルータは無いですね...。あとは Linux で DNS サーバを立ち上げるか...。

id:harunoharuno

回答ありがとうございます。

>>クライアントから見ると、送ってもいない相手先

>>(クライアントはあくまでもグローバルな IP アドレスへ送っている)

>>から戻りのパケットが来ていることになるので、そのパケットを無視します。

一瞬メールソフトの種類で無視しない奴とかあったらいいな。

とか思いましたが、

そんなのがあったら、無尽蔵にデータを

取得してしまい危険ですね。

2007/05/31 16:02:22
id:tezcello No.2

回答回数460ベストアンサー獲得回数69

ポイント100pt

(最初の回答者さんの言われるていますが)内向きのDNSサーバで書き決するのでは?

少々条件が違うかも知れませんがこちらをよく参考にさせてもらってます。

http://www.aconus.com/~oyaji/dns/bind_linux.htm


当方でもLAN内DNSサーバを立てていますが、それ程難しく無かったように記憶しています。必要な(自宅内の)アドレスを解決してやって、殆どの問合せは上流のDNSに送るだけですから。

id:harunoharuno

回答ありがとうございます。

DNSSについては、

常に動作していなければならないため、DNS用のコンピュータを

2台用意しなくてはいけないとテキストに書いてあったような気がします。

スペース上の都合で1台で

構築出来たら嬉しいのですが、

よい方法などありませんか?

お手数ですが再度回答いただきたく宜しくお願いします。

2007/05/31 16:08:07
id:tezcello No.3

回答回数460ベストアンサー獲得回数69

ポイント100pt

Linux機でメールを受ける(=メールサーバとして使用する)のであれば、Linux機は電源を落とせない事になりますよね。

(気の長い送り手は何度も再送してくれますが、そうでないものも多いのでは? メーリングリストなどは1度でもエラーメールが返ると強制脱会となる所もあるようです。)

ですから、Linux機でメールサーバとDNSサーバの両方を稼動させれば1台で済みます。


自宅内からの要求にしか対応しないDNSにセカンダリを用意しなくてもいいと思うのですが。

勉強されたのは自宅内などの閉じた環境の話ではなく、外部へ公開するDNSシステムのお話ではないでしょうか。


メールを届けてもらえなかったり、ウェブページを見てもらえなくてもよければ(そういうサービスを使わなければ)常時稼動である必要は無いですよね。

http://q.hatena.ne.jp/1180581261

id:harunoharuno

回答ありがとうございます。

ゆくゆくはLANの外(外出先)などからも

メールの送受信ができたらいいなぁと思っております。この場合はやはり2台必要ということなのでしょうか?

2007/05/31 19:54:01
id:toohigh No.4

回答回数291ベストアンサー獲得回数37

ポイント100pt

グローバル IP アドレスに LAN 内から接続できない、という点は他の方が

書かれているとおりですので、代替案を。

PC-B から PC-A への接続に tikutaku.itbdns.com という名前を使いたい、と

いうだけでしたら、DNS を使わずに hosts ファイルを利用する手もあります。

http://www.higaitaisaku.com/hosts.html


今回の場合、C:\WINDOWS\system32\drivers\etc\hosts に

以下の内容を書き足せば OK です。

192.168.1.20 tikutaku.itbdns.com

このファイルを作った、ということを忘れるといろいろとややこしくなるのが

注意点でしょうか。

id:harunoharuno

回答ありがとうございます。

LAN内なら、Windowsの設定ファイルを書き直せばよいのですね。しかし、ゆくゆくは

LANの外(外出先)などからも

メールの送受信ができると嬉しいので

DNSSを試すことにします。

2007/05/31 19:42:20
id:tezcello No.5

回答回数460ベストアンサー獲得回数69

ポイント100pt

tikutaku.itbdns.com を DNSS(これって何の略ですか?ひょっとして DDNS=DynamicDNS の勘違いですか?)に既に登録されているとの事でしたよね?

WAN(LANの外)では itbdns のDNSサーバがチャンと解決してくれているはずなので、LAN内のDNSサーバの有無にかかわらず、WAN 側のIPアドレスまでは届けてくれます。

あとはこのWAN側のIPアドレスが割り当ててあるルータがポートに対応する LAN のアドレスへメッセージを転送してくれる機能(コレガだったらバーチャルサーバ機能なんて名前を付けてますね)が有効なら WAN からのメールアクセスは問題なくLAN 内のサーバへ届く訳です。

つまり、WAN とのメールの授受は LAN 内の DNS に依存しません。

もともとのご質問の不具合は、B号機がA号機の名前を知らなかったから起きた話のようでしたので、ローカルな名前解決の手段として、

簡易的なローカルDNS(1番目の回答者さん)

hosts ファイルに追加する(1、4番目の回答者さん)

LAN 内の問い合せのみ答える内向きDNS

の回答があったと思います。

 うちは複数台のサーバと十数台のクライアントがあるので

 ローカルDNSにしました。

 で、各マシンの名前も FQDN で設定し、www, mail, ftp とかの

 別名も設定しています。こうすればクライアントは LAN, WAN

 を気にせずできますし、どのサーバへのアクセスなのかハッキリ

 しますから。

最近、Outbound Port25 Blocking の動きもあるので、WAN からそのプロバイダのメールサーバを使わずに送信するのはやり難くなって来ている様です。

送信はプロバイダのメールサーバ、あるいは自宅サーバをWEBメール対応にしておく。

受信は自宅サーバから受信する。

のスタイルがいいかも知れません。(僕はこの形でやっています。)

http://q.hatena.ne.jp/1180581261

id:harunoharuno

回答ありがとうございます。

>>tikutaku.itbdns.com を DNSS(これって何の略ですか?

>>ひょっとして DDNS=DynamicDNS の勘違いですか?)

>>に既に登録されているとの事でしたよね?

DDNSの打ち間違えですね。失礼しました。

>>WAN(LANの外)では itbdns のDNSサーバがチャンと

>>解決してくれているはずなので、LAN内のDNSサーバの有無にかかわらず、

>>WAN 側のIPアドレスまでは届けてくれます。

>>あとはこのWAN側のIPアドレスが割り当ててあるルータがポートに対応する

>> LAN のアドレスへメッセージを転送してくれる機能

>>(コレガだったらバーチャルサーバ機能なんて名前を付けてますね)

>>が有効なら WAN からのメールアクセスは問題なくLAN 内のサーバへ届く訳です。

バーチャルサーバ機能を検索してみましたが、

どうも私が使っているモデムのNATエントリ機能と同じように思えます。

ルータのポートにアクセスがあったら設定したIPアドレスにデータを転送する

機能で以下のように設定しています。

変換対象プロトコル 変換対象ポート  宛先アドレス    宛先ポート

TCP         www       192.168.1.20   www 

TCP         smtp       192.168.1.20   smtp 

TCP         pop       192.168.1.20    pop 

設定はしているのですが届かないです。

一番の回答者JULYさんから教えていただいた内容には以下のように書かれています。

>>クライアントからはグローバルな IP アドレスに対してパケットを送るのに対し、

>>もし上記のような転送がルータで行われると、サーバ側は自分のプライベートな

>>アドレスを送信元アドレスとして、クライアントへパケットを送ってしまいます。

この内容だとバーチャルサーバ機能で転送すると、

クライアントにサーバのローカルアドレスを返すことになるためクライアント側は受信しない

ように思えます・・・が、そうではないのでしょうか?

>>WAN とのメールの授受は LAN 内の DNS に依存しません。

そうなんですか、、。

>>最近、Outbound Port25 Blocking の動きもあるので、

>>WAN からそのプロバイダのメールサーバを使わずに送信するのはやり難くなって来ている様です。

スパム対策でそういう問題もあるのですね。勉強になります。

2007/06/01 14:13:59
id:tezcello No.6

回答回数460ベストアンサー獲得回数69ここでベストアンサー

ポイント100pt

進展の無い内容で発言回数ばかり増えてしまいますので、回答受付中でもコメントがつけられるようにしていただけるといいと思います。


> 設定はしているのですが届かないです。

「メールはすでに開通しています」をメールを受信できていると解釈していましたが、違うのでしょうか?

また、これはB号機からですか?それともWANからですか?

(僕は自宅サーバのチェックの際、WANからのアクセスは、携帯のブラウザやメールでよくチェックしてます)

届かなかったときのエラーは何でしたか?

環境依存で名前が違いかもしれませんが(うちはVineです)、

messages, secure, maillog などに何か出力されていませんか?

  サーバの設定で、ログのレベルをデバッグにすると詳細なログが出されます。

  一時的に変更してみるといいかも知れませんね。


> 一番の回答者JULYさんから...

B号機からA号機のSMTPサーバを使ってメールを送ろうとする場合、NAT機能が働いていては困るのでは?(グローバルIPアドレス的には自分から自分へのアクセス、しかもローカルではない...になっていてサーバが反応しないのではと解釈しました。

LAN内からのアクセスなので、NATではなく、ローカルのIPアドレスでアクセスしてなければ、A号機は反応しないのではと思います。

http://q.hatena.ne.jp/1180581261

id:harunoharuno

>「メールはすでに開通しています」をメールを受信できていると解釈していましたが、違うのでしょうか?

>また、これはB号機からですか?それともWANからですか?

現状の説明が足りず困惑させてしまい申し訳ないです。

メールが開通したと判断したのは以下の二点が確認できたからです。

・B号機に入っているメーラーからぷららのSMTPを使いメールを送信し

A号機(LinuxのPOP)で受信することに成功。

 また、B号機に入っているLinux用のメーラからA号機に来ているメールの確認が出来た。

・B号機に入っているA号機のLinuxサーバーを使うメーラーからLinuxのSMTPを使い

 メールを送信し、B号機(ぷららのPOP)で受信することに成功。

しかし、

SMTPやPOPを192.168.1.20のようなローカルな値からtikutaku.itbdns.comに

切り替えるとSMTPサーバやPOPサーバとの接続に失敗し、メールの送受信

ができなくなります。

警告は以下のとおりです。

POP3サーバーが60秒の間、応答しません。あと60秒待ちますか?

アカウント:itb

サーバー:tikutaku.itbdns.com

>>(僕は自宅サーバのチェックの際、WANからのアクセスは、携帯のブラウザやメールでよくチェックしてます)

>>届かなかったときのエラーは何でしたか?

>>環境依存で名前が違いかもしれませんが(うちはVineです)、

接続すら出来ていません。。


>messages, secure, maillog などに何か出力されていませんか?

messages

secureはよくわかりませんがとりあえずメールログ確認します。

>> 一番の回答者JULYさんから...

>>B号機からA号機のSMTPサーバを使ってメールを送ろうとする場合、

>>NAT機能が働いていては困るのでは?

>>(グローバルIPアドレス的には自分から自分へのアクセス、

>>しかもローカルではない...になっていてサーバが反応しないのではと解釈しました。

>>LAN内からのアクセスなので、NATではなく、ローカルのIPアドレスでアクセスしてなければ、

>>A号機は反応しないのではと思います。

ご指摘のとおりです。

上でも言っていますが、

SMTPやPOPにローカルIPアドレスを設定したときしかメールの送受信ができません。

私はJULYさんの回答

>>サーバ側は自分のプライベートなアドレスを送信元アドレスとして、

>>クライアントへパケットを送ってしまいます。

からWAN、LAN内に関係なく

グローバルアドレスで出した要求に対し、NAT転送により

ローカルアドレスでデータが戻るためメール送受信ができない

というように理解したのですが・・・・・

WANの場合は問題なくメール接続できるのですか?

コメント欄有効にしましたのでまた

教えていただきたく宜しくお願いします。

2007/06/01 18:34:21
  • id:harunoharuno
    メールのログしらべました。
    SMTP、POPにローカルIPを設定しているときの
    メール問い合わせをしたときに
    作られたログ情報です。

    Jun 1 20:17:19 tikutaku ipop3d[7247]: pop3 service init from 192.168.1.3
    Jun 1 20:17:19 tikutaku ipop3d[7247]: Login user=itb host=[192.168.1.3] nmsgs=0/0
    Jun 1 20:17:19 tikutaku ipop3d[7247]: Logout user=itb host=[192.168.1.3] nmsgs=0 ndele=0

    SMTPやPOPにホスト名を設定したときは、
    ログが作成されませんでした。
  • id:tezcello
    それは正常な動作だと思います。
    ローカルなSMTPやPOPなのだから、ローカルなIPアドレスでなければ。
    B号機がそれを知らない為にデフォルトのDNSサーバ(B号機のネットワークの設定で多分ルータになっていると思います)に問い合わせてしまい、その結果グローバルIPアドレスを得てしまうので応えてくれるサーバが居ないという事になっているのだと思います。

    つまり、B号機が、tikutaku.itbdns.com は 192.168.1.20 であると分かればいいんです。
    その為の手段として、hosts にその旨書き込む、ローカルのDNSサーバをたててローカルの名前解決をやらせる、の回答があったわけです。
  • id:harunoharuno
    回答ありがとうございます。
    SMTPやPOPなどでサーバにアクセスする場合
    ルータのNAT転送機能でグローバルなアドレスが
    ローカルなIPアドレスに変換されサーバに届き、
    その応答がルータを通過する際に、
    またグローバルIPアドレスに
    戻されるという理解で正しいでしょうか?

    LAN内から出したメールの場合は、
    サーバの応答がルータを経由せず来るので
    グローバルIPアドレスの要求に対してローカルなIP
    アドレスの応答が来てしまうということなんですね。

    ちなみに、LAN外の端末で
    SMTPやPOPをtikutaku.itbdns.comの設定にし
    メールを送受信したところ、
    無事にアクセスすることができました。やったー。
    でも、なぜかそれから数分した後、
    同じようにメールの送受信をすると、メールサーバ
    に接続できなくなりました。
    まだ課題はあるようです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません