Saya tahu bahwa alat ip memungkinkan Anda mengikat banyak alamat ke antarmuka (mis., Http://www.linuxplanet.com/linuxplanet/tutorials/6553/1/ ). Saat ini, saya sedang mencoba untuk membangun sesuatu di atas IPv6, dan akan sangat berguna untuk memiliki seluruh blok alamat (katakanlah, a / 64) yang tersedia, sehingga program dapat memilih alamat mana pun dari jangkauan dan mengikat itu. Tak perlu dikatakan, melampirkan setiap IP dari rentang ini ke antarmuka akan memakan waktu cukup lama.
Apakah Linux mendukung pengikatan seluruh blok alamat ke sebuah antarmuka?
Jawaban:
Linux 2.6.37 dan di atasnya mendukung ini melalui fitur yang disebut AnyIP . Misalnya jika saya lari
pada mesin Ubuntu 11.04 ia akan menerima koneksi pada alamat apa pun di jaringan 2001: db8 :: / 32.
sumber
ip route list
atauip -6 route list
rute yang ditambahkan tidak terlihat. Bagaimana Anda menghitung blok alamat AnyIP?Ya, Linux mendukung pengikatan blok alamat jaringan ke antarmuka jaringan ... tetapi hanya pada antarmuka loopback. Jadi Anda bisa melakukan ini:
Dan kemudian lakukan ini:
Dengan rute yang sesuai di tempat ini akan melakukan apa yang Anda inginkan ... untuk alamat IPv4. Anda telah bertanya tentang IPv6, dan saya tidak punya pengalaman dengan IPv6, tetapi ada kemungkinan bagus itu akan bekerja dengan cara yang sama.
Saya awalnya membaca tentang ini di sini (di bagian bawah artikel). Perhatikan bahwa artikel ini juga membahas cara menetapkan beberapa alamat secara eksplisit ke antarmuka menggunakan fitur CentOS / Red Hat yang sebelumnya tidak saya ketahui.
sumber
ip -6 route add local <ip> dev lo
.Jadi saya melihat beberapa opsi di sini:
gunakan skrip untuk mengikat semua alamat ke antarmuka satu per satu
rute blok yang Anda inginkan ke alamat tunggal mesin Anda, dan kemudian minta mesin itu menggunakan antarmuka pcap untuk mencegat semua lalu lintas untuk blok tersebut (seolah-olah itu adalah router) dan menanganinya.
Anda dapat memainkan trik dengan aturan NAT untuk kemudian menulis ulang blok Ips yang dialihkan ke satu mesin menjadi IP internal tunggal pada mesin itu ... tetapi Anda masih akan berakhir dengan satu IP internal per IP yang benar-benar ingin Anda bayar perhatian, yang membuat Anda kembali ke solusi 1.
Jika saya jadi Anda, saya hanya akan menulis skrip kecil di opsi 1. Atau gunakan yang dari sini :
sumber
Seperti yang dikatakan orang lain, Anda dapat menggunakan mekanisme AnyIP untuk merutekan paket yang datang untuk seluruh subnet ke antarmuka localhost, tetapi perlu diingat bahwa Anda juga harus mendapatkan router upstream Anda untuk merutekan semua paket yang diinginkan ke mesin ini di posisi pertama. Ini dapat dilakukan hanya dengan entri tabel routing pada router, atau melalui BGP. ARP tidak benar-benar sesuai mengingat bahwa mesin Anda harus ARP untuk setiap IP secara individual.
sumber
"Anyip" yang dijelaskan di atas tidak bekerja untuk saya di centos 7. Saya harus membuat skrip untuk secara manual membuat alamat ipv6 saat boot. Untuk melakukannya saya telah menambahkan yang berikut ke / etc / crontab:
Berikut ini skrip bash untuk membuat sekitar 3000 alamat ipv6:
sumber