Управляемый DTLS-прокси на Rust: решения, ошибки и цена упрощения
The first part described taking on a UDP/DTLS proxy for a system managing 300,000 devices while barely knowing Rust and handing most of the implementation to AI. This follow-up focuses on the technical side of that work. It examines why a local routing table in XDP was losing handshakes and how a proxy without shared storage operates.
В первой части я рассказывал, как, почти не зная Rust, взялся за UDP/DTLS-прокси для системы управления 300 тыс. устройств и поручил большую часть реализации ИИ. Тогда я сосредоточился на том, как меняется работа инженера, когда код пишет модель. Теперь — техническая сторона этой истории: почему локальная таблица маршрутов в XDP теряла рукопожатия, как прокси без общего хранилища находит владельца DTLS-сессии и почему 26-байтовый CID с HMAC и подписанный PPv2 уступили более простым решениям. Расскажу, какие компромиссы пришлось принять и какие ошибки удалось обнаружить на испытаниях. Читать далее