Collaboration Edge : Expressway Step-by-Step Guide

สวัสดีครับพี่น้องผองเพื่อนที่ติดตามบทความจากทางเอเบิ้ลเน็ตทุกท่านครับ พอจะพูดถึงเรื่องโทรศัพท์สมัยก่อนหน้านี้สัก 10 ปีที่แล้ว เวลาสร้างตึก อาคารอะไรใหม่ ๆ ก็จะมีผังของ Analog Telephone อยู่เสมอ สมัยนี้อาคารสำนักงานใหม่ ๆ เริ่มที่จะไม่ใช้ Analog กันแล้ว เนื่องมาจากเดินสาย UTP (LAN Cable) ไปยังจุดต่าง ๆ อยู่แล้ว ก็เอาโทรศัพท์ไปเสียบใช้งานพร้อมกับ PC ได้เลย ประหยัดทั้งค่าสาย ค่าหัว ค่าเต้ารับ ค่าแรงจ้างคนมาลากสายอีก จึงทำให้การใช้งานโทรศัพท์แบบไอพีได้รับการตอบรับมากขึ้น แถมยังโทรข้ามสาขากันได้โดยไม่มีค่าใช้จ่ายใด ๆ เลย นอกจากการจ่ายค่า Internet รายเดือนเท่านั้น

ย้อนหลังไปหลายปีที่แล้วนั้น พนักงานบริษัทมีหมายเลขโทรศัพท์ประจำตำแหน่งหรือ Extension Number ภายในของตนเอง หากออกไปภายนอก ต้องการได้เบอร์โทรศัทพ์ที่โต๊ะเราเอง และโทรกลับเข้าสำนักงานโดยไม่มีค่าใช้จ่ายใด ๆ ก็จะต้องทำ VPN (Virtual Private Network) เข้ามายังบริษัทก่อน เพื่อสามารถ Enable Softphone ที่อยู่บน Smart Phone เข้าไป register กับ IP PBX ที่อยู่ภายในบริษัทได้ ซึ่งพนักงานหลายคนก็มีความจำกัดเรื่องการใช้งาน ความยากของการ Connect กลับเข้ามา แถมยุ่งยากมาก หลุดก็ต้อง Connect ใหม่เป็นต้น Cisco เลยได้ใช้ Technology ที่เรียกว่า Collaboration Edge ซึ่งเป็นของ Tandberg เดิมมีการ Deploy อยู่แล้ว นำมาใช้งานและเรียกว่า Expressway หรือทางด่วนในการติดต่อสื่อสาร Collaboration นั่นเอง

Expressway จะมีรูปแบบการ Deploy ด้วยกัน 2 อุปกรณ์ก็คือ Expressway-C และ Expressway-E โดยที่ C คือ Core อยู่ภายใน Inside Zone ส่วน E คือ Edge ก็จะอยู่ที่ DMZ Zone หรือเราสามารถออกแบบตามเครือข่ายในองค์กรของเราเองก็ได้ เช่น C และ E อยู่ใน Zone เดียวกัน และขา Outside ของ E ก็ทำ NAT ผ่าน Firewall ออกไปพร้อมเปิดพอร์ตที่ใช้งานสำหรับ Voice Service ตามด้านล่างก็ได้เช่นกัน ขอย้ำอีกอย่างนึงนะครับ ตัว Expressway-E ควรจะใช้เป็น Dual Interface เท่านั้นครับ แล้วก็ผ่าน Firewall ด้วยการ NAT ออกไปอีกทีนึงครับ

เกริ่นมาพอควรแล้วนะครับ ส่วนวัตถุประสงค์บทความนี้ก็เพื่อให้ทางวิศวกรระบบสามารถติดตั้งระบบ Expressway-C และ E กับฟีเจอร์ MRA (Mobile Remote Access) เพื่อสามารถโทรจากข้างนอกโดยไม่จำเป็นต้อง VPN (Virtual Private Network) กลับมาภายในบริษัท

======= ขั้นตอนการทำ Basic Expressway Configuration =======
ผมจะเริ่มจากการ deploy CUCM, IMP ก่อนนะครับ ซึ่งในบทความนี้จะอ้างอิงจากการทำ Lab ใน version ตามด้านล่างนี้ หากเป็น version อื่น ๆ เป็นไปได้ว่าเมนูอาจจะไม่เหมือนกันได้ครับ

