วิธีการทำงานของโปรโตคอล PIM

โปรโตคอล PIM คือชุดของโปรโตคอลสำหรับการส่งมัลติคาสต์ในเครือข่ายระหว่างเราเตอร์ ความสัมพันธ์ในบริเวณใกล้เคียงถูกสร้างขึ้นในลักษณะเดียวกับในกรณีของโปรโตคอลการกำหนดเส้นทางแบบไดนามิก PIMv2 ส่งข้อความ Hello ทุก ๆ 30 วินาทีไปยังที่อยู่มัลติคาสต์ที่สงวนไว้ 224.0.0.13 (All-PIM-Routers) ข้อความประกอบด้วย Hold Timers - โดยปกติจะเท่ากับ 3.5*Hello Timer ซึ่งก็คือ 105 วินาทีตามค่าเริ่มต้น
วิธีการทำงานของโปรโตคอล PIM
PIM ใช้โหมดการทำงานหลักสองโหมด - โหมดหนาแน่นและโหมดเบาบาง มาเริ่มกันที่โหมดหนาแน่น
แผนผังการกระจายตามแหล่งที่มา
ขอแนะนำให้ใช้โหมดโหมดหนาแน่นในกรณีที่มีไคลเอนต์จำนวนมากในกลุ่มมัลติคาสต์ที่แตกต่างกัน เมื่อเราเตอร์ได้รับการรับส่งข้อมูลแบบหลายผู้รับ สิ่งแรกที่เราเตอร์ทำคือตรวจสอบกฎ RPF RPF - กฎนี้ใช้เพื่อตรวจสอบแหล่งที่มาของมัลติคาสต์ด้วยตารางเส้นทางแบบผู้รับเดียว จำเป็นที่การรับส่งข้อมูลจะมาถึงอินเทอร์เฟซด้านหลังซึ่งโฮสต์นี้ถูกซ่อนไว้ตามเวอร์ชันของตารางเส้นทางแบบผู้รับเดียว กลไกนี้แก้ปัญหาการวนซ้ำที่เกิดขึ้นระหว่างการส่งข้อมูลแบบหลายผู้รับ
วิธีการทำงานของโปรโตคอล PIM
R3 จะจดจำแหล่งมัลติคาสต์ (Source IP) จากข้อความมัลติคาสต์ และตรวจสอบโฟลว์ทั้งสองจาก R1 และ R2 โดยใช้ตารางยูนิคาสต์ สตรีมจากอินเทอร์เฟซที่ตารางชี้ไป (R1 ถึง R3) จะถูกส่งต่อไป และสตรีมจาก R2 จะลดลง เนื่องจากในการที่จะไปยังแหล่งมัลติคาสต์ คุณจะต้องส่งแพ็กเก็ตผ่าน S0/1
คำถามคือ จะเกิดอะไรขึ้นถ้าคุณมีสองเส้นทางที่เทียบเท่ากันและมีเมตริกเดียวกัน ในกรณีนี้ เราเตอร์จะเลือกฮอปถัดไปจากเส้นทางเหล่านี้ ใครก็ตามที่มีที่อยู่ IP สูงกว่าจะเป็นผู้ชนะ หากคุณต้องการเปลี่ยนลักษณะการทำงานนี้ คุณสามารถใช้ ECMP ได้ รายละเอียดเพิ่มเติม ที่นี่.
หลังจากตรวจสอบกฎ RPF แล้ว เราเตอร์จะส่งแพ็กเก็ตแบบหลายผู้รับไปยังเพื่อนบ้าน PIM ทั้งหมด ยกเว้นเพื่อนบ้านที่ได้รับแพ็กเก็ตนั้น เราเตอร์ PIM อื่นๆ ทำซ้ำขั้นตอนนี้ เส้นทางที่แพ็กเก็ตแบบหลายผู้รับนำมาจากต้นทางไปยังผู้รับขั้นสุดท้ายจะสร้างแผนผังที่เรียกว่าแผนผังการแจกจ่ายตามแหล่งที่มา แผนผังเส้นทางที่สั้นที่สุด (SPT) แผนผังต้นทาง สามชื่อที่แตกต่างกัน เลือกชื่อใดชื่อหนึ่ง
วิธีแก้ปัญหาที่เราเตอร์บางตัวไม่ยอมแพ้กับสตรีมมัลติคาสต์บางรายการและไม่มีใครส่งไปให้ แต่เราเตอร์อัปสตรีมส่งมาให้เขา กลไกลูกพรุนถูกประดิษฐ์ขึ้นเพื่อสิ่งนี้
ข้อความพรุน.
ตัวอย่างเช่น R2 จะส่งมัลติคาสต์ไปยัง R3 ต่อไป แม้ว่า R3 ตามกฎ RPF จะปล่อยไว้ก็ตาม ทำไมต้องโหลดช่อง? R3 ส่งข้อความ PIM Prune และ R2 เมื่อได้รับข้อความนี้ จะลบอินเทอร์เฟซ S0/1 ออกจากรายการอินเทอร์เฟซขาออกสำหรับโฟลว์นี้ ซึ่งเป็นรายการอินเทอร์เฟซที่ควรส่งการรับส่งข้อมูลนี้

