Akcelerace SSL - Intel QuickAssist - QAT

Akcelerace SSL - Intel QuickAssist - QAT
« kdy: 31. 01. 2025, 15:27:10 »
Pekne odpoledne.

    Hledam nejake zelezo, ktere by dokazalo akcelerovat SSL, resp. TLS. Jde o DoT a zda se, ze ze bez HW podpory to nepujde. Protoze stavajici EPYC 7313 nebo Xeon 5217 to dokaze zcela vytizit. Objevil jsem, ze Intel ma (nejen) na novejsich Xeonech napr. 5515, 5520, 6538, 6548 atd. QAT engine, ktery by tomu mohl hodne pomoci. Nemate s tim nekdo zkusenosti? Je potreba nejak prekladat OpenSSL pro podporu QAT?

Nebo je lepsi jit do nejake akceleracni karty?

Diky
A.


Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #1 kdy: 31. 01. 2025, 17:24:52 »
a nestačilo by před to dát jenom krabičku, klidně nějaká intel n100 co bude dělat reverzní proxy a posílat tomu velkýmu žravýmu pomalýmu serveru decryptované data? (Ano, dOT není https>http, ale snad to taky je možné přes nginx)

Wasper

  • ***
  • 132
    • Zobrazit profil
    • E-mail
Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #2 kdy: 01. 02. 2025, 16:33:48 »
Hledam nejake zelezo, ktere by dokazalo akcelerovat SSL, resp. TLS. Jde o DoT a zda se, ze ze bez HW podpory to nepujde.
Jaky je presneji use case a pozadovany sizing? To delate pro nejakeho velkeho ISP, nebo tam mate nejakou poradnou botu, ze to ta masina nestiha?

Pokud ano, zase tak trivialni to nebude, nektere implementace davaji treba vetsi mnozstvi resolveru za load balancer, nektere balancery primo tuhle funkci maji (ale zase je to zase otazka sizingu a chtel bych tam prvne od prislusneho vendora referenci na implementaci podobneho rozsahu, dost casto clovek zjisti, ze je to tam jen dolepene, aby se tim mohli chlubit ale prakticky je to nepouzitelne...)

Kazdopadne kdyz uz bych to mel resit, tak bych se jako prvni rozhlednul po Internetu, nekteri ISP (vcetne naseho CZNICu) pomerne otevrene popisuji vlastni architekturu, hledal bych inspiraci tam.

Edit: ale obecne (koukam ze se ptate po presnem akceleracnim reseni), vzdycky v tehle pripadech je dobre prvne si popsat, co je cilem (vcetne sizingu po celou dobu zivota toho reseni), pak si projit, jak to delaji jini, a volba, jakou konkretni technologii pouzijete je az posledni krok
« Poslední změna: 01. 02. 2025, 16:36:14 od Wasper »

Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #3 kdy: 02. 02. 2025, 10:52:50 »
Omlouvam se, ale nemohu jit uplne do detailu.

Nicmene reseni je jak prisete. DNS balancer, ktery ma experimentalni podporu QAT. A hledam HW, ktery by ho umel. Co se tyce sizingu, bavime se o desitkach tisic soucasnych TLS spojeni, kolem 10k novych TLS spojeni/s. Balancer podporuje TSL resumptions, ale i tak je tech nove vytvarenych spojeni hodne. S tim, ze to vse bude jen rust,

Jeste je tu takovy problem, ze, TLS 3.x ma vuci 1.x znacny propad ve multithread vykonu, https://github.com/openssl/openssl/issues/17064, ktery ani v poslednich verzich neni zcela vyresen.

Vymena HW je zde realna, tak jsem rikal, ze by HW akcelerace mohla byt resenim.

vcunat

  • ***
  • 143
    • Zobrazit profil
    • E-mail
Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #4 kdy: 02. 02. 2025, 16:47:56 »
Z toho co jsem viděl, cena u rozumné implementace bude převážně za handshaky, tak hlavně aby daná akcelerační technologie akcelerovala je.  Takže například obvykle hraje velkou roli to, zda je certifikát RSA nebo ECC, atd.

Mimochodem, CZ.NIC není ISP, ale na našich řešeních se DoT dělá napřímo, balancing jen s SO_REUSEPORT v rámci jednoho serveru a k tomu případně anycast přes ECMP a BGP.  Někdy tedy slyším o dnsdist, což používá třeba Quad9.net.  Když občas něco zaslechnu o F5 DNS balancerech, tak hlavně problémy s rozbíjením v různých okrajovějších situacích (dobře, u autoritativních serverů).

Jinak, vzhledem k tomu, že (de)šifrování zabírá většinu výkonu obvyklého DoT, osobně z architektonického hlediska nechápu, proč by "load-balancer" měl dešifrovat a tím sám odvést většinu práce.  Možná jen nevhodnost názvu, no.  Nakonec, ať si každý vybere jaké řešení chce  ;)


Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #5 kdy: 02. 02. 2025, 17:13:17 »
Z toho co jsem viděl, cena u rozumné implementace bude převážně za handshaky, tak hlavně aby daná akcelerační technologie akcelerovala je.  Takže například obvykle hraje velkou roli to, zda je certifikát RSA nebo ECC, atd.

Vidite, vliv typy certifikatu me nenapadl. Diky.


Jinak, vzhledem k tomu, že (de)šifrování zabírá většinu výkonu obvyklého DoT, osobně z architektonického hlediska nechápu, proč by "load-balancer" měl dešifrovat a tím sám odvést většinu práce.  Možná jen nevhodnost názvu, no.  Nakonec, ať si každý vybere jaké řešení chce  ;)

