ทำไม ipv6 ระบุที่อยู่ 128 บิตเมื่อมีเพียง 48 บิตในที่อยู่ MAC


37

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


2
+1 แม้จะเห็นได้ชัดว่า MAC จะต้องไม่ซ้ำกันสำหรับอุปกรณ์ภายในเครือข่ายท้องถิ่นเดียว (เชื่อมต่อกับรถบัสเดียวกัน) ในขณะที่ชั้นอินเทอร์เน็ตรวมเครือข่ายท้องถิ่นทั้งหมดเข้าด้วยกันเป็นเครือข่ายเดียวทั่วโลกโดยหลักการออกแบบพื้นฐานแบ่งพิชิต เครือข่ายไม่ทราบที่อยู่ในเครื่องภายในเครือข่ายท้องถิ่นอื่น ๆ เพื่อสื่อสารผ่านโครงร่าง IP ทั่วโลกได้สำเร็จและนอกจากนี้คุณยังสามารถเชื่อมต่อเครือข่ายท้องถิ่นที่ไม่ใช่ Ethernet เข้ากับอินเทอร์เน็ตได้ ดังนั้นฉันสนใจที่จะรู้ว่าอะไรจะเป็นคำตอบถ้า IP ต้องการอีเทอร์เน็ตอย่างเดียวที่ระดับล่าง
Val

1
การเปลี่ยนจาก IPv4 เป็น IPv6 นั้น - และเป็น - ช้าและแพงจนเราไม่ต้องการเผชิญกับการเปลี่ยนผ่านอีกครั้ง 128 บิตมีโอกาสพอที่จะ "พอ" ตลอดไป tools.ietf.org/html/rfc1606เป็นอารมณ์ขันที่ยอดเยี่ยมในการทำเช่นนั้น ("ในฐานะที่เป็นโปรโตคอลIP รุ่น 9มาถึงจุดสิ้นสุดของชีวิตที่มีประโยชน์อีกครั้งเนื่องจากพื้นที่ที่อยู่หมดลง ... ")
Beni Cherniavsky- Paskin

@ BeniCherniavsky-Paskin การเปลี่ยนแปลงช้าเพราะ NATs ลดความต้องการลง สิ่งนี้แสดงให้เราเห็นว่าเราไม่จำเป็นต้องใช้พื้นที่ที่อยู่ในพื้นที่เพื่อครอบคลุมพื้นที่ที่อยู่ทั่วโลก
Val

คำตอบ:


40

ที่อยู่ MAC จะต้องไม่ซ้ำกันในโดเมนออกอากาศในประเทศไม่ใช่ทั่วโลกดังนั้นการใช้ที่อยู่ MAC ในเครือข่ายที่แตกต่างกันมักจะไม่มีปัญหา

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


8
ยังเป็นเพราะการรวมตัว 48 บิตจะเป็นมากกว่าที่อยู่ IP ที่เพียงพอ (40k ต่อคน) แต่นั่นหมายความว่าเราเตอร์แต่ละคนต้องดูที่ตารางแบนมากกว่า 2PB ซึ่งเทคโนโลยีนั้นไม่มีอยู่จริง
ytti

1
@ytti: อย่างน้อยก็จนกว่าเราทุกคนจะมี nanorobots ที่เปิดใช้งาน ip ใน
สายเลือด

1
พวกเขาอาจใช้ linklocal เพียงไม่กี่คนเท่านั้นที่จะเชื่อมต่อนอกเครือข่ายท้องถิ่น
ytti

1
บนกระดาษพวกเขาควรจะไม่ซ้ำกันทั่วโลก อย่างไรก็ตามความเป็นจริงได้รับการรู้จักที่แตกต่างกัน
Ricky Beam

