PlAwAnSaI
Administrator
- MPLS หรือชื่อเต็มๆ ว่า Multi Protocol Label Switching (ถ้าแปลตรงตัว ก็ เป็นตัว Switching โดยใช้ Label ที่สามารถใช้กับหลาย Protocol) เป็น Protocol ที่ IETF ได้กำหนดขึ้นมาสำหรับการทำงานรับส่งข้อมูลของ Router ที่มีการกำหนดเส้นทางไว้ให้ไปถึงจุดหมายได้เร็วขึ้น โดยปกตินั้นการทำงานของ Router จะกระทำภายใต้ IP Packet โดยมีส่วนหัวที่มี Address และข้อมูลอยู่ ซึ่งมีขนาดถึง 20 Byte อาจล่าช้าเกินไป ทำให้เสียเวลาในการรับส่ง เพื่อให้การทำงานของ Router เร็วขึ้น จึงนำเอา IP Packet ใส่ Label แปะหัวข้อมูลอีกครั้ง ทำให้ส่งข้อมูลไปในเส้นทางที่กำหนดไว้ได้เร็วกว่า
- ข้อดี คือ Router ระหว่างทางไม่จำเป็นต้องนำข้อมูลของ Packet IP เดิมมาวิเคราะห์หรือตรวจสอบ จึงเป็นการประหยัดเวลา และ Switch ได้เร็วขึ้น การตัดสินใจในระดับต่อๆ ไป ก็จะดำเนินการได้อย่างต่อเนื่องและเป็นระบบมากขึ้น
- MPLS Label Format / MPLS Header:
- Label 20 bit จะเป็นค่าที่กำหนดใน Local เท่านั้น จะมี Label เปลี่ยนไปทุกๆ Hop
- EXP 3 bit ใช้สำหรับกำหนด Class of Service (IP Precedence) ใช้กับ QoS
- S 1 bit Bottom of Stack ใช้ในการกำหนดว่า Label นั้นเป็น Label สุดท้ายก่อน IP header หรือไม่
- TTL ทำหน้าที่เหมือนกับ Field TTL ใน IP Header ที่จะมีค่าลดลงทุกครั้งที่ผ่านอุปกรณ์แต่ละ Hop ป้องกันไม่ให้ Packet วิ่งอยู่ในระบบนานจนเกินไป หรือวิ่งไม่หยุด (Routing Loop)
- ตัวอย่าง MPLS Label Stack Format:
- Label แรกจะเป็น Label ที่กำหนดว่าปลายทางของ Frame นี้อยู่ที่ไหน (Destination)
- สังเกต Label สุดท้าย S จะเท่ากับ 1
- ตัวควบคุม/กำหนด การแปะ Label ที่ง่ายที่สุดคือ FEC (Forwoarding Equivalence Class) ซึ่ง Router แต่ละตัวจะเป็นอิสระต่อกัน (Packet หนึ่ง ไม่จำเป็นต้องมี Label เหมือนกันจนถึงปลายทางใน Router ทุกตัวที่ Packet นั้นผ่าน) โดยกลุ่มของ IP Packet ที่จะถูกส่งออกไปในลักษณะเดียวกัน บนเส้นทางเดียวกัน และรูปแบบ รวมทั้งทิศทางเดียวกัน จะให้ Label เหมือนกัน
- Protocol นึงที่ใช้ในการแลกเปลี่ยน Label ระหว่าง LSR/Edge LSR ในเครือข่าย MPLS คือ LDP (Label Distribution Protocol) ถูกกำหนดโดย RFC 3036 และ 3037 จะแลกเปลี่ยน Label ในแต่ละ FEC ซึ่งจะกระทำต่อ Neighbor/Link/ปลายทาง ทำให้สามารถค้นหาปลายทาง a.b.c.d ด้วย Label x และใช้ในการค้นหา Neighbor ด้วย อยู่ในส่วนของ Control Plane โดยการสร้าง Session มี 2 ขั้นตอน:
- ใช้ Hello Message ทำความรู้จักกัน จะเป็น UDP Packet ส่งไปยัง Router ทุกตัวภายใน Subnet โดยใช้ Multicast Address 224.0.0.2 (224.0.0.1 จะส่งไปทุก Host) Port 646 ภายในจะมี LDP ID อยู่ มีขนาด 6 Byte เกิดจาก Router-id 4 Byte + Label Space 2 Byte ตัวอย่าง LDP ID = 1.0.0.1:0 หมายความว่า มี Router-id = 1.0.0.1 และ Label Space = 0 (Per-Platform)
- สถาปนาการสื่อสารระหว่าง Router โดยใช้ TCP port 646 ถ้า block port ดังกล่าวไป MPLS ก็จะไม่สามารถทำงานได้
- LDP ถูกพัฒนามาจาก TDP (Tag Distribution Protocol) ใช้ใน Cisco Tag Switching ใช้ได้กับอุปกรณ์ของ Cisco เท่านั้น RFC จึงได้กำหนด LDP ขึ้นเพื่อเป็นมาตรฐานกลาง
- Router ในมุมมองของ MPLS จะมีชื่อเรียกสองแบบ คือ LSR กับ Edge LSR:
- LSR (Label Switch Router) คือ Router ที่สามารถทำการ Forward Labeled Packet ทำงานกับ Labeled Packet เท่านั้น ใน Data Plane จะไม่มี FIB
- Edge LSR อยู่ที่ขอบของ MPLS Domain ทำการ Assign Label ให้กับ Packet และแกะ Label ออกจาก Labeled Packet ส่งออกไปเป็น Packet ธรรมดา
- Tables used with MPLS:
- RIB (Route Information Base) มันก็คือชื่อเรียกแบบเป็นทางการของ Routing Table อ่ะแหละ
- FIB (Forwarding Information Base) เป็น Table ที่ไว้ใช้ Cache จาก Routing Table ใช้กับ Packet ที่เข้ามาเป็น IP Packet ถ้า Destination IP ออกไปทาง Interface ธรรมดา ก็จะแปะ L2 Header ที่ไม่มี Label เป็น IP Packet ธรรมดา แต่ถ้าส่งออกไปทาง Interface MPLS ก็จะแปะ Label ออกไป
- LIB (Label Information Base) เป็น Table ที่ใช้ Map IP Prefix กับ Label (1 Entry/Route มี 1 Label) Assign โดย Local Router จะจัดเก็บ Label ทั้งหมดที่เกิดขึ้น รวมทั้งมีการเก็บ Label ที่ถูกส่งมาจาก Router เพื่อนบ้าน
- LFIB (Label Forwarding Information Base) ใช้สำหรับ Switching Packet ใน MPLS Domain โดยที่ Packet นั้น แปะ Label แล้ว ซึ่ง MPLS จะใช้ Table นี้ Forward Packet
- โครงสร้างของตัว Router ในเครือข่าย MPLS จะแบ่งการทำงานออกเป็น 2 ส่วน คือ Control Plane และ Data Plane:
- Control Plane จะประกอบไปด้วยส่วนที่ทำหน้าที่เกี่ยวกับพวก Software เช่น การหาข้อมูลเกี่ยวกับ Routing ต่างๆ ส่วนประกอบที่สำคัญก็คือ Routing Protocol (BGP, OSPF, EIGRP, IS-IS)
- Data Plane ทำหน้าที่เกี่ยวกับการ Forwarding Address และ Label การ forwarding Label จะทำงานแยกกับ Routing Protocol หรือ Label Exchange Protocol
- การดำเนินการในระบบ MPLS นั้นเน้นเรื่องการลดขั้นตอนการประมวลผลของอุปกรณ์และเพิ่มประสิทธิภาพของระบบโดยรวม ดังนั้นอุปกรณ์ Router ที่เป็นตัวส่งข้อมูลจะทำการใส่ Label ไปในส่วนหัวของ Packet ข้อมูล (ระหว่าง Layer 3 กับ Layer 2) โดยการกำหนดชนิดของข้อมูล, ทิศทาง, Address ปลายทาง และลำดับความสำคัญของข้อมูลเอาไว้ ส่วนของ Label ที่ปะไว้ในส่วนหัวมีขนาด 32 Bit เรียกว่า MPLS Label ส่วนของ MPLS นี้ จะมีข้อมูลที่ทำให้อุปกรณ์ Router ตัดสินใจได้ว่า จะ Switch ข้อมูลแบบ Packet IP เดิม หรือแบบ MPLS ถ้าตรวจดูพบว่าเป็นแบบ MPLS ก็จะส่งต่อไปยังเส้นทางต่อไป โดยข้อมูลจะได้รับการส่งต่อจนถึงปลายทางในที่สุด หรือหากจะอธิบายให้เห็นภาพการทำงานของ MPLS ได้ง่ายขึ้นก็สามารถเปรียบเทียบการทำงานเหมือนกับการส่งพัสดุที่ทุกคนต้องการที่จะมั่นใจได้ว่าพัสดุนั้น ถึงที่หมายอย่างปลอดภัย ทันเวลา และอยู่ในสภาพที่ดีครบถ้วน เหมือนตอนที่ส่งไป ทั้งนี้โดยมากแล้วก็จะมีการติดป้ายหรือ Sticker ลงไปที่กล่องพัสดุว่า "ห้ามทับ", "ระวังแตก" หรือ "ห้ามโยน" ซึ่งจะบอกกับทุกคนว่าต้องทำอย่างไรกับสิ่งของเหล่านั้น
- ก่อนที่จะไปไกลกว่านี้มีข้อให้จำไว้ข้อนึง คือ เส้นทางการไหลของข้อมูลจะสวนทางกับ เส้นทางของ Routing เสมอ: Data จะส่งจากต้นทางไปยังปลายทาง ส่วน Routing จะส่งจากปลายทางมาต้นทาง
- MPLS เกิดจากการนำเอา 2 Technology มาผสมกัน คือ IP Routing ของ Router และ CEF ของ Switch จึงกล่าวได้ว่าอยู่ใน Layer 2.5
- หลายๆ คนอาจจะเคยได้ยินแต่ MPLS VPNs แต่จริงๆ แล้วมันเป็นแค่ Application นึงของ MPLS แค่นั้น ช่วยสร้างความเป็น Private รองรับ Multicast, QoS, Telephony, ฯ
- MPLS ยังสามารถทำประโยชน์อย่างอื่นได้อีก เช่น:
- Unicast IP Routing ทดแทนการใช้ Routing Table โดยใช้ Label
- Multicast IP Routing
- Traffic Engineering ควบคุม Traffic Flow
- Fast Re-route
- VPNs Over Traffic Engineered Core
- QoS สร้างระดับการให้บริการที่หลากหลาย
- AToM ย่อมาจาก Any Transport over MPLS คือการเอาเครือข่ายหลายๆ แบบ เช่น Frame Relay, ATM, Ethernet มารวมกัน โดยให้มาวิ่งอยู่บน MPLS ประโยชน์ก็คือสร้างแค่เครือข่ายเดียว แต่ให้บริการได้ครอบคลุมทั้งหมด (อเนกประสงค์ว่างั้น) สามารถขายบริการใดๆ ก็ได้ เช่น Virtual Leased Circuit, Frame Relay, ATM, Transparent LAN Service หรือ IP VPN
- MPLS Forwarding เป็นระบบ Connection-oriented
- MPLS แบ่งเป็น 2 กลุ่ม:
- Frame-mode MPLS แบบนี้ Label จะถูกแทรกเข้าไประหว่าง Layer 2 และ Layer 3 Header ถูกเรียกว่า Shim Header และมีได้มากกว่า 1 Label
- Cell-mode MPLS ก็คือ Run MPLS บนเครือข่าย ATM จะแปลง ATM เป็น Router เลย ทำให้มันเข้าใจ MPLS Label จะใช้ Field ใน ATM Header เป็น Label
- Packet ที่มี Label มากกว่า 1 จะถูกซ้อน Label กันเป็น Stack มี 2 แบบ:
- Outer Label จะอยู่นอกสุด ใช้สำหรับ Switching Packet ในเครือข่าย MPLS เช่น Traffic Engineering
- Inner Label อยู่ภายใน จะนำไปใช้ในการกำหนดบริการต่างๆ เช่น VPNs, Fast Re-route, Alternate Forwarding
- กระบวนการของ packet ที่อยู่ในเครือข่าย MPLS มี 3 ขั้นตอน:
- Insert/Impose/Push แปะ Label เข้าไป ทำให้ Packet ธรรมดากลายเป็น Labeled Packet
- Swap ถอด Label ของเพื่อนบ้านออก แล้วแปะอันใหม่ของตัวเองเข้าไป
- Remove/Pop ถอด Label ออกให้กลายเป็น Packet ธรรมดา ออกไปนอกเครือข่าย MPLS
