Les ingénieurs de Cloudflare ont rencontré des défis importants en étendant leur utilisation de la fonctionnalité soft-unicast au sein de la pile réseau Linux, motivés par des configurations complexes de routage et anycast pour la redondance. Les tentatives de contourner les limitations à l'aide d'options de socket avancées ont finalement conduit à une solution proxy plus simple. Cette expérience met en lumière les difficultés à personnaliser Linux pour des besoins de réseau à grande échelle.
L'infrastructure réseau de Cloudflare repose sur des routages et configurations complexes qui mettent à l'épreuve les limites de la pile réseau Linux. Comme détaillé dans un récent billet de blog de l'ingénieur Chris Branch, l'entreprise a cherché à améliorer les capacités soft-unicast, qui s'alignent sur son usage intensif d'anycast pour distribuer la redondance sur les réseaux externes.
Le problème principal est apparu avec le module de suivi de connexions Netfilter, connu sous le nom de conntrack, et le sous-système de sockets Linux lors des processus de réécriture de paquets. Le soft-unicast nécessite que plusieurs processus reconnaissent la même connexion, mais la conception de Linux empêchait une réécriture efficace des paquets. Initialement, l'équipe a implémenté un proxy local pour gérer cela, bien qu'il ait introduit une surcharge de performance.
Pour y remédier, les ingénieurs ont exploré l'abus de l'option de socket TCP_REPAIR, généralement utilisée pour migrer les connexions réseau de machines virtuelles. Cela leur a permis de décrire complètement et de 'réparer' l'état de la connexion de socket. Ils l'ont associé à TCP Fast Open, en utilisant un cookie TFO pour contourner la poignée de main standard. Malgré ces innovations, des problèmes persistants subsistaient, avec un mécanisme de démux précoce proposé comme solution partielle.
Finalement, la complexité s'est avérée trop élevée. L'équipe a opté pour l'approche plus simple du proxy local, qui termine les connexions TCP et redirige le trafic vers un socket local. Cette décision souligne que s'échapper complètement de la pile réseau Linux reste un défi redoutable, même pour une entreprise comme Cloudflare à l'avant-garde de l'infrastructure internet.