การผกผันนี้เป็น Bijective ดังนั้นฉันไม่สามารถเข้าใจได้ว่ามันใช้อะไร
การผกผันนี้เป็น Bijective ดังนั้นฉันไม่สามารถเข้าใจได้ว่ามันใช้อะไร
คำตอบ:
RFC 4291ให้คำแนะนำเกี่ยวกับวิธีสร้างที่อยู่ EUI64:
Links or Nodes with IEEE 802 48-bit MACs
[EUI64] defines a method to create an IEEE EUI-64 identifier from an
IEEE 48-bit MAC identifier. This is to insert two octets, with
hexadecimal values of 0xFF and 0xFE (see the Note at the end of
appendix), in the middle of the 48-bit MAC (between the company_id
and vendor-supplied id). An example is the 48-bit IEEE MAC with
Global scope:
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+
where "c" is the bits of the assigned company_id, "0" is the value of
the universal/local bit to indicate Global scope, "g" is
individual/group bit, and "m" is the bits of the manufacturer-
selected extension identifier. The interface identifier would be of
the form:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
และRFC 2373ให้ 'ทำไม' ที่อยู่เบื้องหลังการพลิกบิตที่ 7:
The motivation for inverting the "u" bit when forming the interface
identifier is to make it easy for system administrators to hand
configure local scope identifiers when hardware tokens are not
available. This is expected to be case for serial links, tunnel end-
points, etc. The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.
แต่นั่นเป็นคำพูดเล็กน้อย ดังนั้นในแง่ที่ง่ายกว่า ... ในสถาปัตยกรรมที่อยู่ MAC บิตที่ 7 หมายถึงว่าที่อยู่ MAC นั้นได้รับการมอบหมายในระดับสากลหรือในระดับท้องถิ่น ค่า 0 หมายถึงที่อยู่ได้รับการจัดการอย่างเป็นสากล ตัวอย่างเช่นเมื่อ IANA กำหนดรหัสเฉพาะขององค์กร (OUI) ให้กับผู้จำหน่ายการ์ด NIC บิตที่ 7 จะเป็น 0 ซึ่งบ่งชี้ว่า OUI ได้รับการกำหนดให้เป็นสากล หากผู้ใช้เปลี่ยนที่อยู่ MAC ของตนเองด้วยตนเองบิตที่ 7 นี้จะถูกตั้งค่าเป็น 1 เพื่อระบุว่าที่อยู่อีเทอร์เน็ตได้รับการจัดการภายในเครื่อง
นอกจากนี้ยังมีบางข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่PacketLife
มันจะทำเพื่อที่อยู่มือมอบหมายประเภทเช่นprefix::1
, prefix::2
ฯลฯ เป็นท้องถิ่น
2001:db8:dead:beef::/64
สมมติว่าคุณกำลังตั้งค่าเครือข่ายในคำนำหน้า คุณอาจใช้ IP ที่ทำงานบน MAC สำหรับโหนดส่วนใหญ่ของคุณ สำหรับบางโหนดเช่นเซิร์ฟเวอร์ DNS เซิร์ฟเวอร์ไดเรกทอรีเป็นต้นคุณจะต้องใช้ที่อยู่ที่พิมพ์และจดจำได้ง่ายกว่าที่อยู่ MAC สำหรับเซิร์ฟเวอร์ DNS คุณอาจต้องการใช้
2001:db8:dead:beef::53
โปรดทราบว่าบิต U / L ถูกตั้งค่าเป็น 0 - ซึ่งเนื่องจากการผกผันของบิตจัดประเภท host-id เป็นท้องถิ่น
ในระยะสั้นเพราะในอีเธอร์เน็ต MAC นั้นบิตที่เจ็ดถูกกำหนดให้หมายถึงโลคัล / # global ในขณะที่ใน IPv6 เจ็ดบิตใน ID อินเตอร์เฟส 64- บิตถูกกำหนดให้หมายถึง global / # local
EUI 64 หมายถึงที่อยู่ MAC (48Bit) เท่านั้นซึ่งมี
..:FF:FE:..
ตรงกลางเพื่อเติมเต็ม 64 บิต ดังนั้นชื่อ EUI-64 จะเป็นคุณหมายถึงการแก้ไข EUI-64ซึ่งหมายถึง EUI-64 รวมกับบิตของบิตที่ 7
บิตที่เจ็ดถูกเปลี่ยนเนื่องจากใน MAC Addresses บิตที่ 7 นี้ระบุความแตกต่างระหว่างโลคอลหนึ่ง (0) และโกลบอล (1) Local ในแง่นี้คือยกตัวอย่างเช่น Interface interface
เนื่องจากทั้งหมดนี้คือการสร้างที่อยู่สาธารณะโดยอัตโนมัติซึ่งทั้งหมดจะอยู่ในอินเทอร์เฟซซึ่งเป็นสากล (ในแง่ของ MAC) สิ่งนี้จะส่งผลให้ 1 ในตำแหน่งที่ 7 พวกเขาเปลี่ยนบิตนั้นดังนั้นคุณไม่จำเป็นต้องจดที่อยู่ของหลุมและคุณสามารถจดบันทึกย่อของ "::" ได้
ตัวอย่าง (จาก RFC 2373):
...
The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.
คำตอบสั้น ๆ แม้ว่าที่อยู่ MAC ทุกแห่งจะลงท้ายด้วยที่อยู่ IPv6 ซึ่งจะมีหมายเลข HEX สูงกว่า 0 ในบางตำแหน่งในที่อยู่ IPv6 สิ่งนี้ทำให้มีค่าเป็นศูนย์ได้ดังนั้นคุณสามารถใช้สัญลักษณ์แบบย่อ