ทำความรู้จัก Exchange 2016 Server : ภาค 6 – Client Access Protocols and Services

0
2082

นอกจากการ configuration ให้ Exchange Server สามารถทำการรับ/ส่ง Email ได้แล้วนั้น อีกสิ่งหนึ่งที่เป็นสิ่งสำคัญไม่แพ้กันก็คือการ Configuration ให้เครื่องลูกข่าย (หรือ Client) ในรูปแบบต่างๆ สามารถเข้ามาใช้งานบริการต่างๆ บนเครื่อง Exchange Server ได้ จึงจะทำให้การใช้งานเกิดประโยชน์สูงสุดกับองค์กรครับ

1.รูปแบบการเชื่อมต่อระหว่าง Client กับ Exchange Server

การเชื่อมต่อหลักๆ ของ Exchange Server ที่เครื่องลูกข่ายสามารถใช้งานได้นั้น โดยทั่วไปจะมีอยู 4 รูปแบบคือ

  • MAPI (Messaging Application Programming Interface)
    เป็นโพรโทคอลที่ Microsoft Outlook ใช้ในการเชื่อมต่อกับ Exchange Server โดยตรง (รูปแบบการเชื่อมต่อของ MAPI นั้นมีพื้นฐานจากเทคโนโลยี RPC (Remote Procedure Call) บางครั้งก็เรียกว่า MAPI/RPC ซึ่งมีข้อจำกัดในการทำงานภายในระบบเครือข่ายเดียวกันเท่านั้น ไม่สะดวกในการเข้าถึงข้อมูลจากเครือข่ายอินเทอร์เน็ต) ภายหลังได้รับการพัฒนาให้มีการทำงานที่สะดวกมากยิ่งขึ้นโดยนำโพรโทคอล HTTP และ HTTPS มาใช้งานร่วมด้วย เรียกว่าเป็น RPC Over HTTP (ชื่อนี้ใช้ใน Exchange 2003) และพัฒนาต่อมาเป็น Outlook Anywhere และ MAPI over HTTP ใน Exchange 2013 CU1 และ Exchange 2016
  • Web Based Interface
    เป็นโพรโทอคลที่อนุญาติให้เครื่องลูกข่ายสามารถใช้งานผ่าน Web Browser เพื่อไปทำงานกับ Exchange Server ได้ ที่เป็นที่รู้จักกันได้แก่ OWA (Outlook Web App) และ EAC (Exchange Admin Center)
  • Exchange ActiveSync เป็นโพรโทคอลที่ใช้กับอุปกรณ์ smartphone ทั้งหลายให้สามารถมาดึงข้อมูลกับ Exchange Server ได้อย่างสะดวก และง่ายดาย
  • POP3 และ IMAP4 เป็นโพรโทคอลมาตรฐานที่นิยมใช้กันในสมัยก่อน ซึ่งรองรับการทำงานกับอุปกรณ์ และ mail client ทุกตัวที่มีใช้อยู่ในปัจจุบัน เพื่อให้ผู้ใช้งานสามารถเลือกที่จะใช้ mail client อย่างอื่นที่ไม่ใช่ Microsoft Outlook ได้
    โดยข้อแตกต่างของ POP3 และ IMAP4 เป็นดังสรุปไว้ในตาราง

    POP3

    IMAP4

    RFC References An Application-layer internet standard protocol (RFC 1939 – Post Office Protocol – Version 3) An Application-layer internet standard protocol
    (RFC 3501 Internet Message access control – Version 4rev1)
    รูปแบบการใช้งาน นิยมใช้แบบ Offline คือ Download email มาแล้วลบออกจาก Server ทันที นิยมใช้แบบ Online คือเปิดอ่านและทำงานกับ email ที่อยู่บน Server โดยตรง
    รูปแบบการ download email ต้อง download email และ attachment file ทั้งหมด สามารถเลือก download email และ attachment file เฉพาะส่วนที่ต้องการ ทำให้ดูเหมือนทำงานได้เร็วกว่า
    Message Stage information Server ไม่ต้องเก็บสถานะของ email เอาไว้ Server ต้องเก็บสถานะของ Email เช่น Read, Unread, Forward เอาไว้ด้วย
    การค้นหาข้อมูล ทำงานที่ฝั่ง Client ทำงานที่ฝั่ง Server
    จำนวนการเชื่อมต่อพร้อมกัน (Concurrent connection) 1 connection/mailbox มากกว่า 1 connection/mailbox
    Complexity

    น้อย

    สูง

    ความนิยมในปัจจุบัน

    ไม่ค่อยนิยมใช้

    นิยมใช้มากกว่า POP3

    (จาก http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol)

