Alamat Loopback IPv6 (setara dengan 127.xxx)

16

Saya memiliki lingkungan pengembangan yang diatur di mana saya memiliki alamat loopback terpisah untuk beberapa situs web.

Sebagai contoh, saya memiliki yang berikut ini:

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

Saya ingin solusi yang setara untuk IPv6.

Saya sudah tahu bahwa Anda dapat menggunakan :: 1 sebagai alamat loopback, tetapi :: 2, :: 3, dll sepertinya tidak berfungsi.

Apakah ada alamat loopback lain di IPv6? Apakah ada cara untuk memiliki beberapa alamat loopback unik?

Pasang kembali Monica
sumber
1
Saya akan merekomendasikan :: ffff: 7f00: 1, :: ffff: 7f00: 2, dan seterusnya, tetapi tidak diragukan lagi seseorang akan memberikan buah busuk kepada saya.
womble
Anda dapat mencoba sesuatu dalam lingkup multicast antarmuka-lokal IPv6. Itu akan kembali ke host Anda, dan itu adalah rentang yang sangat besar. Apakah itu berhasil atau tidak, Anda akan bergantung pada apa yang Anda coba lakukan.
Ron Maupin

Jawaban:

13

Secara teknis :: 2, :: 3 dll adalah bagian dari :: 0.0.0.0/96, kisaran "alamat ipv4 yang kompatibel dengan ipv6". Sudah usang, tetapi Anda mungkin tidak ingin menggunakan rentang itu.

Untuk lingkungan laboratorium, gunakan pengalamatan lokal yang unik. Buka https://www.ultratools.com/tools/rangeGenerator dan hasilkan awalan. Kemudian Anda dapat memilih alamat apa pun yang Anda inginkan dari awalan itu, dan menetapkannya ke antarmuka loopback.

Ben Jencks
sumber
Kenapa tidak :: 127.0.0.0/96?
Todd
9

Alamat loopback Anda adalah :: 1/128. Perhatikan lebar subnet yang membatasi hanya untuk satu host. ubah subnetmask menjadi sesuatu yang lebih luas dan periksa tabel perutean Anda. Atau gunakan alamat tautan-lokal.

Fladi
sumber
1
Jawaban ini akan lebih baik, jika Anda menambahkan, pada salah satu atau keduanya, dari windows atau linux, cara mengikat alamat IPv6 tambahan ke antarmuka loopback. Di IPv4, Anda mendapatkan 127.0.0.1/8, dan di IPv6 Anda mendapatkan :: 1/128, jadi apakah ada cara untuk menambahkan lebih banyak untuk IPv6?
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

dari Dapatkah saya mengikat blok alamat (besar) ke antarmuka?

itu satu-satunya yang bekerja untuk saya. khusus linux, tentu saja.

nota bene : karena ini mungkin bertentangan dengan alamat 0.0.0.0/8 suatu saat nanti, ::127.0.0.0/104mungkin akan menjadi pilihan yang lebih baik.

jcomeau_ictx
sumber
Ini secara efektif memperluas tabel routing ke dalam jangkauan yang disediakan untuk kompatibilitas ipv4 seperti yang dijelaskan oleh Ben Jencks.
korkman
yang tidak mempedulikan saya sama sekali. itu untuk tujuan pengujian; ada di mesin lokal saya; itu tidak mempengaruhi siapa pun kecuali diriku sendiri.
jcomeau_ictx
1
@jcomeau_ictx Apakah itu menyangkut Anda atau tidak, mungkin menyangkut siapa pun yang akan menggunakan jawaban Anda, karena itu akan mempengaruhi mereka .
mtraceur
mungkin, tapi bisa dibilang tidak sampai rentang ipv4 0/8 ditetapkan. Lagi pula, saya akan memperbaiki jawaban saya.
jcomeau_ictx
itu akan buruk kalau saya menggunakan / 96, tapi saya menggunakan / 104. Lagi pula, saya mengedit jawaban untuk menggunakan :: 127.0.0.0/104, kisaran loopback.
jcomeau_ictx
2

