ที่อยู่ IPv6

ดูแหล่งที่มาใน GitHub

ลองมาดูว่า Thread ระบุอุปกรณ์แต่ละเครื่องในเครือข่ายได้อย่างไร ประเภทของที่อยู่ที่ใช้สื่อสารระหว่างกัน

ขอบเขต

ขอบเขต OT

เครือข่ายเทรดสําหรับการกำหนดที่อยู่แบบ Unicast มี 3 ขอบเขตดังนี้

  • Link-Local — อินเทอร์เฟซทั้งหมดที่เข้าถึงได้ด้วยการส่งวิทยุรายการเดียว
  • Mesh-Local — อินเทอร์เฟซทั้งหมดที่เข้าถึงได้ภายในเครือข่าย Thread เดียวกัน
  • ทั่วโลก — อินเทอร์เฟซทั้งหมดที่เข้าถึงได้จากภายนอกเครือข่ายเทรด

ขอบเขต 2 ขอบเขตแรกจะสอดคล้องกับคำนำหน้าที่เครือข่ายเทรดกำหนด Link-Local จะขึ้นต้นด้วย fe80::/16 ส่วน Mesh-Local จะมีคำนำหน้าเป็น fd00::/8

Unicast

มีที่อยู่ IPv6 แบบ Unicast หลายรายการซึ่งระบุอุปกรณ์เทรดเดียว รวมถึงมีฟังก์ชันที่แตกต่างกันไปตามขอบเขตและกรณีการใช้งาน

ก่อนที่เราจะลงรายละเอียดเกี่ยวกับแต่ละประเภท มาดูข้อมูลเพิ่มเติมเกี่ยวกับประเภททั่วไปที่เรียกว่า Routing Locator (RLOC) RLOC จะระบุอินเทอร์เฟซเทรดโดยอิงตาม ตำแหน่งในโทโพโลยีเครือข่าย

ระบบสร้างเครื่องระบุตำแหน่งเส้นทาง (Routing Locator) อย่างไร

ระบบจะกำหนดรหัสเราเตอร์และรหัสย่อยให้กับอุปกรณ์ทุกเครื่อง เราเตอร์แต่ละตัวจะรักษา ตารางที่แสดงรายการบุตรหลานทั้งหมด โดยมีชุดค่าผสมที่ไม่ซ้ำกันซึ่งระบุ ภายในโทโพโลยีอีกด้วย ตัวอย่างเช่น ลองพิจารณาโหนดที่ไฮไลต์ในส่วน โทโพโลยีต่อไปนี้ โดยที่ตัวเลขในเราเตอร์ (รูปห้าเหลี่ยม) คือรหัสเราเตอร์ และหมายเลขในอุปกรณ์ปลายทาง (วงกลม) คือ Child ID:

โทโพโลยี OT RLOC

รหัสเราเตอร์ของผู้เผยแพร่โฆษณาย่อยแต่ละรายการจะสอดคล้องกับผู้เผยแพร่โฆษณาหลัก (เราเตอร์) เนื่องจากเราเตอร์คือ ไม่ใช่ Child ID ย่อยสำหรับเราเตอร์จะเป็น 0 เสมอ ค่าเหล่านี้รวมกัน สำหรับแต่ละอุปกรณ์ในเครือข่าย Thread และใช้เพื่อสร้าง RLOC16 ซึ่งจะแสดง 16 บิตสุดท้ายของ RLOC

ตัวอย่างเช่น วิธีคำนวณ RLOC16 สำหรับโหนดด้านซ้ายบน (เราเตอร์) รหัส = 1 และรหัสย่อย = 1):

OT RLOC16

RLOC16 เป็นส่วนหนึ่งของตัวระบุอินเทอร์เฟซ (IID) ซึ่งสอดคล้องกับ 64 บิตสุดท้ายของที่อยู่ IPv6 IID บางประเภทใช้เพื่อระบุบางประเภทได้ ของอินเทอร์เฟซเทรด ตัวอย่างเช่น IID สำหรับ RLOC อยู่ในรูปแบบนี้เสมอ

0000:00ff:fe00:RLOC16

IID รวมกับคำนำหน้า Mesh-Local จะส่งผลให้เกิด RLOC ตัวอย่างเช่น โดยใช้คำนำหน้า Mesh-Local ของ fde5:8dba:82e1:1::/64 ซึ่งเป็น RLOC สำหรับโหนดที่ RLOC16 = 0x401 เท่ากับ:

