IPv6 subnetting a / 64 - apa yang akan pecah, dan bagaimana cara mengatasinya?

27

Di IPv6, Anda tidak seharusnya menundukkan sesuatu yang lebih kecil dari a / 64 (RFC 5375). Antara lain, SLAAC tidak bekerja dengan subnet yang lebih kecil, dan tampaknya juga beberapa fitur lainnya akan rusak.

Apa solusi untuk situasi di mana ISP hanya akan memberi Anda satu / 64 tetapi Anda perlu beberapa subnet secara internal? Saran umum tampaknya hanya menemukan ISP lain yang akan membagikan / 56 atau / 48. Di beberapa bagian dunia, itu mungkin berhasil, tetapi di wilayah kami (AS), itu tidak layak karena kurangnya kompetisi. Sebagian besar klien saya beruntung jika mereka memiliki satu ISP yang melayani daerah mereka. Banyak orang di sini masih menggunakan dial-up.

Klien saya tidak akan memenuhi syarat untuk / 48 dari ARIN.

Kevin Keane
sumber
9
Saya tidak akan mencoba menggunakan IPv6 dalam skenario itu. Terus menekan ISP untuk menyediakan konektivitas yang tepat. Buat kesalahan mereka sangat terlihat dan publik, jika perlu. Kutip bab dan ayat dari RFC 6177. Tentu saja, Anda harus terlebih dahulu memastikan bahwa itu adalah kesalahan mereka, dan bahwa peralatan Anda meminta subnet yang lebih besar.
Michael Hampton
5
Itu juga saran yang buruk. Dengan semua kelebihannya, kebanyakan orang harus menggunakan IPv6 pada kesempatan pertama yang tersedia. Sayangnya banyak ISP telah membuat sarapan lengkap untuk layanan IPv6 mereka, membuatnya tidak bijaksana untuk digunakan.
Michael Hampton
2
Kita bisa berdebat sepanjang hari apakah ISP membuatkan sarapan untuk anjing (yang memang mereka lakukan!), Atau apakah perancang IPv6 tidak realistis dalam asumsi mereka bahwa ISP tidak akan melakukan itu. Tentu saja, saya tidak memberi tahu klien saya untuk menjauh dari IPv6 selamanya, hanya sampai debu telah beres. Saya yakin lima tahun dari sekarang, atau bahkan lebih awal, akan ada SLAAC 2.0 yang mendukung subnet yang lebih kecil, bersama dengan NAT (banyak router sudah mengimplementasikannya), dan segala hal lain yang diperlukan untuk membuat IPv6 berfungsi dalam menghadapi kesulitan. Saya lebih mencari solusi sekarang.
Kevin Keane
4
Jangan mengandalkan kekacauan IPv4 seperti NAT untuk bekerja dengan baik dengan IPv6. NAT adalah peretasan, bukan fitur ...
Sander Steffann
3
@KevinKeane NAT selalu menjadi peretasan dan akan selalu demikian. Setiap masalah yang orang coba selesaikan menggunakan NAT memiliki solusi nyata yang tidak melibatkan NAT - tetapi kemungkinan itu memang melibatkan IPv6. Sebagian besar kerusakan yang Anda bicarakan dapat dikaitkan dengan NAT atau penyebaran IPv6 yang tidak lengkap.
kasperd

Jawaban:

28

Jika ISP tidak akan memberi Anda lebih dari / 64, maka ISP itu payah. Jika itu melegakan saya dapat memberitahu Anda bahwa saya harus berurusan dengan ISP yang menyedot lebih dari itu. Di sekitar sini, sangat normal untuk mengambil alamat IPv4 publik dari pelanggan dan menempatkannya di belakang CGN. Dan jika Anda meminta mereka untuk alamat IPv6, mereka akan memberi tahu Anda bahwa mereka tidak menawarkan IPv6 karena belum ada kekurangan alamat IPv4, dan selama ada server tanpa dukungan IPv6 mereka tidak akan menawarkan IPv6 karena tidak mungkin untuk IPv6. klien tumpukan ganda untuk terhubung ke server IPv4 saja.

Jika ada ISP yang memberi saya apa yang Anda miliki, saya akan mengambilnya karena itu kurang dari apa yang saya dapatkan sejauh ini.

Bergerak maju ada dua pendekatan yang saya sarankan agar Anda lakukan secara paralel.

Beri tekanan pada ISP

Beri sebanyak mungkin tekanan pada ISP. Itu termasuk menghubungi ISP lain dan mungkin beralih jika ISP lain dapat menawarkan Anda kesepakatan yang lebih baik.

Pastikan Anda melakukan tes apa yang terjadi jika router Anda meminta delegasi / 48, / 52, / 56, atau / 60 melalui DHCPv6 pada WAN. Saya akan menguji keempat panjang awalan kalau-kalau server DHCPv6 untuk beberapa alasan hanya akan membagikan panjang awalan tertentu dan mengabaikan permintaan panjang awalan lainnya.