Saya sarankan menggunakan alamat RFC 4193 untuk ini. RFC 4193 memungkinkan Anda untuk membangun sendiri / 48 untuk penggunaan lokal dengan mengambil nilai byte fddiikuti oleh 5 byte acak . Anda diizinkan untuk meletakkan apa pun yang Anda inginkan setelah 48 bit pertama, jadi jika Anda menginginkan / 64 Anda dapat mengambil fddiikuti oleh 7 byte acak seperti dalam contoh ini untuk sistem Linux:

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

Menggunakan RFC 4193 memiliki keunggulan dibandingkan dengan jawaban sebelumnya bahwa Anda tidak melanggar RFC apa pun dalam melakukannya dan alamat dapat digunakan tanpa pengenal antarmuka.

Setiap rentang yang disebutkan dalam jawaban sebelumnya menggunakan rentang yang dicadangkan untuk tujuan yang berbeda atau alamat tautan-lokal yang memerlukan pengenal antarmuka setiap kali digunakan.

Ada konsep kedaluwarsa yang menunjukkan bahwa rentang 1::/32dialokasikan untuk alamat loopback tambahan seperti yang Anda minta. Namun sejak konsep itu berakhir tahun yang lalu dan tidak ada alokasi yang pernah dibuat Anda tidak dapat menggunakan 1::/32untuk ini.

kasperd
sumber
Saya sekarang telah menulis alat baris perintah kecil untuk menghasilkan awalan RFC 4193 yang sesuai: v6tools.kasperd.dk/rfc4193
kasperd
0

Menggunakan pengalamatan tautan-lokal tampaknya menjadi satu-satunya pilihan yang valid. Yang diabaikan oleh kebanyakan saran di sini adalah fakta bahwa awalan IPv6 menyatakan ruang lingkup , dan saya tidak ingin pengalamatan pribadi saya mungkin berada dalam lingkup global.

Jadi untuk 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

Dan tentukan antarmuka saat merujuk ke alamat tersebut. Pengujian dengan netcat:

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

Memverifikasi ruang lingkup yang benar:

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

Namun sepertinya tidak terlalu elegan untuk menambahkan setiap IP tunggal untuk dapat mengikatnya. Dengan 127.0.0.0/8, Anda dapat mengikat ke alamat mana pun tanpa memberikannya sebelumnya.

korkman
sumber
Tidak, ULA adalah cara yang sah untuk melakukan pengalamatan lokal situs. Ini tidak akan dirutekan secara default di Internet. Namun Anda dapat merutekannya secara lokal. Setiap subnet di suatu situs dapat memiliki awalan pribadi yang unik secara global , tidak tergantung pada ISP.
John Mahowald
Dan situs lokal BUKAN host lokal. Itu maksud saya :-)
korkman
0

Ada sebuah proporsal RFC yang disebut A Larger Loopback Prefix for IPv6 , yang mengusulkan untuk digunakan 1::/32sebagai jaringan localhost. Namun, proposal itu tidak disetujui dan sudah kadaluarsa di tahun 2013.

F. Raab
sumber
Ini sudah disebutkan dalam jawaban yang saya tulis tahun lalu tentang pertanyaan ini.
kasperd
@kaspered Oh ya kamu benar, maaf tidak memperhatikan karena jawabannya sebenarnya termasuk dua jawaban dan dimulai dengan yang lain.
F.Raab
Saya tidak benar-benar menganggap draft yang sudah kadaluwarsa itu sebagai jawaban karena tidak pernah menjadi standar. Saya mencatatnya di bawah jawaban saya karena ini adalah informasi latar belakang yang relevan dan memberikan beberapa konteks tentang upaya standardisasi pada kisaran untuk tujuan tertentu tersebut.
kasperd