OT RLOC

ตรรกะเดียวกันนี้ยังใช้เพื่อระบุ RLOC สำหรับโหนดที่ไฮไลต์ทั้งหมดในโทโพโลยีตัวอย่างข้างต้นได้

โทโพโลยี OT ที่มีที่อยู่

อย่างไรก็ตาม เนื่องจาก RLOC จะอิงตามตำแหน่งของโหนดในโทโพโลยี RLOC ของโหนดเปลี่ยนแปลงได้เมื่อโทโพโลยีเปลี่ยนแปลง

ตัวอย่างเช่น โหนด 0x400 อาจถูกนำออกจากเครือข่ายเทรด โหนด 0x401 และ 0x402 จะสร้างการลิงก์ใหม่ไปยังเราเตอร์ที่ต่างกัน ดังนั้น ทั้งคู่จะได้รับ RLOC16 และ RLOC ใหม่

โทโพโลยี OT หลังการเปลี่ยนแปลง

ประเภทที่อยู่ Unicast

RLOC เป็นเพียงหนึ่งในที่อยู่ IPv6 แบบ Unicast จำนวนมากที่อุปกรณ์เทรดอาจมีได้ ที่อยู่อีกหมวดหมู่หนึ่งเรียกว่าตัวระบุปลายทาง (EID) ซึ่ง ระบุอินเทอร์เฟซเทรดที่ไม่ซ้ำกันภายในพาร์ติชันเครือข่ายเทรด EID คือ โดยไม่ขึ้นอยู่กับโทโพโลยีเครือข่ายเทรด

รายละเอียดประเภท Unicast ทั่วไประบุไว้ด้านล่างนี้

EID ที่ระบุอินเทอร์เฟซเทรดที่เข้าถึงได้ด้วยการส่งข้อมูลวิทยุครั้งเดียว
ตัวอย่างfe80::54db:881c:3845:57f4
IIDอิงจากที่อยู่เพิ่มเติม 802.15.4
ขอบเขตลิงก์ในพื้นที่
รายละเอียด
  • ใช้เพื่อค้นหาเพื่อนบ้าน กำหนดค่าลิงก์ และแลกเปลี่ยนข้อมูลเส้นทาง
  • ไม่ใช่ที่อยู่ที่กำหนดเส้นทางได้
  • ขึ้นต้นด้วย fe80::/16 เสมอ

EID ของ Mesh-Local (ML-EID)

EID ที่ระบุอินเทอร์เฟซของเทรดโดยไม่ขึ้นอยู่กับโทโพโลยีเครือข่าย ใช้เพื่อเข้าถึงอินเทอร์เฟซเทรดภายในพาร์ติชันเทรดเดียวกัน เรียกอีกอย่างว่าที่อยู่ท้องถิ่นที่ไม่ซ้ำกัน (ULA)
ตัวอย่างfde5:8dba:82e1:1:416:993c:8399:35ab
IIDสุ่มเลือกหลังจากการใช้งานเสร็จสมบูรณ์แล้ว
ขอบเขตตาข่ายท้องถิ่น
รายละเอียด
  • ไม่เปลี่ยนแปลงเมื่อโทโพโลยีเปลี่ยนแปลง
  • ควรใช้โดยแอปพลิเคชัน
  • ขึ้นต้นด้วย fd00::/8 เสมอ

เครื่องระบุตำแหน่งเส้นทาง (RLOC)

ระบุอินเทอร์เฟซเทรดตามตำแหน่งในโทโพโลยีเครือข่าย
ตัวอย่างfde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
ขอบเขตตาข่ายท้องถิ่น
รายละเอียด
  • สร้างขึ้นเมื่ออุปกรณ์เชื่อมต่อกับเครือข่าย
  • สำหรับการส่ง IPv6 Datagram ภายในเครือข่ายเทรด
  • เปลี่ยนแปลงเมื่อโทโพโลยีเปลี่ยนแปลง
  • โดยทั่วไปแล้ว แอปพลิเคชันจะไม่นำไปใช้

Anycast Locator (ALOC)

ระบุอินเทอร์เฟซเทรดผ่านการค้นหา RLOC เมื่อไม่ทราบ RLOC ของปลายทาง
ตัวอย่างfde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
ขอบเขตตาข่ายท้องถิ่น
รายละเอียด
  • fcXX = ปลายทาง ALOC ซึ่งค้นหา RLOC ที่เหมาะสม
  • โดยทั่วไปแล้ว แอปพลิเคชันจะไม่นำไปใช้

