IPV6 สำหรับ localhost และ 0.0.0.0 คืออะไร?


101

อย่างที่เราทราบกันดีว่าที่อยู่ IPv4 สำหรับlocalhostคือ127.0.0.1(ที่อยู่ย้อนกลับ) ที่อยู่ IPv6 คืออะไรlocalhostและเพื่ออะไร0.0.0.0เนื่องจากฉันต้องการบล็อกโฮสต์โฆษณาบางแห่ง

คำตอบ:


120

อย่างที่เราทราบกันดีว่าที่อยู่ IPv4 สำหรับlocalhostคือ127.0.0.1(ที่อยู่ย้อนกลับ)

จริงๆแล้วที่อยู่ IPv4 ใด ๆ ใน127.0.0.0/8เป็นที่อยู่ย้อนกลับ

ใน IPv6, ::1/128อนาล็อกโดยตรงของช่วงย้อนกลับคือ ดังนั้น::1(แบบยาว0:0:0:0:0:0:0:1) จึงเป็นที่อยู่ลูปแบ็ค IPv6 หนึ่งเดียว


แม้ว่าlocalhostโดยปกติชื่อโฮสต์จะแก้ไข127.0.0.1หรือ::1ฉันเคยเห็นกรณีที่มีคนผูกไว้กับที่อยู่ IP ที่ไม่ใช่ที่อยู่ย้อนกลับ นี่มันค่อนข้างบ้า ... แต่บางครั้งก็มีคนทำ

ฉันพูดว่า "มันบ้า" เพราะคุณมีแนวโน้มที่จะละเมิดสมมติฐานการใช้งานโดยการทำเช่นนี้ เช่นแอปพลิเคชันอาจพยายามทำการค้นหาแบบย้อนกลับบน IP แบบย้อนกลับและไม่ได้รับผลลัพธ์ที่คาดหวัง ในกรณีที่เลวร้ายที่สุดแอปพลิเคชันอาจส่งการรับส่งข้อมูลที่ละเอียดอ่อนผ่านเครือข่ายที่ไม่ปลอดภัยโดยบังเอิญ ... แม้ว่าคุณอาจต้องทำผิดพลาดอื่น ๆ ด้วยเพื่อ "บรรลุ"


การบล็อก0.0.0.0ไม่สมเหตุสมผล ใน IPv4 จะไม่ถูกกำหนดเส้นทาง สิ่งที่เทียบเท่าใน IPv6 คือที่::อยู่ (แบบยาว0:0:0:0:0:0:0:0) ... ซึ่งไม่เคยถูกกำหนดเส้นทาง

ที่อยู่0.0.0.0และ::สงวนไว้ให้หมายถึง "ที่อยู่ใดก็ได้" ตัวอย่างเช่นโปรแกรมที่ให้บริการเว็บอาจผูกกับ0.0.0.0พอร์ต 80 เพื่อยอมรับการเชื่อมต่อ HTTP ผ่านที่อยู่ IPv4 ของโฮสต์ ที่อยู่เหล่านี้ไม่ถูกต้องเป็นที่อยู่ต้นทางหรือปลายทางสำหรับแพ็กเก็ต IP


ท้ายที่สุดความเห็นบางคนถูกถามเกี่ยวกับ::/128เมื่อเทียบกับเมื่อเทียบกับ::/0::

ความแตกต่างนี้คืออะไร?

พูดอย่างเคร่งครัดสองประการแรกคือสัญลักษณ์ CIDR ไม่ใช่ที่อยู่ IPv6 พวกเขากำลังระบุช่วงของที่อยู่ IP CIDR ประกอบด้วยที่อยู่ IP และหมายเลขเพิ่มเติมที่ระบุจำนวนบิตใน netmask ทั้งสองร่วมกันระบุช่วงของที่อยู่ นั่นคือชุดของที่อยู่ที่เกิดขึ้นโดยการละเว้นบิตที่ถูกปิดบังจากที่อยู่ที่กำหนด

ดังนั้น:

  • :: หมายถึงเพียงที่อยู่ IPv6 0:0:0:0:0:0:0:0
  • ::/128หมายถึง0:0:0:0:0:0:0:0netmask ประกอบด้วย 128 บิต สิ่งนี้ให้ช่วงเครือข่ายที่มีที่อยู่เดียวในนั้น
  • ::/0หมายถึง0:0:0:0:0:0:0:0netmask ประกอบด้วย 0 บิต สิ่งนี้ให้ช่วงเครือข่ายที่มี 2 128ที่อยู่ในนั้น; นั่นคือพื้นที่ที่อยู่ IPv6 ทั้งหมด!

