ADFSでOneDrive for Businessのアクセス制御

Office 365の導入を検討しているユーザーから良く聞かれることの一つに、「会社のネットワークの中からだけOffice 365が利用できるようにできるか」ということがあります。

Microsoftやベンダの立場としては「AD FSで制御できます」と答えるべき所だとは思うのですが、この時点でのこの回答は正しくも有り、そして間違ってもいます。私は、そういった場合「AD FSで認証に関する制御を行う事ができますが、それで要望されていることを満たすかどうかはお客様の要件次第です」と回答しています。

これは、AD FSを利用したOffice 365へのアクセスの仕組みが、「認証」「認可」に役割が分かれていることに関係します。AD FSは「認証」を行い、Office 365(の各アプリケーション:例えばOneDrive for Business)は「認可」を行います。

AD FSでは、認証を行う時にID/PASSが合っているということの他に、条件を付けることができます。例えば、今回のケースでは「アクセス元が社内ネットワークからである」というという条件を加えることができます。これにより、インターネットからのアクセスでは「認証」されることがないので、Office 365の利用を制御できることができます。

これなら要件が満たせるのでは?ということになりますが、これは1つ観点が抜けています。Office 365では、AD FSで認可を受けてきているということは認識してますが、それがどういった条件の下で認可を受けてきたかどうかは情報として要求しておらず(アカウント名とImmutableIDというユーザーを一意に識別する特別な符号のみ)、認識しません。この為、今アクセスしてきているユーザーのアクセス元が社内ネットワークからであるかどうかは分からないのです。

具体的に言うと、一度社内ネットワーク内でAD FSで認証し、Office 365にアクセスした後に、そのままの状態(例えば、ブラウザを開いたまま)でその端末を外に持ち出した場合、アクセスが一定期間継続できてしまうのです。

これでどの程度の期間アクセスが継続できるのか(再度認証が必要になるのはどういった条件か)というのはOffice 365側で決められているので、AD FS側で制御することができません。タイトルに戻るのですが、OneDrive for Businessのスマートフォン用アプリでは、私が試した限り一度AD FSで認証をかけるとその後AD FSに認証されるというケースはほぼ無いように見えます。(常時接続するので、アイドルタイムアウトしない為ではないかと思いますが)

従来の考え方ですと、そもそも社内端末を社外に持ち出して使うこと自体認められていないので問題ないという形になったのかもしれませんが、今後BYODやスマートフォンなどからの利用が進んでいくと、端末が社内NW、社外NWと行き来したりするというケースは普通に出てきます。

こういったケースが併用される環境では、IPアドレスをベースにしたアクセス制御よりはMDM(モバイルデバイス管理)などで端末単位での認証をしていく方が現実的になっていくのかもしれませんね。

Office 365管理者が2015年度考えるべき5つのこと

皆さんこんにちは。

年度が切り替わって、心機一転新しいことに取り組まれて頑張っている方も多いのではないかと思います。

Office 365も、常に進化するクラウドサービスですので今年度もどんどん新しくなっていきます。特に、今年はOSとOfficeの新しいバージョンが発表される年でも有り、大きな変化が予想されます。

今日は、Office 365の管理者の皆さまが2015年度に考えていくべき事について述べていきたいと思います。

①メジャーバージョンアップ(2013→2016)への対応

今までのOffice 365は、オンプレミスのプロダクト(Exchange/SharePoint/Lync)でいうと2013のバージョンでした。Microsoftも言っているとおり、「クラウドファースト」になりますので、今年はこれらのバージョンアップ(2016?)が予定されます。

既に一部発表されている通り、サーバーサイド(LyncはSkype for Businessに名称が変わりますが)もクライアントサイドのOfficeも2016ベースに切り替わります。Office Pro Plusで導入している場合、アップグレード猶予期間は1年間なので、計画的に進めていきましょう。

②更改の準備を進めましょう

Office 2010は2015/10/13にメインストリームサポートが終了します。終了後はアクセスはできますが、今でいうOffice 2007やIE9と同じような扱いになり、新しい機能の利用などへの制約事項が増えていきます。