ต่อไปนี้เป็นคำจำกัดความที่เป็นทางการมากขึ้นของข้อความ PIM Prune:
ข้อความ PIM Prune ถูกส่งโดยเราเตอร์ตัวหนึ่งไปยังเราเตอร์ตัวที่สอง เพื่อให้เราเตอร์ตัวที่สองลบลิงก์ที่ได้รับ Prune จาก SPT เฉพาะ (S,G)

หลังจากได้รับข้อความ Prune แล้ว R2 จะตั้งเวลา Prune เป็น 3 นาที หลังจากผ่านไปสามนาที มันจะเริ่มส่งทราฟฟิกอีกครั้งจนกว่าจะได้รับข้อความ Prune อีกครั้ง นี่คือใน PIMv1
และใน PIMv2 มีการเพิ่มตัวจับเวลาการรีเฟรชสถานะ (60 วินาทีโดยค่าเริ่มต้น) ทันทีที่มีการส่งข้อความ Prune จาก R3 ตัวจับเวลานี้จะเริ่มต้นที่ R3 เมื่อตัวจับเวลานี้หมดอายุ R3 จะส่งข้อความ State Refresh ซึ่งจะรีเซ็ตตัวจับเวลา Prune 3 นาทีบน R2 สำหรับกลุ่มนี้
เหตุผลในการส่งข้อความพรุน:

  • เมื่อแพ็กเก็ตมัลติคาสต์ล้มเหลวในการตรวจสอบ RPF
  • เมื่อไม่มีไคลเอนต์ที่เชื่อมต่อในพื้นที่ที่ร้องขอกลุ่มมัลติคาสต์ (IGMP เข้าร่วม) และไม่มีเพื่อนบ้าน PIM ที่สามารถส่งทราฟฟิกมัลติคาสต์ไปได้ (อินเทอร์เฟซที่ไม่ใช่พรุน)