สำหรับ POP3 และ IMAP4 นั้นไม่แนะนำให้ใช้กับ Exchange Server นะครับเพราะจะทำให้ใช้งานความสามารถต่างๆ ของ Exchange Server ได้ไม่เต็มที่ จะใช้ได้เฉพาะกับ Email เท่านั้น ส่วนความสามารถอื่นๆ เช่น Calendar, Tasks จะไม่สามารถใช้งานได้

2. โครงสร้างในการเชื่อมต่อระหว่าง Client กับ Exchange Server

หลังจากที่รู้จักรูปแบบต่างๆ ในการเชื่อมต่อระหว่าง client กับ Exchange Server ไปแล้วนั้น ต่อไปจะได้กล่าวถึงโครงสร้างในการเชื่อมต่อระหว่าง Client กับ Exchange Server ดังรูป

        

จากรูปจะเห็นได้ว่าใน Mailbox Server Role นั้นจะประกอบด้วย 2 ส่วนคือ

  • Client Access Services

ในส่วนนี้จะมีหน้าที่รับการเชื่อมต่อในรูปแบบต่างๆ ไม่ว่าจะเป็น Exchange active Sync, Web Browser, Outlook Anywhere หรือแม้แต่ POP3, IMAP4, SMTP ซึ่งจะมีบริการต่างๆ ในการรองรับการทำงานที่แตกต่างกันตามแตกละรูปแบบการเชื่อมต่อที่เข้ามายัง Client Access Server ดังนี้

  • HTTP proxy และ IIS
    จะมีหน้าที่รองรับการทำงานต่างๆ ที่เป็น Web Service ทั้งหมด ได้แก่ Exchange active Sync, Web Browser, Outlook Anywhere จากนั้นจึงจะทำการประมวลผล และส่งต่อการทำงาน (Proxy) ไปยัง IIS ในส่วนทิ่เป็น BackEnd อีกต่อหนึ่ง
  • POP3
    มีหน้าที่รองรับการทำงานในส่วนที่เป็น POP3 และส่งต่อไปยัง POP3 BackEnd อีกต่อหนึ่ง
  • IMAP4
    มีหน้าที่รองรับการทำงานในส่วนที่เป็น IMAP4 และส่งต่อไปยัง IMAP4 BackEnd อีกต่อหนึ่ง
  • FrontEnd Transport
    อันนี้จะมีหน้าที่ในการรับ SMTP Connection จากภายนอก และส่งต่อตาม Transport Pipeline
  • UM Call Router
    มีหน้าที่การที่เกี่ยวกับ Unified Messaging ในการเชื่อมต่อกับ IP PBX และส่งการทำงานต่อไปยังยัง UM Service ใน BackEnd
  • BackEnd Services

    ตัว BackEnd Serivce นั้นจะมีหน้าที่ในการรับการเชื่อมต่อจากส่วน Client Access Services เพื่อนำมาประมวลผล หรือเชื่อมต่อกับการทำงานในส่วนที่เกี่ยวข้อง เช่น Mailbox Database หรือการทำงานอื่นๆ ซึ่งอีกสิ่งหนึ่งที่มีส่วนช่วยในการทำงานเป็นอย่างมากคือ Remote PowerShell ซึ่งจะช่วยให้ผู้ดูแลระบบ สามารถใช้งาน EAC ในการ Configuration ต่างๆ ของ Exchange Server ได้อย่างมีประสิทธิภาพ

3. ความแตกต่างระหว่าง Outlook Anywhere กับ MAPI Over HTTP

ดังที่ได้กล่าวไปแล้วการเชื่อมต่อระหว่าง Microsoft Outlook กับ Exchange Server นั้นได้มีการปรับปรุงขึ้นมาตามลำดับ จนมาเป็น Outlook Anywhere และ MAPI Over HTTP ซึ่งหลายๆ ท่านอาจจะมีคำถามว่า เอ๊ะ !! แล้วมันต่างกันยังไง พอดีไปหาข้อมูลสนับสนุนได้ก็จะขอกล่าวให้ฟังในตรงนี้ดังนี้ครับ

  • Outlook Anywhere

    ก่อนอื่นมาดูการทำงานของ Outlook Anywhere กันก่อนครับ

จากรูปนั้นจะเห็นได้ว่าการทำงานของ Outlook Anywhere มีการทำงานที่มีปัญหา อยู่ 2 ประการคือ

  • ประการที่ 1 การห่อหุ้ม Packet ของคำสั่ง MAPI นนนั้นจะต้องมีการห่อหุ้ม 2 รอบ คือเอาคำสั่ง RPC มาห่อหุ้มคำสั่งของ MAPI และ เอา HTTP มาห่อหุ้ม RPC อีกชั้นหนึ่ง
  • ประการที่ 2 การเชื่อมต่อจาก Client มายัง Exchange Server จะต้องมีการเปิด HTTP Connection ค้างเอาไว้ 2 Connection ตลอดเวลาเรียกว่า Persistent Connection (หรือบางทีเรียกว่า Long-lived TCP Connection) คือ RPC_DATA_IN และ RPC_DATA_OUT เพื่อใช้ในการส่งคำสั่งต่างๆระหว่าง Client กับ Exchange Server นอกจากนี้อาจจะมีความจำเป็นต้องสร้าง Connection อื่นๆ เพิ่มขึ้นมาตลอดเวลา
    แต่ Connection อื่นๆ นี้สามารถที่จะเปิดแล้วปิดไปได้ แต่ต้องยังคงเปิด Persistent Connection เอาไว้

