IPv6client64:ff9b::c633:642aNAT64translator+ DNS64IPv4server198.51.100.42v6 client reaches v4 destination, transparently

NAT64 และ DNS64

11 นาทีอ่านเครือข่าย

เครือข่ายโทรศัพท์เคลื่อนที่บางแห่งใช้งาน IPv6 เท่านั้นมาหลายปีแล้ว — T-Mobile US ซึ่งเป็นส่วนใหญ่ของ Reliance Jio ผู้ใช้ของพวกเขายังคงเข้าถึงไซต์ IPv4 เช่นเดียวกับส่วนอื่นๆ ของเว็บ การแปลเกิดขึ้นผ่าน NAT64 และ DNS64 ซึ่งเป็นเทคโนโลยีคู่ที่เชื่อมโยงโลก IPv4 และ IPv6 ทำความเข้าใจว่าการกระทำตรงกลางอย่างเงียบ ๆ ของการเปลี่ยนผ่าน IPv6 ให้ความกระจ่างได้อย่างไร

เนื้อหาบทความฉบับเต็มมีให้เป็นภาษาอังกฤษด้านล่าง

NAT64 และ DNS64 เป็นเทคโนโลยีที่ช่วยให้ไคลเอ็นต์ที่ใช้ IPv6 เท่านั้นเข้าถึงเซิร์ฟเวอร์ที่ใช้ IPv4 เท่านั้น พวกเขาร่วมกันปล่อยให้เครือข่ายปรับใช้ IPv6 เท่านั้น โดยไม่สูญเสียการเข้าถึงส่วน IPv4 ของอินเทอร์เน็ต T-Mobile US, ผู้ให้บริการมือถือรายใหญ่อื่นๆ หลายราย และเครือข่ายองค์กรจำนวนมากใช้รูปแบบนี้ในการผลิต

ปัญหาที่พวกเขาแก้ไข

การเปลี่ยนผ่าน IPv4 เป็น IPv6 เป็นไปอย่างค่อยเป็นค่อยไป เซิร์ฟเวอร์จำนวนมากยังคงเป็น IPv4 เท่านั้น หากเครือข่ายของคุณใช้ IPv6 เท่านั้น ไคลเอนต์ของคุณจะไม่สามารถเข้าถึงเซิร์ฟเวอร์เหล่านั้นได้โดยตรง เนื่องจากโปรโตคอลเข้ากันไม่ได้แบบย้อนหลัง

คำตอบที่ไร้เดียงสาคือ dual-stack — ทุกอุปกรณ์มีทั้งที่อยู่ IPv4 และ IPv6 Dual-stack ใช้งานได้ แต่ต้องมีการบำรุงรักษาสอง stack เครือข่ายแบบขนานอย่างไม่มีกำหนด เครือข่ายบางแห่งตัดสินใจใช้ IPv6 แบบสแต็กเดียวและใช้การแปลสำหรับการเข้าถึง IPv4 ที่เหลือ

วิธีการทำงานของ NAT64

NAT64 เป็นตัวแปล stateful ที่ขอบเขตเครือข่าย มี:

  • An IPv6 อินเทอร์เฟซหันหน้าไปทางเครือข่าย IPv6 เท่านั้น
  • An IPv4 อินเทอร์เฟซหันหน้าไปทางอินเทอร์เน็ต IPv4 (พร้อมกลุ่มที่อยู่ IPv4)
  • A การแมปตารางการแปล แหล่งที่มา IPv6 ไปยังพอร์ต IPv4 ที่จัดสรร

เมื่อไคลเอ็นต์ IPv6 ต้องการเข้าถึง เซิร์ฟเวอร์ IPv4:

  1. ไคลเอนต์ส่งแพ็กเก็ต IPv6 ไปยังที่อยู่ IPv6 พิเศษที่เข้ารหัสปลายทาง IPv4
  2. นักแปล NAT64 ได้รับแพ็กเก็ตบนอินเทอร์เฟซ IPv6
  3. แยกปลายทาง IPv4 ออกจากที่อยู่ IPv6 จัดสรรพอร์ตจากพูล IPv4 และเขียนใหม่ แพ็กเก็ตเป็นแพ็กเก็ต IPv4 โดยมีแหล่ง IPv4 ที่จัดสรร + พอร์ต
  4. แพ็กเก็ตจะไหลไปยังปลายทาง IPv4 ตามปกติ
  5. แพ็กเก็ตการตอบสนองกลับมาที่อินเทอร์เฟซ IPv4 ของ NAT64
  6. NAT64 ค้นหาการแมป สร้างแพ็กเก็ต IPv6 ขึ้นใหม่ และส่งต่อกลับไปที่ client.