ข้อความการรับสินบน
ลองจินตนาการว่า R3 ไม่ต้องการการรับส่งข้อมูลจาก R2 ส่ง Prune และรับมัลติคาสต์จาก R1 แต่ทันใดนั้นช่องระหว่าง R1-R3 ก็ลดลงและ R3 ก็ถูกทิ้งไว้โดยไม่มีมัลติคาสต์ คุณสามารถรอ 3 นาทีจนกว่า Prune Timer บน R2 จะหมดอายุ 3 นาทีถือเป็นการรอที่ยาวนาน ดังนั้นเพื่อไม่ให้รอ คุณต้องส่งข้อความที่จะนำอินเทอร์เฟซ S0/1 นี้ไปยัง R2 ออกจากสถานะถูกตัดทันที ข้อความนี้จะเป็นข้อความการรับสินบน หลังจากได้รับข้อความ Graft แล้ว R2 จะตอบกลับด้วย Graft-ACK
ลูกพรุนแทนที่
วิธีการทำงานของโปรโตคอล PIM
ลองดูแผนภาพนี้ R1 ออกอากาศมัลติคาสต์ไปยังเซ็กเมนต์ด้วยเราเตอร์สองตัว R3 รับและออกอากาศการรับส่งข้อมูล R2 ได้รับ แต่ไม่มีผู้ใดถ่ายทอดการรับส่งข้อมูลไป มันจะส่งข้อความ Prune ไปที่ R1 ในส่วนนี้ R1 ควรลบ Fa0/0 ออกจากรายการและหยุดการออกอากาศในส่วนนี้ แต่จะเกิดอะไรขึ้นกับ R3 และ R3 ก็อยู่ใน Segment เดียวกัน ได้รับข้อความนี้จาก Prune และเข้าใจถึงโศกนาฏกรรมของสถานการณ์นี้ด้วย ก่อนที่ R1 จะหยุดออกอากาศ มันจะตั้งเวลาไว้ 3 วินาที และจะหยุดออกอากาศหลังจากผ่านไป 3 วินาที 3 วินาที - นี่คือระยะเวลาที่ R3 มีเพื่อไม่ให้สูญเสียมัลติคาสต์ ดังนั้น R3 จึงส่งข้อความ Pim Join ให้กับกลุ่มนี้โดยเร็วที่สุด และ R1 ไม่คิดจะหยุดออกอากาศอีกต่อไป เกี่ยวกับเข้าร่วมข้อความด้านล่าง
ยืนยันข้อความ
วิธีการทำงานของโปรโตคอล PIM
ลองจินตนาการถึงสถานการณ์นี้: เราเตอร์สองตัวออกอากาศไปยังเครือข่ายเดียวพร้อมกัน พวกเขาได้รับสตรีมเดียวกันจากแหล่งที่มา และทั้งสองออกอากาศไปยังเครือข่ายเดียวกันด้านหลังอินเทอร์เฟซ e0 ดังนั้นพวกเขาจึงต้องพิจารณาว่าใครจะเป็นผู้แพร่ภาพกระจายเสียงเพียงรายเดียวสำหรับเครือข่ายนี้ ข้อความยืนยันใช้สำหรับสิ่งนี้ เมื่อ R2 และ R3 ตรวจพบความซ้ำซ้อนของการรับส่งข้อมูลแบบหลายผู้รับ นั่นคือ R2 และ R3 ได้รับมัลติคาสต์ที่ออกอากาศเอง เราเตอร์จะเข้าใจว่ามีบางอย่างผิดปกติที่นี่ ในกรณีนี้เราเตอร์จะส่งข้อความ Assert ซึ่งรวมถึง Administrative Distance และเมตริกเส้นทางที่เข้าถึงแหล่งมัลติคาสต์ - 10.1.1.10 ผู้ชนะจะถูกกำหนดดังนี้:

  1. อันที่มีค่า AD ต่ำกว่า
  2. ถ้า AD เท่ากัน แล้วใครมีเมตริกต่ำกว่า
  3. หากมีความเท่าเทียมกันแสดงว่าผู้ที่มี IP สูงกว่าในเครือข่ายที่พวกเขาออกอากาศมัลติคาสต์นี้

ผู้ชนะการโหวตนี้จะกลายเป็นเราเตอร์ที่กำหนด Pim Hello ยังใช้เพื่อเลือก DR อีกด้วย ในตอนต้นของบทความ ข้อความ PIM Hello ปรากฏขึ้น คุณจะเห็นช่อง DR อยู่ที่นั่น ผู้ที่มีที่อยู่ IP สูงสุดในลิงค์นี้จะเป็นผู้ชนะ
สัญญาณที่เป็นประโยชน์:
วิธีการทำงานของโปรโตคอล PIM
โต๊ะ มรูท
หลังจากดูเบื้องต้นว่าโปรโตคอล PIM ทำงานอย่างไร เราจำเป็นต้องเข้าใจวิธีทำงานกับตารางเส้นทางแบบหลายผู้รับ ตาราง mroute เก็บข้อมูลว่าสตรีมใดได้รับการร้องขอจากไคลเอนต์ และสตรีมใดที่ไหลจากเซิร์ฟเวอร์มัลติคาสต์
ตัวอย่างเช่น เมื่อได้รับรายงานการเป็นสมาชิก IGMP หรือ PIM Join บนอินเทอร์เฟซบางส่วน บันทึกประเภท ( *, G ) จะถูกเพิ่มลงในตารางเส้นทาง:
วิธีการทำงานของโปรโตคอล PIM
รายการนี้หมายความว่าได้รับคำขอการรับส่งข้อมูลด้วยที่อยู่ 238.38.38.38 ธง DC หมายความว่ามัลติคาสต์จะทำงานในโหมด Dense และ C หมายความว่าผู้รับเชื่อมต่อโดยตรงกับเราเตอร์ นั่นคือเราเตอร์ได้รับรายงานสมาชิก IGMP และ PIM Join
หากมีบันทึกประเภท (S,G) หมายความว่าเรามีสตรีมแบบหลายผู้รับ:
วิธีการทำงานของโปรโตคอล PIM
ในฟิลด์ S - 192.168.1.11 เราได้ลงทะเบียนที่อยู่ IP ของแหล่งมัลติคาสต์ซึ่งจะถูกตรวจสอบโดยกฎ RPF หากเกิดปัญหา สิ่งแรกที่คุณต้องทำคือตรวจสอบตารางยูนิคาสต์เพื่อดูเส้นทางไปยังแหล่งที่มา ในฟิลด์อินเทอร์เฟซขาเข้า ระบุอินเทอร์เฟซที่ได้รับมัลติคาสต์ ในตารางเส้นทางแบบผู้รับเดียว เส้นทางไปยังต้นทางต้องอ้างอิงถึงอินเทอร์เฟซที่ระบุที่นี่ อินเทอร์เฟซขาออกระบุตำแหน่งที่มัลติคาสต์จะถูกเปลี่ยนเส้นทาง หากว่างเปล่า แสดงว่าเราเตอร์ยังไม่ได้รับคำขอใดๆ สำหรับการรับส่งข้อมูลนี้ ข้อมูลเพิ่มเติมเกี่ยวกับธงทั้งหมดสามารถพบได้ ที่นี่.
PIM โหมดกระจัดกระจาย
กลยุทธ์ของโหมด Sparse นั้นตรงกันข้ามกับโหมด Dense เมื่อโหมด Sparse ได้รับการรับส่งข้อมูลแบบหลายผู้รับ ระบบจะส่งเฉพาะการรับส่งข้อมูลผ่านอินเทอร์เฟซที่มีการร้องขอสำหรับโฟลว์นี้ เช่น ข้อความ Pim Join หรือ IGMP Report ที่ร้องขอการรับส่งข้อมูลนี้
องค์ประกอบที่คล้ายกันสำหรับ SM และ DM:

  • ความสัมพันธ์ในละแวกใกล้เคียงถูกสร้างขึ้นในลักษณะเดียวกับใน PIM DM
  • กฎ RPF ใช้งานได้
  • การเลือก DR จะคล้ายกัน
  • กลไกของ Prune Overrides และ Assert Messages มีความคล้ายคลึงกัน