Manfaatkan yang terbaik dari yang Anda miliki

Karena Anda mungkin harus hidup dengan beberapa peretasan yang bergerak maju, Anda harus bertanya pada diri sendiri yang mana yang menghisap IPv4 lebih sedikit dengan peretasan atau IPv6 dengan peretasan.

Ada beberapa peretasan yang dapat Anda gunakan untuk meregangkan satu / 64 ke banyak host.

Mengubah awalan tautan menjadi awalan yang diarahkan

Jika Anda memiliki satu / 64 pada tautan WAN tetapi tidak ada awalan yang dirutekan ke LAN Anda, Anda dapat mengubah / 64 itu menjadi awalan yang dirutekan dengan beberapa langkah. Konfigurasikan antarmuka WAN pada router Anda sebagai / 126 daripada / 64. Instal daemon iklan tetangga (seperti ndppd) pada router untuk mengiklankan alamat MAC-nya sendiri untuk setiap alamat di / 64 kecuali dari 4 alamat di / 126. Dengan kedua langkah tersebut Anda akan memiliki / 64 yang diarahkan yang dapat Anda gunakan pada LAN Anda dengan pengecualian 4 alamat yang digunakan untuk tautan WAN.

Versi modifikasi dari peretasan ini dapat membagikan tautan / 64 di banyak router. Awalan tautan kemudian harus sedikit lebih pendek dari / 126 untuk mengakomodasi alamat IP untuk setiap router, a / 120 akan cukup pendek untuk memungkinkan hingga 254 router.

Setiap router jelas hanya akan mendapatkan awalan yang lebih panjang dari / 64. Saya sarankan Anda membuat awalan untuk setiap router selama Anda bisa sementara masih memiliki alamat IP yang cukup untuk LAN pada router itu. A / 112 atau / 120 untuk setiap router kemungkinan akan cocok. Setiap router merespons dengan alamat MAC-nya sendiri untuk menemukan tetangga apa pun dalam awalan router itu.

Dalam varian ini setiap router akan memiliki awalan yang sama yang dikonfigurasi pada sisi WAN mereka dan akan menanggapi permintaan penemuan tetangga untuk awalan yang ditugaskan ke sisi LAN mereka. Jelas tidak ada awalan LAN yang dapat saling tumpang tindih dan tidak ada yang tumpang tindih dengan awalan yang Anda konfigurasi di sisi WAN.

Jadi jika router ISP yang bertindak sebagai gateway Anda ada di alamat 2001: db8 :: 1/64, maka Anda dapat menggunakan 2001: db8 :: / 120 sebagai WAN Anda dan Anda dapat menetapkan 2001: db8 :: 1: 0/112 ke router pertama, 2001: db8 :: 2: 0/112 ke router kedua, dll.

Pada LAN Anda dapat meregangkan / 64 ke banyak host baik dengan subnetting atau dengan menjembatani. Anda harus menentukan mana dari dua yang paling cocok untuk Anda.

Subnetting

Jika Anda melakukan subnet the / 64 Anda mungkin juga pergi ke awalan terpanjang yang masih memiliki cukup alamat untuk host yang Anda butuhkan. Jangan membuat subnet ke dalam / 80 awalan, melainkan menggunakan / 116, / 120, atau / 124 per subnet. Hal-hal yang rusak jika Anda tidak menggunakan / 64 tidak mungkin untuk peduli dan dengan / 116 atau lebih lama Anda akan mengurangi dampak serangan DoS penemuan tetangga tertentu (jika ada di salah satu sistem Anda).

Dalam konfigurasi subnetting seperti itu, Anda akan memutus SLAAC, jadi Anda memerlukan server DHCPv6 untuk merespons pada setiap segmen dan alamat IPv6 statis yang dikonfigurasi pada semua perangkat tanpa dukungan DHCPv6.

Menjembatani

Menjembatani adalah alternatif lain. Ini pada dasarnya berarti Anda tidak melakukan subnet tetapi menjalankan seluruh LAN Anda sebagai segmen IPv6 tunggal dengan awalan / 64. (Jika Anda perlu, bahwa / 64 dapat menjangkau LAN dan WAN.)

IPv6 dirancang untuk memungkinkan jembatan mengenali jaringan mana yang dijembatani setiap alamat broadcast yang harus diteruskan. Dengan begitu Anda tidak perlu menyiarkan paket di setiap tautan fisik di LAN Anda.

Jembatan juga dapat menerapkan firewall dan perlindungan terhadap spoofing penemuan tetangga pada LAN.

Dengan kecerdasan yang memadai pada jembatan, pada prinsipnya tidak ada batasan untuk berapa banyak saklar yang dapat Anda jembatani satu / 64.