4
นี่จะรับประกันคำถามอื่น แต่ที่อยู่ MAC นั้นทำจากหมายเลข OUI 24b หรือ 36b ที่คุณซื้อจาก IEEE ซึ่งควรจะไม่ซ้ำกัน แต่ในทางปฏิบัติเพื่อประหยัด 1300 USD บางคนใช้ OUI คนอื่นหรือบางคนผลิต NIC กับ MAC ที่ไม่ซ้ำกัน ในขณะที่ที่อยู่ MAC ของ 48b นั้นจริง ๆ แล้วเป็นเพียง 46b เนื่องจาก 1 บิตจะกำหนดว่าจะเป็น unicast / multicast หรือ 1 บิตถ้าเป็น global / local หาก local bit bit นั้นเปิดอยู่การเดิมพันทั้งหมดจะไม่ซ้ำกัน
ytti

16

อินเตอร์เฟสเครือข่ายบางประเภทไม่สามารถใช้ที่อยู่ MAC ได้ ที่อยู่ MAC นั้นส่วนใหญ่เชื่อมโยงกับอีเธอร์เน็ตแม้ว่ามาตรฐานเครือข่ายอื่น ๆ จะมีอยู่บ้าง อย่างไรก็ตามที่อยู่ IPv6 ยังคงสามารถกำหนดให้กับอินเทอร์เฟซเครือข่ายที่ไม่ได้ใช้ที่อยู่ MAC สำหรับเลเยอร์ 2

นอกจากนี้ยังทราบว่าที่อยู่ MAC สามารถแปลงเป็นส่วน IPv6 โฮสต์ผ่านการแปลง EUI-64 (ส่วนใหญ่ใช้สำหรับการกำหนดค่าอัตโนมัติแบบ stateless) โดยการใส่ค่าเลขฐานสิบหก FFFE ระหว่างซ้ายสุดและ 24 บิตบิตของที่อยู่ MAC 48 บิต และบิตที่เจ็ดกลับด้าน

ตัวอย่างเช่น 0c: 3a: bb: 2a: cd: 23 สามารถแปลงเป็นส่วนโฮสต์ของที่อยู่ IPv6 ที่ไม่มีการกำหนดค่าอัตโนมัติ 0c ในที่อยู่ MAC ข้างต้นซึ่งแสดงเป็น 0000 1100 ในไบนารีจะกลายเป็น 0000 1110 ในไบนารีหรือ 0e ในเลขฐานสิบหก ดังนั้นส่วนโฮสต์ EUI-64 สุดท้ายของที่อยู่ IPv6 ซึ่งถูกแปลงจากที่อยู่ MAC จะเป็น 0e: 3a: bb: ff: fe: 2a: cd: 23


1
คุณต้องพลิกที่อยู่ MAC 'local bit'
ytti

ฉันลืมส่วนนั้น - ฉันแก้ไขคำตอบของฉันเพื่อสะท้อนข้อมูล ขอบคุณสำหรับการจับที่ :-)
WaxTrax

สคริปต์ที่โง่ที่จะทำโดยอัตโนมัติ: ruby ​​-e'EUI = (ARGV [1]); k = ARGV [0] .delete (":."). สแกน (/. {6} /) เข้าร่วม ("fffe" ) .scan (/../); k [0] = "% 02x"% (k [0] .hex ^ 0b10); p EUI + ":" + k.join.scan (/..../) .join (":") '74: 66: 30: 42: 42: 42 2001: 67c: 17a0: 0
ytti

การแปลที่อยู่ MAC เป็น EUI-64 สำหรับใช้ในการจัดสรร IP นั้นน่าจะเป็นสิ่งที่ใหม่กว่านั้น IPv6 ดั้งเดิมเหนือมาตรฐาน Ethernet (RFC 2464) ระบุที่อยู่ MAC ที่ไม่มีศูนย์นำหน้า
Peter Green

6

นอกจากนี้ยังมีโปรโตคอลเลเยอร์ 2 บางตัวที่มีมากกว่า 48 บิตใน MAC ของพวกเขาตัวอย่างเช่น Fibre Channel มี 64- บิต (หรือ 128- บิตเห็นได้ชัดตาม Wikipedia) เช่นเดียวกับ FireWire (ก็ดี) ดังนั้นพวกเขาจึงสามารถใส่ / 64 ที่ไม่มีศักยภาพของการซ้อนทับ