CUCM System version: 10.5.2.10000-5
IMP System version: 10.5.2.23900-4
Expressway Software version X8.7.3
Jabber Software version 11.8.2 Build 50390

1.ดาวน์โหลดไฟล์ ova ตัว Expressway โดยใช้ cco ของเราเองได้เลยครับ (ทั้งนี้อาจจะขึ้นอยู่กับ Authorize cco ของเรานะครับ ว่าสามารถดาวน์โหลดได้หรือเปล่า) ทั้งตัว Expressway C และ E ใช้ Image ตัวเดียวกันเลยนะครับ มันจะแยกว่าตัวไหนเป็น C หรือตัวไหนเป็น E ผ่านทาง License ที่เราจะใส่ไปครับ แล้วก็ Expressway จะตัดสินใจว่าเป็นแบบไหน
2.ใส่ค่า IP Address ของ Expressway C และ E ในส่วนของ Expressway-E ผมแนะนำให้ทำ Dual Interface นะครับ ใครที่ทำ Single Interface อย่าเสียเวลาครับ ผมลองมาหลายท่าแล้ว ไม่ประสบความสำเร็จตามวัตถุประสงค์เท่าไหร่ครับ
3.System > Administration ใส่ชื่อของอุปกรณ์ลงไป เช่น expc, expe เป็นต้น

4.System > DNS ใส่ค่า System host name, Domain name และ ip ของ DNS ลงไปในช่องตามรูปด้านล่าง

5.System > Time ใส่ค่า ip ของ NTP Server และ Timezone ด้วยนะครับ ตัว NTP Server อาจจะ sync ไป NTP Server ข้างนอกก็ได้ แต่ผมแนะนำว่าให้ทำ NTP ข้างในไว้ดีกว่าเช่น Windows Server หรือใครมี Core Switch อยู่แล้วก็สามารถใช้คำสั่ง NTP Master เพื่อให้ Core Switch ทำตัวเป็น NTP Server เพื่อ sync เวลาให้กับ NTP Client ได้ เมื่อใส่เรียบร้อยแล้วให้รอสักพักนึง สามารถเช็ค Status ด้านล่างได้ว่ามีการ Sync กันเรียบร้อยแล้วหรือไม่ หากเรียบร้อยแล้วจะขึ้น Readability เป็นเครื่องหมายถูกสีเขียว

======= ขั้นตอนการทำ Certificate และ CA เพื่อนำมาใส่ใน Expressway-C และ E =======

ขั้นตอนนี้ผมขอไม่พูดถึงรายละเอียดลึก ๆ นะครับ แต่พูดคร่าว ๆ ไว้เพื่อเราสามารถไปทำต่อเองได้ โดยที่เราต้องสร้าง CA และ Sign ตัว certificate สำหรับ exp-c, exp-e, UCM tomcat และ CUP tomcat  ขั้นแรกเราสามารถไป generate CSR ในตัวของ Expressway มาก่อน ที่เมนู Maintenance > Security certificates > Server certificate เพื่อไปคลิ๊กที่ปุ่ม generate CSR ตามด้านล่าง

หลังจากนั้นเรานำ key ที่ได้นั้นไปทำการ Generate private key และ CA cert ซึ่งเราต้องใช้ Microsoft Server หรือ Linux Server เพื่อทำการ generate ออกมาได้ตามความถนัดเลยนะครับ วิธีการเราสามารถ Search หาได้ทั่ว ๆ ไปเลยครับ อาจจะมีความยุ่งยากหน่อย แต่ก็ทำสักครั้ง 2 ครั้งก็จะคล่อง และเชี่ยวขึ้นเองครับ เมื่อได้ไฟล์มาเรียบร้อยแล้ว ให้เราทำการ upload กลับไปยัง Expressway แต่ละตัว และทำการ Restart Expressway หลังจากติดตั้ง certification เรียบร้อยแล้ว
เมื่อกลับมาจาก restart เราจะเห็น Certificate ที่เราใส่เข้าไปเรียบร้อยแล้ว รวมถึง Expiration date ด้วย

======= ขั้นตอนการทำ Traversal Zone =======
1.ทำการ configure Expressway-C เป็น traversal client zone, Expressway-E เป็น traversal server zone โดยไปที่ Configuration > Zones > Zones
2.ทำการ Click New และใส่ค่าต่าง ๆ Make sure ว่า username/password ถูกสร้างภายใต้ expe เรียบร้อยแล้วด้วยหรือไม่ ให้ไปที่ Configuration > authentication > local database ตามด้านล่างนี้นะครับ

