OSPF เป็น routing protocol ชนิด link-state ที่นิยมใช้งานกันอย่างแพร่หลาย เนื่องจากเป็น routing protocol ที่เป็นมาตรฐานกลาง (RFC 2328) และมีข้อดีคือที่เป็นธรรมชาติของ routing protocol แบบ link-state ก็คือ จะไม่มีโอกาสเกิด routing loop ขึ้นในระบบเครือข่าย เนื่องจากมันจะสามารถมองเห็น topology ของระบบเครือข่ายได้ ก่อนที่จะทำการคัดเลือกเส้นทางที่ดีที่สุดที่จะใช้ไปยังแต่ละปลายทาง โดยในการที่เราเตอร์ OSPF จะสามารถมองเห็น topology ของระบบเครือข่ายได้นั้น ก็จะต้องมีการแลกเปลี่ยนข้อมูลเส้นทางและสถานะของ link ต่าง ๆ ในระบบ ระหว่างเราเตอร์ OSPF แต่ละตัว ซึ่งข้อมูลที่แลกเปลี่ยนกันนี้ก็คือ LSA (link-state advertisement) นั่นเองครับ
ก่อนที่จะไปทำความรู้จักกับ LSA ชนิดต่าง ๆ จะขอแนะนำให้ได้รู้จักกับชนิดและรูปแบบการทำงานของ OSPF กันก่อนนะครับ อันดับแรก OSPF เป็น routing protocol แบบ link-state โดยขอบเขตกลุ่มของเราเตอร์ที่ใช้ OSPF ในการทำงาน และมีการแลกเปลี่ยนข้อมูลเส้นทางร่วมกัน จะเรียกว่า OSPF domain และภายใน OSPF domain เดียวกันนี้ จะสามารถแบ่งระบบเครือข่ายย่อย ๆ ลงเป็นหลาย ๆ area เพื่อลดขอบเขตของการแลกเปลี่ยนข้อมูล LSA ได้ เราเตอร์ OSPF ภายในแต่ละ area ก็จะสามารถมองเห็น topology ของ area ตัวเองได้เท่านั้น การลดขอบเขตของการแลกเปลี่ยนข้อมูล LSA นี้ จะช่วยลดการใช้ทรัพยากรในการสร้าง link-state database และลดขนาดของข้อมูลเส้นทางลงได้ ส่งผลให้ OSPF เป็น routing protocol ที่มีความสามารถรองรับการขยายตัวของเครือข่ายได้เป็นอย่างดี
ชนิดของ area ใน OSPF มีดังนี้
- Backbone area - คือ area หมายเลข 0 (0.0.0.0) เป็น area ที่เป็นศูนย์กลางในการเชื่อมต่อระหว่าง area อื่น ๆ (เป็น transit area) โดย area อื่น ๆ จะต้องเชื่อมต่อเข้ามายัง OSPF domain ผ่านทาง backbone area เท่านั้น โดยสามารถรับข้อมูลเส้นทางประเภท intra-area (ข้อมูลเส้นทาง OSPF ภายใน area ตัวเอง), inter-area (ข้อมูลเส้นทาง OSPF ของ area อื่น ๆ) และ external route (ข้อมูลเส้นทางของ routing protocol อื่น ๆ) ได้
- Standard area - คือ area อื่น ๆ ที่ไม่ใช่ area 0 ในการเชื่อมต่อเข้าไปยัง OSPF domain จะต้องเชื่อมต่อเข้ากับ area 0 เท่านั้น โดยสามารถรับข้อมูลเส้นทางประเภท intra-area, inter-area และ external route ได้
- Stub area - คือ area อื่น ๆ ที่ไม่ใช่ area 0 และเป็น area ที่ถูกกำหนดให้มีทางออกจาก area ผ่านทาง area 0 ทางเดียว โดยทั่วไปจะใช้งานกับเราเตอร์ที่เป็นขอบของระบบ(leaf) เพื่อลดขนาดของ OSPF database ลง สามารถรับข้อมูลเส้นทางประเภท intra-area, inter-area ได้ แต่จะไม่สามารถรับข้อมูลเส้นทางแบบ external route ได้ โดยจะใช้งาน default route แทน และจะมีชนิดแยกย่อยลงไปอีกเป็น totally stub area โดยมีลักษณะการทำงานที่เหมือนกับ stub area เพียงแต่จะสามารถรับข้อมูลเส้นทางประเภท intra-area และ default route เท่านั้น ไม่สามารถรับข้อมูลเส้นทางแบบ inter-area และ external route ได้
- Not-so-stubby area (NSSA) - มีลักษณะการทำงานและใช้งานเหมือนกับ stub area คือเป็น area ที่ถูกกำหนดให้มีทางออกจาก area ผ่านทาง area 0 ทางเดียว เพียงแต่ จะสามารถรับข้อมูลเส้นทางประเภท intra-area, inter-area และ external route ได้
- Backbone Router - คือเราเตอร์ที่มีอย่างน้อย 1 อินเทอร์เฟสที่ทำงานอยู่ภายใน Area 0
- Internal Router - คือเราเตอร์ที่อยู่ภายในแต่ละ Area ที่มีทุก ๆ อินเทอร์เฟสทำงานอยู่ภายใต้ area ใด area หนึ่ง
- Area Border Router (ABR) - คือเราเตอร์ที่มีอินเทอร์เฟสเชื่อมต่อระหว่าง area 0 กับ area อื่นๆ
- Autonomous System Border Router (ASBR) - คือเราเตอร์ที่มีอย่างน้อย 1 อินเทอร์เฟสที่ใช้งาน ospf ภายใต้ area ใด area หนึ่ง (ที่ไม่ได้เป็น stub area) และมีการแลกเปลี่ยนข้อมูลเส้นทางกับ routing protocol อื่น ๆ เช่น EIGRP, RIP, Static Router, BGP, IS-IS เป็นต้น
- Transit network - คือ link ระหว่างเราเตอร์ OSPF สองตัวที่เป็น neighbor และมีการคัดเลือก DR กัน
- Stub network - คือ link ของเราเตอร์ที่เชื่อมต่อไปยังอุปกรณ์ปลายทาง ที่ไม่มี OSPF neighbor เชื่อมต่ออยู่ใน link เดียวกัน
ใน transit network ที่เป็นเครือข่ายแบบ multiaccess (broadcast multiaccess เช่น ethernet หรือ non-broadcast multiaccess เช่น frame-relay) จะมีการคัดเลือก DR (designated router) ซึ่งเป็นเราเตอร์ที่เป็นเสมือนตัวแทนของ link ในการส่งข้อมูลเส้นทางของ link นั้น ๆ เนื่องจากเครือข่ายแบบ multiaccess จะสามารถมีอุปกรณ์ layer 3 มากกว่าสองตัวเชื่อมต่อกันอยู่ใน link เดียวกันได้ (layer 2 domain เดียวกัน เช่น อาจจะเชื่อมต่อเราเตอร์หลาย ๆ ตัวผ่านทางสวิตซ์ layer 2 เป็นต้น) ต่างจาก link ชนิดอื่น ๆ เช่น point-to-point ที่ในแต่ละ link จะมีเราเตอร์เชื่อมต่ออยู่ 2 ตัว ตัวละฝั่งเท่านั้น และเนื่องจากการเชื่อมต่อแบบ multiaccess มีเราเตอร์หลาย ๆ ตัวเชื่อมต่ออยู่ใน link เดียวกัน ถ้าหากเราเตอร์ทุกตัวพยายามส่งข้อมูลเส้นทางของ link เดียวกันนี้ออกมาเหมือนกันหมด ก็จะเกิดความซ้ำซ้อนขึ้น ดังนั้น เราเตอร์ที่เป็น DR เพียงตัวเดียวในแต่ละ link จะเป็นผู้รับผิดชอบในการส่งข้อมูลเส้นทางของ link นี้ออกไป
Link-State Advertisement
ทั้งหมดข้างต้นก็คือส่วนประกอบในการทำงานของ OSPF นะครับ ส่วนกระบวนการทำงานของ OSPF ก็จะเริ่มต้นจากการสร้างความสัมพันธ์กับเราเตอร์ OSPF เพื่อนบ้านด้วยการส่ง hello message แลกเปลี่ยนกัน เมื่อสร้างความสัมพันธ์กับเพื่อนบ้านได้แล้ว ก็จะเริ่มแลกเปลี่ยนค่า link-state advertisement (LSA) ที่เป็นเสมือน message ที่เราเตอร์แต่ละตัวใช้ในการส่งข้อมูลเส้นทางระหว่างกัน เพื่อนำมาสร้าง link-state database ขึ้นมา ทำให้เสมือนว่าเราเตอร์แต่ละตัวสามารถมองเห็น topology ภายใน area ตัวเองและมีข้อมูลเส้นทางของ area อื่น ๆ ได้ ในบทความนี้ ก็จะมาเจาะลึกว่าข้อมูล LSA ที่เราเตอร์ OSPF แต่ละตัวแลกเปลี่ยนกันนี้ รูปร่างหน้าตาเป็นอย่างไร และข้อมูลที่แลกเปลี่ยนกันมีอะไรบ้างนะครับ
การทำงานของ OSPF จะทำการแบ่งแยก link-state database ของแต่ละ area ออกจากกันอย่างสิ้นเชิง เราเตอร์ชนิด internal router ในแต่ละ area จะมี link-state database ของ area ตัวเองเพียงชุดเดียวเท่านั้น การสร้าง topology และการคำนวนหาเส้นทางที่ดีที่สุดด้วยการใช้ SPF ก็จะมีขอบเขตอยู่ภายใต้ area ใด area หนึ่ง ส่วนเราเตอร์ชนิด ABR จะมี link-state database หลายชุดตามจำนวนของ area ที่มันเชื่อมต่ออยู่ โดย ABR จะมีหน้าที่ในการส่งต่อและแปลงข้อมูล link-state database ระหว่างแต่ละ area รวมทั้งการทำ summarized หรือ filter ก็จะเกิดขึ้นบน ABR หรือ ASBR เท่านั้น การแบ่งระบบเครือข่าย OPSF ออกเป็น area ย่อย ๆ นี้ จะช่วยเพิ่มความรวดเร็วในการทำงานมากยิ่งขึ้น เนื่องจากเราเตอร์แต่ละตัวจะมีขนาดของ link-state database ที่เล็กลง หรือในกรณีที่มี link failure เกิดขึ้นใน area ใด ๆ ก็จะส่งผลกระทบต่อการคำนวน SPF ใน area นั้นๆ เท่านั้น โดยจะส่งผลกระทบต่อ area อื่น ๆ เพียงเล็กน้อย
OSPF มีการใช้งาน LSA หลายชนิด เพื่อแลกเปลี่ยนข้อมูลสถานะของ link ระหว่าง neighbor โดย LSA ที่ใช้งานจริงใน OSPFv2 จะมีดังนี้
- Type 1 LSA - Router
- Type 2 LSA - Network
- Type 3 LSA - Net Summary
- Type 4 LSA - ASBR Summary
- Type 5 LSA - AS External
- Type 6 LSA - Multicast Group Membership (ไม่ได้นำมาใช้งานบนเราเตอร์ Cisco)
- Type 7 LSA - NSSA External
Type 1 & 2 LSA
ขอบเขตการส่ง Type 1 & 2 LSA จะอยู่ภายใต้ area ใด area หนึ่งเท่านั้น |
เราเตอร์ OSPF จะใช้ LSA Type 1 และ 2 ในการสร้าง link-state database เพื่อให้สามารถมองเห็น topology ของ area ตนเองได้ ข้อมูลใน LSA Type 1 และ 2 ก็จะเป็นข้อมูลสถานะของแต่ละ link ในระบบเครือข่าย เช่น เราเตอร์แต่ละตัวมี link เชื่อมต่ออยู่จำนวนเท่าไร แต่ละ link ใช้งานหมายเลขเครือข่ายอะไรบ้าง มี DR หมายเลขอะไร มีค่า metric เท่าไร เป็นต้น
เราเตอร์ OSPF แต่ละตัวจะทำการสร้าง Type 1 LSA ขึ้นมา และทำการส่งไปยังเราเตอร์ทุกตัวภายใน area ตัวเอง โดยข้อมูลภายใน Type 1 LSA จะประกอบไปด้วย Router ID, สถานะของ link ใน area ปัจจุบันที่เชื่อมต่ออยู่กับเราเตอร์ตัวนั้น ๆ, ชนิดของเครือข่าย (stub network, transit network), ข้อมูลเส้นทางแบบ intra-area ที่เป็น stub network, ค่า metric ของแต่ละ link ในระบบเครือข่าย
เราเตอร์ทุกตัวใน OSPF domain จะเป็นผู้สร้าง Type 1 LSA |
ตัวอย่าง Type 1 LSA ที่ได้รับเข้ามาบนเราเตอร์ BB3
BB3#show ip ospf database
router
OSPF Router with ID (3.3.3.3)
(Process ID 10)
Router Link States (Area 0)
LS age: 995
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0xABB8
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number:
100.20.0.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Transit Network
(Link ID) Designated Router address:
20.0.0.1
(Link Data) Router Interface address:
20.0.0.1
Number of TOS metrics: 0
TOS 0 Metrics: 10
LS age: 991
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
LS Seq Number: 80000004
Checksum: 0xECCE
Length: 48
Number of Links: 2
Link connected to: a Transit Network
(Link ID) Designated Router address:
20.0.0.1
(Link Data) Router Interface address:
20.0.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Transit Network
(Link ID) Designated Router address:
10.0.0.2
(Link Data) Router Interface address: 10.0.0.1
Number of TOS metrics: 0
TOS 0 Metrics: 10
LS age: 996
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
LS Seq Number: 80000003
Checksum: 0x4B24
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number:
100.10.0.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Transit Network
(Link ID) Designated Router address:
10.0.0.2
(Link Data) Router Interface address:
10.0.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 10
Routing Bit Set on this LSA
LS age: 996
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 4.4.4.4
Advertising Router: 4.4.4.4
LS Seq Number: 80000002
Checksum: 0xFBDF
Length: 36
Area Border Router
Number of Links: 1
Link connected to: a Transit Network
(Link ID) Designated Router address:
20.0.0.1
(Link Data) Router Interface address:
20.0.0.3
Number of TOS metrics: 0
TOS 0 Metrics: 10
จากตัวอย่างด้านบน จะเห็นว่าบนเราเตอร์ BB3 จะได้รับข้อมูล Type 1 LSA เข้ามาจากเราเตอร์ทุก ๆ ตัวภายใน area 0 โดยจะมีข้อมูลเส้นทางของเครือข่ายชนิด stub network (100.10.0.0/24, 100.20.0.0/24) และมีข้อมูลของเราเตอร์ DR ในเครือข่ายชนิด transit network รวมทั้งมีข้อมูลค่า metric ของแต่ละ link ในระบบเครือข่ายด้วย
จริง ๆ แล้วข้อมูลภายใน Type 1 LSA ก็เพียงพอต่อการสร้าง topology ของแต่ละ area แล้ว แต่ถ้าใช้งานเฉพาะ Type 1 LSA ในการส่งข้อมูลเส้นทาง จะทำให้เกิดความซ้ำซ้อนของการส่งข้อมูลเส้นทางในเครือข่ายชนิด multiaccess ขึ้น เช่นเครือข่ายชนิด broadcast multiaccess (เช่น ethernet) หรือ non-broadcast multiaccess (เช่น frame-relay) เนื่องจากเราเตอร์ทุก ๆ ตัว จะทำการส่งข้อมูลเส้นทางออกมาซ้ำซ้อนกัน (ในเครือข่ายชนิด multiaccess จะมีเราเตอร์มากกว่า 2 ตัว เชื่อมต่ออยู่ภายใน link เดียวกัน) ดังนั้น เพื่อเป็นการลดความซ้ำซ้อนของการส่งข้อมูลเส้นทางนี้ลง บน link ชนิด multiaccess จะมีเราเตอร์ที่เป็น DR เพียงตัวเดียวเท่านั้น ที่จะทำการส่งข้อมูลเส้นทาง ผ่านทาง Type 2 LSA ออกมา
ดังนั้น Type 2 LSA จะมีเฉพาะเครือข่ายที่มีการคัดเลือก DR เท่านั้น โดย DR ในแต่ละ link จะเป็นผู้สร้าง Type 2 LSA ขึ้นมา และจะทำการส่งออกไปยังเราเตอร์ภายใน area ของตัวเอง โดยข้อมูลใน Type 2 LSA จะประกอบไปด้วยข้อมูลเส้นทางของเครือข่ายแบบ intra-area ที่เป็น transit network และจะมีรายละเอียดว่าในเครือข่ายชนิด multiaccess นี้ มีเราเตอร์ตัวใดเชื่อมต่ออยู่บ้าง
เราเตอร์ DR ในแต่ละ multiaccess link จะเป็นผู้สร้าง Type 2 LSA |
BB3#show ip ospf database
network
OSPF Router with ID (3.3.3.3)
(Process ID 10)
Net Link States (Area 0)
Routing Bit Set on this LSA
LS age: 1727
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 10.0.0.2 (address of
Designated Router)
Advertising Router: 3.3.3.3
LS Seq Number: 80000002
Checksum: 0x7795
Length: 32
Network Mask: /24
Attached Router: 3.3.3.3
Attached Router: 2.2.2.2
Routing Bit Set on this LSA
LS age: 1746
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 20.0.0.1 (address of
Designated Router)
Advertising Router: 1.1.1.1
LS Seq Number: 80000003
Checksum: 0x6F8
Length: 36
Network Mask: /24
Attached Router: 1.1.1.1
Attached Router: 2.2.2.2
Attached Router: 4.4.4.4
จากตัวอย่างด้านบน จะเห็นว่าบนเราเตอร์ BB3 จะได้รับข้อมูล Type 2 LSA มาจาก DR (สังเกตุได้จาก advertising router) โดยภายใน Type 2 LSA ก็จะมีข้อมูลของหมายเลขเครือข่ายแบบ transit network และ subnet mark (10.0.0.0/24, 20.0.0.0/24) และมีข้อมูลว่าในแต่ละเครือข่ายแบบ multiaccess นี้มีเราเตอร์ตัวใดเชื่อมต่ออยู่บ้าง ( link 10.0.0.0/24 มีเราเตอร์ 3.3.3.3 เป็น DR และมีเราเตอร์ 3.3.3.3 และ 2.2.2.2 เชื่อมต่ออยู่, ส่วน link 20.0.0.0/24 มีเราเตอร์ 1.1.1.1 เป็น DR และมีเราเตอร์ 1.1.1.1, 2.2.2.2, 4.4.4.4 เชื่อมต่ออยู่)
จากตัวอย่างทั้งหมดด้านบน จะเห็นว่าข้อมูล Type 1 & 2 LSA ใน link-state database ของเราเตอร์จะสามารถใช้นำมาสร้าง topology ของเครือข่ายใน area ตัวเองได้ แต่จะไม่สามารถมองเห็น topology ของ area อื่น ๆ ได้ และเนื่องจากเราเตอร์ทุก ๆ ตัวใน area เดียวกัน จะได้รับ Type 1 & 2 LSA มาเหมือน ๆ กัน เพราะว่าจะต้องสามารถมองเห็น topology ภายใน area เดียวกันเหมือนกันทั้งหมดได้ ดังนั้นจึงไม่สามารถทำ route summary บนเราเตอร์ภายในของแต่ละ area ได้ โดยจะสามารถทำ route summary ได้เฉพาะที่เราเตอร์ ABR หรือ ASBR เท่านั้น
Type 3 LSA
ขอบเขตการส่ง Type 3 LSA เราเตอร์ ABR จะทำการส่งข้อมูลข้ามระหว่าง backbone area กับ area อื่น ๆ |
เราเตอร์ ABR ที่ทำการเชื่อมต่อระหว่าง backbone area กับ area อื่น ๆ จะไม่ทำการส่งต่อข้อมูล Type 1 & 2 LSA ของ area หนึ่งไปยัง area อื่น ๆ แต่เราเตอร์ ABR จะนำข้อมูลเส้นทางที่ได้รับมาจาก Type 1 & 2 LSA ที่เก็บไว้ใน link-state database มาทำการสร้าง Type 3 LSA ก่อนที่จะส่งออกไปยัง area อื่น ๆ ดังนั้นข้อมูลเส้นทางที่ได้รับจาก Type 3 LSA ก็จะเป็นข้อมูลเส้นทางของ area อื่น ๆ (inter-area) รวมถึงค่า metric ที่จะใช้ไปยังแต่ละปลายทางด้วย
การที่ข้อมูล Type 1 & 2 LSA จะไม่ถูกส่งข้าม area นอกจากจะช่วยเพิ่มความรวดเร็วในการทำงานด้วยการลดขนาดของ link-state database ลงแล้ว ยังจะช่วยลดการคำนวณ SPF ลงด้วย โดยเมื่อ Type 1 & 2 LSA มีการเปลี่ยนแปลงที่กระทบต่อข้อมูลเส้นทาง เช่น link failure เราเตอร์แต่ละตัวใน area จะต้องทำการคำนวณ SPF ใหม่ แต่เราเตอร์ที่อยู่ใน area อื่น ๆ แทบจะไม่ต้องทำการคำนวณอะไรใหม่ เพียงแต่จะมีการเปลี่ยนแปลงค่า metric บางค่าตามข้อมูลที่ได้รับมาจาก Type 3 LSA เท่านั้น
ตัวอย่าง Type 3 LSA ที่ได้รับเข้ามาบนเราเตอร์ BB3
BB3#show ip ospf database
summary
OSPF Router with ID (3.3.3.3)
(Process ID 10)
Summary Net Link States (Area
0)
Routing Bit Set on this LSA
LS age: 1251
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 30.0.0.0 (summary Network
Number)
Advertising Router: 4.4.4.4
LS Seq Number: 80000006
Checksum: 0xE31C
Length: 28
Network Mask: /24
TOS: 0
Metric: 10
Routing Bit Set on this LSA
LS age: 1251
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 100.30.0.0 (summary Network
Number)
Advertising Router: 4.4.4.4
LS Seq Number: 80000003
Checksum: 0x5341
Length: 28
Network Mask: /24
TOS: 0
Metric: 20
จากตัวอย่างด้านบน เป็นข้อมูล Type 3 LSA ที่ได้รับมาบนเราเตอร์ BB3 จะเห็นว่าได้รับมาจากเราเตอร์ ABR (4.4.4.4) โดยจะประกอบไปด้วยข้อมูลเส้นทางของ area 1 คือ 30.0.0.0/24 ที่มีค่า metric 10 และ 100.30.0.0/24 ที่มีค่า metric 20 และบนเราเตอร์ที่อยู่ใน area 1 (เราเตอร์ IN) ก็มีได้รับข้อมูลเส้นทาง Type 3 LSA ของ area 0 มาจาก ABR เช่นเดียวกัน
Type 4 & 5 LSA
ถ้าในระบบเครือข่ายมีการใช้งาน routing protocol แบบ OSPF เพียงชนิดเดียว การใช้ข้อมูลใน Type 1, 2 & 3 LSA ที่แลกเปลี่ยนกันก็เพียงพอต่อการทำงานของ OSPF แล้ว (Type 1 & 2 LSA ใช้สำหรับแลกเปลี่ยนข้อมูลเส้นทางแบบ OSPF ภายใน area ตัวเอง (intra-area) และ Type 3 LSA ใช้สำหรับแลกเปลี่ยนข้อมูลเส้นทางแบบ OSPF ของ area อื่น ๆ (inter-area)) แต่ถ้าหากในระบบเครือข่ายมีการใช้งาน routing protocol ชนิดอื่น ๆ (เช่น Connected, Static, EIGRP, RIP, IS-IS, BGP หรือแม้กระทั่ง OSPF ใน Process ID อื่น ๆ) และต้องการแลกเปลี่ยนข้อมูลเส้นทางกับ OSPF ด้วย ก็จะต้องมี LSA อีกหลายชนิดในการทำหน้าที่ที่เกี่ยวข้องกับการส่งต่อข้อมูลเส้นทางของ routing protocol อื่น ๆ (external route) เข้ามายัง OSPF domain ต่อไป ซึ่ง LSA ที่ว่านี้ก็คือ Type 4, 5 & 7 LSA นั่นเอ
ใน standard area ข้อมูล Type 4 & 5 LSA จะใช้สำหรับส่งข้อมูลที่เกี่ยวข้องสำหรับการส่งต่อข้อมูลเส้นทางที่ได้เรียนรู้มาจาก routing protocol ชนิดอื่น ๆ โดยข้อมูลเส้นทางแบบ external route ที่ได้เรียนรู้มานี้ จะถูกเรียนรู้มาด้วยการ redistribution บนเราเตอร์ ASBR จากนั้นเราเตอร์ ASBR ก็จะทำการสร้าง Type 5 LSA เพื่อทำการส่งต่อ external route นี้ไปพร้อมกับค่า metric ตามชนิดที่กำหนด ไปทั่วทั้ง OSPF domain ต่อไป ดังนั้น Type 5 LSA ก็จะมีไว้สำหรับส่งข้อมูลเส้นทางที่เป็น external route เข้ามานั่นเอง
เมื่อทำการเรียนรู้ข้อมูลเส้นทางจาก routing protocol อื่น ๆ เข้ามายัง OSPF ข้อมูลเส้นทางที่ได้เรียนรู้เข้ามานี้จะถูกเรียกว่า external route โดยใน OSPF จะมี external route อยู่ 2 ชนิด คือ External Type 1 (E1), External Type 2 (E2) โดย E2 จะเป็น external route ที่จะใช้ค่า metric ตามที่ได้เรียนรู้มาจาก external route เท่านั้นในการนำมาคำนวณหาเส้นทางที่ดีที่สุด ส่วน E1 จะเป็น external route ที่จะใช้ค่า metric ที่ได้เรียนรู้มาจาก external route รวมกับค่า metric ภายใน OSPF domain ในการคำนวณหาเส้นทางที่ดีที่สุด ซึ่งโดยปกติแล้ว เราเตอร์ cisco จะใช้งาน External Type 2 โดย default เมื่อทำการเรียนรู้ข้อมูลเส้นทางจาก routing protocol อื่น ๆ เข้ามา
ในการเรียนรู้ข้อมูลเส้นทางแบบ external route เข้ามายัง OSPF domain ไม่ว่าจะเป็น external type 1 หรือ external type 2 จะมีความจำเป็นที่จะต้องทราบค่า metric ที่จะใช้ไปยัง ASBR ที่ประกาศ Type 5 LSA เข้ามาด้วย เพื่อที่จะใช้ประกอบการตัดสินใจในการเลือกเส้นทางที่ดีที่สุดไปยังแต่ละ external route โดยถ้าเป็นเราเตอร์ที่อยู่ภายใน area เดียวกันกับ ASBR แต่ละตัว จะสามารถทราบค่า metric ที่จะใช้ไปยัง ASBR ได้อยู่แล้ว ผ่านทาง Type 1 & 2 LSA แต่ถ้าเป็นเราเตอร์ที่อยู่คนละ area กับ ASBR จะไม่สามารถทราบค่า metric ที่จะใช้ไปยัง ASBR ได้เอง โดยเราเตอร์ที่อยู่ใน area อื่น ๆ จะทราบเพียงแต่ว่า เมื่อต้องการส่งข้อมูลไปยัง ASBR แต่ละตัว จะต้องทำการส่งข้อมูลผ่านไปทาง ABR ตัวใด ดังนั้น เมื่อ ABR ทำการส่งต่อ Type 5 LSA เข้ามายังแต่ละ area มันจะการสร้าง Type 4 LSA ขึ้นมา เพื่อใช้ในการบอกที่อยู่และรายละเอียดค่า metric ที่จะใช้ไปยัง ASBR แต่ละตัวเข้ามาด้วย ทำให้เราเตอร์ที่อยู่คนละ area กับ ASBR สามารถใช้ข้อมูลใน Type 4 LSA ทำให้ทราบได้ว่า ในการที่จะส่งข้อมูลไปยัง ASBR แต่ละตัวนั้นจะต้องส่งต่อข้อมูลผ่านไปทาง ABR ตัวใด และ ASBR แต่ละตัวนั้นมีค่า metric เท่ากับเท่าใดบ้าง
ดังนั้น โดยปกติแล้วใน area ที่มี ASBR อยู่ จะไม่จำเป็นที่จะต้องมีการสร้าง Type 4 LSA ขึ้นมา เนื่องจากใน area เดียวกัน เราเตอร์ทุกตัวจะสามารถทราบค่า metric ที่จะใช้ไปยัง ASBR ได้ผ่านทาง Type 1 & 2 LSA อยู่แล้ว โดยจะมีเพียง area อื่น ๆ ที่ไม่มี ASBR อยู่เท่านั้น ที่จะต้องใช้งาน Type 4 LSA เพื่อให้สามารถคำนวณค่า metric ที่จะใช้ไปยัง ASBR และเพื่อให้สามารถส่งข้อมูลไปยัง external route ที่ต้องการได้
ขอบเขตการส่ง Type 4 & 5 LSA โดยปกติ ASBR จะเป็นผู้สร้าง Type 5 LSA และ ABR ในแต่ละ area จะเป็นผู้สร้าง Type 4 LSA |
ตัวอย่าง Type 5 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (area 1)
IN#show ip ospf database external
OSPF
Router with ID (5.5.5.5) (Process ID 10)
Type-5 AS External Link States
Routing Bit Set on
this LSA
LS age: 570
Options: (No
TOS-capability, DC)
LS Type: AS
External Link
Link State ID:
200.0.0.0 (External Network Number )
Advertising
Router: 6.6.6.6
LS Seq Number:
80000006
Checksum: 0xF6C3
Length: 36
Network Mask: /24
Metric Type:
2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward
Address: 0.0.0.0
External
Route Tag: 0
จากตัวอย่างด้านบน จะเป็น Type 5 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN ใน area 1 โดยจะเห็นว่ามีข้อมูลเส้นทางแบบ external type 2 (200.0.0.0/24) ที่เราเตอร์ ASBR (6.6.6.6) ใน area 2 เป็นผู้สร้างขึ้นมา ซึ่งข้อมูลใน Type 5 LSA นี้ จะทำให้เราเตอร์ที่อยู่ใน area อื่น ๆ ได้รับข้อมูล external route เข้ามาแล้ว แต่เมื่อต้องการส่งข้อมูลไปยัง external route นี้ จะไม่สามารถทราบได้ว่าจะต้องทำการส่งต่อข้อมูลผ่านไปทาง ABR ตัวใด และค่า metric ที่ใช้ในการส่งข้อมูลไปยังเราเตอร์ ASBR มีค่าเท่าใด ดังนั้น จึงจำเป็นที่จะต้องอาศัยข้อมูลใน Type 4 LSA ต่อไป เพื่อให้สามารถได้รับข้อมูลที่ต้องการนี้ได้ต่อไป
ตัวอย่าง Type 4 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (area 1)
IN#show ip ospf database asbr-summary
OSPF
Router with ID (5.5.5.5) (Process ID 10)
Summary ASB Link States (Area 1)
Routing Bit Set on
this LSA
LS age: 293
Options: (No
TOS-capability, DC, Upward)
LS Type: Summary
Links(AS Boundary Router)
Link State ID:
6.6.6.6 (AS Boundary Router address)
Advertising
Router: 4.4.4.4
LS Seq Number:
80000006
Checksum: 0xAC4E
Length: 28
Network Mask: /0
TOS: 0 Metric: 20
จากตัวอย่างด้านบน จะเป็น Type 4 LSA ที่เราเตอร์ IN ใน area 1 ได้รับมาจาก ABR โดยภายในจะมีข้อมูลหมายเลขที่อยู่และค่า metric ที่ใช้ไปยังเราเตอร์ที่ทำการสร้าง Type 5 LSA ขึ้นมา (ใน Standard area เราเตอร์ที่ทำการสร้าง Type 5 LSA คือ ASBR ส่วนใน NSSA area เราเตอร์ที่ทำการสร้าง Type 5 LSA คือ ABR)
ข้อมูล Type 4 & 5 LSA จะใช้สำหรับการส่งต่อข้อมูลเส้นทางแบบ external route ใน standard area ซึ่งจะต้องใช้ทั้ง Type 4 LSA และ Type 5 LSA ทำงานร่วมกัน เนื่องจากข้อมูลใน Type 5 LSA จะมีเพียงข้อมูลเส้นทางแบบ external route เท่านั้น ส่วนข้อมูลใน Type 4 LSA จะเป็นข้อมูลที่จำเป็นจะต้องใช้ในการส่งต่อข้อมูลไปยัง ASBR แต่ละตัว
Type 7 LSA
NSSA area ก็จะมีลักษณะการทำงานที่คล้ายกันกับ stub area คือจะเป็น area ที่ถูกกำหนดให้มีทางออกจาก area ผ่านทาง backbone area ทางเดียว และข้อมูลเส้นทางแบบ external route ที่ได้เรียนรู้เข้ามาจาก area อื่น ๆ จะไม่ถูกนำเข้ามาใช้งานใน NSSA area และก็จะใช้งาน defautl route ทดแทนเช่นเดียวกัน แต่จะมีข้อแตกต่างจาก stub area ตรงที่ ใน NSSA area จะสามารถมีเราเตอร์ ASBR ทำงานอยู่ได้ และจะสามารถเรียนรู้ข้อมูลเส้นทางแบบ external route จาก routing protocol อื่น ๆ เข้ามาได้ โดยเมื่อเราเตอร์ ASBR เรียนรู้ข้อมูลเส้นทางแบบ external route เข้ามา มันจะทำการส่งต่อข้อมูลเส้นทางนั้นออกไปด้วยการสร้าง Type 7 LSA ขึ้นมา (ต่างจากใน standard area ที่เราเตอร์ ASBR จะส่งต่อ external route ด้วยการสร้าง Type 5 LSA ขึ้นมา) ก่อนที่จะส่งข้อมูล Type 7 LSA ไปให้กับเราเตอร์ที่อยู่ใน NSSA area จากนั้น เราเตอร์ ABR ที่เชื่อมต่อระหว่าง NSSA area กับ backbone area จะทำการแปลง Type 7 LSA ไปเป็น Type 5 LSA (เนื่องจาก Type 7 LSA จะใช้งานกับ NSSA area เท่านั้น) ก่อนที่จะทำการส่งต่อข้อมูลเส้นทางแบบ external route ที่ได้เรียนรู้มานี้ ไปยัง area อื่น ๆ ต่อไป
ดังนั้น NSSA area ก็คือ area ที่สามารถเรียนรู้ข้อมูลเส้นทางแบบ external route จาก routing protocol อื่น ๆ เข้ามา และจะทำการส่งต่อข้อมูลเส้นทางที่ได้เรียนรู้มานี้ไปยัง area อื่น ๆ ด้วยการสร้าง Type 7 LSA ขึ้นมาได้ แต่จะไม่นำข้อมูลเส้นทางแบบ external route ที่ได้เรียนรู้เข้ามาจาก area อื่น ๆ มาใช้งาน (ไม่รับ Type 4 & 5 LSA จาก area อื่น ๆ เข้ามา) โดยจะใช้งาน default route แทน เพื่อเป็นการลดขนาดของ link-state database ลง
ขอบเขตการส่ง Type 7 LSA จะถูกส่งอยู่ภายใน NSSA area เท่านั้น โดยเมื่อ ABR ทำการส่งไปยัง area อื่น ๆ จะแปลง Type 7 LSA เป็น Type 5 LSA ก่อนจะส่งต่อไป |
ตัวอย่าง Type 7 LSA ที่ได้รับเข้ามาบนเราเตอร์ ABR2 (area 2)
ABR2#show ip ospf database nssa-external
OSPF
Router with ID (2.2.2.2) (Process ID 10)
Type-7 AS External Link States (Area 2)
Routing Bit Set on
this LSA
LS age: 165
Options: (No
TOS-capability, Type 7/5 translation, DC)
LS Type: AS
External Link
Link State ID:
200.0.0.0 (External Network Number )
Advertising
Router: 6.6.6.6
LS Seq Number:
80000001
Checksum: 0x4249
Length: 36
Network Mask: /24
Metric Type:
2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward
Address: 40.0.0.2
External
Route Tag: 0
จากตัวอย่างด้านบน เป็น Type 7 LSA ที่ได้รับเข้ามาบนเราเตอร์ ABR2 (2.2.2.2) โดยจะประกอบไปด้วยข้อมูลเส้นทางแบบ external route 200.0.0.0/24 พร้อมกับค่า metric ที่เราเตอร์ ASBR (6.6.6.6) เป็นผู้สร้างขึ้นมา (สังเกตุที่ Advertising Router) โดยเราเตอร์ ABR2 จะทำการแปลงจาก Type 7 LSA เป็น Type 5 LSA ก่อนที่จะส่งข้อมูลเส้นทางนี้ต่อไปให้กับเราเตอร์ที่อยู่ใน backbone area และ area อื่น ๆ ต่อไป
ตัวอย่าง Type 5 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (area 1)
IN#show ip ospf database external
OSPF
Router with ID (5.5.5.5) (Process ID 10)
Type-5 AS External Link States
Routing Bit Set on
this LSA
LS age: 145
Options: (No
TOS-capability, DC)
LS Type: AS
External Link
Link State ID:
200.0.0.0 (External Network Number )
Advertising
Router: 2.2.2.2
LS Seq Number:
80000001
Checksum: 0x4F56
Length: 36
Network Mask: /24
Metric Type:
2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward
Address: 40.0.0.2
External
Route Tag: 0
จากตัวอย่างด้านบน เป็น Type 5 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (5.5.5.5) โดยจะเห็นว่าเป็นข้อมูลเส้นทางแบบ external route 200.0.0.0/24 และมีค่า metric เหมือนกันกับข้อมูลของ Type 7 LSA ด้านบน แต่จะต่างกันที่ เราเตอร์ที่เป็นผู้สร้าง (Advertising Router) จะเป็น ABR2 (2.2.2.2) ไม่ใช่ ASBR เนื่องจากเราเตอร์ ABR ได้ทำการแปลง Type 7 LSA ที่ได้รับเข้ามาใน area 2 ไปเป็น Type 5 LSA ก่อนที่จะส่งต่อมายัง area อื่น ๆ ดังนั้นในกรณีนี้ ABR จะเป็นผู้สร้าง Type 5 LSA ขึ้นมา
ตัวอย่าง Type 4 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (area 1)
IN#show ip ospf database asbr-summary
OSPF
Router with ID (5.5.5.5) (Process ID 10)
Summary ASB Link States (Area 1)
Routing Bit Set on
this LSA
LS age: 365
Options: (No
TOS-capability, DC, Upward)
LS Type: Summary
Links(AS Boundary Router)
Link State ID:
2.2.2.2 (AS Boundary Router address)
Advertising
Router: 4.4.4.4
LS Seq Number:
80000001
Checksum: 0xB0F
Length: 28
Network Mask: /0
TOS: 0 Metric: 10
จากตัวอย่างด้านบน เป็นข้อมูล Type 4 LSA ที่ได้รับเข้ามาบนเราเตอร์ IN (5.5.5.5) โดยจะเป็นข้อมูลหมายเลขที่อยู่และค่า metric ที่ใช้ไปยังเราเตอร์ที่ทำการสร้าง Type 5 LSA ขึ้นมา ซึ่งในกรณีนี้คือเราเตอร์ ABR2 (2.2.2.2) เพื่อที่จะนำมาใช้ประกอบการตัดสินใจในการส่งข้อมูลไปยัง external route ต่อไป
สรุปการทำงานของ LSA ชนิดต่าง ๆ
LSA
|
originate
|
scope
|
information
|
objective
|
Type 1
|
router ทุกตัว
|
ภายในแต่ละ area
|
ข้อมูลสถานะ link, สถานะการเชื่อมต่อ
และข้อมูลเส้นทางแบบ intra-area ที่เป็น stub network
|
ใช้ในการสร้าง topology ในแต่ละ area และใช้ส่งข้อมูลเส้นทางแบบ
intra-area
|
Type 2
|
DR
|
ภายในแต่ละ area
|
ข้อมูลเส้นทางแบบ intra-area ที่เป็น transit network
|
|
Type 3
|
ABR
|
OSPF domain
|
ข้อมูลเส้นทางแบบ inter-area (ข้อมูลเส้นทางของ
area อื่นๆ)
|
ใช้ส่งข้อมูลเส้นทางแบบ inter-area
|
Type 4
|
ABR
|
OSPF domain
|
ข้อมูลเส้นทางเพื่อบอกที่อยู่ของเราเตอร์ที่ทำการสร้าง LSA type 5 (ASBR, ABR)ขึ้นมา
|
ใช้ส่งข้อมูลเส้นทางแบบ external route
|
Type 5
|
ASBR, ABR
|
OSPF domain
|
ข้อมูลเส้นทางแบบ external route
|
|
Type 7
|
ASBR in NSSA area
|
NSSA area
|
ข้อมูลเส้นทางแบบ external route ที่ใช้งานภายใน NSSA area
|
|
*ข้อมูลเส้นทางแบบ
intra-area = ข้อมูลเส้นทางแบบ
OSPF ภายในแต่ละ area,
inter-area = ข้อมูลเส้นทางแบบ
OSPF ของ area อื่นๆ, external-route = ข้อมูลเส้นทางของ
routing protocol อื่น ๆ
|
||||
** stub network = link ของเราเตอร์ OSPF ที่ไม่มี neighbor เชื่อมต่ออยู่ ,
transit network = link ของเราเตอร์ OSPF ที่มี neighbor เชื่อมต่ออยู่ใน link เดียวกัน
|
ขอบเขตการทำงานของ LSA ชนิดต่าง ๆ |
ยอดเยี่ยมครับ เข้าใจการทำงานของ OSPF ขึ้นเยอะเลย :)
ReplyDeleteยินดีครับ ไม่เข้าใจส่วนไหนสอบถามได้นะครับ
ReplyDelete