การกําหนดที่อยู่ IPv6

ดูแหล่งข้อมูลใน GitHub

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

กล้องติดปืน

ขอบเขต OT

มี 3 ขอบเขตในเครือข่ายชุดข้อความสําหรับการระบุ Unicast ดังนี้

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

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

Unicast

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

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

วิธีสร้างเครื่องระบุตําแหน่ง

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

โทโพโลยีแบบ OT RLOC

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

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

OT RLOC16

RLOC16 เป็นส่วนหนึ่งของตัวระบุอินเทอร์เฟซ (IID) ซึ่งสอดคล้องกับที่อยู่ IPv6 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 สําหรับโหนดที่ไฮไลต์ทั้งหมดในโทโพโลยีตัวอย่างด้านบนได้

OTโทโพโลยีกับที่อยู่

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

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

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

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

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

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

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

Mesh-Local EID (ML-EID)

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

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

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

ตัวระบุตําแหน่ง Castcast (ALOC)

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

ที่อยู่ร่วม Unicast (GUA)

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

มัลติแคสต์

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

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

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

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

Anycast

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

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

ชุดข้อความจะกําหนดค่า ALOC16 ต่อไปนี้

แอลกอฮอล์ 16 ประเภท
0xfc00 หัวหน้าพรรค
0xfc010xfc0f Agent DHCPv6
0xfc100xfc2f บริการ
0xfc300xfc37 ประธานสมาคม
0xfc400xfc4e Agent การค้นพบ Neighbor
0xfc38 - 0xfc3f
0xfc4f0xfcff
สงวนไว้

สรุปการแข่งขัน

สิ่งที่ได้เรียนรู้มีดังนี้

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

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

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

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