ในหน้าของ Expressway-C Traversal Zone Configuration ให้ใส่ค่า Name เป็น Traversal Zone และทำการ Disable H.323 mode และเปลี่ยน SIP TLS เป็น mode “On”, Media encryption mode เป็น “Force encrypted” ใน Expressway-C สามารถใส่ FQDN แทนที่ ip address ในการ peer กับ Expressway-E ได้เลยครับ ตามรูปด้านล่างนี้
Expressway-C Traversal Configuration

Expressway-E Traversal Configuration

รูปด้านล่างเป็นตัว Traversal Zone ของ Expressway-E ที่สร้างขึ้นมาเพื่อคุยกับ Expressway-C

======= ขั้นตอนการ Configure traversal zone search rules =======

ไปที่เมนู Configuration > Dial Plan > Search Rules แล้วไปทำแต่ละตัวทั้ง C และ E

======= ขั้นตอนการทำ MRA Zone =======
1.ทำการ configure Expressway-C Name เป็น VCS-E for MRA, Expressway-E เป็น VCS-C for MRA โดยไปที่ Configuration > Zones > Zones
2.ทำลักษณะเดียวกันกับการสร้าง Traversal Zone โดยการ Click New และใส่ค่าต่าง ๆ Make sure ว่า username/password ถูกสร้างภายใต้ expe เรียบร้อยแล้วด้วยหรือไม่ ให้ไปที่ Configuration > authentication > local database ตามด้านล่างนี้นะครับ ใส่ส่วนของ SIP > TLS verify subject name ให้ใส่ค่าของ domain ของแต่ละฝั่งที่จะ peer ไป ตามรูปด้านล่างนี้ครับ
Expressway-C MRA Configuration

Expressway-E MRA Configuration

======= ขั้นตอนการ Configuring DNS Zone =======
Configuration > Zones > Zones

======= ขั้นตอนการ Configuring DNS zone search rules =======
Configuration > Dial Plan > Search rules ในส่วนของ Pattern string สามารถใส่เป็น Domain ของเราได้เลย เช่น (?!.*@%ablenet.co.th%.*$).*

======= ขั้นตอนการ Configuring external (unknown) IP address routing =======
Configuration > Dial Plan > Configuration

Configuration > Dial Plan > Search Rules


======= ขั้นตอนการ Configuring Unified CM for an Expressway trunk =======
ในส่วนของ CUCM นั้น เราต้องทำ Trunk ขึ้นมาเพื่อชี้ไอพีมาที่ Expressway-C ก็ใช้การสร้าง UCM > Device > Trunk > Add New เพื่อทำการสร้าง SIP Trunk ขึ้นมาคุยกับทาง Expressway ซึ่งสามารถทำไปตามปกติได้เลยครับ ผมจะไม่ขอลงรายละเอียดนะครับ เพราะบทความนี้จะเน้นการ configure ไปที่ Expressway เท่านั้น หากใครต้องการรายละเอียดเพิ่มเติมก็สามารถอีเมล์มาสอบถาม หรือโทรมาก็ได้ครับ ยินดีให้คำแนะนำฟรี ไม่มีค่าใช้จ่ายใด ๆ ครับ เมื่อสร้าง SIP Trunk เสร็จเรียบร้อยแล้ว ให้ทำการ reset นะครับ เพื่อให้ทำการ Sync เข้ากับ Expressway-C แบบ Full Service

======= ขั้นตอนการ Configuring a neighbor zone on Expressway for Unified CM =======
เข้าไปยังเมนู Expressway-C > Configuration > Zones > Zones ทำการใส่ค่าต่าง ๆ ตามรูปด้านล่างนี้ และใส่ IP ของ CUCM ทั้ง Publisher และ Subscriber ทั้งหมดนะครับ เมื่อเสร็จแล้วกด Save และดู status ได้ครับ

======= ขั้นตอนการ Configuring Expressway-C for Mobile and Remote Access (MRA) =======
1.Configuration > Unified Communications > Configuration

2.Configuration > Domains

3. Configuration > Unified Communications > Unified CM Server > New ในส่วนของช่อง Unified CM publisher address ให้ใส่เป็น domain เท่านั้นนะครับ หากใส่เป็น ip address จะไม่ได้ สำหรับคนที่ทำการเชื่อมต่อด้วย TLS และทำการ upload certificate เรียบร้อยแล้ว

