並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 194件

新着順 人気順

eBPFの検索結果1 - 40 件 / 194件

  • eBPFを使った自動テストツール「Keploy」がすごい

    この記事はKeployのバージョンv2.0.0-alpha53 を前提に執筆しております。 Keployとは KeployはeBPFを利用して取得できるWebアプリケーションの通信に関するトレース情報を元に、テストとそのテストの実行時に利用するスタブサーバーを生成することができるツールとなります。 公式サイトのトップには以下のようなスローガンが掲げられています。 2 minutes to 90% test coverage! テストに苦労した経験のある方は興味を惹かれるのではないでしょうか。 現在まだアルファ段階のプロジェクトですが、GitHubスター数は2683(2024/01/04現在)、CNCF Landscape にも掲載されているなど、一定の注目を集め始めているOSSです。 開発主体はプロダクトと同名のKeployというインド発のスタートアップで、去年GoogleによるインドのA

      eBPFを使った自動テストツール「Keploy」がすごい
    • Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ

      eBPF(extended Berkley Packet Filter)という用語を著者が初めてみかけたのは、2015年ごろだった。最初は、eBPFをその字面のとおり、パケットキャプチャやパケットフィルタリングを担うだけの、Linuxの新しいサブシステムであろうと認識していた。しかし、実際にはそうではなかった。 システム性能の分析のための方法論をまとめた書籍Systems Performance 1 の著者で有名なBrendan Greggが、Linuxのネットワークサブシステムとは特に関係ない文脈で、古典的なシステム性能計測ツールでは計測できないことを計測するツールを作っていた。その計測ツールがeBPFという技術によって実装されていることを知ったときに、eBPFに興味をもったのだった。また、eBPFは、システム性能を調べる用途以外にXDP(eXpress Data Path)と呼ばれるプ

        Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
      • eBPFに3日で入門した話 - CADDi Tech Blog

        はじめに eBPF とはなにか ざっくり概要 「Packet Filter」なのに「Virtual Machine」? eBPFでなにができるか? カーネルイベントのフック ユーザーランドアプリケーションとのやりとり eBPFの主な用途 eBPFが注目される背景 eBPFの仕組み アーキテクチャと処理フロー カーネルモジュールとeBPFの違い eBPFプログラムの作り方 eBPFプログラムを作ってみる 環境の準備 Hello world もう少し複雑なサンプル その他のサンプル HTTPリクエストのダンプ TCP接続先の調査 tcplife dirtop filetop oomkill まとめ eBPFはなにに使えるか 参考サイト はじめに こんにちは、Platformチームの小森です。 eBPF (extended Berkley Packet Filter) について、2022年8月2

          eBPFに3日で入門した話 - CADDi Tech Blog
        • 「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から

          「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から 2022年11月21日と22日の2日間、クラウドネイティブにフォーカスしたイベント「Cloud Native Days Tokyo 2022」が都内およびオンラインのハイブリッドで行われました。 22日の基調講演に登場したのは、Cilium、Hubble、TetragonなどeBPFを中心としたオープンソースを開発しているIsovalentのTracy P Holmes氏。 Homes氏は、いまクラウドネイティブ関連のテクノロジーとして最も注目されていると言ってよい「eBPF」を紹介するセッション「Cloud Native Superpowers with eBPF」を行いました。 eBPFとはどのようなテクノロジーな

            「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から
          • WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

            マイクロソフトは、Linuxカーネルが備えている拡張機能である「eBPF」の互換機能を、Windows 10とWindows Server 2016以降で実現するオープンソース「eBPF for Windows」を発表しました。 カーネルのコードを書き換えずに機能を拡張できるeBPF eBPFとは、Linuxカーネルを変更することなく、カーネルの持つさまざまな機能をフックすることにより、カーネルに対してある種の機能拡張を実現するものです。下記は、eBPFのWebサイトにある説明を引用したもの。 eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules.

              WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ
            • WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由

              Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。佐伯氏は、WebAssemblyのWebの外の応用について発表しました。全2回。前半は、Wasmがアツい理由とデザインゴールについて。 今回のテーマは「Kernel/VM的WebAssembly入門」 佐伯学哉氏(以下、佐伯):佐伯が『WebAssemblyのWeb以外のこと全部話す』というタイトルで発表します。 まず、WebAssemblyとは何ぞや? という一般的な話なのですが、「Wikipedia」からの引用によれば、「Webブラウザーのクライアントサイドスクリプトとして動作する低水準言語である。ブラウザー上でバイナリフォーマットのかたちで実行可能であることを特徴とする」とあります。 実際の応用例としては、WebでGoogle Meetの背景ぼかしに使われていた

                WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由
              • Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開

                Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開 Linuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる「eBPF」(Extended Berkeley Packet Filter)は、クラウドネイティブ関連で最も注目されている技術の1つです。 eBPFを用いたソフトウェアとしては、CNI(Container Networking Interface)を用いてコンテナ間のセキュアな接続やロードバランシングなどさまざまな機能拡張を実現する「Cilium」がCloud Native Computing Foundationのプロジェクトとしてよく知られています。 今回、そのCiliumを開発するIsoval

                  Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開
                • Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成

                  Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 eBPFとは、Linuxカーネルのコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してある種の機能拡張を実現する技術です。 このeBPFの開発促進や発展を目指す「eBPF Foundation」が、Linux Foundation傘下で発足しました。発足メンバーはGoogle、Facebook、マイクロソフト、Netflix、Isovalentの5社。 一般にOSカーネルの機能の変更や拡張を行うには、カーネルのソースコードを書き換え、再コンバイルしなければなりません。そのため、例えばカーネル内のネットワーク関連の機能を拡張してプロトコルやセキュリティを追加したいと思っても、その実現には手間が

                    Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成
                  • Linuxコンテナの仕組み / eBPF & Container Study in Fukuoka

                    「eBPF & コンテナ情報交換会 @ 福岡」の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。 デモの動画は https://asciinema.org/a/BbYcyk5vaFXk5RbOXWStDvj2Y です。

                      Linuxコンテナの仕組み / eBPF & Container Study in Fukuoka
                    • gRPCが遅すぎる?eBPFでカーネル内で動かす!

                      gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日本語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

                        gRPCが遅すぎる?eBPFでカーネル内で動かす!
                      • Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植

                        Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植 eBPF(Extended Berkeley Packet Filter)はクラウドネイティブ関連で最も注目されている技術の1つです。 CiliumやCalicoといったCNI(Container Network Interface)のためのプロジェクトでeBPFが採用され、昨年10月にはKubeCon+CloudNative Non NA 2021と同時に「Cloud Native eBPF Day North America」が開催されています。 eBPFとはLinuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる機能です。これに

                          Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植
                        • eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場

                          eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場 Linuxカーネルのソースコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してプラグインのように機能拡張を実現する技術「eBPF」が、昨年から急速に注目されはじめています。 参考:Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 そのeBPFを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできるツール「Bumblebee」がオープンソースで公開されました。 開発しているのは、APIゲートウェイのGloo EdgeやサービスメッシュのGloo Meshなどの製品を展開しているSolo.

                            eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場
                          • eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog

                            κeenです。以前の記事の続きで、 /proc を監視するのではなくeBPFで取得してみます。ついでにRustのコードをeBPFで動かせるライブラリのayaも使ってみます。 以前の記事では /proc 以下の監視をビジーループで回すという力技で新しく作られたプロセスを補足していました。これだとCPU使用率が上がって美しくありませんし、何より原理的には見逃しもありえてしまいます。そこでカーネルの機能を使って全てのプロセスの作成を監視して低CPU使用率かつ捕捉率100%の実装を目指します。 eBPFとは? なんかLinuxカーネルでユーザの書いたコード動かせるやつです。私は説明できるほど詳しくないので適当にググって下さい。 1つやっかいな点として、独自のバイナリを動かすのでカーネル内で動かすコードはコンパイラがeBPFに対応したものでないといけません。また、カーネル内で動かすコードをユーザラン

                              eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
                            • eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF

                              オンラインテックカンファレンス CloudNative Security Conference 2022 by CloudNative Days で発表した「eBPFで実現するコンテナランタイムセキュリティ」の登壇資料です。 https://event.cloudnativedays.jp/cnsec2022 資料内のURLは、PDFをダウンロードするとクリックで遷移できます。 eBPFはLinuxカーネルが提供する機能の一つで、近年、ネットワークやObservabilityといった文脈で注目を集めています。本セッションでは、セキュリティの観点から、eBPFを利用することで実現できることについて整理した上で、コンテナランタイムセキュリティを実現する具体的なeBPFツールとしてFalco、Tracee、Tetragonを紹介します。

                                eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF
                              • NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理

                                はじめに2021年7月12日にNgnixブログに掲載された記事 “Our Roadmap for QUIC and HTTP/3 Support in NGINX” では、QUICとHTTP/3機能を2021年末にはメインラインへマージする計画が言及されています。現在のHTTP3/QUIC対応Nginxは、専用の開発ブランチ (nginx-quic)で開発が進められていますが、常に最新のリリース (7月26日時点で1.21.1)を取り込んでおり、HTTP3/QUIC以外の最新機能も利用可能です。筆者も、昨年から開発ブランチの動作を試しており、HTTP3/QUICでの大きな負荷をかけても良好なパフォーマンスを示しています。 さて、Nginxブログで言及されたHTTP3/QUICに関する機能の一つとして、“eBPFを使ったマルチプロセスアーキテクチャ” という項目がありました。QUIC特有の仕

                                  NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理
                                • きっと明日から役立つeBPFのしくみ

                                  第15回カーネル/VM探検隊での発表. eBPFのローダの仕組みやVerifierの仕組みなどについて1つのeBPFプログラムを題材に掘り下げます.

                                    きっと明日から役立つeBPFのしくみ
                                  • Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機

                                    カテゴリー DX (2) 一般 (58) 研究会 (6) 働き方 (4) 技術 (351) Edge AI (2) Edge Computing (12) Erlang (1) FIWARE (2) Fog Computing (9) Infiniband (31) Internet of Things (32) Key Value Store (17) Linux (3) Linux KVM (10) Machine Learning (4) RealTime Web (14) SRE (2) Webサービス (42) インフラ (7) コンテナ (3) ストレージ (92) データセンター (7) データベース (47) データ流通 (6) テレプレゼンス (2) ネットワーク (214) 仮想化 (110) 災害コミュニケーション (26) 空間情報 (30) 量子コンピューティング

                                      Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機
                                    • eBPF - The Future of Networking & Security

                                      Nov 10, 2020eBPF - The Future of Networking & Security Today is an exciting day for the Cilium community: Isovalent, the company behind Cilium, is announcing its $29M Series A financing round backed by Andreessen Horowitz, Google, and Cisco. This is a perfect occasion to take a deeper look into where eBPF-based networking is coming from and to understand what the excitement is all about. Two weeks

                                        eBPF - The Future of Networking & Security
                                      • ebpf-goによるLinuxカーネルトレース入門

                                        ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリとなります。 fentryは、カーネル関数のエントリポイントにプログラムをアタッチするためのBPFプログラムタイプです。簡潔に言うと、カーネル関数にフック処理を行うことができます。 GitHub: ebpf-go(cilium/ebpf) 公式ドキュメント: The eBPF Library for Go 本記事ではebpf-goのexamples内のtcprttを基に、ebpf-goの開発方法についても説明します。 前提条件として、

                                          ebpf-goによるLinuxカーネルトレース入門
                                        • LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場

                                          LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場 Linuxのカーネルをフックする「eBPF」(extended Berkeley Packet Filter)と呼ばれる仕組みを用いてサービスメッシュを構成する「Cilium」などを開発するIsovalentは、Kubernetesだけでなく仮想マシンやパブリッククラウドまでをカバーするサービスメッシュを実現する「Cilium Mesh」を発表しました。 Introducing Cilium Mesh. Cilium & eBPF powered networking, security, and observability for VMs, servers, and existing networks across cloud,

                                            LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場
                                          • バグ調査やパフォーマンス改善に役立つ!eBPFを用いたトレーシングについて | さくらのナレッジ

                                            はじめに この記事では、Linuxカーネルに実装されているパケットフィルタであるeBPFを使ったトレーシングツール、具体的にはDTrace, SystemTap, bpftrace,bcc-toolsなどについて紹介させていただきます。この記事の目標を以下に示します。 DTraceやSystemTapを簡単に説明し、eBPFを用いたトレーシングのうれしいところをお伝えします。 bpftraceやbcc-toolsといったツールの簡単な使い方を紹介し、細かいツールを調べる上での足がかりになるようにします。 公式の資料がかなり充実していることをお伝えします。この記事で使っている画像はそこから使わせていただいています。 eBPF概説 eBPFは、Linuxカーネル3.15からBPF(Berkeley Packet Filter)の拡張仕様として導入されました。BPFはこれまでにもパケットフィルタ

                                              バグ調査やパフォーマンス改善に役立つ!eBPFを用いたトレーシングについて | さくらのナレッジ
                                            • [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO

                                              eBPF ってご存じでしょうか!(挨拶 eBPF はざっくりいうと、アプリケーションを含む Linux OS 内の動作を横から観測できる仕組みで、近年注目されることも多くなった技術です。最近 (?) Windows がサポートを開始したことも、記憶に新しいかたもいらっしゃるかと。 その仕組み上、セキュリティや開発(デバッギング)目的に使われることも多いですが、可観測性 (オブザーバビリティ) 目的としてみても非常に強力なものです。 本セッションはその可観測性プラットフォーム製品である New Relic が eBPF とどう関係しているか、 24 分ほどのスリムなセッションで、デモを交えてがっつり説明して頂けました。 なお、クラスメソッドがお送りする DevelopersIO 2022 イベントの全セッションはこちらから参照可能です: 以下、簡単にレポートします。 動画 (24 分) Yo

                                                [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO
                                              • How eBPF will solve Service Mesh - Goodbye Sidecars - Isovalent

                                                Service mesh is a concept describing the requirements of modern cloud native applications with regards to communication, visibility, and security. Current implementations of this concept involve running sidecar proxies in each workload or pod. This is a pretty inefficient way of solving these requirements. In this post, we will look at an alternative to the sidecar model that provides a transparen

                                                  How eBPF will solve Service Mesh - Goodbye Sidecars - Isovalent
                                                • 詳説 eBPF 実装編 - VA Linux エンジニアブログ

                                                  1. はじめに 2. 使用環境 3. コンパイル 4. opensnoopとは 5. opensnoop.bpf.cの解説 5.1 mapの宣言 5.2 BPFプログラムのメイン処理 5.2.1 33-68行目 5.2.2 88-124行目 5.2.3 プログラムタイプとコンテキスト 5.3 opensnoop.bpf.cのコンパイル 6. opensnoop.cの解説 6.1 ヘッダファイルのインクルード 6.2 BPFアプリケーションのメイン処理 6.3 231-232行目 6.4 opensnoop_bpf__open 6.4.1 bpf_object__init_maps 6.4.2 bpf_object_init_progs 6.5 241-245行目 6.6 opensnoop_bpf__load 6.6.1 bpf_object__create_maps 6.6.2 bpf_

                                                    詳説 eBPF 実装編 - VA Linux エンジニアブログ
                                                  • eBPF、WASM、kubectl bind -「KubeCon NA 2022」帰国翌日の速報Recap by @amsy810

                                                    本記事は、TechFeed Experts Night#7 〜 コンテナ技術を語るのセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 それでは、「KubeCon + CloudNatieCon NA 2022 帰国後即日 Recap LT」というタイトルで、本日はお話をさせていただきます。 サイバーエージェントでKubernetes as a serviceプロダクトオーナーとして勤務している青山と申します。もしかしたら「Kubernetes完全ガイド」(インプレス)を読んでいただいている方もいらっしゃるかなと思います。 ほぼコロナ前の水準に戻ったKubeCon 本日は、KubeConというKubernetes関連のカンファレンスのRecapをし

                                                      eBPF、WASM、kubectl bind -「KubeCon NA 2022」帰国翌日の速報Recap by @amsy810
                                                    • eBPF - Introduction, Tutorials & Community Resources

                                                      Dynamically program the kernel for efficient networking, observability, tracing, and security Programs are verified to safely executeHook anywhere in the kernel to modify functionalityJIT compiler for near native execution speedAdd OS capabilities at runtime

                                                        eBPF - Introduction, Tutorials & Community Resources
                                                      • TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ

                                                        CNCF連載 の4本目です。 はじめに数年前にクラウドネイティブ注目技術として挙げられたeBPFにかねてよりキャッチアップしたいなと思っていたので、この連載のタイミングでeBPFとその関連プロダクトに入門してみることにしました。 CNCFプロジェクト傘下のeBPFを活用したプロダクトとしてはCilium, Falcoなどが挙げられます。CiliumはKubernetesなどのクラウドネイティブな環境でネットワーク、オブサーバビリティの機能を提供するOSSなのですが、今回はそのいわばサブプロジェクト的な位置づけのセキュリティツールである、Tetragonに触ってみます。 Cilium, Tetragonの開発をメイン行っているIsovalent社は、書籍やハンズオンラボなどで自社の製品・eBPFについての学習リソースを多く提供しています。 https://isovalent.com/reso

                                                          TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ
                                                        • 第690回 BCCでeBPFのコードを書いてみる | gihyo.jp

                                                          第688回の「eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する」ではBPF Compiler Collectionに付属の各種サンプルツールの使い方を紹介しました。今回はコンパイラーを活用して、自分でeBPF用コードを書くための基礎を学んでみましょう。 BCCのインストールとドキュメント 第688回も紹介したように、カーネル3.15で追加されその後拡充を続けている「eBPF」は任意の外部プログラムをカーネルの中で、より安全に実行できる仕組みです。カーネルモジュールを作る代わりに、独自のバイトコードをコンパイラーで生成し、それをカーネル内部にロード・実行することになります。これを使えばシステムコールの先のカーネルの状態を、プログラマブルに解析可能になります。 eBPF自体はカーネルの仕組みであり、ユーザーランドから使うためには、eBPF用のバイトコードにコンパイルする必要が

                                                            第690回 BCCでeBPFのコードを書いてみる | gihyo.jp
                                                          • Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに

                                                            Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに Cloud Native Computing Foundation(CNCF)は、eBPFを用いたコンテナ間通信を実現する「Cilium」が十分成熟した段階に到達したとして、「卒業」(Graduation)プロジェクトになったことを発表しました。 [NEWS] Announcing the graduation of @ciliumproject - the #eBPF-powered #cloudnative #opensource for providing, securing, and observing network connectivity between workloads Read more: https://t

                                                              Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに
                                                            • libbpf-rsを使ったRustとeBPFプログラミング - Qiita

                                                              この記事は、Supershipグループ Advent Calendar 2021の17日目の記事になります。 はじめに この記事ではeBPFを活用してLinuxカーネルにフック用プログラムを注入することにより、ネットワークパケット処理を拡張する例を示します。 その実装にあたり、Rustとlibbpfの統合を行うlibbpf-rsを使った開発体験を記したいと思います。 TL;DR libbpf-rsによってRustとeBPFを組み合わせたプログラムのコンパイルやロード処理の手間は省けるようになります。実際、システムコールの呼び出し部分はほとんど意識する必要がありませんでした。 一方でeBPFプログラミングで特に苦労したのは以下の点でした。 デバッグとテスト つまりeBPFプログラミングにおいて周辺的な問題がツールによって解決されていき、よりプログラムの機能そのものの問題に時間を割くことができ

                                                                libbpf-rsを使ったRustとeBPFプログラミング - Qiita
                                                              • Kubernetesクラスタの可観測性の隙間を埋めるeBPF - LIFULL Creators Blog

                                                                KEELチームの相原です。 今回はeBPFを利用してKubernetesクラスタの可観測性の隙間を埋めている話です。 前回のエントリではLLMにうつつを抜かしていたので本業(?)の話をしようと思います。 www.lifull.blog LIFULLの可観測性の現在地 eBPFとは 可観測性の隙間 NAT Loopback eBPFを実行するには BPF CO-RE libbpf-rsを利用したNAT Loopbackの検知 1. (ユーザ空間) コマンドライン引数として受け取ったDNSをTTLごとに名前解決してIPアドレスを取得する 2. (ユーザ空間) IPアドレスに変化がある度にカーネル空間で動くBPFプログラムにそのIPアドレスのリストを渡す 3. (カーネル空間) Kprobesで tcp_v4_connect/tcp_v6_connect にフックを仕込む 4. (カーネル空間)

                                                                  Kubernetesクラスタの可観測性の隙間を埋めるeBPF - LIFULL Creators Blog
                                                                • 詳説 eBPF 概論編 - VA Linux エンジニアブログ

                                                                  1. はじめに 2. BPFとは 3. BPFで実現できること 4. BPFの仕組み 4.1 BPFプログラムを開発しClang/LLVMでコンパイルしてバイトコードにする 4.2 bpftoolでバイトコードからスケルトンヘッダを作成し、BPFアプリケーションで読み込む 4.3 BPFプログラムの結果を保存するmapを作成 4.4 BPFプログラムをカーネルにロード 4.5 イベントが発生したらBPFプログラムが実行され結果をmapに保存 5. BCCとは 5.1 BCC-Tools 5.2 BCCを使った開発 6. CO-RE 6.1 BPFプログラムをCO-RE対応する場合 6.2 CO-REの仕組み 7. おわりに 執筆者:稲葉貴昭 1. はじめに 本記事は近年注目されているeBPFについて、概論編と実装編に分け解説を行います。 概論編となる今回では、以下のことを解説します。 (1

                                                                    詳説 eBPF 概論編 - VA Linux エンジニアブログ
                                                                  • eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog

                                                                    こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 本記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j

                                                                      eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog
                                                                    • 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp

                                                                      実行中のシステムの挙動を詳細にトレースする仕組みは、特に「よくわからない問題」に遭遇している時に重要です。今回はLinux向けのトレーシングツールの本命とも言えるeBPFを利用した各種ツールを紹介します。 eBPFに関する記事が今回以降、数回にわたって解説されています。あわせてご覧ください。 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する(今回の記事) 第690回 BCCでeBPFのコードを書いてみる 第692回 sysfsやbpftoolを用いたeBPFの活用 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 第695回 入門BPF CO-RE eBPFとBPF Compiler Collection 改めて言うまでもなく、Linuxカーネルもしくはカーネル上で動いている各種タスクのパフォーマンスや挙動を調べなくてはならない

                                                                        第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp
                                                                      • eBPFを用いたトレーシングについて

                                                                        PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation3.1K views•31 slides

                                                                          eBPFを用いたトレーシングについて
                                                                        • How io_uring and eBPF Will Revolutionize Programming in Linux

                                                                          Table 2: comparison between the various backends. Test issues 1kB random reads using buffered I/O files with preloaded files and a hot cache. The test is run at 100% CPU. We don’t expect a lot of difference between synchronous reads and io_uring interface in this case because no reads will block. And that’s indeed what we see. Note, however, that in real life applications that do more than just re

                                                                            How io_uring and eBPF Will Revolutionize Programming in Linux
                                                                          • GoプロジェクトへのOpenTelemetry計装でeBPF自動計装を採用しなかった話

                                                                            既存GoプロジェクトにOpenTelemetryを計装する機会がありました。eBPFによる自動計装ではなく、手動計装を選んだ理由を説明します。 GoアプリケーションへのOpenTelemetry計装手段 Goにおいては、OpenTelemetryの自動計装が公式で用意されていません。公式サイトにAutomaticの章がないことからわかります。おそらく、ランタイムの制約で実行時にアプリケーションの挙動を変えることが難しいのでしょう。 トレースに十分なスパンを含めるために、現状では以下の2つの計装手段があります。既存のGoアプリケーションに導入する手間や影響範囲をイメージいただくために、概要に絞って解説します。 手動計装 eBPFによる自動計装(Work In Progres) 1. 手動計装 まず、OpenTelemetryのSDKをインストールし、セットアップをします。 func main

                                                                              GoプロジェクトへのOpenTelemetry計装でeBPF自動計装を採用しなかった話
                                                                            • クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた

                                                                              クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた Kubernetesの開発をホストするなどクラウドネイティブ関連のテクノロジーやソフトウェアを主導するCloud Native Computing Foundation(以下CNCF)は、2021年を総括するレポート「CNCF 2021 ANNUAL REPORT」を公開しました。 CNCFは2021年末現在でKubernetes、Prometheus、Envoy、ContainerDなどを始めとする120以上の開発プロジェクトをホスト。エンドユーザー数も順調に伸びています。 内容の詳細はぜひレポートをご参照ください。 合わせてPublickeyでは、この1年のCNCFやクラウドネイティブの動向について、CNCFアンバサダ

                                                                                クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた
                                                                              • eBPFを用いたネットワーキングやセキュリティなど、AWS、Azure、Googleの3大クラウドが採用。Isovalentが明らかに

                                                                                eBPFを用いたネットワーキングやセキュリティなど、AWS、Azure、Googleの3大クラウドが採用。Isovalentが明らかに クラウドネイティブな環境でeBPFを採用したネットワーキングやオブザーバビリティなどの機能を提供するオープンソースの「Cilium」を開発するIsovalentは、AWS、Microsoft Azure、Google Cloudの3大クラウドそれぞれのKubernetes環境でCiliumの採用が出揃ったことを、10月24日に米国ミシガン州デトロイトで行われたCloud Native eBPF Day NA 2022(KubeCon + CloudNativeCon NA 2022と同時開催)の基調講演で明らかにしました。 eBPFとは、Linuxカーネルのコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してプログラマブ

                                                                                  eBPFを用いたネットワーキングやセキュリティなど、AWS、Azure、Googleの3大クラウドが採用。Isovalentが明らかに
                                                                                • GitHub - microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows

                                                                                  The following diagram shows the basic architecture of this project and related components: As shown in the diagram, existing eBPF toolchains (clang, etc.) can be used to generate eBPF bytecode from source code in various languages. Bytecode can be consumed by any application, or via bpftool or the Netsh command line tool, which use a shared library that exposes Libbpf APIs, though this is still in

                                                                                    GitHub - microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows