-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微軟產品實施及外包,QQ:185426445.電話18666943750
ios
需求描述:web
使用一個公網IP發佈CA、Exchange及OOS到外網,提供給Internet用戶訪問,本案採用IIS ARR實現相關應用的發佈。正則表達式
環境描述:windows
Exchange2016服務器兩臺,對外域名yuntcloud.net,兩臺服務器採用DAG,DAG的VIP爲192.168.0.30api
CA爲主域服務器,IP:192.168.0.194服務器
OOS服務器兩臺,採用NLB羣集,單播,VIP:192.168.0.32網絡
IIS ARR爲反向代理服務器,兩臺,採用NLB羣集,單播,VIP:192.168.0.31app
操做步驟以下:負載均衡
步驟一、安裝ARRide
在IISARR服務器上安裝有兩塊網卡,一個用於內部網絡,一個用於外部網絡。(能夠根據須要使用一塊網卡也能夠)
iis-arr-01的內網IP:192.168.0.115,外網IP:192.168.0.133
iis-arr-02的內網IP:192.168.0.112,外網IP:192.168.0.132
(微軟ARR NLB環境官方文章是單網卡,沒加域,修改計算機Netbios名稱)
若是沒有使用內部dns服務器,應該更新hosts文件,確保能夠解析Exchange、OOS和發佈的URL名稱。
操做系統使用windows server 2012 R2,計算機名命名爲iis-arr-01.zh-yunner.com和iis-arr-02.zh-winner.com(注:不用加域,也是支持Windows server 2016環境,爲何我沒選2016而是用2012 R2環境,我也不記得爲何了,反正2012 R2和2016都是受支持的)
軟件下載及相關介紹及操做具體可參考以下網站:
https://www.iis.net/downloads/microsoft/application-request-routing
https://technet.microsoft.com/zh-cn/library/jj219455.aspx
http://masteringlync.com/2013/02/12/using-iis-application-request-routing-arr-as-a-tmg-replacement/
步驟二、IIS-ARR-01更改Netbios名稱,不須要加域
步驟三、防火牆啓用文件共享
步驟四、防火牆啓用遠程桌面
步驟五、在內部接口上建立鏈接到客戶端或服務器所在的全部內部網絡的永久靜態路由,咱們設置指向內部網絡的永久靜態路由,參考命令以下:
route add 192.168.0.0 mask 255.255.0.0 192.168.0.253 -p
[注:因爲我環境的兩個IIS ARR服務器均爲虛擬機,內網卡和外網卡的網段一致,已經有了到網關的路由,因此就不添加了]
在兩個IIS ARR服務器安裝NLB組件,
步驟六、因爲都是hyper-V虛擬機,故採用單播,且啓用MAC地址欺騙。(兩塊網卡都啓用MAC地址欺騙)
步驟七、使用WAN口網卡作NLB,外網訪問的時候由於是鏈接到WAN口
步驟八、添加IIS ARR羣集IP:192.168.0.31
步驟九、選擇單播,保持默認便可,完整Internet名稱此處不用填寫
步驟十、添加IIS ARR兩臺機器到NLB羣集
步驟十一、下面爲ARR的兩臺虛擬機及羣集VIP的ARP信息,若是採用多播的話,咱們須要ARP靜態綁定到出接口G 0/0/1(咱們目前的環境爲防火牆爲華爲USG6350防火牆,三層交換機爲華爲S5700,在下聯二層交換機,ARR虛擬機的兩臺宿主服務器都接在二層交換機,鏈接到上級的三層交換機接口G 0/0/1)
因此若是採用多播的方式的話ARP須要綁定並設置出接口端口爲G 0/0/1,因爲是測試環境,目前使用的是單播。
由於內部訪問不用通過ARR反向代理,因此Mail、autodiscover、crl、oos及全部域名記錄都指向到本身自己地址。
192.168.0.30爲兩臺Exchange2016的DAG的VIP地址
192.168.0.31爲兩臺ARR的NLB的VIP地址
192.168.0.32爲兩臺OOS的NLB的VIP地址
192.168.0.194爲CA服務器IP,用於發佈crld吊銷列表
步驟十二、DNS服務器上新增兩條A記錄,IIS-ARR-01的內網卡IP:192.168.0.115,IIS-ARR-02的內網卡IP:192.168.0.112
步驟1三、iis-arr-01和iis-arr-02 host文件都新加exchange內部和外部虛擬目錄名稱mail.yuntcloud.net和iis-arr兩臺計算機的fqdn完整計算機名稱及Netbios名稱,不填寫可能由於解析不了形成NLB羣集成員丟失,Exchange服務器的FQDN及OOS、CRL名稱也須要加上。
步驟1四、在IIS ARR服務器上安裝ARR3.0。
https://www.iis.net/downloads/microsoft/application-request-routing
步驟1五、安裝完成後,在IIS管理器中出現了Server Farms
步驟1六、選擇IIS-ARR-01的default web site,咱們須要給IIS ARR的兩臺服務器綁定證書
步驟1七、拷貝以前咱們已經導出的Exchange證書,選擇IIS根目錄,切換到證書,選擇導入證書
步驟1八、導入後入下圖
步驟1九、在默認站點中綁定證書
步驟20、若是須要使用pop和imap,注意域名外網發佈,建議外網mail和pop使用同一個公網IP,客戶端pop模式能夠設置pop或者mail域名。
域名名稱信息以下:
證書使用者
CN = mail.yuntcloud.net
OU = IT
O = 風雲再起信息科技有限公司
L = 珠海市
S = 廣東省
C = CN
使用者可選名稱
DNS Name=mail.yuntcloud.net
DNS Name=AutoDiscover.yuntcloud.net
DNS Name=zh-winner.com
DNS Name=yuntcloud.net
DNS Name=pop.yuntcloud.net
DNS Name=imap.yuntcloud.net
DNS Name=smtp.yuntcloud.net
DNS Name=ex2016.zh-winner.com
DNS Name=ex2016-02.zh-winner.com
DNS Name=oos.yuntcloud.net
步驟2一、同時安裝CA根證書,安裝後咱們點擊看證書路徑,能夠發現CA根證書已經導入好
步驟22. 下面開始配置Exchange服務器所須要的服務器場,配置Server Farms(注:如下爲給每一個Exchange目錄設置一個目錄路徑,能夠對每一個http路徑健康檢測,由於咱們的環境都是使用同一個域名mail,如是和我環境一致,請跳過此步驟)
針對每一個單獨的協議,建立單獨的Server Farms和URL重寫規則,這樣就能夠對每一個協議執行健康檢查,重而提供真正的反向代理和負載均衡配置。
下面是IIS ARR實現每一個協議的健康檢查
1)確保每一個發佈的協議都使用不一樣的命名
Get-OWAVirtualDirectory | FL Server, InternalURL, ExternalURL
Server : TS-E2013-CA-01
InternalUrl : https://mail.contoso.com/OWA
ExternalUrl : https://mail.contoso.com/OWA
Server : TS-E2013-CA-02
InternalUrl : https://mail.contoso.com/OWA
ExternalUrl : https://mail.contoso.com/OWA
Get-ECPVirtualDirectory | Fl Server, InternalURL, ExternalURL
Server : TS-E2013-CA-01
InternalUrl : https://ecp.contoso.com/ECP
ExternalUrl : https://ecp.contoso.com/ECP
Server : TS-E2013-CA-02
InternalUrl : https://ecp.contoso.com/ECP
ExternalUrl : https://ecp.contoso.com/ECP
Get-WebServicesVirtualDirectory | fl Server, InternalURL, ExternalURL
Server : TS-E2013-CA-01
InternalUrl : https://ews.contoso.com/EWS/Exchange.asmx
ExternalUrl : https://ews.contoso.com/EWS/Exchange.asmx
Server : TS-E2013-CA-02
InternalUrl : https://ews.contoso.com/EWS/Exchange.asmx
ExternalUrl : https://ews.contoso.com/EWS/Exchange.asmx
Get-ActiveSyncVirtualDirectory | fl server, InternalURL, ExternalURL
Server : TS-E2013-CA-01
InternalUrl : https://eas.contoso.com/Microsoft-Server-ActiveSync
ExternalUrl : https://eas.contoso.com/Microsoft-Server-ActiveSync
Server : TS-E2013-CA-02
InternalUrl : https://eas.contoso.com/Microsoft-Server-ActiveSync
ExternalUrl : https://eas.contoso.com/Microsoft-Server-ActiveSync
Get-OABVirtualDirectory | fl server, InternalURL, ExternalURL
Server : TS-E2013-CA-01
InternalUrl : https://oab.contoso.com/OAB
ExternalUrl : https://oab.contoso.com/OAB
Server : TS-E2013-CA-02
InternalUrl : https://oab.contoso.com/OAB
ExternalUrl : https://oab.contoso.com/OAB
Get-OutlookAnywhere | fl server, *hostname*
Server : TS-E2013-CA-01
ExternalHostname : oa.contoso.com
InternalHostname : oa.contoso.com
Server : TS-E2013-CA-02
ExternalHostname : oa.contoso.com
InternalHostname : oa.contoso.com
2)建立Server Farms,每一個協議的服務器場建立完成後,添加健康測試URL
健康測試格式https://FQDN/ProtocolName/HealthCheck.htm
Server Farm |
Health Test URL |
autodiscover.contoso.com |
https://autodiscover.contoso.com/Autodiscover/HealthCheck.htm |
OA.contoso.com |
https://oa.contoso.com/rpc/HealthCheck.htm |
mail.contoso.com |
https://mail.contoso.com/owa/HealthCheck.htm |
ECP.contoso.com |
https://ecp.contoso.com/ecp/HealthCheck.htm |
EWS.contoso.com |
https://ews.contoso.com/ews/HealthCheck.htm |
OAB.contoso.com |
https://oab.contoso.com/oab/HealthCheck.htm |
EAS.contoso.com |
https://eas.contoso.com/Microsoft-server-ActiveSync/HealthCheck.htm |
Mp.contoso.com |
步驟2三、咱們這裏使用的一樣的虛擬目錄,ex2016和ex2016-02服務器內部和外部都使用mail.yuntcloud.net
步驟2四、切換到server farms,選擇create server farm
步驟2五、server farm name:mail.yunrcloud.net(或者是任何一個可標識此server farm的名稱均可以)
步驟2六、添加兩臺Exchange服務器名稱
步驟2七、添加後以下圖,固然這裏咱們也能夠從對應的服務器場隨時移除指定服務器
步驟2八、點擊是
步驟2九、選擇建好的服務器場mail.yuntcloud.net
步驟30、繼續選擇caching,反選Enable disk cache
步驟3一、Health Test設置,若是對應的Server Farms是單機環境此處能夠爲空,若是有多臺服務器,此處則需填寫相關URL,才能對相關服務器執行健康檢測
Health Test URL:https://mail.yuntcloud.net/owa/healthcheck.htm
Interval(seconds):5
Time-out(seconds): 30
Acceptable status codes: 200
步驟3一、個人環境是IIS ARR 3.0,Load balance保持默認便可,若是是IIS ARR 2.5, 此處選擇Least Current Request.
步驟3二、monitoring and management,咱們能夠看到添加的兩臺服務器狀態,health status爲unhealthy,說明這個服務器相關服務不正常或者宕機,客戶端請求就不會在向對應的服務器繼續發送。
步驟3三、proxy設置
Time-out(seconds): 200
Response buffer threshold:0
步驟3四、routing rules,反選enable ssl offloading
步驟3五、不帶SSL的由於用不到,此處刪除或者禁用
步驟3六、選擇URL重寫,編輯入站規則
步驟3七、添加條件
條件輸入:{HTTP_HOST}
模式:mail.yuntcloud.net
步驟3八、添加後以下
步驟3九、操做,操做屬性,選擇對應的服務器場
步驟40、相似步驟設置服務器場,autodiscover.yuntcloud.net
步驟4一、設置完後,回到IIS根目錄,設置容許的最大內容長度以下
步驟4二、設置http到https的重定向
由於咱們習慣輸入網址mail.yuntcloud.net或者是http://mail.yuntcloud.net,因此咱們須要在新建各規則,80跳轉到https
名稱:Redirect To HTTPS
步驟4三、編輯入站規則
條件 {SERVER_PORT},類型 與模式匹配,模式 80
條件 {HTTP_HOST},類型 與模式匹配,模式 mail.yuntcloud.net
步驟4四、操做 方案https://mail.yuntcloud.net/{R:0},中止處理後續規則
步驟4五、兩臺ARR機器一樣的操做,設置後,就實現了80到443的跳轉
步驟4六、由於IIS ARR只能代理80和443相似的HTTP端口,因此外網80和443端口指向到IIS ARR的NLB VIP地址,SMTP、POP及IMAP不能經過IIS ARR實現反向代理,因此只能指向到DAG的VIP:192.168.0.30,內網不用反向代理
步驟4七、內網DNS記錄以下:
步驟4八、內網端口映射以下:
192.168.0.31爲IIS ARR的NLB VIP地址
192.168.0.30爲DAG的VIP地址
步驟4九、外網域名設置以下:
全部相關域名都指向到公網IP:221.4.214.186
步驟50、客戶端POP和IMAP設置以下:
分別關機IIS ARR中的一臺和Exchange 2016中的一臺,外網outlook均能在2分鐘內完成故障轉移和切換,停掉Exchange的OWA IIS應用池,outlook和owa將不會在訪問故障的Exchange服務器,說明IIS ARR實現了應用層的7層負載均衡。(注:NLB爲第三層網絡層的負載均衡,只能識別到IP的非正常才切換,第四層負載均衡爲IP加端口的傳輸層負載均衡的硬件負載均衡設備)
步驟5一、若是須要IIS ARR發佈Exchange同時發佈OOS,咱們須要首先修改ARR的證書以便包括Exchange和OOS的相關證書名稱,爲了統一,我把Exchange、OOS及ARR都更換爲包括全部名稱的證書。
步驟5二、ARR的證書包括OOS的域名記錄
證書使用者
CN = mail.yuntcloud.net
OU = IT
O = 風雲再起信息科技有限公司
L = 珠海市
S = 廣東省
C = CN
使用者可選名稱
DNS Name=mail.yuntcloud.net
DNS Name=AutoDiscover.yuntcloud.net
DNS Name=zh-winner.com
DNS Name=yuntcloud.net
DNS Name=pop.yuntcloud.net
DNS Name=imap.yuntcloud.net
DNS Name=smtp.yuntcloud.net
DNS Name=ex2016.zh-winner.com
DNS Name=ex2016-02.zh-winner.com
DNS Name=oos.yuntcloud.net
步驟5三、ARR的HOST記錄以下
步驟5四、建立office online server 對應的服務器場
參考以下網址:
http://masteringlync.com/2013/02/12/using-iis-application-request-routing-arr-as-a-tmg-replacement/
步驟5五、建立所需的服務器場,若是更換證書,須要重建對應的服務器場
New-OfficeWebAppsFarm -InternalURL "https://oos.yuntcloud.net" -ExternalURL "https://oos.yuntcloud.net" -CertificateName arr -SSLOffloaded -AllowHttp -EditingEnabled
(注:-SSLOffloaded 容許卸載到負載平衡器的 SSL 端接)
步驟5六、加oos02到服務器場
New-OfficeWebAppsMachine -MachineToJoin "oos.zh-winner.com"
步驟5七、咱們能夠看到oos及oos02都加到了同一個服務器場
步驟5八、場名:oos.yuntcloud.net
步驟5九、添加對應的OOS服務器
步驟60、Caching設置以下
步驟6一、Heath Test設置以下(若是有2臺以上的服務器組成服務器場,這個就須要設置,不然關機一臺後服務將可能打不開或者反應特別慢)
URL:https://oos.yuntcloud.net/hosting/discovery/healthcheck.htm
步驟6二、Health status不健康的不會發送代理請求,不然即便關機也會顯示爲healthy,會繼續接受發送請求。
步驟6三、Proxy設置以下,time-out設置爲200
Response設置爲0
Routing Rules禁用SSL offloading
禁用或者刪除沒SSL的規則
步驟6四、若是考慮同時使用HTTP的話,咱們就保留這條規則
步驟6五、相關設置以下,這樣設置後,在外面,oos也能經過80端口訪問
步驟6六、繼續設置帶SSL的規則
使用選擇正則表達式,模式(.*)
選擇條件,添加,條件輸入{HTTP_HOST},與模式匹配,模式:oos.yuntcloud.net
步驟6七、操做選擇路由到服務器場,選擇對應的oos場
步驟6八、咱們能夠繼續發佈CA的吊銷列表
步驟6九、添加server farm name:crl.yuntcloud.net
步驟70、添加dc01.zh-winner.com到對應的服務器場
步驟7一、選擇是
禁用帶SSL的CRL規則
入站規則
條件輸入:{HTTPS}
模式:^OFF$
步驟7二、繼續發佈CA的Certsrv目錄
在萬網新增dc01記錄,用於客戶端自行下載CA根證書
步驟7三、ARR的HOST文件設置以下,添加crl及dc01的內網FQDN地址
步驟7四、create server farm…
步驟7五、server farm name:dc01.yuntcloud.net
步驟7六、server address:dc01.zh-winner.com
步驟7七、選擇是
反選Enable disl cache
Time-out:200
Response buffer threshold:0
反選Enable SSL offloading
URL重寫禁用帶SSL的
使用選擇正則表達式,模式(.*)
添加條件以下,禁止https的訪問,只容許http訪問
編輯入站規則以下
最後設置效果以下
操做,選擇對應的服務器場