OSPF Routing Protocol

Open Shortest Path First (OSPF)

Open Shortest Path First เป็นโปรโตคอลแบบ Link State (ไม่ส่ง Routing Table ทั้งหมดของตนไปให้กับเพื่อนบ้าน) ที่ได้รับความนิยมและเป็นโปรโตคอลที่สำคัญมากในปัจจุบัน โปรโตคอลนี้เป็นโปรโตคอลแบบ Open Standard ถูกนำไปใช้ในหลายๆผู้ผลิตอุปกรณ์เน็ตเวิร์ค รวมถึงตัวของ Cisco เอง โปรโตคอลนี้รันภายใต้ อัลกอริทึมการหาเส้นทางแบบ Dijkstra คุณสมบัติเด่นๆของ OSPF คือ
1)       อนุญาติให้สร้าง Area และ Autonomous System ด้วยตัวเอง
2)       ช่วยลดการทำ Routing Update
3)       รองรับ VLSM/CIDR เป็นการช่วยลด Routing Entry
4)       ไม่มีการกำหนดจำนวนสูงสุดของ Hop Count เหมือนอย่างของ RIP
5)       เป็นโปรโตคอลแบบ Open ไม่มี Vendor รายไหนเป็นเจ้าของ
และอีกข้อดีคือ การ Design เน็ตเวิร์คของเราสามารถทำเป็นแบบลำดับชั้น (Hierarchical) นั่นหมายถึงว่า เราสามารถแบ่งเน็ตเวิร์คขนาดใหญ่ๆ ให้กลายเป็นเน็ตเวิร์คย่อยๆได้ (Area) ข้อดีของการออกแบบเป็นลำดับชั้น
1)       ลด Routing Overhead
2)       ลดเวลาการตอบสนองต่อการเปลี่ยนแปลง
3)       ช่วยกำหนดขอบเขตในการเปลี่ยนแปลงของแต่ละ Network
ในการออกแบบ เราจะใช้ Area 0 (ซึ่งต้องมี หากเราออกแบบให้มีหลายๆ Area แต่หากเราใช้แค่ Area เดียวในระบบ เราไม่จำเป็นจะต้องใช้ Area 0) Router ที่เชื่อระหว่าง Backbone (Area0) กับในแต่ละ Area ย่อยๆ จะถูกเรียกว่า Area Border Router หรือ ABR

นอกจาก OSPF สามารถใช้งานภายใต้ Autonomous System เดียวกันได้แล้ว ยังสามารถเชื่อมต่อไปยัง Autonomous ตัวอื่นๆได้ Router ที่ทำหน้าที่นี้ถูกเรียกว่า Autonomous System Boundary Router