เพื่อควบคุมว่าใคร ที่ไหน และประเภทของการรับส่งข้อมูลแบบหลายผู้รับที่ต้องการบนเครือข่าย จำเป็นต้องมีศูนย์ข้อมูลทั่วไป ศูนย์กลางของเราคือ Rendezvous Point (RP) ใครก็ตามที่ต้องการการรับส่งข้อมูลแบบหลายผู้รับหรือบางคนเริ่มรับการรับส่งข้อมูลแบบหลายผู้รับจากแหล่งที่มา เขาก็จะส่งไปที่ RP
เมื่อ RP ได้รับการรับส่งข้อมูลแบบหลายผู้รับ RP จะส่งไปยังเราเตอร์ที่เคยร้องขอการรับส่งข้อมูลนี้ก่อนหน้านี้
วิธีการทำงานของโปรโตคอล PIM
ลองจินตนาการถึงโทโพโลยีโดยที่ RP คือ R3 ทันทีที่ R1 ได้รับการรับส่งข้อมูลจาก S1 มันจะห่อหุ้มแพ็กเก็ตมัลติคาสต์นี้ไว้ในข้อความ Unicast PIM Register และส่งไปที่ RP เขารู้ได้อย่างไรว่าใครคือ RP? ในกรณีนี้ มีการกำหนดค่าแบบคงที่ และเราจะพูดถึงการกำหนดค่า RP แบบไดนามิกในภายหลัง

ip pim ที่อยู่ rp 3.3.3.3

RP จะดู - มีข้อมูลจากคนที่ต้องการรับการเข้าชมนี้หรือไม่? สมมติว่ามันไม่ใช่ จากนั้น RP จะส่งข้อความ PIM Register-Stop ไปให้ R1 ซึ่งหมายความว่าไม่มีใครต้องการมัลติคาสต์นี้ การลงทะเบียนจะถูกปฏิเสธ R1 จะไม่ส่งมัลติคาสต์ แต่โฮสต์ต้นทางแบบหลายผู้รับจะส่ง ดังนั้น R1 หลังจากได้รับ Register-Stop แล้ว จะเริ่มจับเวลา Register-Suppression เท่ากับ 60 วินาที 5 วินาทีก่อนที่ตัวจับเวลานี้จะหมดเวลา R1 จะส่งข้อความ Register ว่างเปล่าพร้อมบิต Null-Register (นั่นคือ โดยไม่มีแพ็กเก็ตมัลติคาสต์แบบห่อหุ้ม) ไปยัง RP ในทางกลับกัน RP จะทำหน้าที่ดังนี้:

  • หากไม่มีผู้รับ ระบบจะตอบกลับด้วยข้อความ Register-Stop
  • หากผู้รับปรากฏตัวเขาจะไม่ตอบกลับแต่อย่างใด R1 หากไม่ได้รับการปฏิเสธที่จะลงทะเบียนภายใน 5 วินาที จะยินดีและส่งข้อความลงทะเบียนพร้อมมัลติคาสต์แบบห่อหุ้มไปยัง RP

