เมื่อเราใช้คำสั่ง show ip ospf database แล้วเจอคำว่า Router Link States, Summary Net Link States, Type-5 AS External เยอะแยะเต็มไปหมด แล้วสงสัยว่าแต่ละอันคืออะไร ต่างกันตรงไหน บทความนี้จะพาไปทำความเข้าใจในส่วนนี้ครับ เมื่ออ่านจบสามารถเข้าใจ database เป็น และ troubleshoot OSPF ได้ตรงจุดขึ้นอย่างแน่นอนครับ
OSPF ทำงานอย่างไร
ก่อนจะเข้าเรื่อง LSA ต้องเข้าใจหลักการของ OSPF ก่อน Routing Protocol รุ่นเก่าอย่าง RIP ทำงานแบบ “บอกต่อ” คือ Router A บอก B ว่า “ฉันไปถึง network นี้ได้นะ” แล้ว B ก็เชื่อและบอกต่อ C ไปเรื่อย ๆ ปัญหาคือแต่ละตัวไม่เคยเห็นภาพรวมของ network เลย รู้แค่ที่เพื่อนบ้านบอกมา
แต่ OSPF ทำงานคนละแบบกันโดย OSPF ให้ Router ทุกตัว “แลกเปลี่ยนข้อมูล” กัน ว่าแต่ละตัวมี interface อะไร เชื่อมกับใคร ค่า cost เท่าไหร่ ข้อมูลเหล่านี้เรียกว่า LSA (Link-State Advertisement) เมื่อทุกตัวได้ LSA ครบเหมือนกัน ก็จะมีฐานข้อมูลชุดเดียวกันที่เรียกว่า LSDB (Link-State Database) จากนั้นแต่ละตัวจะเอา LSDB มาคำนวณหาเส้นทางที่สั้นที่สุดด้วย SPF Algorithm ด้วยตัวเอง
พูดง่าย ๆ คือ LSDB เปรียบเสมือน “แผนที่” และ LSA คือ “ข้อมูลแต่ละชิ้นที่ใช้ประกอบเป็นแผนที่” ส่วนที่ว่าทำไม LSA ต้องมีหลาย Type ในส่วนถัดไปจะเห็นว่าแต่ละ Type เกิดมาเพื่อแก้ปัญหาที่แตกต่างกัน
ทำไมต้องแบ่ง Area
เมื่อ network ใหญ่ขึ้น มี Router หลายร้อยตัว ปัญหาที่ตามมาคือ LSDB จะใหญ่มาก และทุกครั้งที่มี link Up/Down ที่ใดที่หนึ่ง ทำให้ Router ทุกตัวต้องคำนวณ SPF ใหม่หมด กิน CPU และ memory โดยไม่จำเป็น
OSPF จึงออกแบบให้แบ่ง network เป็น Area ครับ โดยมีกติกาว่า
- ต้องมี Area 0 (Backbone) เป็นศูนย์กลางเสมอ
- Area อื่น ๆ ต้องต่อเข้ากับ Area 0 เท่านั้น จะต่อถึงกันเองตรง ๆ ไม่ได้
- รายละเอียดเต็ม ๆ ของแต่ละ Area จะถูกเก็บไว้ภายใน Area นั้น ไม่ส่งข้ามไป Area อื่น ส่งเฉพาะข้อมูลสรุปพอ
การแบ่ง Area ทำให้เกิด Router บทบาทพิเศษขึ้นมา 2 ตัว ซึ่งเป็นหัวใจหลักของเรื่อง LSA ทั้งหมด
- ABR (Area Border Router) คือ Router ที่มี interface อยู่ใน 2 Area ขึ้นไป (โดยต้องมีขาหนึ่งอยู่ใน Area 0) ทำหน้าที่ส่งต่อข้อมูลข้าม Area
- ASBR (Autonomous System Boundary Router) คือ Router ที่เอา route จากที่นอกเหนือจาก OSPF เช่น Static route หรือ BGP มา redistribute เข้า OSPF
Diagram ด้านล่าง แสดงภาพของ Area และบทบาทของ Router แต่ละตัว