แล้ว 2 ประการนี้มีปัญหาอย่างไร ?

    ประการแรกการที่มีมันต้องห่อหุ้ม Packet ถึง 2 ชั้นทำให้เกิด Overhead ในการส่งข้อมูล ทำให้ส่งข้อมูลได้น้อยลง และเป็นภาระกับ Exchange Server ที่จะต้องถอดข้อมูลที่ห่อหุ้มนี้อยู่

    ประการที่สอง การเปิด Persistent Connection ทำให้มีปัญหากับกับ Network Device อาทิเช่น Firewall ที่จะต้องรองรับ Connection จำนวนมาก และอาจส่งผลให้เกิด Connection Timeout ขึ้นได้ (เนื่องจาก Firewall อาจไม่อนุญาติให้เปิด TCP Persistent Connection แบบนี้)

  • MAPI Over HTTP

    เอาละครับ รู้ปัญหาของเจ้า Outlook Anywhere ทีนี้มาดูการทำงานของ เจ้า MAPI Over HTTP กันครับ

    ข้อดีของ MAPI Over HTTP

    ประการแรก เจ้า MAPI Over HTTP นั้นมีการเอา MAPI ไปห่ออยู่ภายในต้ HTTP โดยตรง (ไม่ต้องผ่าน RPC) ทำให้การทำงานมีความสะดวกมากยิ่งขึ้น ลด Overhead ในการทำงานลงไปได้ครับ

    ประการที่สอง MAPI Over HTTP ใช้วิธีการเปิด HTTP ในรูปแบบปกติ คือ HTTP Request/Response ไม่ได้ใช้ Persistent Connection อีกต่อไป ดังนั้นจึงเป็นการลดการใช้งานทรัพยากรทั้งบน Exchange Server, Client หรือแม้กระทั่ง Firewall และ Network Devices ต่างๆ อีกด้วย

4. บริการต่างๆ ที่เกี่ยวข้องกับ Client

หลังจากได้พูดถึงรูปการเชื่อมต่อต่างๆ ระหว่าง Client กับ Exchange Server มาพอสมควรแล้ว ก็จะได้เล่าให้ฟังในลำดับต่อไปว่า แล้ว Exchange Server นั้นมีการให้บริการอะไรกับ client บ้าง (นอกเหนือจากการรับ/ส่ง Email)ซึ่งบริการต่างๆ มีดังต่อไปนี้

  • AutoDiscover

    เป็นบริการที่ช่วยให้เครื่องลูกข่ายทั้งที่ Join และไม่ได้ Join เข้าสู่ระบบ Active Directory Domain
    ขององค์กรสามารถที่จะเรียกใช้ได้ เพื่อให้ Client สามารถที่จะตั้งค่าต่างๆ ที่จำเป็นเพื่อให้สามารถเชื่อมต่อกับ Exchange Server ได้อย่างถูกต้อง

    เมื่อ Client มีการเปิดการใช้งาน และเชื่อมต่อไปยัง Exchange Server นั้น เครื่อง client จะต้องทำการค้นหา SCP (Service Connection Point) ของ AutoDiscover ให้เจอเสียก่อน โดยวิธีการดังต่อไปนี้

    กรณีที่ 1 : กรณีที่เครื่องคอมพิวเตอร์นั้น Join Active Directory Domain

    เนื่องจากเครื่องคอมพิวเตอร์นั้น Join Active directory Domain เพราะฉะนั้นเครื่องคอมพิวเตอร์ จึงสามารถหา SCP ได้จาก ระบบของ Active Directory

    กรณีที่ 2 : กรณีที่เครื่องคอมพิวเตอร์นั้น ไม่ได้ Join Active Directory Domain

        เนื่องจากเครื่องคอมพิวเตอร์ไม่ได้ Join Active Directory Domain ดังนั้นการจะค้นหา SCP จาก Active Directory จึงเป็นไปไม่ได้ ดังนั้นจึงต้องมาค้นหาโดยอาศัยข้อมูลจาก Email Address ของผู้ใช้งาน มาช่วย ดังนี้

        สมมุติว่า Email Address ของผู้ใช้งานเป็น [email protected]

    Client จะนำเอา E-mail address ในส่วนหลัง @ มาใช้ในการคาดการณ์ว่า SCP ควรจะอยู่ที่ใด ซึ่งแบ่งได้หลายรูปแบบดังนี้

        รูปแบบที่ 1 : “https://” + domain + “/autodiscover/autodiscover” + fileExtension

    โดยในที่นี้ domain มีค่าเท่ากับ contoso.com

    FileExtension ขึ้นอยู่กับรูปแบบของ client ถ้าเป็น SOAP protocol จะใช้ FileExtension เป็น .SVC แต่ถ้า Client เป็น POX จะใช้ FileExtension เป็น .XML (ส่วนใหญ่ที่เจอจะใช้รูปแบบ XML ครับ)

            ดังนั้น Client จะพยายามสร้าง Connection ไปที่ https://contoso.com/AutoDiscover/Autodiscover.XML

    รูปแบบที่ 2: “https://autodiscover.” + domain + “/autodiscover/autodiscover” + fileExtension

            ในกรณีนี้ client จะพยายามสร้าง Connection ไปที่
    https://autodiscover.contoso.com/Autodiscover/AutoDisocver.XML

        

        จากนั้น Client จะพยายามส่งคำร้องขอที่เป็น HTTPS ไปยัง SCP ทั้งรูปแบบที่ 1 และรูปแบบที่ 2 เพื่อพยายามเชื่อมต่อกับ AutoDiscover และทำการ Authentication เพื่อนำเอา Configuration ต่างๆมาใส่ไว้ที่เครื่อง Client ให้ถูกต้องตรงกันกับค่าที่ Exchange server กำหนดไว้

