Địa chỉ Loopback IPv6 (tương đương 127.xxx)


16

Tôi có một môi trường phát triển được thiết lập nơi tôi có một địa chỉ loopback riêng cho nhiều trang web.

Ví dụ: tôi có những điều sau đây:

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

Tôi muốn một giải pháp tương đương cho IPv6.

Tôi đã biết rằng bạn có thể sử dụng :: 1 làm địa chỉ loopback, nhưng :: 2, :: 3, v.v ... dường như không hoạt động.

Có địa chỉ loopback nào khác trong IPv6 không? Có cách nào để có nhiều địa chỉ loopback độc đáo không?


1
Tôi muốn giới thiệu :: ffff: 7f00: 1, :: ffff: 7f00: 2, v.v., nhưng không nghi ngờ gì ai đó sẽ ném trái cây thối vào tôi.
womble

Bạn có thể thử một cái gì đó trong phạm vi phát đa hướng cục bộ giao diện IPv6. Điều đó sẽ lặp lại vào máy chủ của bạn, và đó là một phạm vi rất lớn. Việc nó có hiệu quả với bạn hay không sẽ phụ thuộc vào những gì bạn đang cố gắng làm.
Ron Maupin

Câu trả lời:


13

Về mặt kỹ thuật :: 2, :: 3, v.v. là một phần của :: 0.0.0.0/96, phạm vi "địa chỉ ipv6 tương thích ipv4". Điều đó không được chấp nhận, nhưng có lẽ bạn không muốn sử dụng phạm vi đó.

Đối với một môi trường phòng thí nghiệm, sử dụng địa chỉ địa phương duy nhất. Truy cập https://www.ultratools.com/tools/rangeGenerator và tạo cho mình một tiền tố. Sau đó, bạn có thể chọn bất kỳ địa chỉ nào bạn muốn từ tiền tố đó và gán chúng cho giao diện loopback.


Tại sao không :: 127.0.0.0/96?
Todd

9

Địa chỉ loopback của bạn là :: 1/128. Lưu ý chiều rộng của mạng con giới hạn nó chỉ là một máy chủ. thay đổi mạng con thành một cái gì đó rộng hơn và kiểm tra bảng định tuyến của bạn. Hoặc sử dụng địa chỉ liên kết cục bộ.


1
Câu trả lời này sẽ tốt hơn, nếu bạn đã thêm, trên một hoặc cả hai, của windows hoặc linux, làm thế nào để liên kết các địa chỉ IPv6 bổ sung với giao diện loopback. Trong IPv4, bạn nhận được 127.0.0.1/8 và trong IPv6 bạn nhận được :: 1/128, vậy có cách nào để thêm một số thứ nữa cho IPv6 không?
William

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

từ Tôi có thể liên kết một khối địa chỉ (lớn) với một giao diện không?

đó là điều duy nhất làm việc cho tôi Tất nhiên là dành riêng cho linux.

nota bene : bởi vì điều này có thể xung đột với các địa chỉ 0.0.0.0/8 tại một thời điểm nào đó trong tương lai, ::127.0.0.0/104có lẽ sẽ là lựa chọn tốt hơn.


Điều này có hiệu quả mở rộng bảng định tuyến vào phạm vi dành riêng cho khả năng tương thích ipv4 như được mô tả bởi Ben Jencks.
korkman

điều đó không liên quan đến tôi. đó là cho mục đích thử nghiệm; Nó trên máy cục bộ của tôi; nó không ảnh hưởng đến ai ngoài bản thân tôi
jcomeau_ictx 5/2/2016

1
@jcomeau_ictx Dù điều đó có liên quan đến bạn hay không, nó có thể liên quan đến bất kỳ ai sẽ sử dụng câu trả lời của bạn, vì điều đó sẽ ảnh hưởng đến họ .
mtraceur

có thể, nhưng có thể cho đến khi phạm vi ipv4 0/8 được chỉ định. Dù sao, tôi sẽ sửa câu trả lời của tôi.
jcomeau_ictx

