ทำความรู้จักกับ DMVPN ตอนที่ 2 (NHRP)

ผมได้เขียนบทความเกี่ยวกับ DMVPN ตอนที่ 1 ไปแล้ว ซึ่งในตอนที่ 1 จะกล่าวถึงภาพรวมของ DMVPN และ mGRE สำหรับท่านใดที่เข้ามาอ่านบทความนี้ แล้วยังไม่ได้อ่าน ตอนที่ 1 ผมแนะนำให้ท่านอ่าน ตอนที่ 1 ก่อน เพื่อจะได้ต่อยอดเนื้อหาได้อย่างต่อเนื่องครับ
>> ทำความรู้จักกับ DMVPN ตอนที่ 1 (mGRE) <<
ส่วนท่านใดที่ได้อ่านบทความในตอนที่ 1 มาแล้ว เรามาต่อกันในตอนที่ 2 ได้เลยครับ

ในบทความนี้ ผมจะกล่าวถึงโปรโตคอล NHRP (Next Hop Resolution Protocol) ซึ่งเป็นโปรโตคอลหลักของ DMVPN เลยครับ เรามาดูกัน…
NHRP (Next Hop Resolution Protocol) คือ โปรโตคอลที่ใช้งานบน DMVPN ทำงานคล้าย ARP ที่ใช้ในการหา IP address ของอุปกรณ์ที่อยู่บนโครงข่ายแบบ NBMA (Non Broadcast Multi-Acces) ซึ่งจะมีการทำงานดังนี้
  • การทำงานเป็นแบบ Client – Server
  • Router ที่ถูกกำหนดเป็น Hub จะทำหน้าที่เป็น NHRP Server (Static Public IP)
  • Router ที่ถูกกำหนดเป็น Spoke จะทำหน้าที่เป็น NHRP Client (Static หรือ Dynamic Public IP)
  • NHRP Client จะไป register กับ NHRP Server
  • NHRP Server จะเก็บข้อมูลของ Client ที่มา register ไว้ใน NHRP Database
เรามาดูการทำงานของ NHRP จากรูปด้านล่างกันครับ
กำหนดให้ HQ เป็น Hub และ BR-X เป็น Spoke
เมื่อมีการตั้งค่าใช้งาน NHRP บน HQ และ BR-X ฝั่ง BR-X (Spoke) จะทำการส่ง “NHRP Registration request” เพื่อลงทะเบียน และ รายงาน Public IP ของตัวเองไปให้ HQ (Hub)
Note : ดังนั้น Router ฝั่งที่เป็น Spoke ไม่จำเป็นที่จะต้องใช้ Public IP แบบ Static ก็ได้ เราสามารถใช้ Public IP แบบ Dynamic ได้เลย เพราะในกระบวนการ NHRP Registration จะเห็นว่าฝั่งที่เป็น Spoke จะรายงาน Public IP ของตัวเองไปให้ Hub รู้จักอยู่แล้ว
เมื่อ HQ (Hub) ได้รับมาแล้ว ก็จะทำการสร้าง Tunnel ขึ้นมา และเก็บ ข้อมูล Public IP กับ Tunnel IP ของฝั่ง BR-X (Spoke) ทั้ง 2 ตัว เอาไว้ใน Database (Cache)
เมื่อฝั่ง BR-1 (Spoke1) ต้องการจะส่งข้อมูลไปฝั่ง BR-2 (Spoke2)
ฝั่ง BR-1 (Spoke1) จะทำการส่ง “NHRP Resolution Request (Query)” ไปหา HQ (Hub) เพื่อถามว่า Public IP ของ BR-2 (Spoke2) คืออะไร
HQ (Hub) จะตอบกลับ BR-1 (Spoke1) ด้วย “NHRP Resolution Reply” โดยการส่ง Public IP ของ BR-2 (Spoke2) กลับไปให้ BR-1 (Spoke1)
เมื่อ BR-1 รู้ Public IP ของ BR-2 แล้ว ก็สามารถสร้าง Tunnel ระหว่างกัน ได้โดยอัตโนมัติ และทำการส่งข้อมูลหากันได้โดยตรง โดยที่ไม่ต้องไปวิ่งผ่าน HQ (Hub) ก่อนนั่นเองครับ
นี่แหละครับ คือ กระบวนการทำงานของ NHRP ที่เราจพนำมาใช้งานบน DMVPN นั่นเองครับ

DMVPN จะใช้งานอยู่ทั้งหมด 3 Phases ด้วยกัน ดังนี้
  • Phase 1
  • Phase 2
  • Phase 3
Phase 1
  • ฝั่ง Spoke ใช้ NHRP ในการ Registration กับ Hub
  • ฝั่ง Hub ใช้งาน Tunnel แบบ Multi point (mGRE)
  • ฝั่ง Spoke ใช้งาน Tunnel แบบ Point-to-Point (GRE)
  • Spoke กับ Spoke ไม่สามารถคุยกันได้โดยตรง
  • Spoke กับ Spoke จะคุยกัน traffic จะต้องวิ่งผ่าน Hub เท่านั้น
Phase 2
  • ฝั่ง Spoke ใช้ NHRP ในการ Registration กับ Hub
  • ฝั่ง Hub ใช้งาน Tunnel แบบ Multi point (mGRE)
  • ฝั่ง Spoke ใช้งาน Tunnel แบบ Multi point (mGRE)
  • Spoke กับ Spoke สามารถคุยกันได้โดยตรง ไม่ต้องวิ่งผ่าน Hub
  • ไม่สามารถทำ summarization ที่ฝั่ง Hub เพื่อให้ส่ง summary route ไปหา Spoke ได้
  • ใช้เทคนิคของ routing protocol เพื่อให้ฝั่ง Spoke เห็น Next-hop ซึ่งกันและกัน (จะกล่าวถึงในบทความการตั้งค่า DMVPN Phase 2)
Phase 3
  • การทำงานของ NHRP จะแตกต่างออกไปจากเดิม
  • เมื่อฝั่ง Spoke ต้องการจะส่งข้อมูลหากัน จะทำการส่ง traffic ไปหา Hub จากนั้น Hub จะทำส่ง NHRP Redirect ไปหา Spoke เพื่อบอกว่า ให้ Spoke สามารถคุยกันโดยตรงได้เลย
  • เมื่อ Spoke ได้รับ NHRP Redirect จาก Hub มันจะส่ง NHRP Resolution ไปหา Public IP ของ Spoke ที่จะไปหา และทำการเพิ่มเส้นทางใหม่ (route) ลงใน routing table เพื่อติดต่อหากันโดยตรงระหว่าง Spoke to Spoke
รายละเอียดการทำงานแต่ละ Phase ผมจะเขียนอยู่ในบทความ การตั้งค่า DMVPN ในแต่ละ Phase ให้อีกครั้งครับ
ก็หวังว่าจะได้รับประโยชน์ และ เข้าใจการทำงานของ NHRP มากขึ้นในบทความนี้นะครับ แล้วพบกันในบทความหน้าครับ

 

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Facebook Comments

comments