Office 365 のシステム要件
Office 365 では、Office 2007 でのサービスの使用に関する問題を解決するコード修正は提供されません。ユーザー エクスペリエンスの質が次第に低下し、Office 365 の新しいエクスペリエンスの大部分がまったく機能しなくなります。

また、クライアントだけでは無く、サーバサイドでも既に延長サポート期間に入っているWindows Server 2008 R2やExchange Server 2010をオンプレミスで連携に利用している場合、今後のサポートのアナウンスに注意しましょう。

③日本リージョンへの移行

現在APACリージョン(シンガポール/香港)に展開されている日本のユーザーは、日本リージョン(東日本/西日本)に移行が実施されます。移行したくない場合は、移行の案内が来た場合にその旨を通知する必要があります。

また、移行は極力影響の無いように実施されるとの事ですが、実際やってみないと何が起きるか分からないという部分もあるかと思います。現在、先行ユーザーが実テナントで移行を試行して影響などを調査していますが、今後、例えば移行時期におけるサービスの一部制約等が発生する可能性もありますので、継続的に情報収集しましょう。

④単一プロダクトや社内の特定環境からだけ利用という考え方についてそろそろ再考を

Office 365の新しい機能(Delve、Group)や統合的な電子情報開示などを見ても分かる通り、段々とOffice 365は「Exchange(Messaging)」「SharePoint(Collaboration)」「Lync(Communication)」という個々のソフトウェアではなく、企業の生産性を向上(Productivity)させる製品群という考え方で全体で一体的に開発/向上させてます。

加えて、Office 365は「いつでも、どこでも、どんな端末からでも同じ情報にアクセス」できることをコンセプトに作られてます。最近、iOSやAndroid向けのモバイルアプリも多数開発されていっており、BYOD環境に適合できるようMDMの機能も取り入れていくと発表されてます。

エンドユーザーでも、そのMicrosoftの考え方を取り入れ、業務に導入し、結果的に生産性を向上させていっているという先行事例がどんどん出てきています。今までの使い方(というかポリシーのレベルかも知れません)を変えるというのは、非常に労力のかかることではありますが、折角クラウドを導入したのですから、競合他社に遅れを取らない為にもどんどん使いこなしていきましょう。

⑤為替レートの推移

Office 365は、昨年度円安の影響で日本市場で値上げが実施されました。ただ、値上げが発表された時期はまだ1$=\110程度の時期で、その先更に円安は進みました。

例えば、E3の値段($20)が\2,180に設定されているという事からも想像できる通り、現在の値段の想定円レートは現在の為替相場よりかなり円高になってます。このままの円安基調で推移した場合、更なる価格改定も考えられますので、2016年度の予算取りの時期が近づいてきたら円レートを少し気にするようにすると良いかもしれません。

 

という訳で、2015/05/16 Japan Office365 Users Group主催の第11回 Office 365勉強会で上記の事などを話したいと思います。

今回は新年度ということもあり、テーマは「Office365新任管理者さん いらっしゃ~い」です。各分野の著名な方に喋って頂こうと思ってます。新しくOffice 365と付き合うことになった方にも、勿論昔からのユーザーの方にも為になる内容になるように、スピーカー一同頑張って内容を考えている所です。

お時間の許す方、是非ご参加下さい。

DuplicateDeliverによる配信不可

Exchange Serverでは、以前のバージョンより同じメールが複数届いた場合に最初の1通のみ受信し、残りのメールを重複として削除するシングルインスタンス機能が備わっています。Exchange Server 2013においても同機能が備わっております。

重複と検出判断されたメールは、メッセージ追跡ログを見ると、2通目以降のメールには Source STOREDRIVER EventId DUPLICATEDELIVER が記録され、メールボックスには最初の1通だけ配送されます。
20150311_01

、同一のメッセージと見なされる条件は以下の通りです。

  • 同一のMessageIDヘッダであること
  • 同一のDateヘッダであること
  • 同一のメールボックスへの配送であること

参照:How does duplicate detection work? / Exchange 2007 で重複するメッセージを検出する方法