ที่อยู่ Unicast ทั่วโลก (GUA)

EID ที่ระบุอินเทอร์เฟซของเทรดในขอบเขตทั้งหมด นอกเหนือไปจากเครือข่ายเทรด
ตัวอย่าง2000::54db:881c:3845:57f4
IID
  • SLAAC - กำหนดโดยอุปกรณ์แบบสุ่ม
  • DHCP - กำหนดโดยเซิร์ฟเวอร์ DHCPv6
  • ด้วยตนเอง — กำหนดโดยเลเยอร์ของแอปพลิเคชัน
ขอบเขตทั่วโลก
รายละเอียด
  • ที่อยู่ IPv6 สาธารณะ
  • ขึ้นต้นด้วย 2000::/3 เสมอ

มัลติแคสต์

Multicast ใช้เพื่อสื่อสารข้อมูลไปยังอุปกรณ์หลายเครื่องพร้อมกัน ใน เครือข่ายเทรด ที่อยู่ที่เจาะจงจะสงวนไว้สำหรับการใช้งานมัลติแคสต์กับ กลุ่มอุปกรณ์โดยขึ้นอยู่กับขอบเขต

ที่อยู่ IPv6 ขอบเขต ส่งถึง
ff02::1 ลิงก์ในพื้นที่ FTD และ MED ทั้งหมด
ff02::2 ลิงก์ในพื้นที่ FTD ทั้งหมด
ff03::1 ตาข่ายท้องถิ่น FTD และ MED ทั้งหมด
ff03::2 ตาข่ายท้องถิ่น FTD ทั้งหมด

คุณอาจสังเกตเห็นว่าอุปกรณ์ปลายทางง่วงนอน (SED) ไม่ได้รวมอยู่ใน ผู้รับในตารางมัลติแคสต์ด้านบน โดยเทรดจะกำหนด มัลติแคสต์ IPv6 ที่มีคำนำหน้าเป็น unicast ตามคำนำหน้าลิงก์ภายในและขอบเขตในพื้นที่ ที่อยู่ที่ใช้สำหรับโหนดเทรดทั้งหมด รวมถึง SED มัลติแคสต์เหล่านี้ ที่อยู่จะแตกต่างกันไปตามเครือข่ายเทรด เนื่องจากสร้างขึ้นบน Unicast คำนำหน้า Mesh-Local (ดู RFC 3306 เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับที่อยู่ IPv6 แบบมัลติแคสต์ที่ใช้คำนำหน้า unicast)

เทรดรองรับขอบเขตที่กำหนดเองนอกเหนือจากที่ระบุไว้แล้วด้วย อุปกรณ์

Anycast

Anycast จะใช้เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยังอินเทอร์เฟซเทรดเมื่อ RLOC ของ ไม่ทราบปลายทาง Anycast Locator (ALOC) ระบุตำแหน่งของ หลายอินเทอร์เฟซภายในพาร์ติชันเทรด 16 บิตสุดท้ายของ ALOC ที่เรียกว่า ALOC16 อยู่ในรูปแบบ 0xfcXX ซึ่ง แสดงประเภทของ ALOC

เช่น ALOC16 ตั้งแต่ 0xfc01 ถึง 0xfc0f จะสงวนไว้สำหรับ DHCPv6 ตัวแทน หากไม่ทราบ RLOC Agent ของ DHCPv6 ที่เจาะจง (อาจเป็นเพราะ โทโพโลยีเครือข่ายมีการเปลี่ยนแปลง) คุณสามารถส่งข้อความไปยังตัวแทน DHCPv6 ALOC เพื่อ ขอรับ RLOC

เทรดกำหนดค่า ALOC16 ต่อไปนี้

ALOC16 ประเภท
0xfc00 ผู้นำ
0xfc01 - 0xfc0f ตัวแทน DHCPv6
0xfc10 - 0xfc2f บริการ
0xfc30 - 0xfc37 ประธานสมาคม
0xfc40 - 0xfc4e Agent การค้นหาใกล้เคียง
0xfc38 - 0xfc3f
0xfc4f0xfcff
จองแล้ว

สรุป