ดูเหมือนว่าเราจะเข้าใจแล้วว่ามัลติคาสต์เข้าถึง RP ได้อย่างไร ตอนนี้เรามาลองตอบคำถามว่า RP ส่งทราฟฟิกไปยังผู้รับได้อย่างไร จำเป็นต้องแนะนำแนวคิดใหม่ที่นี่ - ต้นไม้เส้นทางราก (RPT) RPT เป็นต้นไม้ที่ฝังรากอยู่ใน RP ซึ่งเติบโตไปสู่ผู้รับ โดยแตกแขนงออกไปบนเราเตอร์ PIM-SM แต่ละตัว RP สร้างขึ้นโดยรับข้อความ PIM Join และเพิ่มสาขาใหม่ให้กับแผนผัง เราเตอร์ดาวน์สตรีมทุกตัวก็ทำเช่นนั้น กฎทั่วไปมีลักษณะดังนี้:

  • เมื่อเราเตอร์ PIM-SM ได้รับข้อความ PIM Join บนอินเทอร์เฟซใดๆ นอกเหนือจากอินเทอร์เฟซที่ซ่อน RP ไว้ จะเพิ่มสาขาใหม่ให้กับแผนผัง
  • สาขาจะถูกเพิ่มเมื่อเราเตอร์ PIM-SM ได้รับรายงานสมาชิก IGMP จากโฮสต์ที่เชื่อมต่อโดยตรง

สมมติว่าเรามีไคลเอนต์แบบหลายผู้รับบนเราเตอร์ R5 สำหรับกลุ่ม 228.8.8.8 ทันทีที่ R5 ได้รับ IGMP Membership Report จากโฮสต์ R5 จะส่ง PIM Join ไปในทิศทางของ RP และตัวมันเองจะเพิ่มอินเทอร์เฟซให้กับแผนผังที่ดูที่โฮสต์ ถัดไป R4 รับ PIM Join จาก R5 เพิ่มอินเทอร์เฟซ Gi0/1 ให้กับแผนผัง และส่ง PIM Join ไปในทิศทางของ RP ในที่สุด RP ( R3 ) ได้รับ PIM Join และเพิ่ม Gi0/0 ให้กับแผนผัง ดังนั้นผู้รับมัลติคาสต์จึงถูกลงทะเบียน เรากำลังสร้างต้นไม้ด้วยราก R3-Gi0/0 → R4-Gi0/1 → R5-Gi0/0
หลังจากนี้ PIM Join จะถูกส่งไปยัง R1 และ R1 จะเริ่มส่งทราฟฟิกแบบหลายผู้รับ สิ่งสำคัญคือต้องทราบว่าหากโฮสต์ร้องขอการรับส่งข้อมูลก่อนที่การออกอากาศแบบหลายผู้รับจะเริ่มขึ้น RP จะไม่ส่ง PIM Join และจะไม่ส่งสิ่งใดไปยัง R1 เลย
หากจู่ๆ ในขณะที่มัลติคาสต์ถูกส่ง โฮสต์จะหยุดต้องการรับมัน ทันทีที่ RP ได้รับ PIM Prune บนอินเทอร์เฟซ Gi0/0 มันจะส่ง PIM Register-Stop โดยตรงไปยัง R1 จากนั้น PIM Prune ข้อความผ่านอินเทอร์เฟซ Gi0/1 PIM Register-stop จะถูกส่งผ่าน unicast ไปยังที่อยู่ที่ PIM Register มา
ดังที่เราได้กล่าวไว้ก่อนหน้านี้ ทันทีที่เราเตอร์ส่ง PIM Join ไปยังอีกเครื่องหนึ่ง เช่น R5 ถึง R4 บันทึกจะถูกเพิ่มใน R4:
วิธีการทำงานของโปรโตคอล PIM
และตัวจับเวลาเริ่มต้นขึ้นโดยที่ R5 ต้องรีเซ็ตตัวจับเวลานี้ PIM เข้าร่วมข้อความอย่างต่อเนื่อง มิฉะนั้น R4 จะถูกแยกออกจากรายการขาออก R5 จะส่งข้อความเข้าร่วม PIM ทุก ๆ 60 ข้อความ
การสลับต้นไม้เส้นทางที่สั้นที่สุด
เราจะเพิ่มอินเทอร์เฟซระหว่าง R1 และ R5 และดูว่าการรับส่งข้อมูลด้วยโทโพโลยีนี้เป็นอย่างไร
วิธีการทำงานของโปรโตคอล PIM
สมมติว่าการรับส่งข้อมูลถูกส่งและรับตามรูปแบบเก่า R1-R2-R3-R4-R5 และที่นี่เราเชื่อมต่อและกำหนดค่าอินเทอร์เฟซระหว่าง R1 และ R5
ก่อนอื่น เราต้องสร้างตารางเส้นทาง unicast ใหม่บน R5 และตอนนี้เครือข่าย 192.168.1.0/24 เข้าถึงได้ผ่านอินเทอร์เฟซ R5 Gi0/2 ตอนนี้ R5 ซึ่งรับมัลติคาสต์บนอินเทอร์เฟซ Gi0/1 เข้าใจว่ากฎ RPF ไม่เป็นไปตามกฎ และการรับมัลติคาสต์บน Gi0/2 จะสมเหตุสมผลมากกว่า ควรตัดการเชื่อมต่อจาก RPT และสร้างแผนผังที่สั้นกว่าที่เรียกว่า Shortest-Path Tree (SPT) เมื่อต้องการทำเช่นนี้ เขาส่ง PIM Join ไปที่ R0 ถึง Gi2/1 และ R1 เริ่มส่งมัลติคาสต์ผ่าน Gi0/2 เช่นกัน ตอนนี้ R5 จำเป็นต้องยกเลิกการสมัครจาก RPT เพื่อไม่ให้ได้รับสำเนาสองชุด ในการทำเช่นนี้เขาจะส่งข้อความถึง Prune เพื่อระบุที่อยู่ IP ต้นทางและใส่บิตพิเศษ - RPT-bit ซึ่งหมายความว่าคุณไม่จำเป็นต้องส่งการจราจรมาให้ฉัน ฉันมีต้นไม้ที่ดีกว่าที่นี่ RP ยังส่งข้อความ PIM Prune ไปที่ R1 แต่ไม่ได้ส่งข้อความ Register-Stop คุณสมบัติอื่น: R5 จะส่ง PIM Prune ไปยัง RP อย่างต่อเนื่อง เนื่องจาก R1 ยังคงส่ง PIM Register ไปยัง RP ทุกนาที จนกว่าจะไม่มีคนใหม่ที่ต้องการการรับส่งข้อมูลนี้ RP จะปฏิเสธ R5 แจ้ง RP ว่ายังคงรับมัลติคาสต์ผ่าน SPT
ค้นหา RP แบบไดนามิก
ออโต้-RP