Ono to ma i sve vyhody; pokud LB desifruje a je dost chytry, muze sam pracovat s DNS provozem a aplikovat lokalni cache (vyborna vec), ruzne DDoS politiky a limitace atd.

vcunat

  • ***
  • 143
    • Zobrazit profil
    • E-mail
Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #6 kdy: 02. 02. 2025, 17:32:05 »
Za mě v takové situaci je efektivnější tu práci už udělat celou.

Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #7 kdy: 02. 02. 2025, 19:18:19 »
Nemůžu teď přispět žádnou relativně novější konkrétní zkušeností s QAT, protože teď podobně jako vy nemám přístup k žádnému hardware, co to podporuje (tzn. buď EPYCy, nebo Xeony bez QATu).
Setkal jsem se s tím kdysi v jedné z prvních verzí, tak 10 let zpátky, a byl to spíš test slabším stroji s odlehčením úplně jiného workloadu (kryptování sym. AES, dlouhé bloky) navíc to řešil v detailu spíš kolega.

Nicméně pořád na to sem tam koukám, zvlášť když se objevují třeba novinky v release notes ohledně QAT v enterprise distribucích.

Co se týká těch materiálů od Intelu, tak je to občas trochu matoucí (as clear as mud:) ), ale v podstatě tam operují s generací QAT HW a verzí QAT HW.
Generací QAT HW je 5, přičemž poslední 4. a 5. je v podstatě jen integrovaná uvnitř nových Xeonů.
Akcelerační karty (PCIe x8 a x16) jsou dneska v podstatě 7 let staré a v 3. generaci. Ty integrované jednotky umí např. víc algoritmů a jsou výkonnější.

Pak to ještě dělí na verze (ne generace) hardware, legacy verze QAT1.x je cokoliv před čtvrtou generací (karty, moduly v čipsetech c62x). Verze QAT2.x pak od čtvrté dál.
Pokud se používají knihovny a ovladače od Intelu (out-of-tree), jsou to dvě oddělené věci.

https://www.intel.com/content/www/us/en/support/articles/000094285/technologies/intel-quickassist-technology-intel-qat.html
https://www.intel.com/content/www/us/en/support/articles/000093843/technologies/intel-quickassist-technology-intel-qat.html

Jinak k tomu OpenSSL. To by nemělo být potřeba patchovat. Minimálně RHEL/Oracle, SLES mají jak ovladače HW, firmware, qatlib (na QAT2.x HW) pro přístup z userspace, tak finálně i balíčky pro qatengine, což je knihovna, co se přidá jako další provider do systémového OpenSSL.
Stran té konkrétní aplikace potom, myslím že u těch věcí, kde se o tom rozepisovali v souvislosti s TLS (např. NGINX, HAProxy), tak v podstatě zásadní pro ty inzerované nárůsty výkonu bylo, že aplikace ten engine z OpenSSL používali asynchronně. Další zajímavá věc bylo to, že v rámci toho offloadování se pak ne všechno hrne na QAT hw engine, jsou části kde se používají "jen" specificky optimalizované algoritmy pro nové Xeony.

Nakonec, jak jsem zmínil, že máte problémy s výraznou výkonovou regresí u OpenSSL 3.x. Jestli jste už teď někde na stropě, nebyla by ještě šance to chvíli provozovat na OpenSSL 1.1.1, než se to dořeší. Upstream je sice oficiálně už mimo okno podpory, ale třeba Oracle/RHEL 8 to pořád má i s nějakými backportnutými CVEčky, podobně třeba SLES. RHEL9 je sestavený s 3.x, ale 1.1.1 je tam jen jako compat-openssl bez devel balíčků.
Jinak právě třeba u HAProxy se právě zmiňuje, že pokud se používá s 3.x, tak např. doporučují používat vnitřní lehčí zámky..
https://github.com/haproxy/haproxy/blob/0a28b1ea0c674f7bcc7ad386abdcf963f9176475/INSTALL#L362


Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #8 kdy: 02. 02. 2025, 19:37:00 »
Děkuji moc za pěkné shrnutí situace. To jsem asi potřeboval.

DoT jsme měli kvůli potížím s vydáním certifikátů dočasně vypnuté (ne každá CA umí certifikáty pro IPv4 natož IPv6 adresy a to nemluvím o tom, že se musí každá IP validovat zvlášť (a ne, nejde podstrčit tech validačních stringů víc na jednou)). No a mezitím toho provozu zase přibylo  :)

O asynchronním používání jsem se už také dočetl. Možnost fallbacku na OpenSSL 1.x ještě prozkoumám, ale jsem na Debianu.
Ještě jednou díky.

Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #9 kdy: 02. 02. 2025, 23:27:43 »
Alesi, ten opatchovany openssl 1.1.1k od RedHatu jde pripadne od RedHatu/Oraclu stahnout a prebalit pro Debian. Ale tezko rict, jestli k tomu nebudes muset dokompilovat i podporu v loadbalanceru nebo DNS rekurzoru.

RDa

  • *****
  • 2 853
    • Zobrazit profil
    • E-mail
Re:Akcelerace SSL - Intel QuickAssist - QAT
« Odpověď #10 kdy: 02. 02. 2025, 23:34:40 »
Btw existuje QAT adapter na PCIe, hledej neco jako tohle:
https://www.intel.com/content/www/us/en/products/sku/125200/intel-quickassist-adapter-8970/specifications.html

Neni to ani drahy - ebay (QuickAssist 8970) tesne pod 2000 czk + doprava/dph/clo, je tam toho plny pytel.