4

IPv6 SLAAC สามารถสร้างได้เพียงหนึ่งที่อยู่ต่อหนึ่งคำนำหน้าเนื่องจากใช้ MAC เพื่อสร้างที่อยู่ที่ไม่ซ้ำกันตามสมควร ส่วนขยายความเป็นส่วนตัวสามารถสร้างที่อยู่หลอกสุ่มอย่างน้อยหนึ่งที่อยู่จากนั้นจะตรวจสอบการทับซ้อนใด ๆ ในส่วนท้องถิ่น แน่นอนผู้ดูแลระบบท้องถิ่นสามารถกำหนดที่อยู่แบบคงที่ได้มากเท่าที่ต้องการ - เป็นหน้าที่ของพวกเขาที่จะไม่ทับซ้อนกัน

[ด้วยเหตุผลที่ไม่เหมือนใครฉันหมายถึงความเป็นไปได้ที่จะเกิดการชนนั้นเป็นศูนย์ และถ้าเป็นเช่นนั้นคุณจะมีปัญหาเลเยอร์ 2 ก่อน! (สองเครื่องในส่วนเดียวกันกับ MAC เดียวกัน)]


ส่วนขยายความเป็นส่วนตัวของ Afaict เป็นสิ่งที่เกิดขึ้นภายหลังเมื่อผู้คนตระหนักว่า autoconfig ที่ใช้ระบบ MAC นั้นเป็นฝันร้ายของความเป็นส่วนตัว ไม่ใช่หนึ่งในแรงผลักดันในการออกแบบ IPv6
Peter Green

IPv6 ส่วนใหญ่นั้นเป็นภายหลัง ... ผู้ที่ไม่ได้เรียนรู้จากประวัติศาสตร์จะต้องทำซ้ำ
Ricky Beam

2

ฉันคิดว่ามันเป็นประเด็นสำคัญสองประการ

  1. ที่อยู่อินเทอร์เน็ตไม่เพียง แต่ต้องไม่ซ้ำกันทั่วโลกเท่านั้น แต่ยังต้องสามารถกำหนดเส้นทางได้ทั่วโลก การกำหนดเส้นทางที่อยู่ของเครื่องทุกเครื่องแยกกันจะทำให้ตารางเส้นทางที่มีขนาดใหญ่ ผู้ออกแบบ IPv6 มีความฝันของระบบการจัดเส้นทางแบบลำดับชั้น * เพื่อทำให้ตารางเส้นทางเล็ก
  2. ผู้ออกแบบ IPv6 ต้องการการตั้งค่าอัตโนมัติที่ไร้สัญชาติ การกำหนดค่าอัตโนมัติแบบไร้สัญชาติต้องการส่วน "โฮสต์" ของที่อยู่ที่มีขนาดใหญ่เพื่อรองรับที่อยู่ลิงก์ที่มีอยู่หรือรองรับจำนวนสุ่มที่มีขนาดใหญ่พอที่จะเกิดการชน

ใส่คะแนนเหล่านี้เข้าด้วยกันและคุณต้องการทั้ง "โฮสต์" และ "เครือข่าย" ของที่อยู่ให้มีขนาดใหญ่ แน่นอนมากกว่า 32 บิตในแต่ละ 64- บิตแต่ละคนอาจ overkill แต่ overkill ดีกว่าหมด

* ความฝันไม่ได้ผลจริง ๆ เพราะอินเทอร์เน็ตไม่ใช่ลำดับขั้นที่แน่นอน แต่นี่ไม่เกี่ยวกับสิ่งที่เกิดขึ้นจริงในช่วง 20 ปีที่ผ่านมานับตั้งแต่มีการเปิดตัว IPv6 มันเกี่ยวกับสิ่งที่ผลักดันการออกแบบ

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