เทคโนโลยีนี้เป็นกรรมสิทธิ์ของ Cisco และไม่ได้รับความนิยมมากนัก แต่ยังมีชีวิตอยู่ การดำเนินการ Auto-RP ประกอบด้วยสองขั้นตอนหลัก:
1) RP ส่งข้อความ RP-Announce ไปยังที่อยู่ที่สงวนไว้ - 224.0.1.39 โดยประกาศตัวเอง RP สำหรับทุกคนหรือสำหรับกลุ่มเฉพาะ ข้อความนี้ถูกส่งทุกนาที
2) จำเป็นต้องมีตัวแทนการแมป RP ซึ่งจะส่งข้อความ RP-Discovery เพื่อระบุว่ากลุ่มใดที่ควรรับฟัง RP จากข้อความนี้ที่เราเตอร์ PIM ปกติจะกำหนด RP ด้วยตนเอง Mapping Agent อาจเป็นได้ทั้งเราเตอร์ RP หรือเราเตอร์ PIM ที่แยกต่างหาก RP-Discovery ถูกส่งไปยังที่อยู่ 224.0.1.40 โดยใช้เวลาหนึ่งนาที
มาดูกระบวนการโดยละเอียดเพิ่มเติม:
มากำหนดค่า R3 เป็น RP:

ip pim send-rp-ประกาศลูปแบ็ค 0 ขอบเขต 10

R2 เป็นตัวแทนการแม็ป:

ip pim send-rp-discovery ลูปแบ็ค 0 ขอบเขต 10

และในส่วนอื่นๆ ทั้งหมด เราจะคาดหวัง RP ผ่าน Auto-RP:

ip pim ผู้ฟัง autorp

