ที่อยู่ IP ถูกแมปกับที่อยู่ MAC ได้อย่างไร


14

ฉันได้อ่านเกี่ยวกับความแตกต่างระหว่างที่อยู่ MAC และที่อยู่ IP และสาเหตุที่เราต้องการทั้งคู่

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

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


5
หลังจากตรวจสอบคำถามของคุณฉันคิดว่าคุณจะได้รับประโยชน์จากหนังสือที่ดี พิจารณาการศึกษาบางอย่างตามสายของTCP / IP Illustrated, Vol. 1: โปรโตคอลของ Stevens (FYI รุ่น 1993 โดยทั่วไปถือว่าดีกว่ารุ่น 2011 อีกครั้งแม้ว่ารุ่น 1993 จะครอบคลุมเฉพาะ IPv4 ในเชิงลึก)
Mike Pennington

"The Illustrated Network: วิธีที่ TCP / IP ทำงานในเครือข่ายที่ทันสมัย" และ / หรือ "คำแนะนำ TCP / IP: การอ้างอิงอินเทอร์เน็ตโปรโตคอลที่ครอบคลุมและแสดงให้เห็น" อาจมีค่าด้วย
Jens Link

4
@MikePennington ขอบคุณนั่นเป็นวิธีที่ดีในการพูดมันตรงข้ามกับ "RTFM" และ -1 ฉันอ่านมันออนไลน์แล้วในตอนนี้:)
CodyBugstein

ที่เกี่ยวข้อง: superuser.com/questions/623511/…
leonbloy

1
ที่อยู่ MAC คือความเป็นจริงของ im ทั้งทางกายภาพหรือไม่สามารถถอดเปลี่ยนได้และไม่ซ้ำกัน ฉันเห็นอุปกรณ์ที่สุ่ม MAC ของพวกเขาทุกครั้งที่รีบูต แน่นอนว่ามียูทิลิตี้สำหรับเกือบทุกแพลตฟอร์มที่จะเปลี่ยน MAC ชั่วคราวหรือถาวรในเกือบทุกอินเทอร์เฟซ iOS 8 จะสุ่ม wifi MAC สำหรับการสแกนเครือข่าย
MacLemon

คำตอบ:


19

กลไกที่เรียกว่าAddress Resolution Protocol (ARP) ทุก ๆ อุปกรณ์อีเธอร์เน็ต IPv4 ARPs เพื่อแก้ไขที่อยู่อีเทอร์เน็ต mac สำหรับ IP เป้าหมาย การจับคู่ IP กับ Mac ถูกเก็บไว้ในตาราง ARP ของอุปกรณ์แต่ละเครื่อง (สมุดโทรศัพท์ในการเปรียบเทียบของคุณ)

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


เวลาส่วนใหญ่มันแค่มองจากโต๊ะอาร์พีท้องถิ่นที่ฉันคิดว่า เป็นครั้งแรกที่มีการออกอากาศ
Cruncher

แน่นอนใช่หลังจากพบอุปกรณ์ MAC แล้วมันจะเก็บไว้ในตาราง ARP สักระยะหนึ่ง (สองสามนาที) ดังนั้นจึงไม่ต้องทำกระบวนการสืบค้น ARP ซ้ำสำหรับแต่ละแพ็คเก็ต
mulaz

โอ้ฉันไม่ได้ตระหนักว่ามันตกโต๊ะหลังจากสองสามนาที ฉันคิดว่ามันจัดขึ้นในขณะที่ นั่นหมายความว่ายาพิษ ARP คุณต้องส่งคำตอบ ARP เสมือนบ่อยๆหรือไม่?
Cruncher

ใช่และโฮสต์ "ของจริง" จะต้องไม่ส่งแพ็คเก็ตใด ๆ ไปยังเครื่องวางยาพิษหรือเครื่องจะเก็บ MAC 'ของจริง'
mulaz

1
ขึ้นอยู่กับสิ่งที่คุณพยายามจะทำ
mulaz

13

เนื่องจากคำถามถูกแท็กด้วย IPv6 ฉันจะตอบคำถามนั้นเพราะ IPv6 นั้นแตกต่างจาก IPv4 มาก

