การเลือก forward IP packet ของ router ตามหลัก longest match



ช้อ link แนะนำ ก่อนจะอ่านบความนี้

หากท่านใดที่ยังไม่แม่นในเรื่อง routing แล้ว ผมขอแนะนำให้ไปดู VDO ข้างล่างนี้ก่อนนะครับ 

CCNA kochaiwat Vol5 Routing Concept

https://www.youtube.com/watch?v=nJ10dy-FjEk


เริ่มกันเลย สำหรับบทความนี้:

จากที่มีคนมาถาม เพื่อขอปรึกษาเกี่ยวกับการ forward IP packet ของ router ตามหลัก longest match ดังภาพข้างล่าง







Question: According to the routing table, where will the router send a packet destined for 10.1.5.75?

คำถาม: ตาม routing table แล้ว, router จะส่ง packet ที่ถูกกำหนด destination เป็น 10.1.5.75 ไปยังที่ไหน (ส่ง packet นี้ไปยัง next-hop ไหน)?

คำตอบที่ถูกเฉลย คือ: 
Router จะ forward IP packet ที่มี destination 10.1.5.75 ไปยัง next-hop 10.1.2.2 

แต่มีคนถามมาว่า ทำไม 10.1.3.3 จึงไม่ใช่คำตอบที่ถูก ทั้งๆ ที่มี prefix เป็น 29 (/29) ซึ่งเป็น prefix ที่ยาวที่สุด ทำไม ทำไม และทำไม?


เฉลยด้วยภาพ และตามด้วยคำอธิบายครับ




