คำถามทดสอบความเข้าใจเรื่อง เรื่อง OSPF Routing (พร้อมเฉลย)

คำถามคือ "หมายเลข 1-4 แต่ละหมายเลข Host A และ Host B สามารถ ping กันเจอหรือไม่ และเหตุผลที่ ping เจอหรือไม่เจอคืออะไร" (การตั้งค่าอื่นๆที่นอกเหนือจากนี้ปกติ และมีการเปิด ping เพื่อทดสอบการเชื่อมต่อ Network เรียบร้อย) 

หมายเหตุ : เรื่องนี้มีเนื้อหาเกี่ยวกับ OSPF Routing Protocol เช่น ในหัวข้อ Network Command, Process id, Passive-Interface เป็นต้น

หมายเลข 1

คำตอบ คือ ping ได้

        การใช้ command "network X.X.X.X X.X.X.X area 0" บน OSPF Routing นั้น (Routing อื่นๆก็คล้ายๆกันเช่น RIP, EIGRP) ถ้าเราพิมพ์ command Network ประกาศช่วง IP Address ออกไปแล้ว ถ้า match หรือตรงกับ IP Address บน Interface ก็ถือว่าเป็นการ enable ospf บน Interface นั้นๆ
จากโจทย์


Router R1
#router ospf 100
#network 10.10.0.0 0.0.0.3 area 0
#network 192.168.2.1 0.0.0.255 area 0
 
ที่  ROUTER 1 จาก command "network 10.10.0.0 0.0.0.3 area 0" (Wildcard จะสนใจ bit ที่เป็น "0")
หมายความว่า ถ้ามี Interface ใดๆอยู่ในช่วง IP 10.10.0.0-10.10.0.3 จะถูก enable ospf

Wildcard = 0.0.0.3 =
0. 0. 0. 00000011 Wildcard จะสนใจ bit ที่เป็น "0" bitที่เป็น 1 จะไม่สนใจ 
Subnet = 10.10.0.0 =
10. 10. 0. 00000000  

10.10.0.00000000 = 10.10.0.0
10.10.0.00000001 = 10.10.0.1 <--- Interface E0/0 ของ  ROUTER 1 ก็จะถูก enable ospf
10.10.0.00000010 = 10.10.0.2
10.10.0.00000011 = 10.10.0.3


ที่  ROUTER 1 จาก command "network 192.168.1.0 0.0.0.255 area 0" (Wildcard จะสนใจ bit ที่เป็น "0")
หมายความว่า ถ้ามี Interface ใดๆอยู่ในช่วง IP 192.168.1.0-192.168.1.255 จะถูก enable ospf

Wildcard = 0.0.0.255 =
0. 0. 0. 11111111 Wildcard จะสนใจ bit ที่เป็น "0" bitที่เป็น 1 จะไม่สนใจ 
Subnet = 192.168.1.0 =
192. 168. 1. 00000000  

192.168.1.00000000 = 192.168.1.0
192.168.1.00000001 = 192.168.1.1 <--- Interface E0/1 ของ  ROUTER 1 ก็จะถูก enable ospf
192.168.1.00000010 = 192.168.1.2
--ตัดบางส่วน------
192.168.1.11111110 = 192.168.1.254
192.168.1.11111111 = 192.168.1.255

 

Router R2
#router ospf 100
#network 10.10.0.2 0.0.0.0 area 0
#network 192.168.2.1 0.0.0.0 area 0

ที่  ROUTER 2 จาก command "network 10.10.0.2 0.0.0.0 area 0" (Wildcard เป็น "0"ทั้งหมด คือเจาะจงเป็น IP นั้นๆไปเลย)
หมายความว่า ถ้ามี Interface ใดๆมี IP Address 10.10.0.2 จะถูก enable ospf

Wildcard = 0.0.0.0 =
0. 0. 0. 00000000 Wildcard จะสนใจ bit ที่เป็น "0" bitที่เป็น 1 จะไม่สนใจ 
IP = 10.10.10.2 =
10. 10. 0. 00000010  

10.10.0.00000010 = 10.10.0.2 <--- Interface E0/0 ของ  ROUTER 1 คือ IP นี้พอดี ก็จะถูก enable ospf

ที่  ROUTER 2 จาก command "network 192.168.2.1 0.0.0.0 area 0" ก็เช่นกัน (Wildcard เป็น "0"ทั้งหมด คือเจาะจงเป็น IP นั้นๆไปเลย)
หมายความว่า ถ้ามี Interface ใดๆมี IP Address 192.168.2.1 จะถูก enable ospf