เริ่มต้นด้วยไม่มีสิ่งเช่น ARPv6 การแมประหว่างที่อยู่เลเยอร์ 2 และ IPv6 นั้นดำเนินการโดย Neighbor Discovery Protocol (NDP) ซึ่งถูกส่งผ่าน ICMPv6 ดังนั้นคุณต้องไม่เพิกเฉย ICMPv6 และกรองออกเช่นเดียวกับที่กำหนดเองด้วย IP ดั้งเดิม NDP มีสองประเภทข้อความที่น่าสนใจที่นี่: การชักชวนเพื่อนบ้านและการโฆษณาเพื่อนบ้าน โหนดที่ต้องการเรียนรู้ที่อยู่ลิงก์ของเลเยอร์สำหรับที่อยู่ IP ที่เฉพาะเจาะจงส่งการชักชวนเพื่อนบ้านไปยังที่อยู่มัลติคาสต์ตามลิงค์ท้องถิ่น - ลิงก์ - ท้องถิ่น - ไม่มีการออกอากาศสำหรับ IPv6 อีกต่อไป

ตัวอย่างเช่นหากที่อยู่ในคำถาม2001:db8::0011:2233:4455:6677นั้นหมายถึงที่อยู่ผู้รับ multicast ตามคือff02::1:ff55:6677และที่อยู่อีเธอร์เน็ต multicast 33:33:ff:55:66:77ตาม โหนดทั้งหมดที่มีที่อยู่ที่ลงท้ายด้วย*55:6677อยู่ในกลุ่มมัลติคาสต์นั้นและจะรับฟัง - ซึ่งเป็นไปได้ว่าเป็นระบบเป้าหมายเท่านั้น Neighbor Solicitation มี unicast IPv6 addresses และ MAC address ของระบบการร้องขอ

ในการรับโหนดเป้าหมายตอบรับด้วย Neighbor Advertising ซึ่งถูกส่งไปยังที่อยู่ unicast (ลิงก์เลเยอร์และ IPv6) ของโหนดการชักชวน ดังนั้นโหนดการเรี่ยไรเรียนรู้ที่อยู่ MAC ของโหนดเป้าหมาย

และใช่แล้วการปลอมแปลง NDP นั้นเหมือนกับ ARP-spoofing และไม่ใช่ IPsec ไม่ใช่คำตอบ


" ไม่สามารถใช้ ARP เองได้เนื่องจากถูกสร้างขึ้นสำหรับที่อยู่เลเยอร์เครือข่าย 4 ไบต์ (เช่น IPv4) " สิ่งนี้ไม่เป็นความจริง ARP ใช้ฟิลด์ความยาวที่อยู่เพื่อระบุความยาวที่อยู่ (มากถึง 255 octets) สำหรับทั้งที่อยู่เลเยอร์ 2 และเลเยอร์ 3 (ดู RFC 826) เหตุผลที่ไม่สามารถใช้ ARP กับ IPv6 ได้เนื่องจาก IPv6 ไม่มีการออกอากาศ
Ron Maupin

1
ARP ถูกแทนที่ด้วย NDP ใน v6 ด้วยเหตุผลด้านความปลอดภัย (และเช่นเดียวกับโปรโตคอลที่ดีที่อยู่ติดกับ v6 ที่มีคุณสมบัติสำคัญคืบคลาน) ไม่ใช่เพราะ v6 ไม่มีการออกอากาศ - ARP ใช้การออกอากาศ L2 เพียงอย่างง่ายดายและสามารถขยายได้อย่างง่ายดาย ที่อยู่ v6
Nick Bastin

2
ฉันไม่รู้ว่า ARP ถูกแทนที่ด้วยเหตุผลด้านความปลอดภัยในตอนแรกหรือไม่ เท่าที่ฉันเห็นมันมีความปรารถนาที่จะครอบคลุมโปรโตคอลควบคุมทั้งหมดโดย ICMPv6 ในฐานะที่เป็นผลข้างเคียงใช่คุณสามารถรักษาความปลอดภัย ICMPv6 โดย IPsec อย่างไรก็ตาม IPsec ต้องการการแลกเปลี่ยนคีย์และ IKE รันผ่าน UDP ซึ่งต้องการที่อยู่ IP ภารกิจหนึ่งของ NDP คือการเจรจาที่อยู่ IP และการแลกเปลี่ยนคีย์ด้วยตนเองไม่ได้ปรับขนาดดังนั้นแนวคิดของ NDP + IPsec = secure NDP จะไม่ทำงานเช่นนี้ ทางเลือกอื่น ๆ เช่น SeND ยังไม่ได้ยกเลิก ในที่สุดฉันไม่เห็นความปลอดภัยใด ๆ ของ NDP ผ่าน ARP
ตอบโต้

4

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

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


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

