ที่อยู่ IPv6 ลูปแบ็ค (เทียบเท่า 127.xxx)


16

ฉันมีสภาพแวดล้อมการพัฒนาที่ฉันมีที่อยู่ลูปแบ็คแยกต่างหากสำหรับเว็บไซต์หลายแห่ง

ตัวอย่างเช่นฉันมีดังต่อไปนี้:

127.0.0.1 www.example.com
127.0.0.2 foo.example.com
127.0.0.3 bar.example.com
127.0.0.4 waffles.example.com

ฉันต้องการโซลูชันที่เทียบเท่าสำหรับ IPv6

ฉันรู้แล้วว่าคุณสามารถใช้ :: 1 เป็นที่อยู่ย้อนกลับได้ แต่ :: 2, :: 3 ฯลฯ ดูเหมือนจะไม่ทำงาน

มีที่อยู่ย้อนกลับอื่น ๆ ใน IPv6 หรือไม่ มีวิธีที่จะมีที่อยู่ย้อนกลับที่ไม่ซ้ำกันหลายรายการหรือไม่?


1
ฉันขอแนะนำ :: ffff: 7f00: 1, :: ffff: 7f00: 2 และต่อไป แต่ไม่ต้องสงสัยเลยว่าใครบางคนจะส่งผลไม้เน่ามาที่ฉัน
womble

คุณสามารถลองบางอย่างในขอบเขตมัลติคาสต์ของอินเตอร์เฟสแบบโลคัล IPv6 นั่นจะวนกลับเข้าไปในโฮสต์ของคุณและมันก็เป็นช่วงใหญ่ การทำงานของคุณจะขึ้นอยู่กับว่าคุณพยายามทำอะไร
Ron Maupin

คำตอบ:


13

ทางเทคนิค :: 2, :: 3 ฯลฯ เป็นส่วนหนึ่งของ :: 0.0.0.0/96 ช่วง "ipv6 ที่อยู่ ipv6 ที่เข้ากันได้" ช่วง มันเลิกใช้แล้ว แต่คุณอาจไม่ต้องการใช้ช่วงนั้น

สำหรับสภาพแวดล้อมของแล็บให้ใช้การกำหนดแอดเดรสท้องถิ่นที่ไม่ซ้ำกัน ไปที่https://www.ultratools.com/tools/rangeGeneratorและสร้างคำนำหน้าด้วยตัวคุณเอง จากนั้นคุณสามารถเลือกที่อยู่ใดก็ได้ที่คุณต้องการจากส่วนนำหน้านั้นและกำหนดให้กับอินเทอร์เฟซวนรอบ


ทำไมไม่ :: 127.0.0.0/96
ทอดด์

9

ที่อยู่ลูปแบ็คของคุณคือ :: 1/128 สังเกตความกว้างของซับเน็ตซึ่ง จำกัด ไว้เพียงโฮสต์เดียว เปลี่ยน subnetmask เป็นอะไรที่กว้างขึ้นและตรวจสอบตารางเส้นทางของคุณ หรือใช้ที่อยู่ link-local


1
คำตอบนี้จะดีกว่าถ้าคุณเพิ่มใน windows หรือ linux ทั้งหรืออย่างใดอย่างหนึ่งวิธีการผูกที่อยู่ IPv6 เพิ่มเติมไปยังอินเทอร์เฟซแบบวนรอบ ใน IPv4 คุณจะได้รับ 127.0.0.1/8 และใน IPv6 คุณจะได้รับ :: 1/128 ดังนั้นจะมีวิธีเพิ่ม IPv6 อีกไหม?
วิลเลียม

2
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ sudo ip route add local ::/104 dev lo 
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::2
PING ::2(::2) 56 data bytes
64 bytes from ::2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from ::2: icmp_seq=2 ttl=64 time=0.128 ms
^C
--- ::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.105/0.128/0.024 ms
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::3
PING ::3(::3) 56 data bytes
64 bytes from ::3: icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from ::3: icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from ::3: icmp_seq=3 ttl=64 time=0.142 ms

จากฉันสามารถผูกบล็อกที่อยู่ (ใหญ่) กับส่วนต่อประสานได้หรือไม่

มันเป็นสิ่งเดียวที่เหมาะกับฉัน แน่นอนเฉพาะ linux

หมายเหตุ : เนื่องจากอาจมีความขัดแย้งกับที่อยู่ 0.0.0.0/8 ในบางครั้งในอนาคต::127.0.0.0/104อาจเป็นตัวเลือกที่ดีกว่า


นี่คือการขยายตารางเส้นทางอย่างมีประสิทธิภาพในช่วงที่สงวนไว้สำหรับความเข้ากันได้ของ ipv4 ดังอธิบายโดย Ben Jencks
korkman