この機能自体は、ユーザー側のメールを読む負荷を軽減すると共に、メールのループ防止などの意味で重要な役割を担っているのですが、一定のケースで2通目以降のメールを受け取りたい場合があります。例えば、

  1. ウィルスが誤検知されて添付ファイルが削除されたメールをアンチウィルスソフトから再送する場合
  2. ユーザが誤って削除して復元できなくなったメールをジャーナルアーカイブから再送する場合
  3. システム上の制約で同じMessageIDで送信してくるメールを受信する場合
  4. Toに自身のアドレスが、Ccにメーリングリストが入っていて、メーリングリスト毎にフォルダ分けしている場合

などです。Exchange Server 2007/2010では、デフォルトで1時間の間このメッセージの重複を検知します。また、情報自体は7日間保存しております。この時間を変更する際には、レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server_Name>\Private-<GUID>\ 配下のDeliveredTo Expiration in Hours や DeliveredTo Cleanup Interval in Seconds を変更する事により変更することが可能でした。

ところが、Exchange Server 2013においては、検証する限りでこの設定が変更になっているようで、今までデフォルトでは1時間待てば配送されていた物が、7日間配送されないようになっておりました。また、今まで設定していたレジストリを設定してみても動作は変わりません

Microsoftのサポートに問い合わせて調査したところ、Exchange Server 2013 CU7現在、上記設定は7日にハードコーディングされており変更できなくなっているとのことでした。

Exchange Serverは、基本的にExchange Onlineと同じコードがベースになっているという話を聞いたことがあるので、Online側でカスタマイズ不可としてハードコーディングされているのであれば、それも考えられるかなとは思う反面、今までとデフォルト値を変更した上に設定変更も不可…というのはちょっと厳しいかなとも感じております。

最近、Exchange Onlineの挙動を見る限りでは、重複検出期間が24時間に仕様が変更になったっぽいので、オンプレも今後のCU8やそれ以降で挙動が変更にならないかどうか注視していきたいと思います。

関連記事: 重複メッセージの除去(Exchange Online)

メールヘッダでExchange Onlineの構成を推測

注:この投稿は検証結果を元にした推測の部分を多大に含みます 今回は、Exchange Onlineのサーバ構成について考えてみたいと思います。

メールのヘッダには、様々な情報が付与されています。これを読み解くことによって、メールの送信遅延がどこで発生しているのか、どういうサーバを経由して届いたのかを調べることができます。

例えば、以前の記事 重複メッセージの除去(Exchange Online) で送信したテストメールを見ると、以下の様なReceivedヘッダが付与されています。

Received: from SG2PR03MB0537.apcprd03.prod.outlook.com (25.160.235.149) by
 SIXPR03MB0541.apcprd03.prod.outlook.com (25.160.173.25) with Microsoft SMTP
 Server (TLS) id 15.1.99.14 via Mailbox Transport; Sun, 8 Mar 2015 13:39:47
 +0000

Received: from SIXPR03CA012.apcprd03.prod.outlook.com (10.141.119.22) by
 SG2PR03MB0537.apcprd03.prod.outlook.com (25.160.235.149) with Microsoft SMTP
 Server (TLS) id 15.1.106.15; Sun, 8 Mar 2015 13:39:46 +0000

Received: from DB3FFO11FD006.protection.gbl (2a01:111:f400:7e04::167) by
 SIXPR03CA012.outlook.office365.com (2a01:111:e400:a82b::22) with Microsoft
 SMTP Server (TLS) id 15.1.106.15 via Frontend Transport; Sun, 8 Mar 2015
 13:39:46 +0000

Received: from xxxx.localdomain (xx.xx.xx.xx) by
 DB3FFO11FD006.mail.protection.outlook.com (10.47.216.95) with Microsoft SMTP
 Server id 15.1.112.13 via Frontend Transport; Sun, 8 Mar 2015 13:39:43 +0000

Receivedヘッダは、リレーされる度に下から上にだんだんと追加されていきます。Office 365の中では、主に以下の様な流れで記録されています。
20150309_02

まず、①では外部からMXレコードを引いた値でEOPに送信されます。これは、APACには限定されず、世界中のEOPで受信する形になるようです。今回はDB3~というホスト名で受信していますので、恐らくヨーロッパリージョンのダブリンのEOPで受け取ってからAPACに転送されているのだと思います。

