Open Shortest Path First (OSPF)
  • Introducing the OSPF Protocol

    Link-State Protocols

    image

    Open Shortest Path First (OSPF) ถือเป็นเร้าติ้งโปรโตคอล (Routing Protocol) ตัวหนึ่งที่นิยมกันอย่างแพร่หลายมากที่สุดในระบบเน็ตเวิร์ก เนื่องจากมีจุดเด่นในหลายด้าน เช่น การที่ตัวมันเป็น Routing Protocol แบบ Link State, การที่มีอัลกอริทึมในการค้นหาเส้นทางด้วยตัวเอง ซึ่งเปรียบเสมือนว่า ตัวของเราเตอร์ที่รัน OSPF ทุกตัวเป็นรูท (Root) หรือจุดเริ่มต้นของระบบไปยังกิ่งย่อยๆ หรือโหนด (Node) ต่างๆ ซึ่งเป็นเทคนิคในการลดเส้นทางที่วนลูป (Routing Loop) ของการ Routing ได้เป็นอย่างดี รวมถึงความสามารถในการ Convergence หรือการรับรู้ถึงความเปลี่ยนแปลงใน Topology หรือเส้นทางของ Network ได้อย่างรวดเร็วจนกระทั่งพูดได้เลยว่า แทบจะทันทีที่มีการเปลี่ยนแปลง Topology ขึ้นในระบบ และความสามารถในการรองรับการขยายของระบบ (Scalable) ได้อย่างดีเยี่ยม ซึ่งข้อดีดังกล่าวนั้น ทำให้บรรดา Network Architect ต่างๆ นั้นนิยมเลือก OSPF มาเป็น Routing Protocol หลัก แทนที่ Routing Protocol แบบ Distance Vector เช่น RIP หรือ IGRP ซึ่งก่อนที่จะลงถึงรายละเอียดของ OSPF นั้น ก็จะมีการเกริ่นถึง คำที่เกี่ยวข้องภายใน Routing Protocol ของ OSPF เสียก่อน

    Link-State Data Structures
    • [li]Neighbor Table: ไว้เก็บรายชื่อเราเตอร์ที่ฟอร์มความสัมพันธ์ และสถานะของ DR/BDR และสถานะของลิงค์, Hello และ Dead Time Interval
      Designated Router (DR) - เป็นเราเตอร์ที่เป็นจุดศูนย์กลางในการแลกเปลี่ยนข้อมูลหรือสถานะในระหว่างเราเตอร์ด้วยกัน เนื่องจากการมีเราเตอร์ที่ทำหน้าที่เป็น Centralize ในระบบ จะสามารถช่วยลดปริมาณแพคเกต LSA ที่จะส่งกันในเราเตอร์ด้วยกันได้ ซึ่ง DR นี้ จะถูกใช้ในเน็ตเวิร์กที่เป็น Broadcast (Multi-Access) และ Non-Broadcast Multi-Access (เช่น อีเธอร์เน็ต หรือเฟรมรีเลย์ เท่านั้น)
      Backup Designated Router (BDR) - จะถือว่าเป็นเราเตอร์ตัวแทน (Hot Stanby) ของ Designated Router (DR) โดยที่ BDR จะคอยรับ Routing Update จากเราเตอร์เพื่อนบ้าน แต่ตัวมันเองจะไม่ทำการ Flood LSA ออกไปเหมือนอย่างที่ DR ทำ จนกระทั่งหากว่า DR ในระบบล่มลงไป BDR จึงจะเข้ามาเป็น DR แทน
      [list][li]Also knows as the adjacency database[/li]
      [li]Contains list of recognized neighbors[/li]
    [/li]
    [li]Topology Table: ไว้เก็บเส้นทางที่เป็นไปได้ทั้งหมดในการที่เราเตอร์จะส่งแพ็กเก็ตไปยังปลายทาง ซึ่งใน OSPF สามารถที่จะทำการกระจายโหลด (Load Balance) ไปยังเส้นทางที่มี Cost เท่ากันได้ 6 เส้นทาง (4 เส้นทางโดยค่า Default)
    • [li]Typically referred to as LSDB[/li]
      [li]Contains all routers and their attached links in the area or network[/li]
      [li]Identical LSDB for all routers within an area[/li]
    [/li]
    [li]Routing Table: ไว้เก็บเส้นทางที่สั้นที่สุดที่ได้รับการคำนวณมาจาก SPF Algorithms เรียบร้อยแล้ว
    • [li]Commonly named a forwarding database[/li]
      [li]Contains list of best paths to destinations[/li]
    [/li][/list]

    ความแตกต่างระหว่าง Link State Routing และ Distance Vector Routing
    [table][tr][td]Link State Routing[/td][td]Distance Vector Routing[/td][/tr]
    [tr][td]รู้เส้นทางทั้งหมดใน Network จากแผนภาพ topology ของตนใน Topology Table
    Each router has a full picture of the topology.
    Consequently, link-state routers tend to make more accurate decisions.[/td][td]รู้เส้นทางของ Network โดยผ่านทางเราเตอร์เพื่อนบ้าน[/td][/tr]
    [tr][td]คำนวณเส้นทางที่สั้นที่สุดผ่านทาง SPF Algorithms ของตนเอง[/td][td]ส่งแพ็คเก็ตผ่านเส้นทางที่สั้นที่สุดที่เราเตอร์เพื่อนบ้านประกาศออกมา[/td][/tr]
    [tr][td]อัพเดตเฉพาะเมื่อมีการเปลี่ยนแปลง Topology เท่านั้น (Triggered Update) และสปีดในการ Converged ที่เร็วมาก[/td][td]อัพเดตเราติ้งเทเบิลเป็นระยะๆ และมีการเข้าสู่สภาวะคงที่ (Converged) ที่ช้า[/td][/tr]
    [tr][td]ส่งสถานะของ Link ตนเอง ออกไปให้เราเตอร์เพื่อนบ้าน[/td][td]ส่งตารางเราติ้งเทเบิลทั้งตารางออกไปให้เราท์เตอร์เพื่อนบ้าน[/td][/tr]
    [tr][td]Link-state routers recognize more information about the network than their distance vector counterparts.
    [/td][/tr][/table]

    ข้อดีของ OSPF
    • [li]สนับสนุนการแบ่งเน็ตเวิร์กเป็นลำดับขั้น (Hierarchical Network)[/li]
      [li]ใช้อัลกอริทึมของ Diijkstra (Link State) ในการค้นหาเส้นทาง และป้องกันเราติ้งลูป[/li]
      [li]สนับสนุน Classless Routing และ CIDR (Classless Interdomain Routing)[/li]
      [li]สามารถทำ Route Summarization เพื่อลดขนาดของเราติ้งเทเบิลได้[/li]
      [li]เราติ้งอัพเดตสามารถที่จะควบคุมการส่งได้ ไม่เหมือน Routing Protocol แบบ Distance Vector ที่ต้องส่ง Routing Table ทั้งตัว ออกไป ตามช่วงเวลาที่กำหนด ทำให้สูญเสีย แบนด์วิดธ์ไปโดยไม่จำเป็น[/li]
      [li]ในการส่ง Routing Update จะทำผ่าน มัลติคาสท์แอดเดรส (Multicast Address) ซึ่งมีข้อดี คือลดผลกระทบต่อ Host หรือ Client อื่นๆ จากการบรอดคาสท์ (Broadcast)[/li]
      [li]สนับสนุนการทำ Authentication ทั้งแบบ Clear Text และ MD5[/li]


    OSPF Overview
    • [li]Instances หรือโปรโซสของ OSPF สามารถเริ่มได้ตั้งแต่ 1 - 65,535 แต่ไม่สมควรกระทำการรัน OSPF มากกว่า 1 โปรเซสพร้อมๆ กัน หากไม่จำเป็น[/li]
      [li]AREA ของ OSPF สามารถมีได้ถึง 2^32 หรือประมาณ 4,200,000 AREA[/li]
      [li]ในเราเตอร์ที่รัน OSPF จะต้องมี AREA 0 อยู่เสมอ ถือว่าเป็น Backbone AREA[/li]
      [li]หากกว่าเน็ตเวิร์กนั้นๆ มีหลาย AREA ทุกๆ AREA จะต้องคอนเน็คเข้าหา AREA 0 เสมอ อาจจะเป็นการต่ออินเทอร์เฟซเข้าหา AREA 0 หรือทำ Virtual Links วิ่งเข้าหา AREA 0 ก็ได้[/li]
      [li]Default Administrative Distance ของ OSPF คือ 110[/li]


    Link-State Data Structure: Network Hierarchy
    • [li]Link-state routing requires a hierachical network structure that is enforced by OSPF[/li]
      [li]This two-level hierarchy consists of the following:
      [list][li]Transit area (backbone or area 0)[/li]
      [li]Regular areas (nonbackbone areas)[/li]
    [/li][/list]

    OSPF Areas - ในความหมายของ Area ใน OSPF จะคล้ายๆ กับเป็น Autonomous System (AS) หนึ่งๆ ซึ่งเหมือนกับเป็นกลุ่มของเราเตอร์ที่รัน OSPF ด้วยกัน และมีขอบเขตในการแลกเปลี่ยนเราติ้งเทเบิลกันภายในกลุ่มของตัวเองเท่านั้นโดย Default
    OSPF Areas characteristics:
    • [li]Minimizes routing table entries - ลดปริมาณหน่วยความจำที่ใช้ในการจัดเก็บเร้าติ้งเทเบิล เพราะตารางเร้าติ้งเทเบิลที่เกิดขึ้นบนเราเตอร์แต่ละตัวสามารถได้รับการปรับแต่งให้มีขนาดเล็กลงได้ ด้วยการ Configure route summarization บนเราเตอร์ตัวริมที่เชื่อมต่อระหว่าง area หรือเรียกว่า Area Border Router[/li]
      [li]Localizes impact of a topology change within an area - จำกัดความถี่ในการคำนวณอัลกอริทึม SPF ใหม่ เมื่อมีการเปลี่ยนแปลงโทโพโลยีของเราเตอร์แต่ละตัว เพราะเราเตอร์จะคำนวณอัลกอริทึม SPF ใหม่ ก็ต่อเมื่อได้รับ LSA Update จากเราเตอร์ภายใน area เดียวกันเท่านั้น การคำนวณ SPF ใหม่จะมีผลต่อภาระโหลดของ CPU ของเราเตอร์
      Link State Advertisement (LSA) - เป็นแพคเกตข้อมูลที่ OSPF Process ใช้ในการแลกเปลี่ยนสถานะของอินเทอร์เฟซและลิงค์ในเราเตอร์ที่รัน OSPF ด้วยกัน[/li]
      [li]Detailed LSA flooding stops at the area boundary - จำกัดปริมาณเน็ตเวิร์กที่เกิดขึ้นอันเนื่องมาจากการส่ง LSA Update ให้อยู่ภายในขอบเขตของ area เดียวกัน (LSA Update จะไม่ถูกส่งข้ามไป area อื่น)[/li]
      [li]Requires a hierarchical network design[/li]

    B-)
  • 2 Comments sorted by
  • [b]OSPF Operation[/b]
    กระบวนการของ OSPF จะเกิดขึ้นตามลำดับต่อไปนี้
    [list][li][b]OSPF Adjacencies[/b] - การฟอร์มความสัมพันธ์กันระหว่างเราเตอร์เพื่อนบ้าน ([b]Neighbor[/b] - ในที่นี้จะหมายถึง เราเตอร์ที่รัน Process ของ OSPF ซึ่งทำการเชื่อมต่ออยู่กับเราเตอร์ตัวอื่นๆ ที่รัน OSPF อยู่ด้วยเช่นกัน หรือที่เรียกว่า Adjacent Router (เราเตอร์ที่เชื่อมต่อกัน) ซึ่งเราเตอร์เพื่อนบ้านกันนี้ จะคอยค้นหากันและกันผ่าน Hello Packet ซึ่งข้อมูลที่เกี่ยวข้องในการเราติ้งจะไม่ถูกส่งผ่านกันจนกว่าจะมีการฟอร์มความสัมพันธ์ระหว่างกันและกัน (Adjacency Forms))
    [img]http://dc357.4shared.com/img/RQymvip7/s7/0.7880297819889919/02_online.gif[/img]
    [list][li]Routers discover neighbors by exchanging hello packets. - ค้นหาเราเตอร์ที่รัน OSPF และฟอร์มความสัมพันธ์ด้วย Hello Packet[/li]
    [li]Routers declare neighbors to be up after checking certain parameters or options in the hello packet.[/li]
    [/list][/li]
    [li]เราเตอร์ต่างเก็บชื่อและสถานะของ Link ไว้ที่ Neighbor Table[/li]
    [li]เลือก DR/BDR (หากเป็น Point-to-Point, Point-to-Multipoint จุดนี้จะถูกข้ามไป)[/li]
    [li]ทำการ Flood LSA เพื่อแลกเปลี่ยนสถานะของ [b]Link[/b] [color=blue](การเรียกถึงเน็ตเวิร์กที่รัน OSPF อยู่ หรืออาจหมายถึง Interface ที่ทำการรัน OSPF อยู่ด้วยก็ได้)[/color] และ [b]Interface[/b] [color=blue](พอร์ทที่เชื่อมต่ออยู่กับเราเตอร์ ซึ่งอาจจะเป็น Physical Port (เช่น อีเทอร์เน็ต) หรืออาจจะเป็น Logical Port (เช่น Sub-Interface ในการเซต Frame-Relay) เมื่ออินเทอร์เฟซนั้นๆ ถูกเซตให้อยู่ใน Process ของ OSPF แล้ว และอินเทอร์เฟซอยู่ในสถานะที่ Up ตัว Process ของ OSPF จะทำการสร้าง Link State Database โดยผ่านทาง Link นี้)[/color] โดยทำการ Copy LSA และทำการเพิ่มสถานะของตน จากนั้น [b]Flood ออกไปยัง DR[/b] ที่ Multicast Address [b]224.0.0.6[/b] และให้ [b]DR เป็นผู้ Flood[/b] LSA ต่อไปยังเราเตอร์ทุกๆ ตัวที่ Multicast Address [b]224.0.0.5[/b][/li]
    [li]Copy LSA ลงไปใน Topology Table ของตน[/li]
    [li]ทำการคำนวณ Shortest Path First ด้วย Diijkstra Algorithms[/li]
    [li]นำเส้นทางที่สั้นที่สุดมาใส่ลงใน Routing Table[/li]
    [li]หากมีการเปลี่ยนแปลง Topology ในระบบ จะทำการ Flood LSA ออกไปทันที (Triggered Update)[/li][/list]

    [b]Forming OSPF Adjacencies[/b]
    [list][li]Point-to-point WAN links:
    [list][li]Both neighbors become fully adjacent.[/li][/list][/li]
    [li]LAN links:
    [list][li]Neighbors form a full adjacency with the DR and BDR.[/li]
    [li]Routers maintain two-way state with the other routers (DROTHERs).[/li][/list][/li]
    [li]Routing updates and topology information are passed only between adjacent routers.[/li]
    [li]Once an adjacency is formed, LSDB are synchronized by exchanging LSAs.[/li]
    [li]LSAs are flooded reliably throughout the area (or network).[/li][/list]

    [b]OSPF Calculation[/b]
    ใน OSPF จะใช้อัลกอริทึมของ Diijkstra (Link State) ในการคำนวณหาเส้นทางที่สั้นที่สุด โดยพิจารณาจากเส้นทางที่สั้นที่จุดจากจุดหนึ่งไปยังอีกจุดหนึ่ง และเมื่อไปถึงปลายทางแล้ว ก็จะนำ Cumulative Cost หรือค่าของลิงค์ หรือแบนด์วิดธ์โดยรวมมาเปรียบเทียบกัน ซึ่งหากว่า เส้นทางใดที่มองจากต้นทางไปยังปลายทางแล้ว มีค่า Cost ที่ดีที่สุด จะถือว่าเส้นทางนั้นเป็นเส้นทางที่ Shortest Path ซึ่งใน Cisco Routers นั้น สูตรในการคำนวณเส้นทางแต่ละเส้นทางของ OSPF จะนำมาจากสูตร

    [b]Cost = (10^8/Bandwidth)[/b]

    ซึ่งการค้นหาเส้นทางที่สั้นที่สุด ก็จะนำเอา Cost จากขาออกของอินเทอร์เฟซจุดหนึ่งไปถึงอีกอินเทอร์เฟซจุดหนึ่งมาบวกต่อๆ กัน จนกระทั่งถึงอินเทอร์เฟซของเราเตอร์ปลายทาง และนำมาเปรียบเทียบกันกับเส้นทางอื่นๆ เราเรียกผลรวมในลักษณะนี้ว่า "Cumulative Cost"
    Routers find the best paths to destinations by applying Dijkstra's SPF algorithm to the link-state database as follows:
    [list][li]Every router in an area has the identical link-state database.[/li]
    [li]Each router in the area places itself into the root of the tree that is built.[/li]
    [li]The best path is calculated with respect to the lowest total cost of links to a specific destination.[/li]
    [li]Best routes are put into the forwarding database (routing table).[/li][/list]

    [b]SPF Calculation[/b]
    [img]http://dc341.4shared.com/img/gw7Nh-Lx/s7/03_online.gif[/img]
    Assume all links are Ethernet, with an OSPF cost of 10.

    [b]Link-State Data Structures: LSA Operation[/b]
    [img]http://dc368.4shared.com/img/wTvbFsSD/s7/0.9448748080968982/04_online.gif[/img]

    [b]สรุปค่า Cost บน Interface ที่มีผลในการคำนวณ Cumulative Cost[/b]
    [table][tr][td][b]อินเทอร์เฟซและแบนด์วิดธ์[/b][/td][td][b]ค่า Cost ของ OSPF[/b][/td][/tr]
    [tr][td]Ethernet 10 Mbps[/td][td]10[/td][/tr]
    [tr][td]FastEthernet 100 Mbps[/td][td]1[/td][/tr]
    [tr][td]Serial T1 (1.544 Mbps)[/td][td]64[/td][/tr]
    [tr][td]Serial 128 kbps[/td][td]781[/td][/tr]
    [tr][td]Serial 64 kbps[/td][td]1562[/td][/tr][/table]

    [b]OSPF Packet Types[/b]
    1. Hello
    2. Database Description
    3. Link-State Request
    4. Link-State Update
    5. Link-State Acknowledgment

    [b]OSPF Packet Header Format[/b]
    [img]http://farm1.static.flickr.com/29/94581478_1f3eaa9a26.jpg[/img]

    [b]Neighborship: The Hello Packet[/b] ภายใน Hello Packet ของ OSPF ถูกบรรจุด้วยข้อมูลดังต่อไปนี้
    [list][li]Router ID - หมายถึง IP Address ที่ได้ทำการ Assign เพื่อเป็นการ Identify ให้กับเราเตอร์ในการเลือก DR, BDR โดยที่ปกติแล้ว เราเตอร์ใน OSPF จะเลือก DR จาก Router ID ที่ IP Address ที่สูงที่สุดที่เซตใน Loopback Interface แต่ถ้าหากว่า Loopback Interface ไม่ถูกเซตไว้ ก็จะทำการเลือก IP Address ที่สูงสุดใน Physical Interface แทน[/li]
    [li]Hello and dead intervals*[/li]
    [li]Neighbors[/li]
    [li]Area ID*[/li]
    [li]Router priority[/li]
    [li]DR IP address[/li]
    [li]BDR IP address[/li]
    [li]Authentication password*[/li]
    [li]Stub area flag*[/li][/list]
    ในการฟอร์มความสัมพันธ์กันนั้น ค่าที่มี * จะต้องเท่ากัน มิเช่นนั้นจะฟอร์มความสัมพันธ์กันไม่ได้

    [b]Establishing Bidirectional Communication[/b]

    [b]Down State[/b]
    [quote][img]http://cisco.iphelp.ru/faq/5/images/1587050196/graphics/08fig29.gif[/img]
    R1: E0 172.27.6.1/24 <-> :R2 E1 172.27.6.2/24
    ไม่มีเราเตอร์ตัวไหนที่รับส่ง Hello Packet กัน[/quote]

    [b]Init State[/b]
    [quote][img]http://cisco.iphelp.ru/faq/5/images/1587050196/graphics/08fig31.gif[/img]
    R1: Hello -> I am router ID 172.27.6.1, and I see no one. -> to 224.0.0.5 :R2
    Hello Packet ถูกส่งจากเราเตอร์ไปยังเราเตอร์เพื่อนบ้าน แต่เป็นการส่งกันทางเดียว เราเตอร์อีกฝั่งจะยังไม่เห็นเราเตอร์เพื่อนบ้านอื่นๆ[/quote]

    [quote=Two-Way State]R2 Neighbor List 172.27.6.1/24, Int E1
    [img]http://cisco.iphelp.ru/faq/5/images/1587050196/graphics/08fig32.gif[/img]
    R1: Unicast to R1 <- I am router ID 172.27.6.2, and I see 172.27.6.1. <- Hello :R2
    R1 Neighbors List 172.27.6.2/24, Int E0
    Hello Packet ถูกรับส่งกันทั้งสองฝั่งซึ่งรวมถึง Router ID ด้วย และหากข้อมูลที่จำเป็นใน Hello Packet ตรงกัน ก็สามารถที่จะฟอร์มความสัมพันธ์กันได้[/quote]

    [b]Discovering the Network Routes[/b]

    [quote=Exstart State][img]http://cisco.iphelp.ru/faq/5/images/1587050196/graphics/08fig33.gif[/img]
    R1: DBD -> I will start exchange because I have router ID 172.27.6.1 :R2
    R1: No, I will start exchange because I have a higher router ID. <- DBD :R2
    ทำการเลือก DR/BDR[/quote]

    [quote=Exchange State][img]http://cisco.iphelp.ru/faq/5/images/1587050196/graphics/08fig34.gif[/img]
    R1: Here is a summary of my LSDB <- DBD :R2
    R1: DBD -> Here is a summary of my LSDB
    เราเตอร์ทำการ Flood LSA ออกไปและแลกเปลี่ยนกัน[/quote]
  • Adding the Link-State Entries:

    • Loading State
      R1: LSAck <- Thanks for the information! -> LSAck :R2
      มีการแลก LSA ที่อัพเดตแล้วจาก DR/BDR ไปยังเราเตอร์ตัวอื่นๆ ที่ผ่านขั้นตอน ExStart มาแล้ว

    • Full State
      R1: LSR -> I need the complete entry for network 172.16.6.0/24 :R2
      R1: Here is the entry for network 172.16.6.0/24 <- LSU :R2
      R1: LSAck -> Thanks for the information :R2
      LSA ทั้งหมดได้รับการ Update ตรงกันทั้งหมดแล้วใน Router ทุกๆ ตัว

    OSPF Process Flow:

    image

    LSA Flooding:
    ในกระบวนการแลกเปลี่ยน LSA หรือ Link State Advertisement ในเราเตอร์นั้น LSA Packet จะถูกแชร์กันในระหว่างกลุ่มเราเตอร์ที่รัน OSPF ด้วยกันผ่านทาง Multicast Address หมายเลข 224.0.0.5 ซึ่งใน LSA Packet นี้ จะมีอยู่ด้วยกันหลาย Type

    Configuring Basic OSPF:

    • Router(config)#
      router ospf <process-id> [vrf <vpn-name>
      Enables one or more OSPF routing processes

    • Router(config-router)#
      network <ip-address wildcard-mask> area <area-id>
      Defines the interfaces that OSPF will run on
    Router([b]config-if[/b])#
    [quote]ip ospf [b]process-id[/b] area [b]area-id[/b] [secondaries none][/quote]
    Optional method to enable OSPF explicitly on an interface

    [b]OSPF process id บน Cisco router[/b]
    [code]http://www.bloggang.com/viewblog.php?id=likecisco&date=11-06-2011&group=3&gblog=1[/code]

    [b]ประเภทของ OSPF Router[/b]
    [img]http://www.theitstuff.com/files/2009/03/ospf-300x264.gif[/img]
    [list][li][b]Backbone
    Router[/b] - เป็นเราเตอร์ที่ทำงานอยู่ใน Area 0 หรือเรียกอีกอย่างว่า
    Backbone Area ซึ่งในตัวอย่างนี้คือเราเตอร์แปดตัวตรงกลางรูป ที่อยู่ใน
    Area 0
    Backbone routers make up area 0.[/li]
    [li][b]Area Border
    Router (ABR)[/b] - หมายถึง เราเตอร์ที่รัน OSPF
    ที่มีอินเทอร์เฟซอยู่มากกว่า 1 Area
    และถูกใช้เป็นทางเข้าสำหรับเราติ้งเทเบิลของภายนอก Area ที่จะเข้ามา update
    ภายใน Area ด้านใน
    ABRs attach all other areas to area 0.[/li]
    [li][b]Autonomous
    System Border Router (ASBR)[/b] - หมายถึง เราเตอร์ที่มีอินเทอร์เฟซที่
    นอกเหนือจากรัน OSPF แล้ว ยังรันเราติ้งโปรโตคอลอื่นๆ ด้วย เช่น EIGRP,
    RIP, IS-IS (เราถือว่า เราติ้งโปรโตคอลอื่นๆ เป็น External Autonomous
    System) และหน้าที่ของ ASBR ก็คือ การถ่ายทอดเราติ้งเทเบิลเข้ามาใน OSPF
    Area ในทำนองเดียวกัน
    เมื่อเราเตอร์ตัวใดก็แล้วแต่ต้องการส่งแพ็กเก็ตไปยังเราเตอร์ภายนอกที่อยู่ภายใต้ขอบเขตของเราติ้งโปรโตคอลอื่นๆ
    มันก็จะต้องส่งแพ็กเก็ตมาหา ASBR ก่อน เพื่อให้ ASBR ดำเนินการต่อให้[/li]
    [li][b]Internal
    Router[/b] - หมายถึง เราเตอร์ที่รัน OSPF แต่ทุกๆ Interface อยู่ภายใน
    Area ของตนเท่านั้น หรือไม่มี Interface ใดๆ อยู่ภายใน Area อื่น หรือ
    Routing Protocol อื่นๆ
    เมื่อมันต้องการส่งแพ็กเก็ตไปยังเราเตอร์ตัวอื่นที่อยู่ต่าง area กับมัน
    มันจะต้องส่งแพ็กเก็ตไปยังเราเตอร์ที่ทำหน้าที่เป็น ABR ใน area ของตนก่อน
    เพื่อให้ ABR ของตนทำการส่งแพ็กเก็ตต่อไปยังเราเตอร์ที่ทำหน้าที่เป็น
    Backbone Router ใน area 0 จากนั้น Backbone Router จะช่วยส่งแพ็กเก็ตไปยัง
    ABR ของ area ปลายทาง เมื่อ ABR ได้รับแพ็กเก็ตแล้ว มันจะค่อยส่งต่อไปให้
    internal router ภายในอีกครั้ง[/li][/list]

    [b]OSPF Network Types[/b]
    The three types of networks defined by OSPF are:
    [list][li]Point-to-point:
    A network that joins a single pair of routers. - การเชื่อมต่อแบบ
    จุดต่อจุด เช่น Dedicated Link (T1), PPP เป็นต้น[/li]
    [li]Broadcast (Broadcast multiaccess;BMA): A multiaccess broadcast network, such as Ethernet.[/li]
    [li]Nonbroadcast
    multiaccess (also called NBMA): A network that interconnects more than
    two routers but that has no broadcast capability. Frame Relay, ATM, and
    X.25 are examples of NBMA network. -
    เน็ตเวิร์กที่มีการเชื่อมต่อกันมากกว่า 2 router แต่ไม่มีการ Broadcast
    Packet
    [list][li]Five modes of OSPF operation are available for NBMA networks.[/li][/list][/li][/list]

    [b]Link State Advertisement Types[/b]
    Type 1 Router LSAs - เป็น LSA ที่ใช้ในการแชร์กันระหว่างเราเตอร์ที่รัน OSPF ใน AREA เดียวกัน
    Type 2 Network LSAs
    Type 3 or 4 Summary LSAs
    Type 5 Autonomous system external LSAs
    Type 6 Multicast OSPF LSA
    Type 7 Defined for not-so-stubby areas
    Type 8 External attributes LSA for Border Gateway Protocol (BGP)
    Type 9, 10, 11 Opaque LSAs

    ospf มีขั้นตอนในการคัดเลือก router id อย่างไร, change router id
    [code]http://forum.siamnetworker.com/index.php?topic=492[/code]

    Troubleshooting
    [code]http://www.cisco.com/networkers/nw00/pres/2206_7-5.pdf[/code]

    สงสัยตรงไหนถามได้เลยคับ 8)
    [center]Credit: MSIT@MUT&Cisco[/center]
    Both
    stub area & totally stubby area allow an ABR to inject a default
    route. The main difference between these 2 types of areas is:
    [list][li]Stub
    area replaces LSA Type 5 (External LSA - created by an ASBR to
    advertise network from another autonomous system) with a default
    route[/li]
    [li]Totally stubby area replaces both LSA Type 5 and LSA
    Type 3 (Summary LSA - created by an ABR to advertise network from other
    areas, but still within the AS, sometimes called interarea routes) with a
    default route.[/li][/list]
    Below summarizes the LSA Types allowed and not allowed in area types:
    [table][tr][td]Area
    Type[/td][td]Type 1 & 2 (within area)[/td][td]Type 3 (from other
    areas)[/td][td]Type 4[/td][td]Type 5[/td][td]Type 7[/td][/tr]
    [tr][td]Standard & backbone[/td][td]Yes[/td][td]Yes[/td][td]Yes[/td][td]Yes[/td][td]No[/td][/tr]
    [tr][td]Stub[/td][td]Yes[/td][td]Yes[/td][td]No[/td][td]No[/td][td]No[/td][/tr]
    [tr][td]Totally stubby[/td][td]Yes[/td][td]No[/td][td]No[/td][td]No[/td][td]No[/td][/tr]
    [tr][td]NSSA[/td][td]Yes[/td][td]Yes[/td][td]No[/td][td]No[/td][td]Yes[/td][/tr]
    [tr][td]Totally stubby NSSA[/td][td]Yes[/td][td]No[/td][td]No[/td][td]No[/td][td]Yes[/td][/tr][/table]

    The 7 states to fulfill an OSPF adjacency between two routers are:

    • Down - neighbor has not been discovered
      If adjacency is stuck here, there is a mismatch regarding parameters exchanged in Hello messages:
      • Subnet mask or IP address mismatch
      • Authentication configuration mismatch
      • Mismatched timer parameters (Hello, Dead intervals)
      • Area ID mismatch
      • Area type mismatch (Normal, Stub, NSSA)
      • Duplicate router-id

    • Initializing - one-way communication verified
      If adjacency is stuck here, there is a mismatch in the interface type (point-to-point vs broadcast)

    • 2-way - two-way communication verified

    • Exstart - MTU compatibility being verified

    • Exchange - database description (LSA list) being exchanged
      If adjacency is stuck either in the Exstart or in the Exchange state, there is an MTU mismatch

    • Loading - exchanging LSAs

    • Full - link-state database fully synchronized
    B-)