สำหรับข้อมูลเพิ่มเติมโปรดอ่านหน้า Wikipedia บนที่อยู่ IPv4 และ IPv6 และสัญลักษณ์ CIDR:


65

IPv6 localhost

::1คือที่อยู่ย้อนกลับใน IPv6

ภายใน URL

ภายใน URL ให้ใช้วงเล็บเหลี่ยม[]:

  • http://[::1]/
    ค่าดีฟอลต์คือพอร์ต 80
  • http://[::1]:80/
    ระบุพอร์ต

ล้อมรอบตัวอักษร IPv6 ในวงเล็บสำหรับใช้ใน URL ที่ถูกกำหนดไว้ในRFC 2732 - รูปแบบที่อยู่ตามตัวอักษร IPv6 ใน URL



4

เพื่อความสมบูรณ์: มีที่อยู่IPv6 ที่แมป IPv4ซึ่งคุณสามารถฝังที่อยู่ IPv4 ในที่อยู่ IPv6 (อุปกรณ์ IPv6 บางเครื่องอาจไม่รองรับ)

ตัวอย่าง: ฉันเรียกใช้เซิร์ฟเวอร์บนเครื่องของฉันซึ่งสามารถเข้าถึงได้ทางhttp://127.0.0.1:19983/solr. หากฉันเข้าถึงผ่านที่อยู่ IPv6 ที่แมป IPv4 ฉันจะเข้าถึงผ่านhttp://[::ffff:127.0.0.1]:19983/solr(ซึ่งจะถูกแปลงเป็นhttp://[::ffff:7f00:1]:19983/solr)


2

สำหรับใช้ในก /etc/hostsเป็นเทคนิคการบล็อกโฆษณาง่ายๆที่ทำให้โดเมนไม่สามารถแก้ไขได้มีการใช้ที่อยู่ 0.0.0.0 กันอย่างแพร่หลายเนื่องจากทำให้คำขอล้มเหลวทันทีโดยไม่ต้องพยายามเพราะไม่ใช่ที่อยู่ที่ถูกต้องหรือกำหนดเส้นทางได้ นี่เป็นการเปรียบเทียบกับการใช้ 127.0.0.1 ในสถานที่นั้นซึ่งอย่างน้อยจะตรวจสอบดูว่าคอมพิวเตอร์ของคุณกำลังรับฟังพอร์ต 80 ที่ร้องขอหรือไม่ก่อนที่จะล้มเหลวด้วย 'การเชื่อมต่อถูกปฏิเสธ' ที่อยู่เหล่านั้นที่ถูกใช้ในไฟล์โฮสต์สำหรับโดเมนจะหยุดการร้องขอใด ๆ จากการพยายามผ่านเครือข่ายจริง แต่ 0.0.0.0 ได้รับความนิยมเนื่องจากมี 'เหมาะสม' มากกว่าด้วยเหตุผลข้างต้น IP "127" จะพยายามเข้าสู่คอมพิวเตอร์ของคุณและ IP อื่น ๆ จะทำให้มีการร้องขอไปยังเราเตอร์เพื่อพยายามกำหนดเส้นทาง แต่สำหรับ 0.0.0.0 จะมี '

ทั้งหมดที่กล่าวมาการมีIP ใด ๆที่แสดงอยู่ในไฟล์โฮสต์ของคุณสำหรับโดเมนที่จะถูกบล็อกนั้นเพียงพอแล้วและคุณไม่จำเป็นต้องหรือต้องการใส่ที่อยู่ ipv6 ในไฟล์โฮสต์ของคุณเว้นแต่ - คุณอาจไม่ทำ เปิดใช้งาน ipv4 เลย ฉันจะแปลกใจจริงๆถ้าเป็นเช่นนั้น และถึงกระนั้นฉันคิดว่าการมีโฮสต์ปรากฏใน / etc / hosts ด้วยที่อยู่ ipv4 ที่ไม่ดีเมื่อคุณไม่ได้เปิดใช้งาน ipv4 จะยังคงให้ผลลัพธ์ที่คุณกำลังมองหาซึ่งทำให้มันล้มเหลวแทนที่จะค้นหา DNS จริงกล่าวคือ adserver-example.com และรับคืน IP v4 หรือ v6

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