Wildcard = 0.0.0.0 =
0. 0. 0. 00000000 Wildcard จะสนใจ bit ที่เป็น "0" bitที่เป็น 1 จะไม่สนใจ 
IP = 192.168.2.1 =
192. 168. 2. 00000001  

192.168.2.00000001 = 192.168.2.1 <--- Interface E0/1 ของ  ROUTER 2 คือ IP นี้พอดี ก็จะถูก enable ospf 

 

ฉะนั้นการตั้งค่า OSPF Routing protocol ในข้อนี้ก็ถือว่าสามารถทำงานได้ปกติ

 

หมายเลข 2

คำตอบ คือ ping ไม่ได้

        ภายใน Segment เดียวกัน หรือจากภาพให้มองเป็นการเชื่อมต่อสาย LAN เส้นเดียวกันระหว่าง  ROUTER 1 Port E0/0 และ  ROUTER 2 Port E0/0 ถ้าหากมีการเปิดการใช้งานOSPF Routing protocolแล้ว ภายใน Hello Packet ที่รับส่งหากัน สิ่งเหล่านี้จะต้อง Match หรือตรงกัน คือ

  • Hello interval
  • Dead interval
  • Network type.
  • Area id <----  ROUTER 1 และ  ROUTER 2 จากโจทย์ Area ID จะไม่ Match หรือไม่ตรงกัน
  • Authentication password
  • Stub area flag

ซึ่งผลจากการตั้งค่า Area ไม่ตรงกันก็จะทำให้ไม่สามารถเป็น ospf neighbor กันได้ และมี log error เกิดขึ้นดังนี้

ROUTER_2(config-router)#
*Jul 31 15:32:05.066: %OSPF-4-ERRRCV: Received invalid packet: mismatched area ID from backbone area from 10.10.0.1, Ethernet0/0
ROUTER_2(config-router)#
*Jul 31 15:32:14.382: %OSPF-4-ERRRCV: Received invalid packet: mismatched area ID from backbone area from 10.10.0.1, Ethernet0/0

จากภาพหากมีอย่างใดอย่างหนึ่งไม่ match หรือ ไม่ตรงกัน ก็จะไม่สามารถเป็นเพื่อนบ้าน และการแลกหรือเรียนรู้ Route ก็ไม่สามารถเกิดขึ้นได้ 

 

หมายเลข 3

คำตอบ คือ ping ได้

        ข้อนี้น่าจะมีอยู่ 2 จุดที่หลายๆคนมองว่าเป็นประเด็น คือ
3.1)Process id ระหว่าง ROUTER 1 และ  ROUTER 2 ไม่ตรงกัน
3.2)command "network 0.0.0.0 255.255.255.255 area 0" บน  ROUTER 2

3.1)Process id ระหว่าง ROUTER 1 และ  ROUTER 2 ไม่ตรงกัน การแลกเปลี่ยน Hello, การแลกเปลี่ยน route หรือ subnet เข้าหากัน จะไม่ได้เอาค่า process id ส่งไปด้วย ส่งผลให้หาก Router 2 ตัวมีค่า process id ที่แตกต่างกันก็ยังสามารถทำงานได้ปกติ

ลองดูตัวอย่างเพิ่มเติมจากภาพด้านล่างนี้ ROUTER ทั้ง 3 ตัว ถูกตั้งค่า process id แตกต่งกันหมดเลย
ROUTER 1 ตั้งค่า process id เท่ากับ 1
ROUTER 2 ตั้งค่า process id เท่ากับ 2
ROUTER 3 ตั้งค่า process id เท่ากับ 3


ผลลัพธ์จากการ "show ip route ospf"พบว่า Subnet จาก Router แต่ละตัวก็ยังสามารถเรียนรู้กันได้ปกติ ไม่มีปัญหา หลายๆท่านอาจจะสังสัยว่า แล้ว process id มีไว้ทำอะไร ?

        ค่า process id จะมีผลกับภายในตัว Router ของมันเองเท่านั้น หาก ROUTER 2 ถูกตั้งค่าให้มี 2 process id ก็จะทำให้ route แต่ละ process ภายใน Router จะแยก OSPF Database ออกจากกัน ยกตัวอย่างการนำเรื่อง process id มาใช้งาน เช่น เราไม่อยากให้ ROUTER 1 และ ROUTER 3 เรียนรู้ Subnet กัน แต่ทั้งคู่ต้องการใช้งาน OSPF  จากความต้องการนี้ เราสามารถตั้งค่า OSPF โดยการแยก Process id บน ROUTER 2 เข้ามาช่วยได้ ลองดูตัวอย่างจากภาพด้านล่างประกอบนะครับ