แล้วจะเกิดอะไรขึ้นถ้า Client ไม่สามารถเชื่อมต่อกับ AutoDiscover ได้ ??
คำตอบก็คือว่า User ก็ต้องกำหนดค่า Parameter ต่างๆ ในการเชื่อมต่อเองครับ ซึ่งอาจจะไม่สะดวกสำหรับ EndUser ทั่วไปครับ
หมายเหตุ

    ดังนั้นในการติดตั้ง Exchange Server เราจึงควรจะประกาศ DNS Record Autodiscover ไว้ใน Public DNS ด้วยทุกครั้ง เพื่อให้ Client สามารถค้นหา SCP ของ AutoDiscover ได้อย่างถูกต้อง

  • Availability Service

    เป็นบริการที่ช่วยอำนวยความสะดวกในการนัดหมายกับผู้เข้าร่วมประชุม โดย Availability Service จะช่วยให้ผู้นัดหมาย สามารถตรวจสอบได้ว่าผู้รับนัดหมายในแต่ละรายนั้นว่างหรือไม่ว่างที่จะเข้าร่วมการนัดหมายนั้นๆ และ Availability Service ยังช่วยนำเสนอเวลาในการประชุมที่เหมาะสมให้กับผู้นัดหมายได้อีกด้วย

  • MailTips

    เป็นการช่วยให้ผู้ส่งสามารถรับทราบถึงสิ่งที่จะเกิดขึ้นในการส่ง Email ฉบับนั้นได้ก่อนที่จะส่ง Email ออกไปจริงๆ ซึ่ง MailTips ที่มีการเปิดการใช้งานเป็นค่า Default ได้แก่

    • กรณี mailbox ของผู้รับเต็ม
    • กรณีผู้รับมีการตั้งค่า Automatic Reply ไว้
    • กรณีผู้รับเป็น Restricted Recipients
    • กรณีผู้รับเป็น External Recipients
    • กรณีผู้รับมีเป็นจำนวนมาก (Default คือมากกว่า 25 คน)

สำหรับ Availability Service กับ MailTips นั้นไม่มีอะไร concerns ครับ เพราะทั้ง 2 ตัวนี้ Enable By Default อยู่แล้วครับ ขอแค่มี Outlook ใน Version ที่รองรับ ก็สามารถเรียกใช้งานได้เองอยู่แล้ว โดย User ไม่ต้องไปทำอะไรเลยครับ

เอาละครับก็เกริ่นกันมาพอสมควรกับ Client access Protocols and Services ในภาคนี้ก็จะขอจบไว้เพียงเท่านี้ก่อนนะครับ ส่วนในภาคถัดไปจะพาไปดูวิธีการ Configuration ในส่วนของ Client Access Protocols and Services ต่างๆ ครับ

Reference:

Blog Post ที่เกี่ยวข้อง

ภาค 1 – สถาปัตยกรรม และความสามารถใหม่

ภาค 2 – เริ่มต้นติดตั้ง Exchange Server 2016 Mailbox Server Role

ภาค 3 – Exchange Server 2016 Management Tools

ภาค 4 – Mail Flow และ Transport Pipeline

ภาค 5 – การ Configure การรับ/ส่ง Email ใน Exchange Server 2016