２つのサポート外環境でのExchange移行





Exchange Server（以後Exchange ） から Exchange Online（以後ExO） への移行をやったのですが、あまりにも前提条件が独特すぎて大変だったので記事にします。





# 二つのサポート外

## 現行ExchangeがExOの移行機能のサポート外


現行のExchangeがオンプレ環境ではなく、サービスを利用しており、そのサービスがExOの移行機能をサポートしていません。
ExOには以下のような移行機能・方式があるようですが、残念ながら使えません。

- [Exchange Onlineで移行パスを決定する](https://learn.microsoft.com/ja-jp/exchange/mailbox-migration/decide-on-a-migration-path)
  - [一括移行（カットオーバー）](https://learn.microsoft.com/ja-jp/exchange/mailbox-migration/cutover-migration-to-office-365)
  - [段階移行](https://learn.microsoft.com/ja-jp/exchange/mailbox-migration/perform-a-staged-migration/perform-a-staged-migration)
  - [簡易ハイブリッド移行（高速移行）](https://learn.microsoft.com/ja-jp/exchange/mailbox-migration/use-minimal-hybrid-to-quickly-migrate)
  - [ハイブリット移行](https://learn.microsoft.com/ja-jp/exchange/mail-migration-jump)


Exchangeはサービス化されており、直接Exchangeを触り情報を採取をすることはもちろんできず、情報採取コマンド発行を依頼するも拒否され、提供されるWebコンソールからのみ操作可能な状態。
また、そのサービスはマルチテナント（一つのテナントを複数のユーザー組織が利用している）環境です。



## SMTP Match 状態がMSのサポート外


移行前後で同じメールドメインを利用するのですが、移行期間中はExchange とExOでインターネット上に同じドメインが存在します。
その状態をSMTP Matchと呼称するようですが、この状態をMSがサポート外です。
※SMTP Matchという言葉はMSサポート回答から引用していますが、あまり一般的な用語ではないかもしれません。

ExOはもちろん、OutlookやWindows OSについてもサポート外となり、手探りで移行方式を検討することになります。


## しんどいポイント

- 色々とサポート外
  - QCDへのインパクト大
- Exchange が触れない
  - ユーザー情報の参照・取得等、コマンドだったら簡単なこともWebコンソールでやらないといけない
    - 最終的にRPA（UIPath）を利用しました。
        - これはこれで大変でした…
- ExO移行をした業務実績にならない
  - 今年の実務実績が空白になると思うと、徒労感がすごい



# 方式・方針・Tipsなど

問題が盛りだくさんなので、いくつかピンポイントで。


## 全体方針

一括移行はせず、以下の流れで段階的な移行をしました。
※ExOの移行機能と名前被っていますが、ExOの機能ではないです。

1. 各ユーザーのExO有効化
2. Exchange-ExO間のメール転送
3. ユーザーでのメールデータの移行
4. ユーザーでの接続先サーバ切替
5. スケジュール・アイテムの移行
6. MXレコード切替



## Exchange-ExO間のメール転送

以下の理由により、事前（数か月前）からサーバ間のメール転送をするように設定しました。

- 移行期間中は新旧の環境利用しているユーザーが混在するため。
- 4～6の期間、外部・Exchangeから送信したメールが、ExOに受信されないので参照できなくなるため。
- 切替後の利便性としてもExOのメールボックスに直近のメールが格納されていたほうがよいため。
- 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459468/1bb198d3-26ee-7b55-bca9-d4e6fe6ca2cb.png)





### IPスロットリング

上記の設定を行うと、大量のメールが両方のサービスで受信され続けることになります。
その場合、ExOのIPスロットリングに抵触し、受信を拒否されることが懸念されました。

[IP スロットリングについて](https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/27b2ffd7-66c9-4c07-b390-dfe59a52e3c4/ip-1247312525124831248812522125311246412395123881235612390?forum=exchangeteamjp)

IPスロットリングの閾値についてはセキュリティ設定のため教えてもらえず、IPウォームアップとして、徐々に転送設定を行うユーザーを増やしていく方法で対応しました。

[IPウォームアップについて](https://learn.microsoft.com/ja-jp/dynamics365/marketing/email-warm-up)



### Plannerへの影響

トランスポートルールでリダイレクト設定をした際、Plannerでタスクのコメントに入力した内容が消える事象が発生。
Plannerは内部的にメールを利用しているようです。
※ExO→Exchange →ExOとメールそのものは戻ってくるのですが、オリジンではなくなるからか、Plannerのコメントは見えません。
※ExOのトランスポートルールで設定するリダイレクトは、メールの複製ではなくオリジンを転送します。
※Exchangeの転送機能は複製を転送する機能でした。


そのため、Planner利用が業務上必須なユーザーはトランスポートルールで除外設定としました。



## メールデータの移行


サーバ間の移行は諦め、現行のメールデータはユーザーにローカル保存してもらう方式としました。
一度に全ユーザーにメール保存・切替を実施した場合、社内NWへの負荷などが懸念されたため、段階移行としました。

メール保存については問題は多岐にありますが、ユーザー個別の事象多数のため割愛します。


## メール接続先の切替

[Outlookの接続先はこのように決定されるとのことです。](https://outlooklab.wordpress.com/2020/01/18/autodiscover-%E3%81%AE%E8%A9%B3%E7%B4%B0%E5%8B%95%E4%BD%9C/)


1. 再起動のシナリオを確認する
1. ローカル データの環境設定を確認する
1. 前回の既知の有効 (LKG) データを確認する
1. O365 を優先的に確認する
1. SCP データを確認する
1. ルート ドメインを確認する
1. Autodiscover ドメイン
1. ローカル データを確認する
1. HTTP リダイレクトを確認する
1. SRV データを確認する
1. O365 のフェールセーフを確認する

現行が10番で向け先を決めていることがわかったので、それより優先度の高い7番で向け先を変更する方式にしました。
7番のAutodiscover用にCNAMEレコードを登録するのですが、それだけだと全端末が一斉に切り替わってしまうので、端末のレジストリを修正してAutodiscoverを参照するかを制御します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459468/e8c88291-1a27-77bd-de3e-742178e5ab99.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459468/1d806b1f-275c-4575-795c-f34eae776cf8.png)




ですが、実際に切替テストをしたところ、切り替わらない事象発生。
この事象の調査の中でSMTP MatchでMSサポート外と言われて見放されるわけです。

もともとの想定であるAutodiscoverの利用は諦め、Outlookの接続先設定時に、365アカウントにデフォルト作成されるエイリアスドメイン(onmicrosoft.com)を指定する方式に変更。
レジストリ変更もハードルがそれなりにあったので、結果的にこの方式に傾いてよかったとは思います。

## スケジュールの移行

個人やアイテム（会議室・備品など）のスケジュール移行に関しては、以下の課題がありました。


- Exchangeの個人スケジュールをエクスポートし、ExOにインポートすると、編集権限がない（別ユーザー扱いのため）
- 会議依頼時に開催者の個人スケジュールが同期されない（開催者にはメールが送信されないため）
- Exchangeのアイテムにメール転送設定を行えない




移行期間中、メール切替後のユーザーはOutlookからExOの予定表利用を諦め、ExchangeのOWA（Outlook Web Access）をブラウザから利用してもらい、メール移行終わってからやるという方式です。



# 最後に

記載した以外にも問題は盛りだくさんで、だいぶ端折って書きました。
まだまだ移行途中で、最終的にどうなるかはわかりません。

こんな独特な条件・制約でExchange移行をする人がいるかはわかりませんが、もし役にたったらうれしいです。






# 参考資料

https://jpmessaging.github.io/blog/%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%203%20%E3%81%A4%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%20(%E9%80%81%E4%BF%A1%E5%85%83%20%20%E7%B5%84%E7%B9%94%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)/


https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/27b2ffd7-66c9-4c07-b390-dfe59a52e3c4/ip-1247312525124831248812522125311246412395123881235612390?forum=exchangeteamjp

https://learn.microsoft.com/ja-jp/dynamics365/marketing/email-warm-up


https://outlooklab.wordpress.com/2020/01/18/autodiscover-%E3%81%AE%E8%A9%B3%E7%B4%B0%E5%8B%95%E4%BD%9C/

https://support.microsoft.com/en-us/topic/outlook-2016-implementation-of-autodiscover-0d7b2709-958a-7249-1c87-434d257b9087