เราต้องเข้าใจและจำภาพนี้ไว้ เพราะ LSA แต่ละ Type ผูกกับบทบาทของ Router ในภาพนี้ทั้งหมด สรุปหลักจำง่าย ๆ คือ
- Type 1–2 เป็นเรื่องที่เกิดขึ้นภายใน Area
- Type 3–4 เป็นหน้าที่ของ ABR
- Type 5 และ 7 เป็นเรื่องของ route ภายนอกที่มาจาก ASBR
เมื่อเราเข้าใจพื้นฐานแล้ว ทีนี้มาทำความเข้าใจ OSPF LSA แต่ละ Type กันครับ
LSA Type 1 – Router LSA
ปัญหาที่ Type นี้ แก้: Router แต่ละตัวจะรู้จักกันได้อย่างไร
Type 1 คือ LSA พื้นฐานที่สุด Router ทุกตัว ที่รัน OSPF จะสร้าง Type 1 ของตัวเองเสมอ ไม่มีข้อยกเว้น เนื้อหาข้างในคือข้อมูลของตัว Router เอง ได้แก่ Router ID, list interface ที่รัน OSPF, ค่า cost ของแต่ละ interface และเชื่อมอยู่กับใครบ้าง
จุดสำคัญที่ต้องจำคือ Type 1 จะ flood อยู่ ภายใน Area ของตัวเองเท่านั้น ไม่มีทางหลุดข้าม Area ไปได้ นี่คือกลไกที่ทำให้ “รายละเอียดเต็ม ๆ อยู่แค่ใน Area” ตามที่เขียนไว้ในตอนต้น
สามารถดูได้ด้วยคำสั่งนี้
R1# show ip ospf database router
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 1)
LS age: 121
LS Type: Router Links
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
Number of Links: 2
บรรทัด Advertising Router บอกว่าใครเป็นเจ้าของ Advertise ชิ้นนี้ ส่วน Number of Links บอกว่า Router ตัวนั้นมีกี่ link ที่รัน OSPF อยู่
LSA Type 2 – Network LSA
ปัญหาที่ Type นี้แก้: ถ้า Router 5 ตัวเสียบอยู่ใน switch วงเดียวกัน จะเขียนการเชื่อมต่อกันอย่างไรไม่ให้ซ้ำซ้อน
ลองนึกภาพ Router 5 ตัวต่ออยู่บน VLAN เดียวกัน ถ้าทุกตัวต่างประกาศว่า “ฉันเชื่อมกับอีก 4 ตัวที่เหลือ” ข้อมูลจะซ้ำซ้อนมหาศาล
OSPF เลยแก้ด้วยการเลือกตัวแทนบน segment นั้นขึ้นมาหนึ่งตัว เรียกว่า DR (Designated Router) แล้วให้มอง segment นั้นเป็นเสมือน “จุดศูนย์กลางจุดเดียว” ที่ทุกตัวเชื่อมเข้าหา
DR เท่านั้น ที่จะสร้าง Type 2 ขึ้นมา เพื่อประกาศว่า “segment นี้มี Router ตัวไหนเกาะอยู่บ้าง” และเช่นเดียวกับ Type 1 คือ flood อยู่แค่ภายใน Area
ข้อสังเกตสองอย่างที่ใช้บ่อยตอน troubleshoot
- link แบบ Point-to-Point ไม่มีการเลือก DR ดังนั้น ไม่มี Type 2 เกิดขึ้นเลย
- การตรวจสอบว่าใครเป็น DR ใช้คำสั่ง show ip ospf interface GigabitEthernet0/0 แล้วดูบรรทัด Designated Router
R1# show ip ospf database network
LSA Type 3 – Summary LSA
ปัญหาที่ Type นี้แก้: ในเมื่อ Type 1/2 ข้าม Area ไม่ได้ แล้ว Area อื่นจะรู้จัก network ของเราได้อย่างไร
ตรงนี้คืองานของ ABR, ABR มองเห็น LSDB ของทั้งสอง Area ที่ตัวเองคร่อมอยู่ มันจะอ่านข้อมูล Type 1/2 ของ Area หนึ่ง แล้ว “แปลงร่าง” เป็นข้อมูลแบบย่อที่บอกแค่ว่า “มี network 10.1.1.0/24 อยู่ทางฉันนะ cost เท่านี้” โดยตัดรายละเอียด topology ภายในทิ้งทั้งหมด ข้อมูลแบบย่อนี้คือ Type 3 แล้วส่งข้าม Area ออกไป
ผลคือ Router ใน Area อื่นรู้ว่า “จะไป network นั้นให้วิ่งผ่าน ABR” ก็พอ ไม่ต้องรู้ว่าข้างใน Area ต้นทางหน้าตาเป็นอย่างไร นี่คือกลไกหลักของการลดขนาด LSDB
route ที่มาจาก Type 3 จะแสดงในตาราง routing เป็น O IA (Inter-Area)
จุดที่มักเข้าใจผิดบ่อยที่สุด: คำว่า “Summary” ในชื่อ ไม่ได้แปลว่า route ถูก summarize อัตโนมัติ ABR ส่งออกไปเป็นราย prefix ครบทุกเส้นเหมือนเดิม แค่ตัดรายละเอียด topology ออกเท่านั้น ถ้าอยากรวบ route จริง ๆ เช่น รวบ 10.1.x.x ทั้งหมดเป็น /16 เดียว ต้องสั่งเองบน ABR โดยใช้คำสั่งนี้
R2(config)# router ospf 1
R2(config-router)# area 1 range 10.1.0.0 255.255.0.0
LSA Type 5 – External LSA
ขอสลับมาอธิบาย Type 5 ก่อน Type 4 เพราะ Type 4 จะเข้าใจง่ายขึ้นมากถ้ารู้จัก Type 5 แล้ว
ปัญหาที่ Type นี้แก้: route ที่ไม่ได้เกิดใน OSPF แต่เป็น Route ที่เกิดจาก Static route, EIGRP หรือจาก BGP จะเอาเข้ามาแจกใน OSPF ได้อย่างไร
Router ตัวที่ทำหน้าที่นี้คือ ASBR ครับ เมื่อเราสั่ง redistribute บน ASBR มันจะสร้าง Type 5 ขึ้นมาหนึ่งชิ้นต่อหนึ่ง route ภายนอก และ Type 5 มีความพิเศษคือ flood ไปทุก Area ทั่วทั้ง OSPF domain (ยกเว้น Area พิเศษอย่าง Stub และ NSSA ซึ่งจะเล่าต่อในหัวข้อ Type 7)
route จาก Type 5 จะแสดงในตาราง routing เป็น O E1 หรือ O E2 ซึ่งต่างกันที่วิธีคิด cost
- E2 (ค่า default): cost คงที่ตามที่ ASBR ประกาศ เช่น ประกาศมา 20 ไม่ว่า Router ปลายทางจะอยู่ห่างจาก ASBR กี่ hop ก็เห็น cost 20 เท่ากันหมด
- E1: cost = cost ที่ ASBR ประกาศ + cost ภายใน OSPF ที่สะสมระหว่างทางมาถึงเรา
แล้วเราควรเลือกใช้ตัวไหนดี ถ้ามีทางออกสู่ภายนอก (ASBR) แค่จุดเดียว ใช้ E2 ก็เพียงพอ แต่ถ้ามี ASBR หลายตัวประกาศ network เดียวกัน แล้วอยากให้แต่ละ Router เลือกทางออกที่ใกล้ตัวเองที่สุด ต้องใช้ E1 เพราะมันเอาระยะทางภายในมาคิดด้วย
ตัวอย่างการ redistribute แบบกำหนดเป็น E1
R4(config)# router ospf 1
R4(config-router)# redistribute static subnets metric-type 1
LSA Type 4 – ASBR Summary LSA
ปัญหาที่ Type นี้แก้: Router ที่ได้รับ Type 5 มา รู้จักชื่อ ASBR แต่ไม่รู้ว่า ASBR อยู่ที่ไหน
ลองไล่ logic ตามนี้ครับ สมมติ R1 อยู่ Area 1 ได้รับ Type 5 มาบอกว่า “network 192.168.100.0/24 ไปถึงได้ผ่าน ASBR 4.4.4.4” ปัญหาคือ 4.4.4.4 อยู่คนละ Area กับ R1 และอย่างที่รู้กันว่าข้อมูล Type 1 (ตัวตนของ Router) ไม่ข้าม Area ดังนั้น R1 ไม่มีทางรู้เลยว่าจะไปหา 4.4.4.4 อย่างไร route นั้นก็จะใช้งานไม่ได้
ABR จึงต้องช่วยด้วยการสร้าง Type 4 ขึ้นมา ซึ่งมีเนื้อหาสั้น ๆ ว่า “ถ้าจะไปหา ASBR 4.4.4.4 ให้วิ่งมาทางฉัน cost เท่านี้” เท่านี้ R1 ก็ประกอบข้อมูลครบ คำนวณเส้นทางไปถึง network ภายนอกได้ครับ
สรุปคือ Type 4 กับ Type 5 มาคู่กันเสมอ และ Type 4 เป็นข้อมูลเบื้องหลังที่ใช้ในการคำนวณเท่านั้น จะไม่ปรากฏเป็น route ในตาราง routing โดยตรง
R1# show ip ospf database asbr-summary
LSA Type 7 – NSSA External LSA
ปัญหาที่ Type นี้แก้: Area ที่บล็อก route ภายนอก แต่มันต้องมี ASBR ของตัวเอง (อยากจะ Redistribute Route จากภายนอกเข้ามา เช่น EIGRP,BGP,Static)
ก่อนอื่นต้องรู้จัก Stub Area ครับ บาง Area เป็นแค่ปลายทางเล็ก ๆ เช่น สาขาย่อยที่มีทางเข้าออกทางเดียว การรับ Type 5 จำนวนมากเข้ามาเก็บใน LSDB เป็นภาระโดยเปล่าประโยชน์ เพราะสุดท้ายก็ต้องวิ่งออกทาง ABR ตัวเดิมอยู่ดี OSPF เลยให้กำหนด Area เป็นแบบ Stub ได้ ซึ่งจะ บล็อก Type 5 ไม่ให้เข้ามาใน Area แล้วใช้ default route ชี้ออกไปหา ABR แทน
อาจะฟังดูเป็นเรื่องที่ดี แต่มีเงื่อนไขติดมาด้วย คือ ในเมื่อ Stub ห้าม Type 5 แปลว่า ห้ามมี ASBR อยู่ใน Stub Area ด้วย เพราะ ASBR สร้าง Type 5 ไม่ได้
ในการใช้งานจริงมันมีสถานการณ์แบบนี้ สาขาย่อยอยากเป็น Stub เพื่อลดภาระ แต่ที่สาขานั้นดันมี link ต่อไปหา partner ภายนอก ต้อง redistribute static route เข้า OSPF จากตรงนั้นพอดี ทำอย่างไรดี
คำตอบคือ Area แบบ NSSA (Not-So-Stubby Area) แปลตรงตัวว่า “Area ที่ไม่ได้ Stub ซะทีเดียว” กติกาของมันคือ
ยังบล็อก Type 5 จากภายนอกไม่ให้เข้ามา เหมือน Stub ทุกอย่าง
แต่อนุญาตให้ ASBR ภายใน Area สร้าง route ภายนอกได้ ในรูปแบบพิเศษที่ชื่อว่า Type 7 ซึ่งวิ่งได้เฉพาะภายใน NSSA เท่านั้น
เมื่อ Type 7 เดินทางมาถึง ABR ตัว ABR จะทำหน้าที่ แปลง Type 7 ให้กลายเป็น Type 5 แล้วส่งต่อไปยัง Area อื่น ๆ ตามปกติ
ดูขั้นตอนการแปลงตามภาพนี้ครับ

route จาก Type 7 จะแสดงในตาราง routing ของ Router ภายใน NSSA เป็น O N1 / O N2 (N มาจาก NSSA ความหมายของ 1 กับ 2 เหมือน E1/E2 ทุกอย่าง) ส่วน Router นอก NSSA จะเห็นเป็น O E1/E2 ตามปกติ เพราะได้รับเป็น Type 5 ที่แปลงแล้วครับ
ข้อควรระวังตอน design: ถ้า NSSA มี ABR หลายตัว จะมีเพียง ตัวเดียว ที่ทำหน้าที่แปลง 7 เป็น 5 (default เลือกตัวที่ Router ID สูงสุด) ถ้าไม่รู้จุดนี้ อาจเจอ traffic ขาออกวิ่งไปทาง ABR ตัวหนึ่ง แต่ขากลับวิ่งอีกทาง กลายเป็น asymmetric path ให้งงได้