โปรโตคอลข้อมูลเส้นทาง
| ชุดโปรโตคอลอินเทอร์เน็ต |
|---|
| ชั้นแอปพลิเคชัน |
| ชั้นการขนส่ง |
| ชั้นอินเทอร์เน็ต |
| เลเยอร์เชื่อมโยง |
โปรโตคอลข้อมูลการกำหนดเส้นทาง ( RIP ) เป็นหนึ่งในโปรโตคอลการกำหนดเส้นทางแบบเวกเตอร์ระยะทาง ที่เก่าแก่ที่สุด ซึ่งใช้จำนวนฮอปเป็นตัวชี้วัดการกำหนดเส้นทาง RIP ป้องกันลูปการกำหนดเส้นทางโดยการจำกัดจำนวนฮอปที่อนุญาตในเส้นทางจากต้นทางไปยังปลายทาง จำนวนฮอปสูงสุดที่อนุญาตสำหรับ RIP คือ 15 ซึ่งจำกัดขนาดของเครือข่ายที่ RIP สามารถรองรับได้
RIP ใช้กลไกการแบ่งช่วงเวลา (split horizon) , การป้องกันการแพร่กระจายข้อมูลเส้นทางที่ไม่ถูกต้อง (route poisoning ) และ การระงับข้อมูล (holddown)เพื่อป้องกันไม่ให้ข้อมูลเส้นทางที่ไม่ถูกต้องถูกส่งต่อไปยังปลายทางอื่น
ใน RIPv1 เราเตอร์จะส่งข้อมูลอัปเดตตารางเส้นทางทุกๆ 30 วินาที ในช่วงแรกๆตารางเส้นทางมีขนาดเล็กพอที่ปริมาณการรับส่งข้อมูลจะไม่มากนัก อย่างไรก็ตาม เมื่อเครือข่ายมีขนาดใหญ่ขึ้น ก็เห็นได้ชัดว่าอาจมีปริมาณการรับส่งข้อมูลมหาศาลเกิดขึ้นทุกๆ 30 วินาที แม้ว่าเราเตอร์จะถูกเริ่มต้นใช้งานในเวลาแบบสุ่มก็ตาม
ในสภาพแวดล้อมเครือข่ายส่วนใหญ่ RIP ไม่ใช่โปรโตคอลการกำหนดเส้นทาง ที่นิยมใช้ เนื่องจากเวลาในการปรับตัวและประสิทธิภาพในการขยายขนาดต่ำกว่าEIGRP , OSPFหรือIS-ISอย่างไรก็ตาม RIP นั้นตั้งค่าได้ง่าย เพราะไม่ต้องการพารามิเตอร์ใดๆ ต่างจากโปรโตคอลอื่นๆ
RIP ใช้User Datagram Protocol (UDP) เป็นโปรโตคอลการขนส่ง และได้รับการกำหนดหมายเลขพอร์ต ที่สงวนไว้ คือ 520 [ 1 ]
การพัฒนาการกำหนดเส้นทางตามเวกเตอร์ระยะทาง
โปรโตคอลการกำหนดเส้นทางแบบเวกเตอร์ระยะทาง ( Distance-Vector Routing Protocols : RIP) ซึ่งอิงตามอัลกอริทึม Bellman–Fordและอัลกอริทึม Ford–Fulkersonเริ่มถูกนำมาใช้ในเครือข่ายข้อมูลเช่นARPANETและCYCLADES ตั้งแต่ปี 1969 เป็นต้นมา โปรโตคอลรุ่นก่อนหน้าของ RIP คือ Gateway Information Protocol (GWINFO) ซึ่งพัฒนาโดย Xeroxในช่วงกลางทศวรรษ 1970 เพื่อใช้ในการกำหนดเส้นทางเครือข่ายทดลองของบริษัท ในฐานะส่วนหนึ่งของ ชุดโปรโตคอล Xerox Network Systems (XNS) GWINFO ได้เปลี่ยนไปเป็น XNS Routing Information Protocol (XNS RIP) ซึ่งต่อมาได้กลายเป็นพื้นฐานของโปรโตคอลการกำหนดเส้นทางยุคแรกๆ เช่นIPX RIP ของNovell , Routing Table Maintenance Protocol (RTMP) ของAppleTalk และ IP RIP ระบบปฏิบัติการ UNIX เวอร์ชัน 4.2BSD ที่วางจำหน่ายโดยBerkeley Software Distribution ในปี 1982 ได้นำ RIP มาใช้ใน daemon ที่กำหนดเส้นทาง (routed daemon ) เวอร์ชัน 4.2BSD ได้รับความนิยมและกลายเป็นพื้นฐานสำหรับ UNIX เวอร์ชันต่อๆ มา ซึ่งนำ RIP มาใช้ในdaemon ที่กำหนดเส้นทางหรือgatedในที่สุด RIP ก็ถูกนำไปใช้งานอย่างกว้างขวาง[ 2 ]ก่อนที่มาตรฐานที่เขียนโดย Charles Hedrick จะได้รับการอนุมัติเป็น RIPv1 ในปี 1988 [ 3 ]
จำนวน RIP hop
เมตริกการกำหนดเส้นทางที่ใช้โดย RIP จะนับจำนวนเราเตอร์ที่ต้องผ่านเพื่อไปยังเครือข่าย IP ปลายทาง จำนวนฮอป 0 หมายถึงเครือข่ายที่เชื่อมต่อกับเราเตอร์โดยตรง จำนวนฮอป 16 หมายถึงเครือข่ายที่ไม่สามารถเข้าถึงได้ ตามขีดจำกัดฮอปของ RIP [ 4 ]
เวอร์ชัน
โปรโตคอลข้อมูลการกำหนดเส้นทาง (Routing Information Protocol ) มีสามเวอร์ชันมาตรฐาน ได้แก่RIPv1และRIPv2สำหรับIPv4และRIPngสำหรับIPv6
RIP เวอร์ชัน 1
ข้อกำหนดดั้งเดิมของ RIP ได้รับการเผยแพร่ในปี 1988 [ 3 ]เมื่อเริ่มต้น และทุกๆ 30 วินาทีหลังจากนั้น เราเตอร์ที่มีการใช้งาน RIPv1 จะออกอากาศข้อความร้องขอไปยัง255.255.255.255 ผ่านอินเทอร์เฟซที่เปิดใช้งาน RIPv1 ทุกตัว เราเตอร์ข้างเคียงที่ได้รับข้อความร้องขอจะตอบกลับด้วยเซ็กเมนต์ RIPv1 ที่มี ตารางเส้นทางของตน เราเตอร์ที่ร้องขอจะอัปเดตตารางเส้นทางของตนเองด้วยที่อยู่เครือข่าย IP ที่เข้าถึงได้ จำนวนฮอป และฮอปถัดไป ซึ่งก็คือที่อยู่ IP ของอินเทอร์เฟซเราเตอร์ที่ส่งการตอบกลับ RIPv1 ออกไป เมื่อเราเตอร์ที่ร้องขอได้รับการอัปเดตจากเราเตอร์ข้างเคียงต่างๆ มันจะอัปเดตเฉพาะเครือข่ายที่เข้าถึงได้ในตารางเส้นทางของมัน หากมันได้รับข้อมูลเกี่ยวกับเครือข่ายที่เข้าถึงได้ซึ่งยังไม่มีอยู่ในตารางเส้นทาง หรือข้อมูลว่าเครือข่ายที่มีอยู่ในตารางเส้นทางนั้นสามารถเข้าถึงได้ด้วยจำนวนฮอปที่ต่ำกว่า ดังนั้น ในกรณีส่วนใหญ่ เราเตอร์ RIPv1 จะมีรายการเดียวสำหรับเครือข่ายที่เข้าถึงได้ ซึ่งเป็นเครือข่ายที่มีจำนวนฮอปต่ำที่สุด หากเราเตอร์ได้รับข้อมูลจากเราเตอร์ข้างเคียงสองตัวที่แตกต่างกันว่าเครือข่ายเดียวกันสามารถเข้าถึงได้ด้วยจำนวนฮอปเท่ากัน แต่ผ่านเส้นทางที่แตกต่างกันสองเส้นทาง เครือข่ายนั้นจะถูกป้อนลงในตารางการกำหนดเส้นทางสองครั้งด้วยเราเตอร์ฮอปถัดไปที่แตกต่างกัน จากนั้นเราเตอร์ที่เปิดใช้งาน RIPv1 จะทำการกระจายโหลดแบบต้นทุนเท่ากันสำหรับแพ็กเก็ต IP [ 4 ]
เราเตอร์ที่เปิดใช้งาน RIPv1 ไม่เพียงแต่ร้องขอตารางเส้นทางของเราเตอร์อื่นทุกๆ 30 วินาทีเท่านั้น แต่ยังรับฟังคำขอขาเข้าจากเราเตอร์ข้างเคียงและส่งตารางเส้นทางของตนเองกลับมาด้วย ดังนั้น ตารางเส้นทาง RIPv1 จึงได้รับการอัปเดตทุกๆ 25 ถึง 35 วินาที[ 4 ]โปรโตคอล RIPv1 เพิ่มตัวแปรเวลาแบบสุ่มเล็กน้อยให้กับเวลาการอัปเดต เพื่อหลีกเลี่ยงการซิงโครไนซ์ตารางเส้นทางข้าม LAN [ 5 ]เดิมทีคิดว่าเนื่องจากการเริ่มต้นแบบสุ่ม การอัปเดตเส้นทางจะกระจายออกไปตามเวลา แต่ในทางปฏิบัติแล้วไม่เป็นเช่นนั้น Sally Floyd และVan Jacobsonแสดงให้เห็นในปี 1994 ว่า หากไม่มีการสุ่มเล็กน้อยของตัวจับเวลาการอัปเดต ตัวจับเวลาจะซิงโครไนซ์กันเมื่อเวลาผ่านไป[ 6 ]
RIPv1 สามารถกำหนดค่าเป็นโหมดเงียบได้ เพื่อให้เราเตอร์ร้องขอและประมวลผลตารางเส้นทางของเครือข่ายข้างเคียง และรักษาตารางเส้นทางและจำนวนฮอปสำหรับเครือข่ายที่เข้าถึงได้ให้เป็นปัจจุบัน แต่จะไม่ส่งตารางเส้นทางของตนเองไปยังเครือข่ายโดยไม่จำเป็น โหมดเงียบมักถูกนำไปใช้กับโฮสต์[ 7 ]
RIPv1 ใช้ การกำหนดเส้นทาง แบบคลาสฟูล (classful routing) การอัปเดตเส้นทางเป็นระยะๆ ไม่ได้ส่งข้อมูลซับเน็ตไป ด้วย ทำให้ขาดการรองรับ ซับเน็ตมาสก์ที่มีความยาวแปรผัน (VLSM) ข้อจำกัดนี้ทำให้ไม่สามารถมีซับเน็ตที่ มีขนาดแตกต่างกัน ภายในคลาสเครือข่าย เดียวกัน ได้ กล่าวคือ ซับเน็ตทั้งหมดในคลาสเครือข่ายต้องมีขนาดเท่ากัน นอกจากนี้ยังไม่มีการรองรับการตรวจสอบสิทธิ์เราเตอร์ ทำให้ RIP มีความเสี่ยงต่อการโจมตีต่างๆ
RIP เวอร์ชัน 2
เนื่องจากข้อบกพร่องของข้อกำหนด RIP ดั้งเดิม RIP เวอร์ชัน 2 (RIPv2) จึงได้รับการพัฒนาขึ้นในปี 1993 [ 4 ]เผยแพร่ในปี 1994 [ 8 ]และประกาศเป็นมาตรฐานอินเทอร์เน็ต 56 ในปี 1998 [ 9 ]ซึ่งรวมถึงความสามารถในการส่งข้อมูลซับเน็ต จึงรองรับการกำหนดเส้นทางระหว่างโดเมนแบบไม่มีคลาส (CIDR) เพื่อรักษาความเข้ากันได้กับเวอร์ชันก่อนหน้าขีดจำกัดจำนวนฮอปที่ 15 จึงยังคงอยู่ RIPv2 มีสิ่งอำนวยความสะดวกเพื่อให้สามารถทำงานร่วมกับข้อกำหนดก่อนหน้าได้อย่างสมบูรณ์ หาก ฟิลด์โปรโตคอล Must Be Zero ทั้งหมด ในข้อความ RIPv1 ได้รับการระบุอย่างถูกต้อง นอกจากนี้คุณสมบัติสวิตช์ความเข้ากันได้[ 9 ]ยังช่วยให้สามารถปรับการทำงานร่วมกันได้อย่างละเอียด
เพื่อหลีกเลี่ยงภาระที่ไม่จำเป็นต่อโฮสต์ที่ไม่เกี่ยวข้องกับการกำหนดเส้นทาง RIPv2 จึงส่งตารางเส้นทางทั้งหมด แบบมัลติแคสต์ไปยังเราเตอร์ที่อยู่ติดกันทั้งหมดที่อยู่ IP 224.0.0.9ซึ่งแตกต่างจาก RIPv1 ที่ใช้การบรอดแคสต์อย่างไรก็ตาม การกำหนดแอดเดรส แบบยูนิแคสต์ยังคงได้รับอนุญาตสำหรับแอปพลิเคชันพิเศษบางอย่าง
การตรวจสอบความถูกต้อง ( MD5 ) สำหรับ RIP ได้รับการแนะนำในปี พ.ศ. 2540 [ 10 ] [ 11 ]
ใน RIP เวอร์ชัน 2 ได้มีการเพิ่มแท็กเส้นทางเข้ามาด้วย ฟังก์ชันนี้ช่วยให้สามารถแยกแยะความแตกต่างระหว่างเส้นทางที่เรียนรู้จากโปรโตคอล RIP และเส้นทางที่เรียนรู้จากโปรโตคอลอื่นๆ ได้
ริปง
RIPng (RIP รุ่นต่อไป) เป็นส่วนขยายของ RIPv2 เพื่อรองรับIPv6ซึ่ง เป็น โปรโตคอลอินเทอร์เน็ตรุ่นต่อไป[ 12 ]ความแตกต่างหลักระหว่าง RIPv2 และ RIPng คือ:
- รองรับระบบเครือข่าย IPv6
- ในขณะที่ RIPv2 รองรับการอัปเดตการตรวจสอบสิทธิ์ของ RIPv1 แต่ RIPng ไม่รองรับ ในขณะนั้น เราเตอร์ IPv6 ควรใช้IPsecสำหรับการตรวจสอบสิทธิ์
- RIPv2 เข้ารหัส next-hop ลงในแต่ละรายการเส้นทาง ในขณะที่ RIPng ต้องการการเข้ารหัส next-hop เฉพาะสำหรับชุดรายการเส้นทาง
RIPng ส่งข้อมูลอัปเดตผ่านพอร์ต UDP 521 โดยใช้กลุ่มมัลติแคสต์ff02:: 9
ข้อความ RIP ระหว่างเราเตอร์
ข้อความ RIP ใช้โปรโตคอล User Datagramบนพอร์ต 520 และข้อความ RIP ทั้งหมดที่แลกเปลี่ยนระหว่างเราเตอร์จะถูกห่อหุ้มด้วย UDP datagram [ 4 ]
ข้อความ RIPv1
RIP ได้กำหนดประเภทของข้อความไว้ 2 ประเภท:
- ข้อความร้องขอ
- การขอให้เราเตอร์ข้างเคียงที่เปิดใช้งาน RIPv1 ส่งตารางเส้นทางมาให้
- ข้อความตอบกลับ
- เก็บข้อมูลตารางการกำหนดเส้นทางของเราเตอร์
ตัวจับเวลา
โปรโตคอลข้อมูลการกำหนดเส้นทางใช้ตัวจับเวลาต่อไปนี้เป็นส่วนหนึ่งของการทำงาน: [ 13 ]
- ตัวจับเวลาอัปเดต
- ควบคุมช่วงเวลาระหว่างข้อความตอบกลับที่ไม่จำเป็นสองข้อความ โดยค่าเริ่มต้นคือ 30 วินาที ข้อความตอบกลับจะออกอากาศไปยังอินเทอร์เฟซที่เปิดใช้งาน RIP ทั้งหมด[ 13 ]
- ตัวจับเวลาไม่ถูกต้อง
- ตัวจับเวลาที่ไม่ถูกต้องจะระบุระยะเวลาที่รายการกำหนดเส้นทางสามารถอยู่ในตารางกำหนดเส้นทางได้โดยไม่ต้องอัปเดต เรียกอีกอย่างว่าตัวจับเวลาหมดอายุ โดยค่าเริ่มต้นคือ 180 วินาที หลังจากตัวจับเวลาหมดอายุ จำนวนฮอปของรายการกำหนดเส้นทางจะถูกตั้งค่าเป็น 16 ซึ่งทำเครื่องหมายปลายทางว่าไม่สามารถเข้าถึงได้[ 13 ]
- ตัวตั้งเวลาชักโครก
- ตัวจับเวลาการล้างจะควบคุมเวลาระหว่างเส้นทางถูกทำให้เป็นโมฆะหรือถูกทำเครื่องหมายว่าไม่สามารถเข้าถึงได้และการลบรายการออกจากตารางการกำหนดเส้นทาง โดยค่าเริ่มต้นคือ 240 วินาที ซึ่งนานกว่าตัวจับเวลาที่ไม่ถูกต้อง 60 วินาที ดังนั้นเราเตอร์จะโฆษณาเส้นทางที่ไม่สามารถเข้าถึงได้นี้ไปยังเพื่อนบ้านทั้งหมดเป็นเวลา 60 วินาที ตัวจับเวลานี้ต้องตั้งค่าให้มีค่าสูงกว่าตัวจับเวลาที่ไม่ถูกต้อง[ 13 ]
- ตัวจับเวลาแบบกดค้าง
- ตัวจับเวลาการหยุดทำงานจะเริ่มทำงานต่อรายการเส้นทาง เมื่อจำนวนฮอปเปลี่ยนจากค่าต่ำไปเป็นค่าสูง ซึ่งจะทำให้เส้นทางมีเสถียรภาพ ในระหว่างนี้จะไม่สามารถอัปเดตรายการเส้นทางนั้นได้ นี่ไม่ใช่ส่วนหนึ่งของ RFC 1058 นี่คือ การใช้งาน ของ Ciscoค่าเริ่มต้นของตัวจับเวลานี้คือ 180 วินาที[ 13 ]
ข้อจำกัด
- จำนวนฮอปต้องไม่เกิน 15 มิฉะนั้นเส้นทางจะถูกตัดทิ้ง
- RIP เวอร์ชัน 1 (ซึ่งล้าสมัยแล้ว) ไม่รองรับมาสก์ซับเน็ตที่มีความยาวแปรผันได้
- RIP มีการบรรจบกันช้าและ มี ปัญหาการนับไปจนถึงอนันต์[ 14 ]
การนำไปใช้
- Cisco IOSคือซอฟต์แวร์ที่ใช้ในเราเตอร์ของ Cisco (รองรับเวอร์ชัน 1, เวอร์ชัน 2 และ RIPng)
- ซอฟต์แวร์ Cisco NX-OS ที่ใช้ในสวิตช์ศูนย์ข้อมูล Cisco Nexus (รองรับ RIPv2 เท่านั้น[ 15 ] )
- ซอฟต์แวร์ Junosที่ใช้ในเราเตอร์ สวิตช์ และไฟร์วอลล์ของ Juniper (รองรับ RIPv1 และ RIPv2)
- Routing and Remote Access ซึ่ง เป็นคุณสมบัติของ Windows Server นั้น รองรับ RIP (Rooting and Remote Access)
- Quaggaคือ ชุด ซอฟต์แวร์กำหนดเส้นทางแบบโอเพนซอร์สฟรี ที่ใช้GNU Zebra เป็นพื้นฐาน
- BIRDคือชุดซอฟต์แวร์กำหนดเส้นทางแบบโอเพนซอร์สฟรี
- Zeroshellคือชุดซอฟต์แวร์กำหนดเส้นทางแบบโอเพนซอร์สฟรี
- การใช้งาน RIP ที่นำเสนอครั้งแรกใน4.2BSD ที่มีการกำหนดเส้นทาง ยังคงมีอยู่ใน ระบบรุ่นต่อๆ มาหลายระบบ รวมถึงFreeBSD [ 16 ]และNetBSD [ 17 ]
- OpenBSDได้นำการใช้งานใหม่ ripd มาใช้ในเวอร์ชัน 4.1 [ 18 ]และเลิกใช้ routed ในเวอร์ชัน 4.4
- เราเตอร์ Netgearมักเสนอตัวเลือกการใช้งาน RIPv2 สองแบบ[ 19 ]ซึ่งเรียกว่า RIP_2M และ RIP_2B RIP_2M เป็นการใช้งาน RIPv2 มาตรฐานโดยใช้มัลติแคสติ้ง ซึ่งต้องใช้เราเตอร์ทั้งหมดในเครือข่ายเพื่อรองรับ RIPv2 และมัลติแคสติ้ง ในขณะที่ RIP_2B ส่งแพ็กเก็ต RIPv2 โดยใช้การออกอากาศซับเน็ต ทำให้เข้ากันได้กับเราเตอร์ที่ไม่รองรับมัลติแคสติ้งมากขึ้น รวมถึงเราเตอร์ RIPv1 ด้วย
- เราเตอร์ Huawei HG633 ADSL/VDSL รองรับการกำหนดเส้นทางแบบพาสซีฟและแอคทีฟด้วย RIP v1 และ v2 ทั้งฝั่ง LAN และ WAN
โปรโตคอลที่คล้ายกัน
โปรโตคอล Interior Gateway Routing Protocol (IGRP) ซึ่งเป็นโปรโตคอล เฉพาะของซิสโก้มีความสามารถมากกว่า RIP เล็กน้อย โดยจัดอยู่ในตระกูลเดียวกันกับโปรโตคอลการกำหนดเส้นทางแบบเวกเตอร์ระยะทาง (distance-vector routing protocols )
Cisco ได้ยุติการสนับสนุนและการแจกจ่าย IGRP ในซอฟต์แวร์เราเตอร์ของตนแล้ว โดยได้แทนที่ด้วยEnhanced Interior Gateway Routing Protocol (EIGRP) ซึ่งเป็นการออกแบบใหม่ทั้งหมด แม้ว่า EIGRP ยังคงใช้โมเดลเวกเตอร์ระยะทาง แต่ก็มีความเกี่ยวข้องกับ IGRP เพียงแค่การใช้เมตริกการกำหนด เส้นทางแบบผสมเดียวกันเท่านั้น ทั้ง IGRP และ EIGRP คำนวณเมตริกแบบผสมเดียวสำหรับแต่ละเส้นทางจากสูตรของตัวแปรห้าตัว ได้แก่แบนด์วิดท์ดีเลย์ความน่าเชื่อถือโหลดและMTUอย่างไรก็ตาม ในเราเตอร์ของ Cisco โดยค่าเริ่มต้น จะใช้เพียงแบนด์วิดท์และดีเลย์ในการคำนวณนี้เท่านั้น
ดูเพิ่มเติม
อ่านเพิ่มเติม
- มัลกิน, แกรี่ สก็อตต์ (2000). RIP: โปรโตคอลการกำหนดเส้นทางภายในโดเมน . แอดดิสัน-เวสลีย์ ลองแมน. ISBN 0-201-43320-6.
- เอ็ดเวิร์ด เอ. แทฟต์, โปรโตคอลข้อมูลเกตเวย์ (ฉบับปรับปรุง) (ซีร็อกซ์ พาร์ค, พาโล อัลโต, พฤษภาคม 1979)
- มาตรฐานการบูรณาการระบบของซีร็อกซ์ - โปรโตคอลการขนส่งทางอินเทอร์เน็ต (ซีร็อกซ์, สแตมฟอร์ด, 1981)