4.New Zone จะถูก discovery อัตโนมัติและจะอัพเดทมาให้ทั้งตัว Publisher และ Subscriber

======= ขั้นตอนการทำ SRV Record ให้กับ DNS ภายในและภายนอก เพื่อให้ทาง MRA ใช้งานได้ ========
ให้ทำการ Add SRV เพ่ิ่มเข้าไปยัง DNS Server ของเราทั้งภายในและภายนอก หากภายนอกไม่มี DNS เราสามารถแจ้งทาง Service Provider ให้ add SRV Record แทนเราได้ ตามด้านล่างนี้นะครับ

Configuring Service Discovery on Internal DNS server
Domain: ablenet.co.th
Service: _cisco-uds
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 8443
Host: cucm.ablenet.co.th

Domain: ablenet.co.th
Service: _cuplogin
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 8443
Host: imp.ablenet.co.th

==============================================

Configuring Service Discovery on Public DNS
Service: _collab-edge
Protocol: _tls
Priority: 10
Weight: 10
Port number: 8443
Host: expe.ablenet.co.th

Service: _sips
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 5061
Host: expe.ablenet.co.th

Service: _sips
Protocol: _tls
Priority: 10
Weight: 10
Port number: 5061
Host: expe.ablenet.co.th

Service: _sip
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 5060
Host: expe.ablenet.co.th

Service: _sip
Protocol: _udp
Priority: 10
Weight: 10
Port number: 5060
Host: expe.ablenet.co.th

Service: _sip
Protocol: _tls
Priority: 10
Weight: 10
Port number: 5061
Host: expe.ablenet.co.th

Service: _h323ls
Protocol: _udp
Priority: 10
Weight: 10
Port number: 1719
Host: expe.ablenet.co.th

Service: _h323cs
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 1720
Host: expe.ablenet.co.th

Service: _h323rs
Protocol: _tcp
Priority: 10
Weight: 10
Port number: 1719
Host: expe.ablenet.co.th

================================

เมื่อทำเสร็จแล้วเราสามารถทำการ Register Cisco Jabber ซึ่งเป็น Soft Phone ได้ทั้งภายในและภายนอก โดยใส่เพียงแค่ username ตามด้วย domain ของเรา และ password ของ User นั้น ๆ ครับ ไม่จำเป็นต้องใส่ค่า ip ของ cucm หรือ imp อีกต่อไปครับ เนื่องจากเราได้ทำ SRV ไว้แล้วมันสามารถวิ่งไปยัง protocol, port และ host ที่เรากำหนดได้เลย

ขั้นตอนอาจจะดูเยอะหน่อยนะครับ (กระซิบบอกกันว่าค่า Implement ตัว Expressway นี่เอาเรื่องเลยครับ ผมเคยเห็น SI บางรายคิดค่า Implement เฉพาะการทำ Expressway กับทางลูกค้าหลักแสนเลยครับ) Expressway อาจจะต้องประสานงานกับอุปกรณ์และคน 3’rd party หลาย ๆ ฝ่ายเลยนะครับ ทั้งคนที่ดู System อย่างพวก Windows Server, AD, Domain Controller อีกทั้งต้องประสานกับ Public DNS นอกอีกครับ และยังมีเรื่องการ generate certificate แถมเข้าไปอีก หากใครทำครั้ง 2 ครั้งแรกค่อนข้างปวดหัวเลยทีเดียวครับ แต่พอทำเสร็จแล้วผู้ใช้งานสามารถใช้งานได้สะดวกมากขึ้นเลยครับ พร้อมกับมี Security ในการป้องกันบุคคลผู้ไม่ประสงค์ดีเข้ามา Register บนตัว IP PBX และโทรฟรีออกผ่านทาง Gateway PSTN ของเราเอง ได้อย่างแน่นอนเลยครับ เพราะเรามีการทำ Firewall คั่นระหว่างกลาง และการคุยกันของ Expressway authen กันก่อน รวมถึง Certificate ต่าง ๆ ก่อนจะเข้าไปใช้งาน IP PBX (CUCM) ได้

ลองเล่น ลองลง Lab กันดูนะครับ ติดส่วนไหนยังไงก็สามารถอีเมล์กันมาสอบถามกันที่ info@ablenet.co.th ได้เลยครับ หรือใครต้องการให้เราช่วย Implement ก็สามารถติดต่อมาได้ทางโทรศัพท์ ขอขอบพระคุณและสวัสดีครับ