Exchangeでは、外部からのメールはCAS(クライアントアクセスサーバ)で動作しているフロントエンドトランスポートが受ける形になります。直近数百通のメールを見る限りで、後述するDAGより大きな単位で束ねられたシンガポール・香港のCASサーバ群に負荷分散されて到着しているようです。ここはロードバランサーにより行われていると推測します。

次に、メールボックスの存在するDAG(データベース可用性グループ)に対してルーティングされます。DAGは、Exchange Server 2013と基本的なアーキテクチャが同じという前提であれば、最大16台のメールボックスサーバで構成されるクラスタサーバ群になります。同じく直近のメールのヘッダを追う限りでは香港①/香港②/シンガポール①/シンガポール②でそれぞれ4台ずつ構成されている様です。

最後にメールボックストランスポートから実際のメールボックスに対してメールが配信されます。メールボックスデータベースは、1つのActiveと複数のPassiveによって構成されていますが、メールボックストランスポートからは現在Activeとなっているメールボックスサーバにメールが配送されます。

これらをまとめると、以下の様なメールフローになります。CASのサーバ名は非常に数が多かったのでサンプルを、メールボックスサーバの中で実際に見つからなかったが、名前付けルールから推測したものを( )で表示しています。(※たまたま通らなかっただけかもしれませんし、故障やメンテナンスで切り離されていたのかもしれません。)
20150309_01

次に、 重複メッセージの除去(Exchange Online) で紹介している過去一定期間に受信したメールの重複チェック用のデータですが、これは各メールボックスストアごとに保存されており、メンテナンスや故障対応などのためにデータベースのActiveが別のサーバに切り替わるとリセットされます。

以下、3/4以降のメールについて、最後のReceivedヘッダの記録されているサーバ(つまり、メールボックスのストアされているサーバ)と時刻のリストです。24時間ではない間隔で来ているメールはそれぞれ短時間(数十分)の間SG2~→SIX~に切り替わり、切り戻りが発生しており、メンテナンスで同一データセンター内でActiveが切り替わったと推測されます。

  • Mar 4 16:07:39 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com
  • Mar 5 16:08:08 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com
  • Mar 6 16:08:36 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com
  • Mar 7 01:23:47 JST 2015: SIXPR03MB0541.apcprd03.prod.outlook.com
  • Mar 7 01:58:48 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com
  • Mar 8 01:54:17 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com
  • Mar 8 22:39:42 JST 2015: SIXPR03MB0541.apcprd03.prod.outlook.com
  • Mar 8 22:54:42 JST 2015: SG2PR03MB0539.apcprd03.prod.outlook.com

Activeが切り替わった場合でも、OutlookからExchange Onlineへの接続は透過的に行われていますので、ユーザーが気づくことは少ないかと思われます。

サイト障害を考えると、シンガポール、香港ともに2つずつはメールボックスDBを配置するのが必要だと思いますので、HK2~、HKX~のどれかにもPassiveが存在しており、最低、平常時は1 Active – 3 Passive以上の冗長性は確保されているものと思われます。更に運用によって(すぐにオンラインに戻す必要はないと前提で運用設計する場合)はDC内に2つ以上のPassiveを構成している可能性もありますね。

 

また、これらのユーザーの所属するサーバ群はたまに変わるようです。 (私のメールボックスは、2/6のAM6:00-7:00頃に HK2PR03MB0833 から切り替わっています。)

これは、オンプレミスで利用するのと同じで、それぞれのユーザーの利用量や負荷についてはバラツキがあり、これを解消する為のリバランス処理や障害対応(主に、検索インデックス関係)が多いと思われます。

Outlookを便利にするアドイン紹介③

今回は、利用者側が便利、というよりは管理者よりの便利機能になりますが、誤送信対策を提供するアドインの紹介です。

そもそも、Exchange/Outlookは標準で誤送信対策に役立つ機能がいくつか備わってますが、それでは万全ではないと考える組織向けになります。欧米では免責事項を文末に付けておけば十分とされている部分も多大にありますが、日本は少し厳しめですね。

Office 365 に標準装備されている電子メールの誤送信防止機能 5 点 

いくつか出てますが、今回は試用版がVectorからダウンロードできるWISE Alertを紹介します。

インストール自体は、インストーラーを実行すると簡単に完了します。
スクリーンショット (161) スクリーンショット (162) スクリーンショット (163) スクリーンショット (164) スクリーンショット (165)

 