kasperd
sumber
Terima kasih! Itulah jenis jawaban yang saya cari! Saya khususnya menyukai ide Anda untuk mengubah / 64 menjadi awalan yang dialihkan. Bisakah Anda menjelaskan sedikit tentang itu? Pertama, saya tidak mengerti mengapa Anda menyarankan a / 126, bukan a / 127? Alamat IP mana yang digunakan? Kedua, di salah satu klien saya, saya sebenarnya memiliki tiga router internal yang terpisah. Dalam IPv4, mereka memiliki tiga IP publik yang berbeda di / 29 yang disediakan oleh ISP. Apakah skema Anda masih berfungsi dengan router ini?
Kevin Keane
Juga, saya tidak yakin cara menginstal Daemon Neighbor Advertising di salah satu router. Satu router adalah Fortigate, satu adalah Belkin, dan saya pikir yang ketiga adalah Linksys.
Kevin Keane
@KevinKeane Alasan saya menyarankan a / 126 adalah bahwa Anda akan sering membutuhkan setidaknya tiga alamat dalam awalan. Di sisi ISP, router mungkin memiliki awalan yang dikonfigurasi sebagai 2001: db8 :: 1/64, yang berarti 2001: db8 :: khusus dan 2001: db8 :: 1 digunakan oleh router ISP. Router Anda sendiri biasanya akan dikonfigurasikan dengan 2001: db8 :: 2, yang berarti Anda telah menggunakan tiga alamat dan / 127 tidak akan cukup. A / 127 bisa berfungsi jika Anda tidak menggunakan peretasan dengan panjang awalan yang berbeda yang dikonfigurasi pada kedua ujung tautan.
kasperd
terima kasih sudah menjelaskannya! Jadi ketika saya memiliki tiga router yang melayani tiga jaringan internal yang berbeda, saya harus menggunakan / 125, dan masing-masing router akan beriklan, melalui iklan tetangga, MAC-nya sendiri hanya untuk IP-IP tersebut di subnet yang sesuai?
Kevin Keane
1
Ada RFC Informasional, RFC 7421, Analisis Batas 64-bit dalam Mengatasi IPv6 , yang memiliki diskusi lengkap tentang /64subnet, dan apa yang salah saya ketika tidak menggunakannya.
Ron Maupin
10

Ya, menekan ISP Anda untuk tidak menyedot adalah pilihan yang lebih disukai. Kebijakan alokasi RIR mengasumsikan bahwa ISP memberikan setiap / 48 pelanggan; sama sekali tidak ada alasan bagi ISP untuk tidak melakukan itu.

IPv6 bukan penggemar subnet yang lebih kecil, namun satu-satunya hal yang seharusnya dipatahkan, yang saya ketahui, adalah SLAAC. Anda akan memiliki masalah dengan bug dan asumsi di beberapa tumpukan IPv6, yang hanya menganggap "/ 64 == subnet" secara membabi buta, tetapi itu adalah bug, bukan fitur, dan Anda dapat mengalahkan vendor untuk memperbaikinya. Apakah itu diperbaiki sebelum ISP Anda memberi Anda / 48, di sisi lain ...

womble
sumber
Saya pikir beberapa bagian dari protokol penemuan tetangga juga seharusnya rusak. RFC 5375 memiliki daftar lengkap hal-hal lain, tetapi saya tidak benar-benar mengetahui implikasi praktisnya. Hanya mendapatkan / 64 terkadang hanya masalah uang. ISP Anda hanya dapat memberikan pengguna rumahan a / 64, dan memberikan / 48 hanya untuk akun bisnis. Hanya karena Anda ingin memisahkan kantor rumah Anda atau WiFi Anda dari sisa rumah, atau karena Anda ingin menggunakan subnet terpisah untuk mesin virtual? Maaf tentang kata-kata kasar - Saya mencoba mengatasi masalah di sini, tidak mencoba mengubah hal-hal yang tidak dapat saya kendalikan.
Kevin Keane
2
Jika ISP Anda ingin menjadi knobsocket total tentang hal itu, mereka akan membagikan / 128 untuk setiap pelanggan perumahan. Saya kira Anda dapat melambaikan RFC 5375 di ISP dan memberi tahu mereka untuk memberi Anda IPv6, daripada IPv5.5 ...
womble
Sebagai soal fakta, setidaknya satu ISP yang saya tahu melakukan itu (Verizon Wireless). Itu salah satu alasan saya berpendapat bahwa NAT masih diperlukan di IPv6. Tapi itu terpisah dari pertanyaan saya, tentu saja.
Kevin Keane
1
Rekomendasi / 48 dari RFC 3177 tidak lagi valid, sebagian besar RIR sekarang merekomendasikan a / 56 untuk situs akhir seperti dijelaskan dalam RFC 6177: tools.ietf.org/html/rfc6177
skrause
@skrause Bukan berarti itu membuat perbedaan. Ada cukup / 48s bahwa mereka tidak akan kehabisan. Bahkan pada rasio HD 80% akan membutuhkan 2 ^ 36 dialokasikan / 48s sebelum IANA akan mengkonsumsi semua 2000 :: / 3. Dan kecuali situs akhir Anda adalah pusat data utama, maka a / 56 memiliki cukup subnet untuk situs akhir Anda.
kasperd