Conceptually คล้ายกับ NAT44 (ชนิดปกติ) แต่มีการแปลโปรโตคอลในแต่ละขั้นตอน

ที่อยู่ IPv6 ที่มี IPv4

NAT64 ฝังอยู่ ใช้คำนำหน้า IPv6 เฉพาะ (คำนำหน้าที่รู้จักกันดีคือ 64:ff9b::/96) โดยมีที่อยู่ IPv4 ฝังอยู่ใน 32 รายการสุดท้าย บิต:

  • ในการเข้าถึง 198.51.100.42 ผ่าน NAT64 ไคลเอนต์ใช้ที่อยู่ 64:ff9b::c633:642a (32 บิตสุดท้ายซึ่งเข้ารหัส 198.51.100.42 ในรูปแบบฐานสิบหก)

ไคลเอนต์ไม่จำเป็นต้องรู้ นี่คือการแปล — แค่เห็นที่อยู่ IPv6 แต่ไคลเอนต์ได้รับที่อยู่พิเศษนี้จากที่ไหน

DNS64 เติมเต็มช่องว่าง

ไคลเอนต์ส่วนใหญ่ไม่ได้เชื่อมต่อกับที่อยู่ IP โดยตรง — พวกเขาเชื่อมต่อกับชื่อโฮสต์ผ่าน DNS DNS64 คือตัวแก้ไข DNS ที่ได้รับการดัดแปลงซึ่งจัดการการสังเคราะห์:

  1. Client สืบค้น DNS สำหรับ example.com
  2. DNS64 ตัวแก้ไขจะค้นหาบันทึก AAAA (IPv6) หากมีอยู่ ให้ส่งคืนตามปกติ
  3. หากมีเพียงบันทึก A (IPv4) DNS64 จะสังเคราะห์บันทึก AAAA ปลอมโดยการฝังที่อยู่ IPv4 ลงในคำนำหน้า NAT64
  4. Client จะได้รับสิ่งที่ดูเหมือนบันทึก AAAA ปกติกลับมา
  5. Client เชื่อมต่อกับ IPv6 ที่อยู่
  6. แพ็กเก็ตไหลผ่าน NAT64 และได้รับการแปลเป็น IPv4.

ไคลเอ็นต์ไม่ทราบถึงสิ่งนี้ เห็น IPv6, ส่ง IPv6, ได้รับการตอบกลับเป็น IPv6 การแปลไม่สามารถมองเห็นได้

464XLAT สำหรับความเข้ากันได้ของไคลเอนต์

NAT64 + DNS64 ทำงานได้เกือบทุกอย่าง แต่บางแอปพลิเคชันใช้งานไม่ได้ โดยเฉพาะอย่างยิ่งแอปพลิเคชันที่ส่งผ่านตัวอักษร IPv4 (ไม่ใช่ชื่อโฮสต์) วิธีแก้ไขคือ 464XLAT (CLAT — เครื่องมือแปลฝั่งลูกค้า):

  • อุปกรณ์ไคลเอนต์รัน CLAT ที่อ้างว่ามีสแต็ก IPv4
  • Apps ที่ต้องการ IPv4 พูดคุยกับ CLAT ซึ่งแปลเป็น IPv6
  • แพ็กเก็ต IPv6 ผ่านไป NAT64 ตามปกติ

Android และ iOS รองรับ 464XLAT T-Mobile US ใช้ชุดค่าผสมนี้ ผลลัพธ์: โทรศัพท์ Android บน T-Mobile เป็นแบบ IPv6 เท่านั้นที่เลเยอร์เครือข่าย แต่แอปจะทำงานเหมือนกับว่า IPv4 ยังคงใช้งานได้

ใช้งานที่ไหน

  • T-Mobile US — ใช้งาน IPv6 เท่านั้นด้วย NAT64 มาตั้งแต่ปี 2014
  • Reliance Jio (อินเดีย) — การใช้งาน IPv6 เท่านั้น, NAT64 สำหรับปลายทาง IPv4
  • องค์กรจำนวนมาก เครือข่าย ที่มีเครือข่ายภายใน IPv6 ส่วนใหญ่ใช้ NAT64 สำหรับบริการเฉพาะ IPv4 แบบเดิม
  • ผู้ให้บริการระบบคลาวด์บางราย เสนอบริการ NAT64 สำหรับ IPv6 เท่านั้น VPCs.