なお、Chromeからダウンロードしようとすると警告メッセージがでてしまうので、IEからダウンロードした方が良いかもしれません。
スクリーンショット (166)

 

Wise Alertの基本機能は、①メール送信時の確認画面のポップアップ ②自動メール遅延送信の2つです。メールを送信すると、自分が送信しようとしたメールの宛先や添付ファイルに誤りが無いかどうかを確認する画面がポップアップします。
20150305_02

この画面の表示条件は設定により変更することができます。添付ファイルが有る場合、外部ユーザーが存在する場合など、比較的よく利用するパターンで条件付けをすることが可能です。
20150305_03 20150305_04

デフォルトでは10分の送信待ち時間が設定されていますが、その場合10分間はOutlookの「送信トレイ」に残っている状態になりますので、そこから削除や編集などをして取り消しすることができます。
スクリーンショット (168)

 

他にも、有名どころではCipher Craft/Mail(Outlookアドインタイプ) などがありますが、企業情報を登録しないと試用版をお出しできないということで、こちらはまた機会があれば紹介させて頂きます。

 

Outlookを便利にするアドイン紹介②

前回の投稿に引き続き、Outlookを便利にするアドインを紹介させて頂きます。

Exchange Onlineは、マルチドメイン/マルチアドレスに対応しており、一人で複数のサブアドレスを持つことができます。ただし、これらは基本的に受信専用のアドレスであり、送信時に利用されるのはプライマリアドレスと呼ばれる代表アドレスのみになります。

これらを回避するため、配布グループや共有メールボックスなどを作成し、送信者アクセス権を割り当てることにより任意のアドレスから送信できるよう運用対処することがあるのですが、…正直面倒ですよね。

という訳で、それを解消するのがこのProxy Managerです。$29.99と有償の英語のソフトウェアですが直感的なインターフェイスですので恐らく誰でも利用できると思います。インストールはダウンロードしてきた.msiファイルを実行するのみで完了します。
20150303_13 20150303_14 20150303_15 20150303_16 20150303_17 20150303_18 20150303_19 20150303_20

インストール完了後にOutlookwp起動すると、 [Send Using Proxy Addresses]というプルダウンメニューが表示され、サブアドレス含めたアドレス一覧が表示されますので、ここで送信元として利用したいアドレスを選択します。
20150303_21 20150303_22

初回のみID/PASSを設定する画面が表示されますので、こちらにOffice365のID/PASSを入力します。また、Emailアドレスの前の表示名も変更したい場合はこちらの画面で[Names]を変更します。
20150303_23

到着したメールは、以下の様に送信者の部分に先ほどの電子メールアドレスと表示名が記載されています。また、購入前の場合はフッタに購入情報が記載されます。表示や操作について問題無いと確認してから、購入すれば良いと思います。
20150303_24

 

購入はメールのリンクから実施します。ライセンスキーが発行されたら、[Proxy Manager Options]の左下の[Register]ボタンから入力して完了です。
20150303_25 20150303_26

 

複数のユーザーやプロダクトを兼任している窓口業務などの返信用にお勧めいたします。

 

Outlookを便利にするアドイン紹介①

Office365を利用する場合、メールクライアントはOutlookを利用されることが多いと思います。今回は、私が今利用させて頂いている便利なOutlook2013用のアドインを2つ紹介させて頂きます。

まずは、Office365勉強会で紹介を頂いたのですが、二宮さんの作成されたOutlook添付ファイルツールです。

仕事柄、スクリーンショットやログを取得して、それを添付ファイルとして送信する事が多いのですが、そのたびにペイントやメモ帳を開いて、クリップボードから貼り付けて、名前を付けて保存して、パスワード付きZIPにして送付とかしていたのですが、この作業をOutlookのウィンドウを閉じることなくその上でやってしまおうというのがこのツールです。

インストールすると、メールの作成画面の中に添付ツールのタブが現れます。
20150303_01

ここで、[保存]をクリックすると、ファイル名を入力するとクリップボード上の情報がファイルとして保存されます。クリップボード上の情報のタイプによって、ファイルフォーマットは.txtや.pngと自動で識別されます。芸が細かい!
20150303_02  20150303_03 20150303_04

