質問者
exchangeサーバにて外部(インターネット)からメールが受け取れない件

質問
-
今まで、外部にあるmail.domain.net(グローバルIP)というメールサーバ(sendmail)で、メールの送受信を行っていました。
(クライアントとして、OutLookExpressを使用しておりました。)
今回、社内にExchange2007を導入するにあたって、物理的なサーバを3台使用。
(1)DC、兼、内部でしか引けないDNS(ADのドメイン名は、exchange.domain.netというサブドメイン名) …192.168.0.10
(2)Exchangeサーバ(メールボックス、ハブトランスポート、クライアントアクセス、ユニファイドMの4つの役割)…192.168.0.11
(3)エッジトランスポートサーバ(これだけWorkGroup環境) …192.168.0.12
OSはすべてWindows2003server(64bit)Enterprise
そこで、Exchange2007の自習書(ワードの書類)を参考にしながら、Exchangeな環境を構築しようとしておりましたところ、
一応、アウトルックwebアクセスと通常のOotLook2007によるアクセスはできました。
ところが、既定のメールアドレスが、
となっているため、基本的にLAN内でしかメールができません。
そこで、ドメインユーザへの電子メールアドレスの追加、電子メールポリシーのチェックを外し、
既定のメールアドレスを、今まで使っていて自分の名刺にも記載されているメールアドレスである、
に変更しました。ですが、
OWAにて「インターネットからfunifuni@domain.net宛ての」メールを受信することが
できませんでした。
外部のメールサーバはちゃんと生きているので、普通に今まで通り、OEで送受信はできますので、
それで使用しているのですが、多くなってきたスパムを弾きたくて、
どうしてもExchange+EdgeTransportで安全にメール環境を構築したいと思っております。
今回参考にした資料は、マイクロソフトさまが配布している7つのファイルから成る自習書で、
その中のインストール編、クライアントアクセス編、受信者設定編、エッジトランスポート編の4つです。
特別な設定はしておりません。
エッジトランスポートでの設定は、
(1)のDC件内部用DNSで、メールサーバの完全修飾ドメイン名をexchange.domain.netにしたこと(MXレコードの設定)
(3)のEdgeにて承認済みドメインを作成したこと(exchange.domain.netだけでなくmail.domain.netとdomain.netも)
(3)のEdgeにて、受信コネクタHub_To_Edgeの作成、ハブトランスポートサーバのIPアドレスの指定(192.168.0.11)
(2)のEXサーバのハブトランスポートにおいて、受信コネクタの作成と許可グループに匿名ユーザの追加
(3)のEdgeにて送信コネクタEdge_To_Internetの作成とアドレスは「*」にしたこと。
(3)のEdgeにて送信コネクタEdge_To_Hubの作成、スマートホスト経由のルーティング(2をルーティングするよう設定)
(2)のEXのハブトランスポートにおいて、送信コネクタHub_To_Edgeの作成、インターネット、「*」、Edgeをルーティングする設定
とまぁ、自習書通りにか設定しませんでした。
OutLookWebAccessにて、ログイン、自分の携帯電話のメールアドレス宛てにはきちんとメールが送信できました。
しかし、通常使用しているfunifuni@domain.netにはメールが一切入ってこなくなりました。
私の勉強不足による認識違いならすみません。エッジトランスポートサーバがmail.domain.netに
funifuni@domain.net宛てのメールを取りに行ってくれる…という認識だったのですが。
(エッジトランスポートがどうやってmail.domain.netの在り処を知るの?という話もありますが、
3台のマシン全てにネットワークの設定で、mail.domain.netを引けるDNSを登録しましたし、
内部でしか引けないDC兼DNSにも、MXレコードとしてmail.domain.netを登録)
どなたかお分かりになる方、おられましたらよろしくご教授お願い致します。
そもそも、私どものように外部にメールサーバをレンタルしているような環境ではダメなものなのでしょうか?
2007年7月27日 9:09
すべての返信
-
環境についての確認です。
エッジトランスポートサーバがmail.domain.netにfunifuni@domain.net宛てのメールを取りに行ってくれる
とあります。
外部メールサーバーをレンタルしていらっしゃるとのことですが、domain.net のMXレコードはレンタルサーバーのアドレスとなっているのでしょうか。
そのレンタルサーバーに対して、Exchangeがメールを取りに行くという認識をされていますでしょうか。
このように解釈した上での回答となります。
Exchange2007には、外部メールサーバーに対してメールを取りに行くといった機能は実装されていません。
Exchangeをメールサーバーとしてご利用する場合は、domain.net のMXレコードがレンタルサーバーではなく、直接Exchangeを指し示す設定が必要となります。
MSが提供している自習書、設定資料についても直接メールサーバーを立てることを前提としたものとなっているので、設定自体は間違ってはいないと思いますが、そもそものメールサーバーを立てる環境が異なると考えられます。
2007年7月30日 4:47 -
WIN1さん、教えていただきありがとうございます。
ご指摘の通り、勘違いをしておりました。
MTAとして動作するという解釈でよろしいわけですね。
そこで、固定のIPアドレスを取得して自前でexchangeにてメールサーバを立てる
ことに致しました。
エッジトランスポートの役割をインストールしたPCにグローバルのIPアドレスを
割り振って、他の役割はローカルに。ネームサーバも自前にして
ゾーンの編集で、エッジトランスポートのホスト名とグローバルのIPを
MXレコードとして書いてあげればよいわけですね。
そこで、素人質問で申し訳ないのですが、1点教えていただきたいことがあります。
メールアドレスとメールサーバーの関係って、例えば
というメールアドレスがあったとして、このメールアドレスを使えるように
するために、OutlookExpressとかで、受信メールサーバ、送信メールサーバの
設定に、
mail.domain.net
などと記述しますよね。(今まではそうしておりました)
この対応付けは、ネームサーバのMXレコードによってなされるわけですよね。
例えば、mail2.domain.netをMXレコードとして登録すれば、
funifuni@domain.net宛てに来たメールを集約するサーバはmail2.domain.net
という風に変更もできますよ…みたいな解釈であってるのでしょうか?
今回、exchange2007にてメールサーバを構築するにあたって、
ちょっと分からないのが、
funifuni@domain.net宛てに来たメールをmail.domain.net
ではなく、今度はエッジトランスポートサーバである
edge.exchange.domain.net(ホスト名)とfunifuni@domain.net
をどのように関連付けるのか、が分からないでいます。
外部に公開するネームサーバにedge.exchange.domain.netをMXレコードして
登録するだけで、funifuni@domain.netとedge.exchange.domain.netというメールサーバ
が対応付けられる…という解釈であっていますでしょうか?
また、自社内にNTドメインが既に存在しており、NTドメイン名が「domain」なので、
本当は、2003サーバによるADのドメイン環境を「domain.net」にしたいのですが、
重複してしまうのでやむなくFQDNでいう所のexchange.domain.netにしています。
それなので、今自社内に「domain」というドメインと「exchange」というドメイン
(…分かりづらくてすみません)の二つが併存しています。
ADの配下に、メールボックスの役割、ハブトランスポート、クライアントアクセスが
置いてあります。
そこで、教えていただきたいのですが、exchange.domain.netというサブドメイン
名なので、デフォルトではfunifuni@exchange.domain.netというメールアドレス
になってしまいますが、これを従来通り、funifuni@domain.netという
メールアドレスにして、なおかつメールサーバ(エッジトランスポート)は
edge.exchange.domain.netという風な関連付けって
そもそもできるものなのでしょうか?
不勉強で申し訳ありませんが、どなたかご指導お願い致します。
2007年8月27日 4:08 -
>exchange.domain.netというサブドメイン名なので、デフォルトではfunifuni@exchange.domain.netというメールアドレス
>になってしまいますが、これを従来通り、funifuni@domain.netという
>メールアドレスにして、なおかつメールサーバ(エッジトランスポート)は
>edge.exchange.domain.netという風な関連付けってきるものなのでしょうか?できます。これは、メールボックスに設定した、funifuni@domain.net のほうほうで結構です。それよりも重要な、設定が抜けています。
まず、DNSの設定とExchangeの設定を分けます。
Exchangeでは、@domain.net宛てのメールが来た時に、自分あてメールであり、処理(配信)をさせる設定をします。
DNSには、他のサーバーが@domain.net宛てのメールの配信先が特定のIPアドレスであることを知らしめる設定をします。(注意:これをExchangeが参照する必要はありません。他のサーバーが参照する設定です)
Exchangeの設定:
その他のMTAにも言えることですが、自分以外の外部のMTAよりメールを受け取った時に、「自分の処理すべき宛先か?」を決めます。大まかには3つの選択を迫られます。
1. 自分あてのドメインではないので、突き返す。
2.自分あてのドメインなのでユーザーに配信をする。ユーザーがいない場合 「このメアドをもつユーザーは存在しません」と言い切ってエラーメールを送信元に返す。
3.自分あてのドメインではないが、外部の特定のサーバーに転送することになっているドメインなので、転送する。
現在はExchange側で、@domain.net というドメインのメールが、[自分あてのドメインではないので、突き返す]という処理をする状態になっているのではないかと思われます。自分が処理すべきドメインであることを認識させるためには、[組織の管理] →[ハブトランスポート]→[承認済みドメイン]で、承認済みドメインとして登録をしてください。まず、これがExchangeに上記3つの処理を決めさせるための第一歩です。
Exchange(その他MTAも)は、承認済みドメイン(自分が処理をすべきドメイン)宛てのメールであれば、自分の管理下にそのメールアドレスを持つメールボックスがあるかどうかを探します。今回は、funifuniというメールボックスが持っているようなので、そこに配信するでしょう。
※ もしも、どのメールボックスもメールアドレスを持っていなければ、Exchangeは「このユーザーは存在しません」と言い切ります。この世に存在しません、と言い切れる管理状態にあるドメインを「権限のあるドメイン」と言います。そのため、先ほどの設定は、「権限のあるドメイン」として設定する必要があります。
とりあえず、これがExchangeが@domain.netあてのメールを処理させるための設定です
DNS の設定
他のメールサーバーが@domain.net宛てのメールを、今回立てたExchangeサーバーへ送ってくれるように設定をする必要があります。一般に、メールサーバーは、SMTPドメインより、下記の方法でDNSサーバーで名前解決を試み、送信先のメールサーバーを決めます。
1.SMTPドメイン(@domain.net)より、自分が参照するDNSからdomain.netのMXレコードを取得します。(通常、MXレコードは、mail.domain.comなどのホスト名を返すよう設定されています)
2.MXにより受け取ったホスト名から、CNAMEレコードの解決をします。(通常、CNAMEには、本物のAレコードのホスト名が書かれています。例 s1547sv.plala.hi-ho.ne.jp)
3. 2で受け取ったホスト名をAレコードで解決し、最終的な接続先のIPアドレスを取得します。
これにより、メールサーバーは3で取得したIPアドレスの25番ポートに対して接続をし、SMTPセッションを開始します。
なので、これはインターネット上のその他のサーバーが参照できるDNSに対して設定がされている必要があります。また、Exchangeは参照できる必要はありません。他のサーバーが1~3のプロセスで、@domain.net あてをこちらのExchangeのIPアドレスに接続できるように知らしめればよいだけなので。
以上、二つの設定を行ってください。
なお、ハブトランスポートサーバーの受信コネクタのプロパティにログを取る設定が可能です。ログを取るようにすると、最低限接続があったことだけは確認できます。
ログの場所: c:\program files\microsoft\exchange\Transport Roles\ 以下のどこかに protocol log という感じの名前のフォルダがあります。そこにSMTPのセッションがそのまま残りますので、
・メールが来てないのか(DNSの問題)
・メールが来たが配信されないのか(Exchangeの問題)
の切り分けが可能です。
2012年2月28日 14:06