IPv6 루프백 주소 (127.xxx에 해당) 루프백 주소로 사용할

여러 웹 사이트에 대해 별도의 루프백 주소가있는 개발 환경이 있습니다.

예를 들어 다음과 같은 것이 있습니다.

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에 다른 ​​루프백 주소가 있습니까? 고유 한 루프백 주소를 여러 개 가질 수있는 방법이 있습니까?



답변

기술적으로 :: 2, :: 3 등은 “ipv4 호환 ipv6 주소”범위 인 :: 0.0.0.0/96의 일부입니다. 더 이상 사용되지 않지만 해당 범위를 사용하고 싶지 않을 수 있습니다.

랩 환경의 경우 고유 한 로컬 주소 지정을 사용하십시오. https://www.ultratools.com/tools/rangeGenerator로 이동하여 접두사를 생성하십시오. 그런 다음 해당 접두사에서 원하는 주소를 선택하여 루프백 인터페이스에 할당 할 수 있습니다.


답변

루프백 주소는 :: 1/128입니다. 서브넷의 너비는 하나의 호스트로만 제한됩니다. 서브넷 마스크를 더 넓은 것으로 변경하고 라우팅 테이블을 확인하십시오. 또는 링크 로컬 주소를 사용하십시오.


답변

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

from (큰) 주소 블록을 인터페이스에 바인딩 할 수 있습니까?

그것은 나를 위해 일한 유일한 것입니다. 물론 리눅스에 따라 다릅니다.

참고 : 미래에 언젠가 0.0.0.0/8 주소와 충돌 할 수 있기 때문에 ::127.0.0.0/104더 나은 선택 일 것입니다.


답변

이를 위해 RFC 4193 주소를 사용하는 것이 좋습니다 . RFC 4193을 사용하면 바이트 값 fd과 5 개의 임의 바이트를 가져와 로컬에서 사용할 고유 한 / 48을 구성 할 수 있습니다 . 처음 48 비트 뒤에는 적절한 것을 넣을 수 있으므로 / 64를 원하면 fdLinux 시스템의이 예와 같이 7 바이트의 임의 바이트 를 사용할 수 있습니다 .

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

RFC 4193을 사용하면 RFC를 위반하지 않는 이전 답변과 비교할 때 이점이 있으며 인터페이스 식별자없이 주소를 사용할 수 있습니다.

이전 답변에서 언급 한 각 범위는 다른 목적으로 예약 된 범위를 사용하거나 사용할 때마다 인터페이스 식별자가 필요한 링크 로컬 주소를 사용합니다.

원하는 초안1::/32 이 추가 루프백 주소에 할당 되도록 제안 된 초안 이 있습니다 . 그러나 그 초안이 몇 년 전에 만료되어 그러한 할당 이 이루어진 적이 없으므로이를 사용할 수 없습니다 1::/32.


답변

링크 로컬 주소 지정을 사용하는 것이 유일하게 유효한 옵션 인 것 같습니다. 여기에서 대부분의 제안이 무시하는 것은 IPv6 접두사가 scope을 선언 한다는 사실이며, 아마도 개인 주소 지정이 전역 범위에 포함되기를 원하지 않습니다.

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를 바인딩 할 수 있도록 모든 단일 IP를 추가해야하는 것은 그리 우아하지 않은 것 같습니다. 127.0.0.0/8을 사용하면 사전에 할당하지 않고도 모든 주소에 바인딩 할 수 있습니다.


답변

RFC의 proporsal 라는 IPv6에 대한 더 큰 루프백 접두사 사용하는 제안, 1::/32로컬 호스트 네트워크로는. 그러나이 제안은 2013 년에 이미 승인 및 만료되지 않았습니다.