nó sẽ rất tệ nếu tôi sử dụng / 96, nhưng tôi đã sử dụng / 104. Dù sao, tôi đã chỉnh sửa câu trả lời để sử dụng :: 127.0.0.0/104, phạm vi loopback.
jcomeau_ictx

2

Tôi khuyên bạn nên sử dụng địa chỉ RFC 4193 cho việc này. RFC 4193 cho phép bạn tự xây dựng / 48 để sử dụng cục bộ bằng cách lấy giá trị byte fdtheo sau là 5 byte ngẫu nhiên . Bạn được phép đặt bất cứ thứ gì bạn thấy phù hợp sau 48 bit đầu tiên, vì vậy nếu bạn muốn a / 64, bạn có thể lấy fdtheo 7 byte ngẫu nhiên như trong ví dụ này cho các hệ thống Linux:

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

Sử dụng RFC 4193 có lợi thế so với các câu trả lời trước đó rằng bạn không vi phạm bất kỳ RFC nào khi làm như vậy và địa chỉ có thể được sử dụng mà không cần số nhận dạng giao diện.

Mỗi phạm vi được đề cập trong các câu trả lời trước đó đều sử dụng phạm vi dành riêng cho các mục đích khác nhau hoặc địa chỉ liên kết cục bộ yêu cầu số nhận dạng giao diện bất cứ khi nào được sử dụng.

Tồn tại một dự thảo đã hết hạn cho thấy rằng phạm vi 1::/32được phân bổ cho các địa chỉ loopback bổ sung như bạn đang yêu cầu. Tuy nhiên, vì dự thảo đó đã hết hạn từ nhiều năm trước và không có phân bổ nào như vậy khiến bạn không thể sử dụng 1::/32cho việc này.


Bây giờ tôi đã viết một công cụ dòng lệnh nhỏ để tạo tiền tố tuân thủ RFC 4193: v6tools.kasperd.dk/rfc4193
kasperd

0

Sử dụng địa chỉ liên kết cục bộ dường như là lựa chọn hợp lệ duy nhất. Điều mà hầu hết các đề xuất ở đây bỏ qua là thực tế là tiền tố IPv6 tuyên bố phạm vi và tôi không muốn địa chỉ riêng tư của mình có thể nằm trong phạm vi toàn cầu.

Vì vậy, đối với 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

Và chỉ định giao diện khi tham khảo các địa chỉ như vậy. Thử nghiệm với netcat:

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

Xác minh phạm vi chính xác:

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

Tuy nhiên, có vẻ như không phải là rất thanh lịch khi phải thêm từng IP duy nhất để có thể liên kết với nó. Với 127.0.0.0/8, bạn có thể liên kết với bất kỳ địa chỉ nào mà không cần gán trước chúng.


Không, ULA là một cách hợp lệ để thực hiện địa chỉ trang web địa phương. Nó sẽ không định tuyến theo mặc định trên Internet. Bạn có thể định tuyến nó tại địa phương tuy nhiên. Mỗi mạng con tại một trang web có thể có tiền tố riêng duy nhất trên toàn cầu , độc lập với ISP.
John Mahowald

Và trang web địa phương KHÔNG lưu trữ cục bộ. Đó là quan điểm của tôi :-)
korkman

0

Có một RFC proporsal được gọi là Tiền tố Loopback lớn hơn cho IPv6 , đề xuất sử dụng 1::/32làm mạng localhost. Tuy nhiên, đề xuất đã không được phê duyệt và đã hết hạn vào năm 2013.


Điều này đã được đề cập trong câu trả lời tôi đã viết năm ngoái về chính câu hỏi này.
kasperd

@kaspered Oh yea bạn đúng, xin lỗi đã không nhận thấy vì câu trả lời thực tế bao gồm hai câu trả lời và bắt đầu với câu trả lời khác.
F.Raab

Tôi đã không thực sự coi dự thảo hết hạn là một câu trả lời vì nó không bao giờ trở thành một tiêu chuẩn. Tôi đã lưu ý nó dưới câu trả lời của tôi vì nó là thông tin cơ bản có liên quan và cung cấp một số bối cảnh về những nỗ lực đã được chuẩn hóa trên một phạm vi cho mục đích cụ thể đó.
kasperd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.