ที่เกี่ยวข้องกับฉันไม่มีอะไรเลย มันมีวัตถุประสงค์เพื่อทดสอบ มันอยู่ในเครื่องของฉัน มันส่งผลกระทบต่อใครนอกจากตัวฉันเอง
jcomeau_ictx

1
@jcomeau_ictx หรือไม่ก็กังวลคุณก็อาจกังวลทุกคนที่จะใช้คำตอบของคุณเพราะมันจะมีผลกระทบต่อพวกเขา
mtraceur

มันอาจ แต่ไม่สามารถระบุได้จนกว่าจะมีการกำหนดช่วง ipv4 0/8 อย่างไรก็ตามฉันจะแก้ไขคำตอบของฉัน
jcomeau_ictx

มันจะไม่ดีถ้าฉันใช้ / 96 แต่ฉันใช้ / 104 อย่างไรก็ตามฉันได้แก้ไขคำตอบเพื่อใช้ :: 127.0.0.0/104 ช่วงลูปแบ็ค
jcomeau_ictx

2

ฉันแนะนำให้ใช้ที่อยู่RFC 4193สำหรับสิ่งนี้ RFC 4193 ช่วยให้คุณสามารถสร้าง / 48 ของคุณเองสำหรับการใช้งานในท้องถิ่นโดยการใช้ค่าไบต์fdตามด้วย 5 ไบต์แบบสุ่ม คุณได้รับอนุญาตให้ใส่สิ่งที่คุณเห็นว่าเหมาะสมหลังจาก 48 บิตแรกดังนั้นหากคุณต้องการ / 64 คุณสามารถfdตามด้วย 7 ไบต์สุ่มตามตัวอย่างนี้สำหรับระบบ Linux:

ip -6 route add to local fd66:29e9:f422:8dfe::/64 dev lo

การใช้ RFC 4193 มีข้อดีเมื่อเปรียบเทียบกับคำตอบก่อนหน้าซึ่งคุณไม่ได้ละเมิด RFC ใด ๆ ในการทำเช่นนั้นและสามารถใช้ที่อยู่ได้โดยไม่ต้องมีตัวระบุส่วนต่อประสาน

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

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


ตอนนี้ฉันได้เขียนเครื่องมือบรรทัดคำสั่งขนาดเล็กเพื่อสร้างคำนำหน้าตาม RFC 4193: v6tools.kasperd.dk/rfc4193
kasperd

0

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

ดังนั้นสำหรับ Linux:

$ sudo ip -6 address add fe80::1/64 dev lo
$ sudo ip -6 address add fe80::2/64 dev lo
$ sudo ip -6 address add fe80::3/64 dev lo

และระบุอินเตอร์เฟสเมื่ออ้างถึงที่อยู่ดังกล่าว การทดสอบกับ netcat:

$ nc -l -p 10001 fe80::1%lo
$ nc fe80::1%lo 10001

การยืนยันขอบเขตที่ถูกต้อง:

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 fe80::1/64 scope link 
       valid_lft forever preferred_lft forever

ถึงกระนั้นก็ยังไม่หรูหรามากนักที่จะต้องเพิ่ม IP ทุก ๆ อันเพื่อที่จะสามารถผูกมันไว้ได้ ด้วย 127.0.0.0/8 คุณสามารถผูกกับที่อยู่ใด ๆ โดยไม่ต้องกำหนดล่วงหน้า


ไม่ ULA เป็นวิธีที่ถูกต้องในการกำหนดที่อยู่ในพื้นที่ มันจะไม่กำหนดเส้นทางตามค่าเริ่มต้นบนอินเทอร์เน็ต คุณสามารถกำหนดเส้นทางภายในเครื่องได้ ซับเน็ตทั้งหมดที่ไซต์สามารถมีคำนำหน้าส่วนตัวที่ไม่เหมือนใครในระดับสากลโดยไม่ขึ้นอยู่กับ ISP
John Mahowald

และไซต์ในพื้นที่ไม่ใช่โฮสต์ในพื้นที่ นั่นคือประเด็นของฉัน :-)
korkman

0

มีRFC proporsal ที่เรียกว่าA Huge Loopback Prefix สำหรับ IPv6ซึ่งเสนอให้ใช้1::/32เป็นเครือข่าย localhost อย่างไรก็ตามข้อเสนอดังกล่าวไม่ได้รับการอนุมัติและหมดอายุในปี 2556


นี่ถูกกล่าวถึงแล้วในคำตอบที่ฉันเขียนเมื่อปีที่แล้วกับคำถามนี้
kasperd

@kaspered โอ้ใช่แล้วคุณพูดถูกขอโทษไม่ได้สังเกตเนื่องจากคำตอบนั้นมีสองคำตอบและเริ่มด้วยอีกข้อหนึ่ง
F.Raab

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