Kami menyewa sejumlah host di pusat data publik. Pusat data tidak menawarkan VLAN pribadi; semua host menerima satu (atau lebih) alamat IPv4 / IPv6 publik. Host datang dengan CPU yang sangat modern (Haswell quad-core, 3.4GHz) dan memiliki uplink Gbit. Area berbeda (kamar? Lantai? Gedung?) Dari pusat data saling berhubungan dengan - dari apa yang bisa saya katakan - tautan Gbit atau 500Mbit. Host kami menjalankan debian wheezy. Saat ini kami menjalankan tepat di atas 10 host, dengan harapan pertumbuhan dalam waktu dekat.
Saya mencari cara untuk membuat semua host berkomunikasi satu sama lain, aman dan percaya diri. Layer 3 baik-baik saja, layer 2 ok (tapi tidak perlu). Karena saya tidak memiliki akses ke VLAN, itu harus semacam VPN.
Yang penting bagi saya:
- throughput tinggi, idealnya dekat dengan wirespeed
- desentralisasi, arsitektur bertautan - ini untuk memastikan bahwa throughput tidak diperlambat oleh elemen pusat (mis. VPN concentrator)
- Jejak CPU tidak berlebihan (mengingat suite cipher AESNI dan GCM, saya berharap ini bukan persyaratan yang konyol)
- kemudahan penggunaan operasional; tidak terlalu rumit untuk diatur; jaringan dapat tumbuh tanpa kehilangan koneksi yang ada
Kami saat ini menggunakan tinc . Itu berdetak [2] dan [4], tapi saya hanya mencapai sekitar 600Mbit / s (simpleks) dari kecepatan kabel 960Mbit / s, dan saya kehilangan satu inti sepenuhnya. Juga, tinc 1.1 - saat ini dalam pengembangan - belum multithreaded, jadi saya terjebak dengan kinerja singlecore.
IPSec tradisional keluar dari pertanyaan, karena membutuhkan elemen pusat, atau sh * tload terowongan yang harus dikonfigurasi (untuk mencapai [2]). IPsec dengan enkripsi oportunistik akan menjadi solusi, tetapi saya tidak yakin apakah itu berhasil menjadi kode produksi yang stabil.
Saya menemukan tcpcrypt hari ini. Kecuali untuk otentikasi yang hilang, sepertinya yang saya inginkan. Implementasi Userspace berbau lambat, tetapi juga semua VPN lainnya juga. Dan mereka berbicara tentang implementasi kernel. Saya belum mencobanya, dan saya tertarik bagaimana ia berperilaku kembali [1] dan [3].
Opsi apa lagi yang ada? Apa yang dilakukan orang, yang tidak menggunakan AWS?
Informasi tambahan
Saya tertarik pada GCM, berharap itu akan mengurangi jejak CPU. Lihat makalah Intel tentang topik tersebut . Ketika berbicara dengan salah satu pengembang tinc, dia menjelaskan bahwa bahkan menggunakan AESNI untuk enkripsi, HMAC (misalnya SHA-1) masih sangat mahal pada kecepatan Gbit.
Pembaruan Terakhir
IPsec dalam mode transport bekerja dengan sempurna dan melakukan apa yang saya inginkan. Setelah banyak evaluasi, saya telah memilih Openswan daripada ipsec-tools, hanya karena mendukung AES-GCM. Pada CPU Haswell saya mengukur sekitar 910-920Mbit / detik throughput simpleks dengan sekitar 8-9% beban CPU satu kworkerd
.