เฉลยครับ ว่าทำไม next-hop ถึงเป็น 10.1.2.2 ให้ดูภาพข้่างบนประกอบนะครับ
-------------------------------------------------
Step 1: Network ID ที่จะถูกเลือก และใช้ next-hop ในการ forward IP packet ที่มี destination 10.1.5.75 จะต้องเป็น Network ID ที่มี range ของ Available IP address ที่ซึ่งจะต้องครอบคลุม Destination IP 10.1.5.75 ก่อน เป็นอันดับแรก ซึ่ง Network ที่เข้ารอบแรก มีดังนี้ (ผมเรียกว่า "เข้าวิน')
- 10.1.5.0/24 (Available IP: 10.1.5.1 - .254)
- 10.1.5.64/28 (Available IP: 10.1.5.65 - .79)
- 10.1.5.64/27 (Available IP: 10.1.5.65 - 255)
Note: 10.1.5.64/29 ไม่เข้าวิน เพราะมี Available IP: 10.1.5.65 - .70 เท่านั้น แต่ Destination IP address ที่เราสนใจเคือ 10.1.5.75
Step 2: หลังจากที่ได้ Network ID ที่เข้าวินในรอบแรกแล้ว ก็มาถึงรอบตัดเชือก คือ ดูที่ Prefix ที่ยาวที่สุด ซึ่งเป็นไปตามกฎ longest match
นั่นคือ Network ID 10.1.5.64/28 เป็นผู้ชนะ เพราะมี bit ที่ match มากที่สุด
ดังนั้น IP packet ที่มี destination address เป็น 10.1.5.75 จะถูก forward ไปยัง next-hop ที่สัมพันธ์กับ Network ID 10.1.5.64/28 นั่นคือ packet นี้จะถูก forward ไปยัง next-hop 10.1.2.2


เรามาลองพิสูจน์กันด้วย Lab:




คำเตือน!!!!!

ในชีวิตจริงแล้ว สำหรับการใช้งานแบบ Unicast ห้ามใช้ IP address ซ้ำกันนะครับ แต่สำหรับในบทความนี้ และใน lab นี้แล้ว มันเป็นกรณีพิเศษนะครับ เพราะผมต้องการที่จะแสดงให้ท่านเห็นว่า ในกรณีที่ R2, R3, และ R5 ใช้ IP address 10.1.5.75 ซ้ำกันแล้วนั้น, เมื่อ R1 ต้องการจะ forward IP packet ที่มี destination 10.1.5.75 แล้ว, R1 จะ forward IP packet นี้ออกไปยัง next-hop ไหน?

สำหรับการใช้งานแบบ Anycast แล้ว จะสามารถใช้งาน IP address ซ้ำกันได้นะครับ แต่ขอไม่กล่าวถึงในรายละเอียด (แต่ในตัวอย่างนี้เป็นการใช้งานแบบ Unicast นะครับ)

พิสูจน์ด้วยผลของ Lab กันนะครับ ลองเอาไปทำกันดูตามแนวทางนี้นะครับ
จากภาพ Diagram จะเห็นว่า R2, R3, R5 มี IP address 10.1.5.75 บน Interface Loopback 0 เหมือนกัน แต่มีแค่ R4 ที่ไม่สามารถ configure 10.1.5.75 ได้ เพราะ Network 10.1.5.64/29 มี Broadcast คือ 10.1.5.71 แต่ 10.1.5.75 มันอยู่นอก range ดังนั้นผมจึงต้องใช้ IP address เบอร์ 10.1.5.70/29 เพื่อทำให้เกิด Network ID 10.1.5.64/29 บน R4 แล้วให้ R4 update network นี้มาให้ R1 ผ่านทาง routing protocol OSPF

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

R2 Configuration
---------------------------------
!
interface Loopback0
ip address 10.1.5.75 255.255.255.0
ip ospf network point-to-point
!
interface Ethernet0/0
ip address 10.1.1.2 255.255.255.0
ip ospf network point-to-point
!
router ospf 1
router-id 2.2.2.2
network 0.0.0.0 255.255.255.255 area 0
!



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

R3 Configuration
---------------------------------
!
interface Loopback0
ip address 10.1.5.75 255.255.255.240
ip ospf network point-to-point
!
interface Ethernet0/1
ip address 10.1.2.2 255.255.255.0
ip ospf network point-to-point
!
router ospf 1
router-id 3.3.3.3
network 0.0.0.0 255.255.255.255 area 0
!



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

R4 Configuration
---------------------------------
!
interface Loopback0
ip address 10.1.5.70 255.255.255.248
ip ospf network point-to-point
!
interface Serial1/0
ip address 10.1.3.3 255.255.255.0
ip ospf network point-to-point
!
router ospf 1
router-id 4.4.4.4
network 0.0.0.0 255.255.255.255 area 0
!



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

R5 Configuration
---------------------------------
!
interface Loopback0
ip address 10.1.5.75 255.255.255.224
ip ospf network point-to-point
!
interface Serial1/1
ip address 10.1.4.4 255.255.255.0
ip ospf network point-to-point
!
router ospf 1
router-id 5.5.5.5
network 0.0.0.0 255.255.255.255 area 0
!



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

R1 Configuration
---------------------------------
!
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip ospf network point-to-point
!
interface Ethernet0/1
ip address 10.1.2.1 255.255.255.0
ip ospf network point-to-point
!
interface Serial1/0
ip address 10.1.3.1 255.255.255.0
ip ospf network point-to-point
!
interface Serial1/1
ip address 10.1.4.1 255.255.255.0
ip ospf network point-to-point
!
router ospf 1
router-id 1.1.1.1
network 0.0.0.0 255.255.255.255 area 0
!




เรามาลอง Traceroute จาก R1 ไปยัง destination 10.1.5.75 กันว่ามันจะ forward IP packet ที่มี destination 10.1.5.75 ออกไปทาง next-hop ไหน?





จากภาพ จะเห็นได้ว่า ผลของการ Traceroute บน R1 คือ R1 forward IP packet ที่มี destination 10.1.5.75 ออกไปยัง next-hop 10.1.2.2 ซึ่งเป็นไปตามกฎของ longest match 

ท้ายสุดนี้ ฝากไว้ให้คิดกันเล่น คือ 
1. ค่า Administrative Distance หรือ AD จะถูกนำมาใช้ในการพิจารณาการ forwarding IP packet ที่มี destination 10.1.5.75  นี้หรือไม่ และเมื่อไหร่?
2. ค่า Metric จะถูกนำมาใช้ในการพิจารณาการ forwarding IP packet ที่มี destination 10.1.5.75  นี้หรือไม่ และเมื่อไหร่?

สิ่งเหล่านี้ผมขอฝากไว้ให้คิดกันเล่นๆ ก่อนนะครับ หากมีเวลา จะเอามาอธิบายเพิ่ม ถ้าไม่เพิ่มในบทความนี้ ก็อาจจะเขียนบทความใหม่ ที่ link บทความนี้อีกที แต่ตอนนี้ขอพักการเขียน ไปเคลียร์งานหลักก่อนนะครับ งานเยอะมาาาาาาก ^^

หวังเป็นอย่างยิ่งว่าบทความนี้จะทำให้ทานเข้าใจเรื่อง longest match กันมากขึ้นนะครับ

ขอบคณครับ
โก้-ชัยวัฒน์





Create Date : 15 กันยายน 2560
Last Update : 18 กันยายน 2560 10:26:20 น.
Counter : 8226 Pageviews.

1 comments
  
ขอบคุณบทความดีๆครับอาจารย์ ทำให้ผมเข้าใจเรื่อง Router Forward Packet ไปหา Destination ตามกฎ Longest Match มากขึ้นครับ
โดย: Apiwat IP: 159.192.221.94 วันที่: 5 กรกฎาคม 2562 เวลา:11:32:46 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Likecisco.BlogGang.com

kochaiwat
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 693 คน [?]

บทความทั้งหมด