สิ่งที่คุณได้เรียนรู้:

  • เครือข่ายเทรดประกอบด้วย 3 ขอบเขต ได้แก่ Link-Local, Mesh-Local และ Global
  • อุปกรณ์เทรดมีที่อยู่ IPv6 แบบ Unicast หลายรายการ
    • RLOC แสดงตำแหน่งของอุปกรณ์ในเครือข่ายเทรด
    • ML-EID ไม่ซ้ำกันสำหรับอุปกรณ์เทรดภายในพาร์ติชัน และควรใช้โดยแอปพลิเคชัน
  • เทรดใช้มัลติแคสต์เพื่อส่งต่อข้อมูลไปยังกลุ่มโหนดและเราเตอร์
  • เทรดใช้ Anycast เมื่อไม่ทราบ RLOC ของปลายทาง

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดที่อยู่ IPv6 ของ Thread โปรดดูที่ส่วน 5.2 และ 5.3 ของ ข้อกำหนดของชุดข้อความ

ตรวจสอบความเข้าใจ

ขอบเขต 3 ข้อใดที่ใช้สำหรับการระบุที่อยู่แบบ Unicast ในเครือข่ายเทรด
ส่วนตัว
ผิด
อินเทอร์เฟซภายใน
ผิด
ลิงก์ในพื้นที่
ถูกต้อง
ไซต์ท้องถิ่น
ผิด
ตาข่ายท้องถิ่น
ถูกต้อง
ทั่วโลก
ถูกต้อง
การที่อุปกรณ์มีรหัสย่อยเป็น 0 หมายความว่าอย่างไร
อุปกรณ์ดังกล่าวเป็นผู้เผยแพร่โฆษณาย่อย
ผิด
อุปกรณ์เป็น REED
ใกล้เคียง แต่ไม่ถูกต้อง
อุปกรณ์คือเราเตอร์
ถูกต้อง เราเตอร์จะมีรหัสย่อยเป็น 0 เสมอ
กล้องซึ่งเป็นโหนดบนเครือข่ายเทรดได้รับ RLOC16 ใหม่ และ RLOC เหตุการณ์ใดต่อไปนี้ที่อาจทำให้เกิดปัญหานี้
มีคนดาวน์โหลดรูปภาพจากกล้องจากระยะไกล
ผิด เหตุการณ์นี้ไม่มีผลต่อชุดข้อความ เครือข่าย
เราเตอร์หลุดออกจากเครือข่าย
ถูกต้อง เมื่อเราเตอร์ตัดเครือข่ายออก เครือข่าย การเปลี่ยนแปลงโทโพโลยี ซึ่งอาจส่งผลให้อุปกรณ์โปรโมตตัวเองเป็น เราเตอร์และรับ RLOC ใหม่
กล้องเข้าสู่โหมดสลีป ซึ่งเปลี่ยนโทโพโลยีของเครือข่าย
ผิด การเข้าสู่โหมดสลีปอาจไม่ได้ทำให้อุปกรณ์ ในการรับที่อยู่เครือข่ายใหม่
อุปกรณ์ในเครือข่ายเทรดสมัครใช้บริการ ff03::2 ที่อยู่มัลติแคสต์ ข้อมูลนี้บอกอะไรเกี่ยวกับอุปกรณ์
เป็นอุปกรณ์ปลายทางขนาดเล็ก (MED)
ผิด
เป็นอุปกรณ์ปลายทางเต็มรูปแบบ (FED)
ผิด (คำใบ้: อาจจะใช่หรือไม่ใช่ FED)
เป็นอุปกรณ์เทรดขั้นต่ำ (MTD)
ผิด
เป็นอุปกรณ์ Full Thread (FTD)
ถูกต้อง มีเพียงอุปกรณ์แบบ Full Thread เท่านั้นที่สมัครใช้บริการ ที่อยู่มัลติแคสต์ ff03::2 รายการ ใน Mesh-Local
Thread จะใช้ที่อยู่และการกำหนดเส้นทางประเภทใดเพื่อส่งต่อข้อมูลไปยัง กลุ่มของโหนดและเราเตอร์
Unicast
ผิด
Anycast
ผิด
มัลติแคสต์
ถูกต้อง
ประกาศ
ผิด
อุปกรณ์เทรดใช้การระบุที่อยู่และการกำหนดเส้นทางประเภทใดเมื่อ ไม่รู้จัก RLOC ของผู้รับข้อความที่ต้องการ
Unicast
ผิด
Anycast
ถูกต้อง Anycast ช่วยให้อุปกรณ์เข้าถึงโหนดที่ RLOC ไม่ได้เป็น ด้วยการระบุ ALOC ของอุปกรณ์
มัลติแคสต์
ผิด
ประกาศ
ผิด