ทำไมบิต U / L ที่ถูกบุกรุกใน EUI64


13

การผกผันนี้เป็น Bijective ดังนั้นฉันไม่สามารถเข้าใจได้ว่ามันใช้อะไร


1
คำตอบใดช่วยคุณได้บ้าง ถ้าเป็นเช่นนั้นคุณควรยอมรับคำตอบเพื่อที่คำถามจะไม่โผล่ขึ้นมาเรื่อย ๆ โดยมองหาคำตอบ หรือคุณสามารถให้และยอมรับคำตอบของคุณเอง
Ron Maupin

คำตอบ:


16

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


ฉันยังไม่เข้าใจ หากผู้ดูแลระบบไม่ต้องการ 0200 เขา / เธอสามารถกำหนดค่าที่อยู่ / 128 ipv6 ด้วยตนเองตามที่เห็นสมควรโดยไม่คำนึงว่าพวกเขาทำอะไรกับการกำหนดค่าที่อยู่ mac ของพวกเขา ประโยชน์ที่เป็นไปได้เท่านั้นที่ฉันเห็นที่นี่คือในสถานการณ์ที่ไม่สามารถเปลี่ยนที่อยู่โลคัลลิงก์ด้วยตนเองซึ่งจะเป็นสถานการณ์เดียวที่ผู้ดูแลระบบจะเห็นประโยชน์ กล่าวอีกนัยหนึ่งว่าเป็นผู้ดูแลระบบถ้าฉันมีปัญหากับที่อยู่ eui-64 ipv6 ของฉันที่แสดง 0200 จากนั้นฉันจะเปลี่ยนที่อยู่ด้วยตนเองโดยสมมติว่าฉันสามารถเปลี่ยนที่อยู่การเชื่อมโยงท้องถิ่นด้วยตัวเองได้
lobi

และลิงค์นี้ระบุว่าการกำหนดค่าที่อยู่ link-local ด้วยตนเองเป็นไปได้community.cisco.com/t5/ipv6/…
lobi

"ค่า 0 หมายถึงที่อยู่ถูกจัดการแบบสากล" มันตรงกันข้ามหรือไม่?
Nakrule

7

มันจะทำเพื่อที่อยู่มือมอบหมายประเภทเช่นprefix::1, prefix::2ฯลฯ เป็นท้องถิ่น

2001:db8:dead:beef::/64สมมติว่าคุณกำลังตั้งค่าเครือข่ายในคำนำหน้า คุณอาจใช้ IP ที่ทำงานบน MAC สำหรับโหนดส่วนใหญ่ของคุณ สำหรับบางโหนดเช่นเซิร์ฟเวอร์ DNS เซิร์ฟเวอร์ไดเรกทอรีเป็นต้นคุณจะต้องใช้ที่อยู่ที่พิมพ์และจดจำได้ง่ายกว่าที่อยู่ MAC สำหรับเซิร์ฟเวอร์ DNS คุณอาจต้องการใช้

2001:db8:dead:beef::53

โปรดทราบว่าบิต U / L ถูกตั้งค่าเป็น 0 - ซึ่งเนื่องจากการผกผันของบิตจัดประเภท host-id เป็นท้องถิ่น


0

ในระยะสั้นเพราะในอีเธอร์เน็ต MAC นั้นบิตที่เจ็ดถูกกำหนดให้หมายถึงโลคัล / # global ในขณะที่ใน IPv6 เจ็ดบิตใน ID อินเตอร์เฟส 64- บิตถูกกำหนดให้หมายถึง global / # local


0

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 สิ่งนี้ทำให้มีค่าเป็นศูนย์ได้ดังนั้นคุณสามารถใช้สัญลักษณ์แบบย่อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.