เมื่อเรากำหนดค่า R3 แล้ว มันจะเริ่มส่ง RP-Announce:
วิธีการทำงานของโปรโตคอล PIM
และ R2 หลังจากตั้งค่าเอเจนต์การแมปแล้ว จะเริ่มรอข้อความ RP-Announce เมื่อพบอย่างน้อยหนึ่ง RP เท่านั้นที่จะเริ่มส่ง RP-Discovery:
วิธีการทำงานของโปรโตคอล PIM
ด้วยวิธีนี้ ทันทีที่เราเตอร์ทั่วไป (PIM RP Listener) ได้รับข้อความนี้ พวกเขาจะรู้ว่าจะหา RP ได้ที่ไหน
ปัญหาหลักอย่างหนึ่งของ Auto-RP คือเพื่อรับข้อความ RP-Announce และ RP-Discovery คุณต้องส่ง PIM Join ไปยังที่อยู่ 224.0.1.39-40 และเพื่อที่จะส่ง คุณจำเป็นต้องรู้ว่าที่ใด ร.พ.ตั้งอยู่ ปัญหาไก่กับไข่สุดคลาสสิค เพื่อแก้ปัญหานี้ จึงได้คิดค้น PIM Sparse-Dense-Mode หากเราเตอร์ไม่ทราบ RP แสดงว่าเราเตอร์ทำงานในโหมด Dense ถ้าทราบ จะทำงานในโหมด Sparse เมื่อกำหนดค่า PIM Sparse-mode และคำสั่ง ip pim autorp Listener บนอินเทอร์เฟซของเราเตอร์ทั่วไป เราเตอร์จะทำงานในโหมด Dense สำหรับมัลติคาสต์โดยตรงจากโปรโตคอล Auto-RP (224.0.1.39-40) เท่านั้น
เราเตอร์ BootStrap (BSR)
ฟังก์ชั่นนี้ทำงานคล้ายกับ Auto-RP RP แต่ละตัวจะส่งข้อความไปยังเอเจนต์การแมป ซึ่งจะรวบรวมข้อมูลการแมปแล้วแจ้งให้เราเตอร์อื่นๆ ทั้งหมดทราบ เรามาอธิบายกระบวนการคล้ายกับ Auto-RP:
1) เมื่อเรากำหนดค่า R3 เป็นตัวเลือกให้เป็น RP ด้วยคำสั่ง:

ip pim rp-ผู้สมัครย้อนกลับ 0

จากนั้น R3 จะไม่ทำอะไรเลย ในการเริ่มส่งข้อความพิเศษ เขาจำเป็นต้องค้นหาตัวแทนการทำแผนที่ก่อน ดังนั้นเราจึงไปยังขั้นตอนที่สอง
2) กำหนดค่า R2 เป็นตัวแทนการทำแผนที่:

ip pim bsr-ผู้สมัครย้อนกลับ 0