[圧縮して追加]とすると、名前を付けたファイルをそのままZIP化した物を追加してくれます。パスワード無しで送る場合などはこれでそのまま送ってしまえば良いですね。
20150303_05 20150303_06 20150303_07

[添付を圧縮]で、複数の添付ファイルを圧縮したり、パスワード付きZIPにしたりできます。[パスワードメール作成]をクリックすると、先ほどの画面で入力したファイル名とパスワードを引用してそのままパスワード通知用のメールを生成してくれます。
20150303_08 20150303_09 20150303_10 20150303_11 20150303_12

取得した情報を送るまでの一連の流れを、Outlookのメール作成画面の中で完結できるのでとても作業効率が向上しますね。皆さんも是非お試し下さい。

Outlook添付ファイルツール – Vector

 

ExchangeからEOPのSMTP配信速度のチューニング

Office 365のサービスの一つであるEOP(Exchange Online Protection)を利用すると、ハイブリッド構成時に受信時だけではなく送信時についてもspam判定を行うように構成をすることができます。

今回は、Exchangeハイブリッド構成時にOffice 365への通常のメール送信速度を理論上数倍にする方法をご紹介します。
20150226_01

Exchange Serverからの送信時のメールフローは、これにするかEdgeから直接出すかというほぼ2択になりますが、送受信でメールフローが同じでありシンプルだということもあり、この構成を取っている方も多いかと思います。

EOP を介した基本的なメール フローの設定に必要なコネクタを作成する などの記事を参照にこちらのEDGEサーバからExchange Online Protectionへの送信コネクタを作成します。サーバからEOPに円滑かつ継続的にメールを送信する為の注意点として、以下の記載が有ります。

  1. 1 接続当たりの送信電子メール数が 50 通以下
  2. 使用する同時接続数が 50 未満

今回は、この値を守りつつ、少しでもパフォーマンスを上げられるようにしていきたいと思います。

まず、1番です。こちらは送信コネクタのパラメータにSmtpMaxMessagesPerConnectionという値が有り、20に設定されています。

SMTP接続時のネゴシエーションに時間がかかるようであればこの値を大きくするのですが、インターネットを経由して送信していることもあってか、プロトコルログを確認する限りEdgeからEOPへの送信は、実際のメール送信に殆どの時間を費やしているのでこれを50などに増やしてもあまりパフォーマンスは向上しなさそうです。

次に2番。前提として、こちらの「同時接続数」の判定ですが、受信コネクタのMaxInboundConnectionPerSource の設定と同じように制御された場合、IPアドレスをベースにEOPに判定されてしまう可能性があります。複数台のEdgeサーバが同一のグローバルIPでNAPTして送信される場合は、50を台数で割った数字になるように調整しましょう。

この値は、Set-TransportService(Exchange 2010の場合はSet-TransportServer)のMaxPerDomainOutboundConnectionsで指定できます。デフォルト値は20になります。これだけ見ると、単一のスマートホスト先であるEOPへは、デフォルト設定でも20平行なのでそれなりにパフォーマンスが確保できるように見えますね。

が、実際に比較的メール流量が多い環境で利用すると、かなりEdge→EOPのパフォーマンスは低く、メールが滞留するポイントになりがちです。

なぜかというと、MaxPerDomainOutboundConnectionsというのはあくまで制限値であり、Exchangeがそこまで利用しようとするかとすると必ずしもそうではないからです。Edgeサーバ上でGet-Message -Queue [EOPへのキュー]などで挙動を観察してみると、キューの数が20までは1つのセッションで送信しようとして、それを越えると1つSMTPセッションを張るという挙動に見えます。
20150227_01

つまり デフォルトの制限値である20同時セッションになるにはキューが400通溜まる状態に、50同時セッションなら1000通までにならないといけない ことになります。そんな状態になったら、メールの配信遅延が顕在化してしまっている頃ですよね。

という訳で、ここをチューニングしてみたいと思います。

ここの数値ですが、コマンドの設定で変えられる設定は見つかりません。

色々と調べた結果、EdgeTransport.config にSmtpConnectorQueueMessageCountThresholdForConcurrentConnections パラメータを設定することにより、こちらをチューニングすることができました。

