Insinyur Cloudflare menghadapi tantangan signifikan dalam memperluas penggunaan fungsi soft-unicast dalam tumpukan jaringan Linux, didorong oleh konfigurasi routing dan anycast yang kompleks untuk redundansi. Upaya untuk mengatasi keterbatasan menggunakan opsi soket lanjutan akhirnya mengarah pada solusi proxy yang lebih sederhana. Pengalaman ini menyoroti kesulitan dalam menyesuaikan Linux untuk kebutuhan jaringan berskala tinggi.
Infrastruktur jaringan Cloudflare bergantung pada routing dan konfigurasi rumit yang menguji batas tumpukan jaringan Linux. Seperti yang dirinci dalam posting blog baru oleh insinyur Chris Branch, perusahaan berusaha meningkatkan kemampuan soft-unicast, yang selaras dengan penggunaan anycast yang berat mereka untuk mendistribusikan redundansi di jaringan eksternal.
Masalah utama muncul dengan modul pelacakan koneksi Netfilter, yang dikenal sebagai conntrack, dan subsistem soket Linux selama proses penulisan ulang paket. Soft-unicast memerlukan beberapa proses untuk mengenali koneksi yang sama, tetapi desain Linux mencegah penulisan ulang paket yang efektif. Awalnya, tim menerapkan proxy lokal untuk menanganinya, meskipun itu menimbulkan overhead kinerja.
Untuk mengatasinya, para insinyur mengeksplorasi penyalahgunaan opsi soket TCP_REPAIR, yang biasanya digunakan untuk memigrasi koneksi jaringan mesin virtual. Ini memungkinkan mereka untuk menggambarkan dan 'memperbaiki' status koneksi soket secara penuh. Mereka memasangkannya dengan TCP Fast Open, menggunakan kue TFO untuk melewati jabat tangan standar. Meskipun inovasi ini, masalah yang tersisa tetap ada, dengan mekanisme demux awal yang diusulkan sebagai perbaikan parsial.
Pada akhirnya, kompleksitas terlalu tinggi. Tim memilih pendekatan proxy lokal yang lebih langsung, yang mengakhiri koneksi TCP dan mengarahkan lalu lintas ke soket lokal. Keputusan ini menggarisbawahi bahwa sepenuhnya keluar dari tumpukan jaringan Linux tetap menjadi tantangan besar, bahkan bagi perusahaan seperti Cloudflare di garis depan infrastruktur internet.