@techreport{oai:ipsj.ixsq.nii.ac.jp:00195886, author = {小町, 芳樹 and 牧田, 俊明 and 小西, 隆介 and 寺本, 純司 and Yoshiki, Komachi and Toshiaki, Makita and Ryusuke, Konishi and Junji, Teramoto}, issue = {2}, month = {May}, note = {近年では,Linux を用いて NFV 環境を構築する場合などに高性能なネットワーク機能を要求されるが,Linux カーネルのネットワークスタックは高度に複雑化しているためオーバヘッドが大きく,性能面での要求を満たすことが難しい.こういった仮想ネットワークの性能を柔軟に改善する技術として,現在では XDP が注目を集めている.XDP は,Linux カーネルが提供する多様な機能を活かしつつ,ユーザが実装したプログラムを安全にカーネルに挿入できる eBPF を利用して,高速なネットワーク機能を実装できる技術だが,eBPF で挿入されるプログラムは実装面での制約が厳しいため,実用化の妨げになっている.そこで本研究では,難易度の高いネットワーク機能の実装を隠蔽する方式について検討を行った.本稿では一例として,eBPF による機能の挿入を既存の API を通じて透過的にライブラリもしくはカーネル内部で行うことで,従来の操作との互換性を保ちつつ,高速な転送機能を備えた L2 スイッチが実現できることを確認した.さらに隠蔽化の検討を通して,現在の eBPF に不足する機能や課題をユーザビリティの観点で整理し,eBPF そのものに対しても解決すべき課題を明らかにする., In recent years, high-performance networking on Linux is demanded in environments such as NFV. However, it is hard to fulfill the performance requirements since highly complicated Linux networking stack has considerable amount of overhead. As a technology to resolve the performance problem in such virtual networks without losing flexibility, XDP is recently getting a lot of attention. On the basis of eBPF which makes it possible to safely insert user-implemented programs into Linux kernel, it enables us to implement high-performance network functions along with taking advantage of various features provided by the kernel. But, practical use of XDP is discouraged because eBPF has strict restriction in manner of its programming. We therefore studied methods to conceal the difficulties in programming network functions. First of all, this paper proposes a method to transparently insert eBPF-based features in a library or kernel through existing APIs. As an example, we design and implement a high-performance layer 2 switch compatible with existing operations in order to confirm the feasibility of the method. Furthermore, our examination results on the concealing method also clarified insufficient features and issues in usability of eBPF itself.}, title = {XDPの実用化に向けたeBPFにおけるユーザビリティの改善とその検討}, year = {2019} }