top of page

Longest Prefix Match Routing

  • sputtipon
  • 14 มี.ค.
  • ยาว 2 นาที

อัปเดตเมื่อ 15 มี.ค.

เมื่อ Router หรือ อุปกรณ์ในระดับ Layer3 ได้รับแพ็กเก็ต IP มันจะต้องตัดสินใจว่าจะส่งต่อแพ็กเก็ตไป Interface ใด ไปยัง next-hop ใด ซึ่ง Router จะค้นหาเส้นทางในตาราง Routing Table เพื่อหาข้อมูลที่ตรงกันและใช้ข้อมูลเหล่านี้ในการตัดสินใจส่ง Packet ออกไป (บทความนี้ขอยังไม่กล่าวถึง RIB, FIB)

ในหลายๆครั้งเส้นทางใน Routing Table อาจจะมีค่อนข้างเยอะที่จะไปยังปลายทางเดียวกัน เช่น อาจจะมาจาก Admin เป็นผู้กำหนดเส้นทางให้ที่เป็นStatic Route หรืออาจจะมาจากการใช้งาน Dynamic Routing Protocol อย่างเช่น OSPF, EIGRP เป็นต้น แล้วในเมื่อมีหลายๆเส้นทาง Router จะตัดสินใจจากอะไรว่าควรใช้เส้นทางไหน ? หรือตัดสินใจจะเอาเส้นทางใดลงใน Routing Table ?


            ในการเลือกเส้นทางที่จะส่ง Packet ตัว Router จะพิจารณาจาก Longest Match ก่อน (ส่วนการตัดสินใจเอาเส้นทางไหน Install ลงใน Routing Table จะมีเรื่องของค่า AD, ค่า Metric แต่สำหรับบทความนี้เราจะมาคุยเรื่อง Longest Match หรือ Longest Prefix Match Routing กัน) ยกตัวอย่างจาก Diagram ด้านล่าง


จากภาพด้านบน Router R1 จะเชื่อมต่อกับ Router R2, R3, R4 และ Packet ที่ Router R1 ได้รับต้องการไปยัง IP ปลายทาง 10.100.64.62 ในส่วนของRouter R1 ทาง Admin ได้ทำการตั้งค่า Static Route เอาไว้ 3 เส้นทาง เมื่อใช้คำสั่ง “show ip route” จะเห็นเส้นทางที่สามารถไปยัง 10.100.64.62 ได้ 3 เส้นทางตามภาพด้านล่าง แล้ว Router จะเลือกเส้นทางใด?


เมื่อ Router R1 ได้รับ Packet ที่มีปลายทางเป็น IP 10.100.64.62 เข้ามา ก็จะมาดูว่า Network ใดบ้างใน Routing Table ที่มี Longest Match หรือ Bit ที่เหมือนที่ Match กันมากที่สุดกับ IP 10.100.64.62 ตามรูปที่ได้แสดงด้านล่าง





จะเห็นได้ว่าเส้นทางที่ 3 จะมีค่าของ Bit ที่ Match กันมากที่สุดหรือเป็น Longest Match ถึง 24 bits (เส้นทางแรก 8 bits, เส้นทางที่ 2 คือ 16 bits) ตัว Router R1 ก็จะทำการเลือกเส้นทางนี้เพื่อไปยังปลายทาง IP 10.100.64.62 ทั้งนี้สามารถตรวจสอบบน Router R1 โดยใช้คำสั่ง “show ip route 10.100.64.62” เพื่อตรวจสอบเส้นทางที่ Router เลือกใช้งานตามผลของ Longest Match



สำหรับท่านที่พึ่งศึกษา Network ใหม่ๆเพื่อให้มองภาพได้เข้าใจมากขึ้นสำหรับคำว่า Longest Match ก็ให้นึกเปรียบเทียบถึงการส่งจดหมายหรือสิ่งของก็ได้เช่นกัน เช่น เมื่อ เจ้าหน้าที่ได้รับจดหมาย(เจ้าหน้าที่เปรียบเหมือน Router R1) แล้วที่หน้าซองจดหมายเขียนไว้ว่าไปยังปลายทาง จ.เชียงใหม่ อ.แม่ริม ต.เหมืองแก้ว ม.3 ตามภาพด้านล่าง แล้วปรากฎว่ามีเจ้าหน้าที่ 3 คนมารอรับจดหมาย(เปรียบเหมือน Router R2, R3, R4)เพื่อจะไปส่งให้ถึงปลายทาง คนแรกรู้จักแค่จังหวัด คนที่ 2 รู้จักทั้งจังหวัดและอำเภอ แต่ปรากฎว่าคนที่ 3 รู้จักถึง 3 อย่าง ทั้งจังหวัด, อำเภอ และตำบล ฉะนั้นคนที่ 3 ถือว่า Match กันมากที่สุดหรือเป็น Longest Match ถึง 3 อย่าง ก็จะทำการเลือกส่งจดหมายให้คนนี้เพื่อช่วยส่งไปยังปลายทางต่อไป



สำหรับท่านไหนที่อยากมองเห็นภาพเชิงลึกมากขึ้น หรือ อาจจะกำลังเรียน CCNP ENCOR, CCNP ENARSI ก็แนะนำให้ลองฝึก Debug เพื่อดูการทำงานของ Router ว่า Packet ถูกส่งไปทาง Interface ไหนอย่างไร (ในส่วนของการ Debug หากมีหลายๆท่านสนใจ จะขออนุญาตเขียนให้ในบทความต่อๆไป เนื่องจากต้องอธิบายเพิ่มเกียวกับเรื่อง Control plane, Data plane เรื่องของ RIB, FIB ก่อน) จากภาพด้านล่างจะเป็นการ Debug และทดสอบลอง Ping ไปยังปลายทาง 10.100.64.62 ก็จะเห็นได้ว่า Packet ถูกส่งไปยัง Interface Ethernet0/2 หรือ ไปทาง Router R3 นั่นเอง ด้วยเหตุผลของ Longest Match ตามที่กล่าวมาข้างต้น


R1#debug ip packet
IP packet debugging is on
R1#
R1#ping 10.100.64.62
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.64.62, timeout is 2 seconds:
!!!!!
*Oct 31 18:06:27.349: IP: tableid=0, s=10.1.203.3 (local), d=10.100.64.62 (Ethernet0/2), routed via RIB
*Oct 31 18:06:27.349: IP: s=10.1.203.3 (local), d=10.100.64.62 (Ethernet0/2), len 100, sending
*Oct 31 18:06:27.349: IP: s=10.1.203.3 (local), d=10.100.64.62 (Ethernet0/2), len 100, sending full packet


 
 
 

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page