ถึงบรรณาธิการ: ฉันใช้ที่อยู่ในภายหลังในการเปรียบเทียบสำหรับ MAC
Jacktose

2
  1. ที่อยู่ MAC สามารถเปลี่ยนแปลงได้ บน Linux ใช้ ip หรือ ifconfig สำหรับ Windows ส่วนใหญ่ดูการตั้งค่าไดรเวอร์ของอินเทอร์เฟซเครือข่ายของคุณ

  2. คุณไม่แปลงอะไรเลย ที่อยู่ MAC นั้นอยู่ใน Layer-2, IP ใน Layer-3 ของรุ่น OSI สำหรับ IPv4 ARP ใช้เพื่อค้นหาว่าที่อยู่ MAC (Layer-2) ใดเป็นของที่อยู่ IP (Layer-3) ที่แน่นอน สำหรับ IPv6 ICMPv6 (Neighbor Discovery) ใช้


ขออภัยฉันควรจะพูดว่า "แปล" ไม่ "แปลง"
CodyBugstein

0

Address Resolution Protocol (ARP)

ที่อยู่ IP ---> ARP ---> ที่อยู่ MAC

ที่อยู่ MAC ---> RARP ---> ที่อยู่ IP

ที่อยู่ IP = ที่อยู่แบบลอจิคัล [32 บิต]

ที่อยู่ MAC = ที่อยู่ทางกายภาพ [48 บิต]

Network Layer (IP) ----> ARP ---> Data Link Layer (MAC)

ที่อยู่ IP จำเป็นใน Network Layer เพื่อระบุต้นทาง / ปลายทางโฮสต์

จำเป็นต้องมีที่อยู่ MAC ใน Data Link Layer เพื่อระบุต้นทาง / ปลายทางโฮสต์


คุณไม่ถูกต้องเกี่ยวกับ RARP (หลายคนมีความคิดที่ไม่ถูกต้องนี้) นี่คือสิ่งที่เคยถูกใช้โดยโฮสต์เพื่อกำหนดที่อยู่ IP ของตัวเองไม่ใช่ที่อยู่ IP ของโฮสต์อื่น มันไม่ได้ใช้อีกต่อไป
Ron Maupin

0

สแต็กเครือข่ายจะค้นหา IP ปลายทางก่อนในตารางการเราต์จากนี้จะกำหนดสองสิ่ง

  1. ควรส่งแพ็คเก็ตอินเตอร์เฟสใด
  2. ที่อยู่ IP ของ hop ถัดไปคืออะไร หากไม่มีการระบุ hop ถัดไปในตารางการเราต์ IP ของปลายทางจะถูกใช้เป็น hop ถัดไป

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

หากแพ็กเก็ตนั้นถูกส่งออกไปบนเลเยอร์ลิงค์หลายจุด (เช่นอีเธอร์เน็ต ฯลฯ ) ระบบปฏิบัติการจะค้นหาการกระโดดต่อไปใน arp (ipv4) หรือตารางการค้นพบเพื่อนบ้าน (ipv6) หากพบรายการที่ไม่เก่าก็มีที่อยู่ MAC ที่ต้องการและสามารถส่งแพ็กเก็ตได้

หากไม่มีรายการที่ใช้งานได้จะทำให้แพ็กเก็ตปลายทางสำหรับการหยุดพักชั่วคราวครั้งถัดไปและส่งคำขอเพื่อค้นหาที่อยู่ MAC กลไกที่นี่แตกต่างกันเล็กน้อยระหว่าง v4 และ v6

ในคำขอ v4 arp จะถูกส่ง โดยทั่วไปจะออกอากาศ แต่ในบางกรณีหากโฮสต์มีรายการเก่าอาจลองคำขอ unicast ก่อนและย้อนกลับไปออกอากาศหากล้มเหลว การตอบกลับโดยปกติจะเป็นแบบ unicast

ในคำร้องขอการชักชวน v6 neigbour จะถูกส่งไปยังที่อยู่มัลติคาสต์ที่สร้างจากที่อยู่ hop ถัดไป เป้าหมายตอบกลับด้วยการโฆษณาเพื่อนบ้าน unicast โฮสต์ยังสามารถส่งโฆษณาเพื่อนบ้านไปยังกลุ่ม "all-nodes multicast" (หรือที่รู้จักว่าการออกอากาศอย่างมีประสิทธิภาพ) เพื่อรีเฟรชรายการในแคชเพื่อนบ้านค้นพบเพื่อนของพวกเขา

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