คำศัพท์ที่ควรรู้เกี่ยวกับ OSPF
1)       Link คือ Network หรือ Router Interface ที่กำหนดให้แก่แต่ละ Network เมื่อ Interface ได้กำหนดให้รัน OSPF มันจะถูกเรียกว่า “Link” และจะถูกให้สามารถรับส่งข้อมูลได้
2)       Router ID คือ IP Address ที่กำหนดให้แก่ Router อุปกรณ์ Cisco เลือก Router ID จาก IP Address ที่สูงที่สุดโดยหาจากขา Interface (ที่ Active) ของมันเอง แต่ขา Interface ที่เป็นแบบ Physical สามารถที่จะ Down ได้ เราจึงควรใช้ Interface แบบ Logical แทน ด้วยการใช้ Loopback Interface ซึ่งจะ Down ก็ต่อเมื่อ Router ทั้งลูก Down ไปเท่านั้น
3)       Neighbor คือ การที่ Router 2 ตัวหรือมากกว่าเชื่อมต่อกัน การที่จะเป็นเพื่อนบ้านกันได้ ต้องประกอบด้วย
-          Area ID
-          Stub area flag
-          Authentication password (ถ้าได้รับการ Enable)
-          Hello and Dead Intervals (ต้องเท่ากันทั้ง Area)
-           
4)       Adjacency คือ ความสัมพันธ์ ระหว่าง Router ที่รัน OSPF และต้องอนุญาตให้แลกเปลี่ยนข้อมูลระหว่างกัน (ต่างกับ EIGRP ตรงที่ต้องแชร์ข้อมูลทุกอย่างให้กับเพื่อนบ้าน) OSPF จะเลือกการแชร์ข้อมูล และแลกเปลี่ยนข้อมูลกันกับเพื่อนบ้านที่มีความสัมพันธ์กันเท่านั้น ไม่ใช่ Router ทั้งหมดจะเป็น Adjacency”  ทั้งหมดนี้ขึ้นอยู่กับประเภทของ Network และ Configuration ของเราเตอร์ เราเตอร์จะสร้างความสัมพันธ์กับฝั่งตรงข้ามของการเชื่อมต่อ
5)       Designated Router (DR) คือ เราเตอร์ที่ถูกเลือกจาก Broadcast Network เดียวกัน ในการทำหน้าที่เป็นศูนย์กลางในการสร้างความสัมพันธ์ และทำหน้าที่ในการรับข้อมูลการทำ Routing และส่งข้อมูลให้กับสมาชิกใน Broadcast Network เดียวกัน วิธีการเลือก DR คือเลือกจากค่า Priority สูงสุดใน Router (Router ID) Router ทั้งหมดใน Network จะสร้างความสัมพันธ์กับ DR และ BDR เพื่อให้แน่ใจว่าได้ Synchronize ข้อมูลระหว่างกัน
6)       Backup designed router เป็นตัว Standby ของ DR
7)       Hello protocol เป็นโปรโตคอลเพื่อการค้นหาเพื่อนบ้านและการตรวจสอบสถานะของเพื่อนบ้าน เมื่อใช้ร่วมกับ LSA มันจะสามารถสร้าง Topological database ได้ การทำงานของ Hello Protocol ใช้ Multicast Address 224.0.0.5
8)       Neighborship database เก็บรายการข้อมูลของ OSPF Router เพื่อนบ้านไว้ วิธีการเก็บก็คือรับมาจาก LSA Packet ที่รับได้จากใน Area เดียวกัน และใช้ Dijkstra algorithm ในการค้นหาเส้นทางที่สั้นที่สุด
9)       Link State Advertisement (LSA) คือ OSPF data packet ที่ใช้ในการตรวจสอบสถานะของ Router มีหลายประเภท และ OSPF จะรับส่ง LSA เฉพาะ Router ที่ทำ adjacencies กันเท่านั้น
10)   OSPF Area เป็นกลุ่มของ Router ที่ต่อเนื่องกัน หรือเรียกง่ายๆ ก็คือกลุ่มเดียวกัน มีหมายเลข Area เดียวกัน แต่ใน Router ตัวหนึ่งสามารถเข้าได้หลาย Area ดังนั้น area id จึงขึ้นอยู่กับขา Interface ของ Router เป็นหลัก Router ใน Area เดียวกันจะมี Topology Table เดียวกัน
11)   Broadcast (multi-access) Ethernet เปิดให้อุปกรณ์หลายๆตัวใช้ Network เดียวกัน การทำ Broadcast สามารถส่งข้อมูลให้กับทุกโหนดในเน็ตเวิร์ค
12)   Nonbroadcast multi-access ตัวอย่างเช่น Frame relay, X.25
13)   Point-to-Point เป็นการเชื่อมต่อระหว่างอุปกรณ์สองตัว
14)   Point-to-multipoint เป็นการเชื่อมต่อระหว่างอุปกรณ์หนึ่งตัวกับหลายตัว

การทำงานของ OSPF ประกอบด้วย
1 เพื่อนบ้านและการเริ่มความสัมพันธ์
2 การทำ LSA
3 การคำนวณ SPF (Shortest Path First)

            เมื่อ OSPF เริ่มต้นการทำงาน Router แต่ละตัว จะเริ่มทำการจองหน่วยความจำใน Router สำหรับการทำงาน และสำหรับการเก็บตารางทั้ง Neighbor และ Topology  
            Hello Protocol ถูกนำมาใช้ในการค้นหาเราเตอร์เพื่อนบ้าน การเริ่มต้นสร้างความสัมพันธ์ระหว่างกัน และการรักษาความสัมพันธ์ระหว่างเราเตอร์ที่รัน OSPF แต่ละตัว Hello Protocol จะใช้ Hello Packet (ซึ่งมีรายละเอียดย่อยๆอีก) ในการสำรวจเราเตอร์เพื่อนบ้าน โดยการส่งเป็นระยะเวลา (ส่งแบบ Multicast)
            LSA Flooding เป็นวิธีการที่จะทำให้ Router แต่ละตัวแชร์ Routing Information กัน LSA จะประกอบไปด้วยข้อมูลของ link-state ที่แชร์กันทุกๆ Router ภายใน Area เดียวกัน
            Network Topology จะสร้างจาก LSA Update และกระจายข้อมูลเหล่านี้ให้กับRouter ตัวอื่นๆ เพื่อให้เกิดการคำนวณเส้นทาง ในการ flood นี้จะใช้ Multicast address 224.0.0.5
            ภายในแต่ละ Area แต่ละเราเตอร์ภายในนั้นจะทำการ คำนวณเส้นทางที่สั้นที่สุดในทุกๆ Network โดยการใช้ Algorithm ที่เรียกว่า SPF

การคำนวณค่า Metric ของ OSPF


เรามี Metric ใน OSPF ที่เรียกว่า Cost เป็นผลรวมของทุกๆขาออก (Outgoing Interface) ของ Router มีสูตรการคำนวณคือ 10^8/bandwidth