Bisakah alat penyeimbang beban mengarahkan rute lalu lintas SSL dengan SNI?

9

Kami memiliki server webserver yang saat ini menampung 2 aplikasi - kedua aplikasi berjalan di semua server. Kami ingin membagi ini sehingga kami memiliki server khusus untuk masing-masing aplikasi (kami memiliki alasan yang bagus untuk ini).

Kami berharap memiliki penyeimbang beban tunggal di depan semua server, yang akan merutekan lalu lintas ke pertanian yang benar berdasarkan nama host, tetapi kami ingin mempertahankan SSL ke server web.

Sepertinya router yang kami tawarkan tidak melakukan ini. Saya menghargai bahwa tanpa SNI ini tidak mungkin, tetapi kami mengharapkan indikator SNI pada hampir semua lalu lintas kami.

Sekarang saya seorang programmer, bukan orang jaringan, tetapi ketika permintaan koneksi SSL baru datang, router tidak dapat memeriksa header SNI, dan merutekan ke farm yang benar. Saya berasumsi koneksi SSL yang masuk diidentifikasi oleh {source IP: source port}, jadi tidak bisakah ia mengingatnya untuk paket-paket masuk berikutnya (jika SNI hanya ada di paket pertama)?

Sejauh yang saya tahu Haproxy melakukan ini, tetapi sepertinya penyeimbang beban perangkat keras tidak. Apakah ada alasan untuk ini, atau ini sesuatu yang harus kita dorong?

(Untuk penjaga terakhir yang menggunakan IE pada XP yang tidak termasuk SNI, kami ingin mengirim lalu lintas ke pertanian lama, dan kami akan mengatur proxy ke pertanian baru bila perlu).

kentang
sumber

Jawaban:

10

Menurut situs web mereka, penyeimbang muatan F5 memiliki dukungan untuk SNI:

https://devcentral.f5.com/articles/ssl-profiles-part-7-server-name-indication

Anda bahkan dapat membuat iRules berdasarkan SNI.

Penafian:

  • Saya belum memverifikasi apa yang mereka klaim di situs web mereka
  • Saya tidak bekerja untuk F5, dan saya belum pernah menggunakannya selama 3+ tahun.
bgtvfr
sumber
Terima kasih untuk balasan Anda. Saya mungkin salah dalam hal ini, tetapi saya pikir halaman itu berbicara tentang server web daripada routing traffic SSL. Itu berbicara tentang menggunakan SNI untuk memilih sertifikat yang benar, jadi saya pikir itu pada akhir koneksi SSL, bukan di tengah.
potomato
1
AFAIK, halaman ini berbicara tentang perutean lalu lintas SSL "..., BIG-IP memungkinkan Anda untuk menetapkan beberapa profil SSL ke server virtual untuk mendukung penggunaan fitur TLS SNI. Fitur TLS SNI tidak tersedia di BIG- sebelumnya Versi IP, jadi Anda ingin memutakhirkan jika Anda tidak berada di v11.1.0 atau lebih tinggi! Untuk mendukung fitur ini, server virtual harus diberi profil SSL default untuk mundur dan juga satu profil SSL per situs HTTPS. Profil SSL digunakan ketika nama server tidak sesuai dengan permintaan klien atau ketika browser tidak mendukung ekstensi SNI. "
bgtvfr
"server virtual" adalah jalur ip traffic http / https besar ke lalu lintas ke server backend (= apache, tomcat, websphere ...)
bgtvfr
Sebagian besar pemain besar (cisco, big-IP) melakukan ini seperti yang disebutkan di atas. Saya tidak yakin mengapa jawaban yang lain ditandai sebagai jawabannya.
Jim B
@ JimB Saya menandai yang lain sebagai jawaban karena saya seorang programmer mencoba untuk menegosiasikan kemampuan perangkat keras jaringan! Saya telah melihat artikel lebih lanjut dan masih tidak dapat bekerja jika perangkat memilih untuk meneruskan lalu lintas ke server fisik yang berbeda berdasarkan ekstensi SNI (sesuai kebutuhan). Ini terlihat relevan: devcentral.f5.com/questions/…
potomato
9

router tidak dapat memeriksa header SNI,

Router biasanya hanya berfungsi pada OSI layer 3, yaitu tidak memeriksa isi paket tetapi hanya IP target. Untuk perutean berdasarkan SNI, diperlukan pemahaman tentang TCP dan TLS yang lebih kompleks dan jauh lebih mahal (terkait kinerja) kemudian perutean berdasarkan alamat IP. Dan ini juga biasanya tidak disebut routing lagi.

Haproxy melakukan ini .. penyeimbang beban perangkat keras tidak.

Anda mencampur router (layer 3), load balancer perangkat keras (layer 4 dan mungkin lebih tinggi) dan Haproxy (load balancer perangkat lunak). Sebuah penyeimbang beban perangkat keras tidak lebih dari sebuah alat dengan beberapa penyeimbang beban perangkat lunak di atasnya dan mungkin juga beberapa akselerasi perangkat keras untuk tindakan tertentu. Tidak ada yang secara inheren membuat penyeimbangan (bukan perutean) berdasarkan informasi SNI tidak mungkin pada penyeimbang beban perangkat keras dan seperti jawaban lain menyarankan ada produk yang mendukung ini. Tapi tentu saja itu perlu diimplementasikan dan biayanya kinerja - mereka lebih dalam Anda melihat lalu lintas semakin lambat.

Steffen Ullrich
sumber
Ok jadi secara teknis mungkin tetapi bukan ide yang bagus untuk alasan kinerja, itulah sebabnya itu tidak dilakukan. Terima kasih.
potomato