Limitations

  • State-heavy. นักแปลจะรักษาสถานะสำหรับทุกการเชื่อมต่อที่ใช้งานอยู่ ความต้องการทรัพยากรเพิ่มขึ้นตามปริมาณการรับส่งข้อมูล
  • ขีดจำกัดการเชื่อมต่อ เช่นเดียวกับ NAT อื่นๆ พอร์ตพูลจะกำหนดเพดานในการเชื่อมต่อพร้อมกันตามที่อยู่ IPv4
  • โปรโตคอลบางตัวประสบปัญหา โปรโตคอลที่ฝังที่อยู่ IP ไว้ในเพย์โหลด (SIP รุ่นเก่า, FTP) จำเป็นต้องมีเกตเวย์เลเยอร์แอปพลิเคชัน โปรโตคอลสมัยใหม่ส่วนใหญ่ไม่มีปัญหานี้ การแปลเฉพาะ
  • DNS เท่านั้น แอปที่เลี่ยงผ่าน DNS และเชื่อมต่อกับตัวอักษร IPv4 จำเป็นต้องมี CLAT
  • DNSSEC ภาวะแทรกซ้อน บันทึก AAAA สังเคราะห์ไม่ได้ลงนามโดยต้นทาง ไคลเอ็นต์ที่ตรวจสอบความถูกต้องของ DNSSEC อาจปฏิเสธได้ โซลูชั่นมีอยู่แต่เพิ่มความซับซ้อน

endgame

NAT64 เป็นเทคโนโลยีการเปลี่ยนแปลง สถานะสิ้นสุดที่คาดไว้คือ IPv6 ที่เป็นสากลเพียงพอที่ปลายทางที่ใช้ IPv4 เท่านั้นจะมีข้อยกเว้นที่ไม่ค่อยเกิดขึ้นที่จัดการที่ Edge ก่อนหน้านั้น NAT64 + DNS64 + 464XLAT คือวิธีที่เครือข่ายสามารถใช้งาน IPv6 เท่านั้นโดยไม่ทำให้บริการลดลง ชุดค่าผสมนี้ได้รับการผลิตมานานกว่าทศวรรษและมีความพร้อมเพียงพอสำหรับการใช้งานอย่างจริงจัง

คำถามที่พบบ่อย

ฉันอยู่เบื้องหลัง NAT64 หรือไม่?
อาจจะไม่เว้นแต่คุณจะใช้ T-Mobile US, Reliance Jio หรือเครือข่ายเฉพาะ IPv6 เท่านั้น เครือข่ายภายในบ้านและองค์กรส่วนใหญ่เป็นแบบ dual-stack (ทั้งสองโปรโตคอล) แทนที่จะเป็น IPv6 + NAT64 ล้วนๆ
NAT64 ส่งผลต่อประสิทธิภาพหรือไม่
เจียมเนื้อเจียมตัว. ขั้นตอนการแปลจะเพิ่มไมโครวินาที ตารางสถานะจะเพิ่มโอเวอร์เฮดของหน่วยความจำ สำหรับการท่องเว็บทั่วไป ผลกระทบนั้นไม่สามารถวัดผลได้ สำหรับเวิร์กโหลดที่มีอัตราการเชื่อมต่อสูงมาก โอเวอร์เฮดก็มีความสำคัญ
VPN ทำงานร่วมกับ NAT64 ได้หรือไม่?
ส่วนใหญ่. ไคลเอนต์ VPN ส่วนใหญ่ทันเนล IPv4 เป็นค่าเริ่มต้น NAT64 จัดการได้อย่างโปร่งใส โปรโตคอล VPN บางตัวที่เล่นได้ไม่ดีกับ double-NAT อาจมีปัญหาได้ การกำหนดค่า WireGuard และ OpenVPN ที่ทันสมัยจัดการได้อย่างถูกต้อง
เหตุใดทุกเครือข่ายจึงไม่ใช้ NAT64
Dual-stack นั้นใช้งานได้ง่ายกว่าและเข้าใจได้ดี NAT64 เพิ่มความซับซ้อนเพื่อผลประโยชน์ส่วนเพิ่มเมื่อ IPv4 ยังคงใช้งานได้กับไคลเอนต์ IPv6 เพียงอย่างเดียวที่มี NAT64 จะมีความน่าสนใจเป็นหลักเมื่อองค์กรมีที่อยู่ IPv4 ไม่เพียงพอหรือต้องการยอมรับ IPv6
NAT64 และ CGNAT แตกต่างกันอย่างไร?
CGNAT คือการแปล IPv4 เป็น IPv4 (IPv4 ส่วนตัวภายใน, IPv4 สาธารณะภายนอก) NAT64 คือการแปล IPv6 เป็น IPv4 เลเยอร์โปรโตคอลที่แตกต่างกัน ทั้งสองเป็นเทคโนโลยีการเปลี่ยนแปลงสำหรับการขาดแคลน IPv4 แต่แก้ปัญหาที่แตกต่างกัน
อธิบาย NAT64 และ DNS64: เครือข่าย IPv6 เท่านั้นพูดคุยกับอินเทอร์เน็ต IPv4 ได้อย่างไร