R2 เริ่มส่งข้อความ PIM Bootstrap โดยที่ข้อความระบุว่าตัวเองเป็นตัวแทนการแมป:
วิธีการทำงานของโปรโตคอล PIM
ข้อความนี้ถูกส่งไปยังที่อยู่ 224.0.013 ซึ่งโปรโตคอล PIM ยังใช้สำหรับข้อความอื่นๆ ด้วย มันส่งไปทุกทิศทางจึงไม่มีปัญหาไก่กับไข่เหมือนใน Auto-RP
3) ทันทีที่ RP ได้รับข้อความจากเราเตอร์ BSR มันจะส่งข้อความแบบผู้รับเดียวไปยังที่อยู่เราเตอร์ BSR ทันที:
วิธีการทำงานของโปรโตคอล PIM
หลังจากนั้น BSR เมื่อได้รับข้อมูลเกี่ยวกับ RP จะส่งผ่านมัลติคาสต์ไปยังที่อยู่ 224.0.0.13 ซึ่งเราเตอร์ PIM ทั้งหมดรับฟัง ดังนั้นแบบอะนาล็อกของคำสั่ง ip pim ผู้ฟัง autorp สำหรับเราเตอร์ทั่วไปที่ไม่ได้อยู่ใน BSR
Anycast RP พร้อมด้วย Multicast Source Discovery Protocol (MSDP)
Auto-RP และ BSR ช่วยให้เราสามารถกระจายโหลดบน RP ได้ดังต่อไปนี้: แต่ละกลุ่ม multicast มี RP ที่ใช้งานอยู่เพียงกลุ่มเดียวเท่านั้น จะไม่สามารถกระจายโหลดสำหรับกลุ่มมัลติคาสต์กลุ่มเดียวผ่านหลาย RP ได้ MSDP ทำได้โดยการออกที่อยู่ IP เดียวกันกับเราเตอร์ RP โดยมีมาสก์ 255.255.255.255 MSDP เรียนรู้ข้อมูลโดยใช้วิธีใดวิธีหนึ่ง: คงที่, Auto-RP หรือ BSR
วิธีการทำงานของโปรโตคอล PIM
ในภาพเรามีการกำหนดค่า Auto-RP ด้วย MSDP RP ทั้งสองได้รับการกำหนดค่าด้วยที่อยู่ IP 172.16.1.1/32 บนอินเทอร์เฟซ Loopback 1 และใช้สำหรับทุกกลุ่ม ด้วย RP-Announce เราเตอร์ทั้งสองจะประกาศตัวเองโดยอ้างอิงถึงที่อยู่นี้ เมื่อได้รับข้อมูลแล้ว ตัวแทนการแมป Auto-RP จะส่ง RP-Discovery เกี่ยวกับ RP พร้อมที่อยู่ 172.16.1.1/32 เราบอกเราเตอร์เกี่ยวกับเครือข่าย 172.16.1.1/32 โดยใช้ IGP และตามลำดับ ดังนั้น เราเตอร์ PIM จะร้องขอหรือลงทะเบียนโฟลว์จาก RP ที่ระบุว่าเป็นฮอปถัดไปบนเส้นทางไปยังเครือข่าย 172.16.1.1/32 โปรโตคอล MSDP นั้นได้รับการออกแบบสำหรับ RP เพื่อแลกเปลี่ยนข้อความเกี่ยวกับข้อมูลมัลติคาสต์
พิจารณาโทโพโลยีนี้:
วิธีการทำงานของโปรโตคอล PIM
Switch6 ออกอากาศการรับส่งข้อมูลไปยังที่อยู่ 238.38.38.38 และจนถึงตอนนี้มีเพียง RP-R1 เท่านั้นที่รู้เรื่องนี้ Switch7 และ Switch8 ขอกลุ่มนี้ เราเตอร์ R5 และ R4 จะส่ง PIM Join ไปที่ R1 และ R3 ตามลำดับ ทำไม เส้นทางไปยัง 13.13.13.13 สำหรับ R5 จะอ้างอิงถึง R1 โดยใช้ตัววัด IGP เช่นเดียวกับ R4
RP-R1 รู้เกี่ยวกับสตรีมและจะเริ่มออกอากาศไปยัง R5 แต่ R4 ไม่รู้อะไรเลย เนื่องจาก R1 จะไม่เพียงแค่ส่งมันไป ดังนั้น MSDP จึงเป็นสิ่งจำเป็น เรากำหนดค่าบน R1 และ R5:

ip msdp peer 3.3.3.3 เชื่อมต่อแหล่งที่มา Loopback1 บน R1

ip msdp peer 1.1.1.1 เชื่อมต่อแหล่งที่มา Loopback3 บน R3

พวกเขาจะยกเซสชั่นระหว่างกัน และเมื่อได้รับโฟลว์ใดๆ พวกเขาจะรายงานให้เพื่อนบ้าน RP ทราบ
ทันทีที่ RP-R1 ได้รับสตรีมจาก Switch6 มันจะส่งข้อความ MSDP Source-Active แบบผู้รับเดียวทันที ซึ่งจะมีข้อมูลเช่น (S, G) - ข้อมูลเกี่ยวกับต้นทางและปลายทางของมัลติคาสต์ ตอนนี้ RP-R3 รู้แล้วว่าแหล่งที่มา เช่น Switch6 เมื่อได้รับคำขอจาก R4 สำหรับโฟลว์นี้ จะส่ง PIM Join ไปยัง Switch6 ตามคำแนะนำของตารางเส้นทาง ดังนั้น R1 เมื่อได้รับ PIM Join ดังกล่าวจะเริ่มส่งการรับส่งข้อมูลไปยัง RP-R3
MSDP ทำงานบน TCP, RP ส่งข้อความ Keepalive ซึ่งกันและกันเพื่อตรวจสอบความมีชีวิตชีวา ตัวจับเวลาคือ 60 วินาที
ฟังก์ชันการแบ่งเพียร์ MSDP ออกเป็นโดเมนต่างๆ ยังคงไม่ชัดเจน เนื่องจากข้อความ Keepalive และ SA ไม่ได้ระบุถึงความเป็นสมาชิกในโดเมนใดๆ นอกจากนี้ ในโทโพโลยีนี้ เราได้ทดสอบการกำหนดค่าที่ระบุโดเมนที่แตกต่างกัน - ประสิทธิภาพไม่แตกต่างกัน
หากใครสามารถชี้แจงได้ฉันก็ยินดีที่จะอ่านในความคิดเห็น

ที่มา: will.com

เพิ่มความคิดเห็น