จากรูปด้านล่างคือ ROUTER 2 มีการตั้งค่าให้มี 2 process id โดยฝั่งซ้ายที่ Interface E0/1 จะใช้ process 10 ฝั่งขวาที่ Interface E0/0 จะถูก enable เป็น process 20 ให้ลองดูผลลัพธ์จากการ "show ip route ospf" ใน Router แต่ละตัวดูครับ

จากผลลัพธ์จากการ "show ip route ospf "จะเห็นว่า Routing จะถูกแยกออกเป็น 2 ส่วน ซึ่งจะถูกแยกด้วย process id ที่ ROUTER 2 ที่ฝั่ง ROUTER 1 ก็จะไม่เห็น Subnet ฝั่ง ROUTER3 และเช่นเดียวกันฝั่ง ROUTER 3 ก็ไม่เห็น Subnet ฝั่ง ROUTER 1


3.2)command "network 0.0.0.0 255.255.255.255 area 0" บน  ROUTER 2
ที่  ROUTER 2 จาก command "network 0.0.0.0 255.255.255.255 area 0" (Wildcard เป็น "1"ทั้งหมด คือไม่เจาะจง IP ใดๆเลย)
หมายความว่า ถ้ามี Interface ใดๆมี IP Address อยู่ในช่วง 0.0.0.0 - 255.255.255.255 จะถูก enable ospf แน่นอนว่าเป็นการ enable ospf ทุกๆ Interface บน Router เพราะ IPv4 ก็จะอยู่ในช่วง 0.0.0.0 - 255.255.255.255 อยู่แล้ว จึงทำให้ OSPF สามารถทำงานได้ปกติ

Wildcard = 255.255.255.255 =
11111111. 11111111. 11111111. 11111111 Wildcard จะสนใจ bit ที่เป็น "0" bitที่เป็น 1 จะไม่สนใจ 
Subnet = 0.0.0.0 = 00000000. 00000000. 00000000. 00000000  

00000000.00000000.00000000.00000000 = 0.0.0.0
00000000.00000000.00000000.00000001 = 0.0.0.1

--ตัดบางส่วน------

00001010.00001010.00000000.00000010 = 10.10.0.2<--- Interface E0/0 ของ  ROUTER 2

--ตัดบางส่วน------

11000000.10101000.00000010.00000001 = 192.168.2.1<--- Interface E0/1 ของ  ROUTER 2

--ตัดบางส่วน------

11111111.11111111.11111111.11111110 = 255.255.255.254
11111111.11111111.11111111.11111111 = 255.255.255.255

หมายเหตุ: การประกาศช่วง IP กว้างๆไม่ค่อยแนะนำ เนื่องจากบาง Interface เราไม่ต้องการให้ enable ospf วิธีในข้อ 3.2 นี้จึงเหมาะที่ใช้ในการทดสอบ  LAB ซึ่งจะช่วยประหยัดเวลาในการตั้งค่าในส่วนของ OSPF 

 

หมายเลข 4

คำตอบ คือ ping ได้

        ประเด็นคือ มีคำสั่ง "passive-interface Ethernet0/1" อยู่ที่ Router R1 และ Router R2
คำสั่ง "passive-interface" ใน OSPF เป็นคำสั่งที่ใช้เมื่อเราไม่ต้องการรับส่ง OSPF Packet เช่น Hello, Routing updates ออกไปทาง Interface นั้นๆ เช่นใน Network ที่เป็น Stub network(Network ที่อยู่ขอบสุดของ Routing Protocol นั้นๆ) และคำสั่งนี้จะไม่เกี่ยวกับการประกาศหรือไม่ประกาศ Subnet ไปให้ Router อื่นๆรู้ ยกตัวอย่างเช่นหากเราใส่คำสั่ง  "passive-interface E0/1" แต่ยังมี command "network 192.168.1.0 0.0.0.255 area 0" ซึ่งตรงกับ IPบน Interface E0/1อยู่ ตัว subnet บน Interface Ethernet 0/1 ก็ยังคงถูกประกาศออกไปตามปกติ

จากภาพเราไม่จำเป็นต้องส่งหรือรับ Hello กับ Notebook อยู่แล้ว ดังนั้นประเด็นเรื่อง "passive-interface" จากการตั้งค่าในหัวข้อนี้จึงไม่มีปัญหาอะไร สามารถแลกเปลี่ยน Route หรือเรียนรู้ Subnet ของกันและกันได้ปกติ

 

 

กลับสู่ด้านบน

แล้วอย่าลืมไปกด  Like page Ninehua IT Solutions เพื่อจะได้ติดตามข่าวสารและแชร์คู่มือต่างๆ ของ นายหัว.คอม นะครับ