C:\Program Files\Microsoft\Exchange Server\V15\Bin\EdgeTransport.exe.config の<app Settings> </app Settings>の間に以下の値を入れます

<add key="SmtpConnectorQueueMessageCountThresholdForConcurrentConnections" value="新たにセッションを張る閾値"/>

例えば、デフォルトは20になりますので、値を5にした場合は理論上4倍の速度でセッションが張られて処理速度が向上することになります。
20150227_02

どんな値を設定したほうが良いかは、利用するリソースやメールサイズ等の特性によりケースバイケースだと思いますので、定期的にキューの状態やプロトコルログなどを確認していただいてチューニングするのがよろしいかと思います。

重複メッセージの除去(Exchange Online)

Exchangeは同じメッセージと思われる物を短期間に同じメールボックスで複数受信した場合、2通目以降のメールは重複としてドロップされ、メールボックスに配信されません。

何らかの事情で同じメールを複数回受信する必要がある場合(例えば、Exchange外でメールアーカイブを利用していて、誤ってExchangeで消してしまったメールをアーカイブから再送する場合など)には2通目のメールが受け取れない事があるので注意が必要です。

同じメッセージと見なされる条件は以下の通りです。

  • 同一のMessageIDヘッダであること
  • 同一のDateヘッダであること
  • 同一のメールボックスへの配送であること

これは、Exchange Onlineにおいても同じ動作をします。例えばTo:に直接自分のアドレス、Cc:にメーリングリスト(配布グループ)を指定して送ったような場合は、1通しか届きません。

外部のメーリングリストを利用していて、付与されたサブジェクトや、Reply-Toを元にメーリングリスト毎にフォルダ分けをしていた場合など、自分がToに入っている物は通常そちらが先に届いてしまって、そのフォルダに欠番がでてしまう様な形になり、影響を受けます。

また、これらの情報がキャッシュされている期間について、Exchange Server 2010まではデフォルトで1時間で、その時間はレジストリによりチューニング可能でしたが、クラウドサービスであるExchange Onlineについては当然そんなチューニングはできません。

というわけで、デフォルト値を調べてみたいと思います。まずは、適当にスクリプトを作って5分に1回同じMessage IDとDateヘッダのメールを流し続けます。PowerShellで組むの面倒だったので、適当にbashから以下を無限ループで実行し続けます。

while :
do
cat <<EOM | sendmail test@example.com
From: test@example.com
To:test@example.com
Date: Wed, 25 Feb 2015 00:00:00 +0900
Message-ID: <201502250000.00000@localhost.localdomain>
Subject:`date`: test mail
This is test. 

.
EOM
sleep 300
done

20150225_01

すぐに最初のメールが届きます。(2/25 00:28:58)
20150225_02

さて、何時間待ったら次のメールが届くでしょうか?1時間待っても届きません。

現在。8時間待っても届いてません。(メッセージ追跡を見るとPendingになってます)
20150225_00

皆さんは何時間だと思います? いくつか選択肢を。

  • 1日…キリがいい 2/26配信されませんでした
  • 2日…Exchangeのキューイング期間 2/27配信されませんでした
  • 5日…一般的な MTAのキューイング期間 3/2まだ配信されません
  • 1週間…キリがいい
  • 無期限…再起動されたり、フェールオーバーすると消える
  • 特に決まってない…容量だけ決まってて自動的に上書きされる

(3/4 追記)
3/4 16:07:39 7日+16時間で来ました。

20150304_02

ちょっと半端な時間ですね…。比較的長い時間が設定されていて、ある程度流れるとローテーションされるということなのですかね?

(3/5 追記)
3/5 16:08:08 ちょうど24時間で届きました。

ということは、昨日新しいモジュールが展開されて仕様が24時間に変わったということでしょうか!?

続きはこちらの記事

blog引っ越しました

最近のITブロガーの方々のビッグウェーブに乗るべく、長年慣れ親しんだ wordpress.com をやめてSAKURAインターネットに移行してみました。

コンテンツもかなりやっつけで移行したので、もし不具合とかありましたら教えていただければと思います。(すいません、IE8で画像の縮小が効いていない点は諦めてください…)