2011-12-27 11 views
6

digコマンドを使用してgmail.comメールサーバを探し、telnetを使用してdigコマンドによって返された結果を確認しようとしています。gmail.comメールサーバの解決

$ dig gmail.com MX 

; <<>> DiG 9.7.3 <<>> gmail.com MX 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54145 
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 

;; QUESTION SECTION: 
;gmail.com.   IN MX 

;; ANSWER SECTION: 
gmail.com.  800 IN MX 10 alt1.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 20 alt2.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 30 alt3.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 40 alt4.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 5 gmail-smtp-in.l.google.com. 

;; Query time: 14 msec 
;; SERVER: 192.168.1.1#53(192.168.1.1) 
;; WHEN: Tue Dec 27 02:09:50 2011 
;; MSG SIZE rcvd: 150 

Digコマンドでは、「alt1.gmail-smtp-in.l.google.com」はメールサーバーの1つです。 smtpポート25または587は、リンク「alt1.gmail-smtp-in.1.google.com」に対して開かれていません(telnetを使用して確認されています)。しかし、リンクhttp://support.google.com/mail/bin/answer.py?hl=en&answer=13287は、smtp.gmail.comがgmail.comのメールサーバーであり、ポート587がそのメールサーバー用に開かれていると言います。なぜ掘り出し物が間違った電子メールサーバーを提供しているのか、または掘り出し物の出力を読んでいる私の理解が間違っているのか

答えて

15

一般理論

一般的に言って、SMTPサーバは、多くの場合、融合し得る2つの異なる機能があります:送信メールの送信をし、他のネットワークからのメールを受信。これらの2つの機能は、同じSMTPプロトコルを使用して実行されます。通常、これらの2つの機能は同じマシンで実行され、歴史的には同じポート上で実行することもできます。だから、なぜ人々がこれらの2つの機能を融合させるのかを知ることは容易です。

これらの2つの機能は同じSMTPプロトコルですが、システム管理者がポート25のトラフィックをブロックしてスパムを防止するため、同じポート上で実行されることはますます少なくなります。最近、SMTPの送信はSSL暗号化を使用していますが、2つの異なるネットワーク間でのメールの転送はまだプレーンテキストで行われています。 Googleのネットワークの複雑さのために、これらの2つの機能が別々のマシンで実行されていると私には驚かないでしょう。 (免責事項:私はGoogleのために働くが、私はGmailの操作についての内部の知識を持っていません。)

  1. 送信メールの提出。 Gmailから電子メールを送信するとき、特にEvolutionのような電子メールクライアントをGmailアカウントから送信するように設定するときは、メールを送信するためにSMTPサーバーを設定する必要があります。あなたの電子メールクライアントはこのSMTPサーバーに直接接続し、そのSMTPサーバーはインターネット上の他の場所にメッセージを送信する責任があります。これは、特別なポートを使用して設定され、許可されたユーザーだけが電子メールを送信できるようにログイン情報を必要とすることがよくあります。これは、上記サポートリンクが扱っている機能です。ポート587でドメイン名smtp.gmail.comを使用するように電子メールクライアントを設定すると、通常のドメイン名の検索にDNS Aレコードを使用して電子メールクライアントがこのサーバーを検出したと思います。

  2. 他のネットワークからのメールを受信して​​います。あなたのメッセージを他のネットワークに中継しているSMTPサーバーは、というgmail.comのレコードを検索し、メッセージを送信する場所がそのホストのポート25に送信されていることを確認します。これはDIGで調べて、telnetでテストしたものです。

    なぜ消費者のインターネット接続からtelnettingを試みたときにalt1.gmail-smtp-in.l.google.comのポート25が表示されませんでしたか?答えは、発信スパムを防ぐために、ISPがポート25で発信トラフィックをブロックすることです。したがって、ISPのSMTPサーバーまたはログインが必要なその他のSMTPサーバーを経由せずにポート012に送信することはできません587.

何をしようとしましたか。

したがって、機能#2を実行しようとしています。 gmail.comのMXルックアップを実行したところ、サーバalt1.gmail-smtp-in.l.google.comに対応しています。次に、alt1.gmail-smtp-in.l.google.comのポート587にtelnetで接続しようとしました。alt1.gmail-smtp-in.l.google.comがそのポートでリッスンされていないので、それは動作しませんでした(それが唯一の機能#2を実行するために、ポート25でリッスンする必要があります)。次に、alt1.gmail-smtp-in.l.google.comのポート25にtelnet接続しようとしました。それはあなたがgmail.comに電子メールを送信するために行うために必要なものは、ISPブロックするので、ポート25

上の発信接続を動作しませんでしたファンクション#1を実行するサーバを見つけて、そこを通して、あなたの電子メールを送信します。代わりに、スパム避難所であることに気付かず、ポート25で発信トラフィックをブロックしないISPを見つけてください(実際にはしないでください)。

+0

私はあなたのポート検証サーバのことを誤解していると思います私は明示的に私が開いているポートをテストしているサーバー名を述べている必要があります)。私は "gmail.com"の開いているポートを確認しませんでした。私は掘ることにより、gmail.comのメールサーバとして報告された「alt1.gmail-smtp-in.l.google.com」ポート25と587を、チェックしています。私はgmail.comからメールを送ることを考えていません。私は "[email protected]"に電子メールを送信しなければならないメールクライアントを書かなければならないと仮定します。私が最初に見つけなければならないのは、gmail.comのメールサーバーとは何ですか。それを見つける方法。 –

+0

@Talespin_Kit:今私の答えを更新しました。それは役に立ちますか? –

+0

答えを更新していただきありがとうございます。私は、ISPによってポートがブロックされていることに関するクエリはほとんどありません。私は「smtp.gmail.com」のポート25に接続することができますが、私は「alt1.gmail-smtp-in.l.google.com」のポート25に接続することはできません。それでは、なぜISPは「alt1.gmail-smtp-in.l.google.com」ではなく「smtp.gmail.com」のためにポート25をブロックしません。 (私は「alt1.gmail-smtp-in.l.google.com」のポート25が実際に開いているかどうか疑問を持っている)ISPブロックするかどうかポートを見つけるためにどんな方法があります。もう1つのクエリは、なぜ "smtp.gmail.com"に関する情報がMXレコードに存在しないかです。 –