Ang isang kernel module ay ipinakilala na maaaring makabuluhang mapabilis ang OpenVPN

Ipinakilala ng mga developer ng OpenVPN virtual private networking package ang ovpn-dco kernel module, na maaaring makabuluhang mapabilis ang pagganap ng VPN. Sa kabila ng katotohanan na ang modyul ay ginagawa pa rin na may mata lamang sa linux-next branch at may pang-eksperimentong katayuan, naabot na nito ang antas ng katatagan na nagpapahintulot na magamit ito upang matiyak ang pagpapatakbo ng serbisyo ng OpenVPN Cloud.

Kung ikukumpara sa configuration batay sa tun interface, ang paggamit ng module sa client at server sides gamit ang AES-256-GCM cipher ay naging posible na makamit ang 8-fold na pagtaas sa throughput (mula 370 Mbit/s hanggang 2950 Mbit /s). Kapag ginagamit lang ang module sa panig ng kliyente, tumaas ng tatlong beses ang throughput para sa papalabas na trapiko at hindi nagbago para sa papasok na trapiko. Kapag ginagamit lang ang module sa gilid ng server, tumaas ang throughput ng 4 na beses para sa papasok na trapiko at ng 35% para sa papalabas na trapiko.

Ang isang kernel module ay ipinakilala na maaaring makabuluhang mapabilis ang OpenVPN

Nakamit ang pagpapabilis sa pamamagitan ng paglipat ng lahat ng mga operasyon ng pag-encrypt, pagproseso ng packet at pamamahala ng channel ng komunikasyon sa panig ng Linux kernel, na nag-aalis ng overhead na nauugnay sa paglipat ng konteksto, ginagawang posible na i-optimize ang trabaho sa pamamagitan ng direktang pag-access sa mga panloob na kernel API at inaalis ang mabagal na paglipat ng data sa pagitan ng kernel at espasyo ng gumagamit (ang pag-encrypt, pag-decryption at pagruruta ay ginagawa ng module nang hindi nagpapadala ng trapiko sa isang handler sa espasyo ng gumagamit).

Napansin na ang negatibong epekto sa pagganap ng VPN ay pangunahing sanhi ng mga operasyon ng pag-encrypt na masinsinang mapagkukunan at mga pagkaantala na dulot ng paglipat ng konteksto. Ang mga extension ng processor gaya ng Intel AES-NI ay ginamit upang pabilisin ang pag-encrypt, ngunit ang mga switch ng konteksto ay nanatiling bottleneck hanggang sa pagdating ng ovpn-dco. Bilang karagdagan sa paggamit ng mga tagubilin na ibinigay ng processor upang pabilisin ang pag-encrypt, tinitiyak din ng module ng ovpn-dco na ang mga operasyon ng pag-encrypt ay nahahati sa magkakahiwalay na mga segment at naproseso sa multi-threaded mode, na nagbibigay-daan sa paggamit ng lahat ng magagamit na mga core ng CPU.

Kasama sa mga kasalukuyang limitasyon sa pagpapatupad na tutugunan sa hinaharap ang suporta para sa AEAD at 'wala' na mga mode lang, at AES-GCM at CHACHA20POLY1305 ciphers. Ang suporta ng DCO ay binalak na isama sa paglabas ng OpenVPN 2.6, na naka-iskedyul para sa ika-4 na quarter ng taong ito. Kasalukuyang sinusuportahan ang module sa beta-testing OpenVPN3 Linux client at experimental build ng OpenVPN server para sa Linux. Ang isang katulad na module, ovpn-dco-win, ay binuo din para sa Windows kernel.

Pinagmulan: opennet.ru

Magdagdag ng komento