並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 405件

新着順 人気順

BPFの検索結果41 - 80 件 / 405件

  • 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カーネルトレース入門
      • Amazon Linux 2023がGAされました | DevelopersIO

        抜粋 : Release cadence - Amazon Linux 2023 メジャーリリースとマイナーリリースの内容は以下AWS公式ドキュメントに記載されています。メジャーリリース時には互換性があるか十分に検証した上でアップデートしましょう。 Major version release— Includes new features and improvements in security and performance across the stack. The improvements might include major changes to the kernel, toolchain, Glib C, OpenSSL, and any other system libraries and utilities. Major releases of Amazon Linux ar

          Amazon Linux 2023がGAされました | DevelopersIO
        • コンテナランタイムを自作した - zebian.log

          コンテナの仕組みを勉強したかったため、Goでコンテナランタイムを自作した。雑実装だし未実装の機能もたくさんあるが、ある程度形になってきたため現状をまとめる。 リポジトリ github.com kombu/dashi - 自作コンテナランタイム kombu/nimono - eBPFを利用したシステムコールロガー kombu/yaminabe - dashiとnimonoを利用したマルウェアサンドボックス プロジェクト名から和の雰囲気を感じるが、これはリポジトリ名をkombu(昆布)にしたかったため、せっかくなら今回は和風で固めようと思ったから。趣があっていいんじゃないでしょうか。 dashiが自作コンテナランタイムだが、nimonoとyaminabeは実験的な要素で、セキュキャン2023でコンテナを使ったマルウェアサンドボックスを実装した経験があり、今回はその再実装を自作コンテナランタイム

            コンテナランタイムを自作した - zebian.log
          • bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

            サイボウズ社内ではC++で開発している製品があります。 未知のバッファオーバーランなどの脆弱性への対策として、重要なコンポーネントについてはプロダクション環境で利用しているバイナリでも AddressSanitizer を有効にしてビルドしています。 その製品で利用しているコンパイラをgcc5.3.0からgcc7.5.0に更新したところ性能劣化が発生しました。 製品コードとは別の部分が原因のため、根本原因の追跡が難しそうです。perf,bpftraceを使って性能劣化を追いかけてみましょう。 本記事で利用しているAddressSanitizer, bpftrace, perfコマンドはネット上に良質な記事がありますので、使い方などの解説は今回は省略させていただきます。 gcc7.5.0において、性能劣化が発生する再現コードとして次のようなものを用意しました。 #include <strin

              bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
            • bpftraceによるGoアプリケーションのトレース|hayajo

              はじめにシステムの状態を的確に捉え、運用に必要なインサイトを継続的に得るための特性は「オブザーバビリティ」と呼ばれます。オブザーバビリティを実現することで、パフォーマンスのモニタリングやトラブルシューティングを効果的に行い、システムの信頼性を高めることができます。 この重要な特性を実現する上で、eBPFやbpftraceは強力なツールとなります。 本記事では、Goアプリケーションにおけるオブザーバビリティを実現するための一つの方法として、bpftraceを用いたトレースの手法を紹介します。 内容が多いため、目次を活用して段階的に読み進めることをお勧めします。 eBPFとbpftraceはじめに、eBPFとbpftraceについて簡単に説明します。 eBPFとはeBPF(Extended Berkeley Packet Filter)はLinuxカーネル内で動作する柔軟なプログラミングフレー

                bpftraceによるGoアプリケーションのトレース|hayajo
              • Recommended Books 2021 for platform engineer and SRE

                recommended-books-2021.md Kubernetes Kubernetes: Up and Running, 2nd Edition Production Kubernetes Managing Kubernetes Cloud Native Infrastructure Container Security SRE The Site Reliability Workbook 97 Things Every SRE Should Know Systems Performance: Enterprise and the Cloud Building Secure and Reliable Systems Designing Data-Intensive Applications System Design Interview BPF Performance Tools C

                  Recommended Books 2021 for platform engineer and SRE
                • Linux Hardening Guide | Madaidan's Insecurities

                  Last edited: March 19th, 2022 Linux is not a secure operating system. However, there are steps you can take to improve it. This guide aims to explain how to harden Linux as much as possible for security and privacy. This guide attempts to be distribution-agnostic and is not tied to any specific one. DISCLAIMER: Do not attempt to apply anything in this article if you do not know exactly what you ar

                  • XDP入門

                    こんにちは.閃光のハサウェイが配信開始されたので早速視聴しました.メッサーがいいですね. 前回もXDP関連の話題でしたが,今回はXDPに入門します. XDPを学習する際のロードマップやつまりどころの解消になればと思います. # 2023-12-30 加筆 本記事を公開して約 2 年が経過しました. この加筆で古くなってしまった情報を修正しています. 差分は このブログの Github の PR (opens new window) を見てください. この 2 年間で eBPF 及び XDP への注目はさらに高まったように感じます. 取得できる情報も充実してきました. 特に O'reilly より発売された 入門 eBPF (opens new window)(原書: Learning eBPF (opens new window)) は非常に充実した内容になっています. 日本語でこれらの情

                    • BPF: A New Type of Software

                      Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                      • Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima

                        TCP ソケットと `SO_REUSEPORT` オプションに関する問題を解決するために Linux カーネル v5.14 から取り込まれる予定のパッチセットについて 2 回に分けて解説します。 - https://lore.kernel.org/bpf/20210612123224.12525-1-kuniyu@amazon.co.jp/ - https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=1f26622b791b6a1b346d1dfd9d04450e20af0f41 Part 1 では `SO_REUSEPORT` オプション、カーネルの挙動と問題点、パッチセットの効果について解説し、 Part 2 ではカーネルの実装と修正方法、追加した eBPF の機能について解説します。 ##

                          Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima
                        • 検出が非常に困難な Linux のマルウェア「Symbiote」 | スラド Linux

                          一度感染すると検出が非常に困難になるという Linux のマルウェア「Symbiote」について、Intezer と BlackBerry Threat Research & Intelligence Team が共同で調査結果を発表している (Intezer のブログ記事[1]、 [2]、 Ars Technica の記事、 The Register の記事)。 Symbiote はスタンドアロンの実行ファイルではなく共有ライブラリであり、LD_PRELOAD 環境変数を用いてすべてのプロセスの実行時に読み込ませる仕組みだ。すべてのプロセスに感染後は、ルートキットとしてマルウェア関連ファイルをすべて隠ぺい可能になるほか、Barkeley Packet Filter (BPF) をフックしてパケットキャプチャツールから自身のネットワークトラフィックを隠ぺいする。マルウェアとしての機能は認証

                          • BPF Performance Tools: Linux System and Application Observability (book)

                            BPF Performance Tools: Linux System and Application Observability (book) 15 Jul 2019 BPF (eBPF) tracing is a superpower that can analyze everything, and I'll show you how in my upcoming book BPF Performance Tools: Linux System and Application Observability, coming soon from Addison Wesley. The book includes over 150 BPF observability tools that you can run to find performance wins and troubleshoot

                            • Amazonが作ったサーバレスアプリケーションのための軽量VM、Firecrackerの論文を読み解く -その1- - inductor's blog

                              このエントリーについて このエントリーを書き始めた経緯は下記にあります。 blog.inductor.me 1. はじめに(Introduction) サーバーレスコンピューティングは、[4、16、50、51]などのパブリッククラウド環境と[11、41]などのオンプレミス環境の両方で、ソフトウェアやサービスをデプロイ、管理するためにますます一般的になっているモデルです。サーバーレスモデルは、サーバーの運用やキャパシティ管理、自動スケーリング、従量制の価格設定、イベントおよびストリーミングデータのソースとの統合など、いくつかの理由において魅力的です。コンテナは、Dockerによって最も一般的なかたちで具体化され、運用オーバーヘッドの削減や管理性の向上など、同様の理由で一般的になっています。コンテナとサーバーレスは、従来のサーバープロビジョニング処理に比べて明確な経済的利点を提供します。マルチ

                                Amazonが作ったサーバレスアプリケーションのための軽量VM、Firecrackerの論文を読み解く -その1- - inductor's blog
                              • 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」が登場
                                • コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする

                                  特定の外部ネットワークへの通信の制限にはファイアウォールなどを利用することが多いですが、コンテナや実行されたコマンド名などをもとに、通信を制御したいという需要が自分の中でありました。 具体的には GitHub Self-hosted runner のような CI / CD 環境で、依存パッケージに悪意あるコードが入り込んでしまうようなサプライチェーン攻撃などを検知・防御し、意図せずにクレデンシャルなどの秘匿すべき情報が外部に漏洩するのを防ぎたいと思っていました。 このようなサプライチェーン攻撃への対策は様々ですが、実行時に悪意のある動作を検出するものとして、GitLab が Falco をベースとした Package Hunter などがあります。このツールは依存パッケージなどをインストールする際に実行されるシステムコールなどを監視するものです。 検知するだけであれば Package Hu

                                    コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする
                                  • SRE / DevOps / Kubernetes Weekly Reportまとめ#13(4/26~5/1) - 運び屋 (A carrier(forwarder) changed his career to an engineer)

                                    この記事は2020/4/26~5/1に発行された下記3つのWeekly Reportを読み、 DEVOPS WEEKLY ISSUE #487 April 26th, 2020 SRE Weekly Issue #216 April 27th, 2020 KubeWeekly #214 May 1st, 2020 English Version of this blow is here. DEVOPS WEEKLY ISSUE #487 April 26th, 2020 News A detailed write up from the recent Failover Conf on all things chaos engineering. Lots of notes and links to related content. A good post for any software d

                                      SRE / DevOps / Kubernetes Weekly Reportまとめ#13(4/26~5/1) - 運び屋 (A carrier(forwarder) changed his career to an engineer)
                                    • [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO

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

                                        [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO
                                      • バグ調査やパフォーマンス改善に役立つ!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 実装編 - 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 エンジニアブログ
                                          • A bad citizen - Kuniyuki Iwashima

                                            10 月頭に Linux の [netdev メーリングリスト](https://lore.kernel.org/netdev/)に以下のメールが届きました。 - [netdev development stats for 6.1?](https://lore.kernel.org/netdev/20221004212721.069dd189@kernel.org/) 送信者は Jakub Kicinski で Networking subsystem のメンテナの一人です。元々 netdev は David S. Miller (DaveM) が一人でメンテナンスしており、 Jakub は [DaveM の次の世代のメンテナ](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bda

                                              A bad citizen - Kuniyuki Iwashima
                                            • [CNDT2020]Linux Observability with BPF Performance Tools

                                              Admission Webhookで快適なSecret管理 / Berglas Secret Admission Webhook

                                                [CNDT2020]Linux Observability with BPF Performance Tools
                                              • 形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳

                                                2019年が終わろうとしています あけおめ~さて2020年になりました。歴史が長い形式手法の今後を占うため、過去と直近の出来事を振り返りたいと思います。 ツッコミやタレコミは私のTwitter宛かあなたのブログかその他経路でお願いします~ シンボリック実行は形式的であるため本稿では形式手法に含めることにします。 Fuzzing関連はサーベイが甘いので漏れが多いかもしれません。 形式手法・形式検証とは 形式検証とは、厳密に定義された意味論の下で仕様やプログラムが所定の性質を満たすことを形式的に検証するための手法をいいます。「形式的に」とは、検証が事前に定義された知識だけに基づいており、検証手順が決定的であることをいうと私は理解しています。 形式手法は、形式検証に加えて、形式的にプログラムの仕様を厳密に定義するための手法を包含します。 本記事では形式手法を以下の通り大きく3つに独自に分類します

                                                  形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
                                                • BPFを使ったLinuxにおけるトレーシングの基礎知識

                                                  BPFを使ったLinuxにおけるトレーシングの基礎知識:Berkeley Packet Filter(BPF)入門(8) Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。今回は、BPFを使ったLinuxにおけるトレーシングの基礎について。 Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。今回から数回にわたり、BPFの代表的な応用先の一つであるトレーシングに焦点を当て、その動作と利用方法を解説していこうと思います。今回はLinuxにおけるトレーシングの基礎を説明します。 トレーシングとは まず、そもそも「トレーシング」とは何でしょうか。字義的

                                                    BPFを使ったLinuxにおけるトレーシングの基礎知識
                                                  • 「インフラで私が一番面白いと考えている世界」GMOペパボ株式会社 近藤 宇智朗(うづら) | Forkwell Press | フォークウェルプレス

                                                    Forkwell が主催する技術イベント「Infra Study」。今回のテーマは「インフラの面白い技術とこれから」です。(開催日:2020年 7月29日)。本記事は登壇者の近藤さんの基調講演から mruby や C言語を使い、コンテナを自作している様子をお伝えします。最後には、登壇者の近藤さんとまつもとりーさんが視聴者からの質問に回答しているので、ぜひご覧ください。 この回ではインフラで一番面白い世界について考えていきます。 皆さん、子どもの頃、中身が気になって時計を分解するようなことがありましたか? 私はありませんでした。 にも関わらず今私が一番面白いと考えている世界はインフラの「中身」です。インフラエンジニアは、ともすれば与えられたOS、ミドルウェア、 マネージドサービスを上手に組み合わせることを求められますし、実際それらの要素を適材適所位配置できることは良いインフラエンジニア、アー

                                                      「インフラで私が一番面白いと考えている世界」GMOペパボ株式会社 近藤 宇智朗(うづら) | Forkwell Press | フォークウェルプレス
                                                    • 第690回 BCCでeBPFのコードを書いてみる | gihyo.jp

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

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

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

                                                          TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ
                                                        • RubyメインでなくてもRubyKaigiから色々学べた話 - Mirrativ Tech Blog

                                                          インフラ・ストリーミングチームの @udzura です。(一ヶ月経ってしまいましたが)9月8日から9月10日まで、三重県でRubyKaigiがありました。 rubykaigi.org 久しぶりのオンサイト会場での開催ということで、大いに盛り上がり、感想ブログなどもたくさん書かれています。 今回は、Rubyをメインで使っていない会社であるミラティブのエンジニアの立場から、RubyKaigiのトークは勉強になるという話をします。 ミラティブの技術スタックとコミュニティについて ところで、以下に、ミラティブのEngineer's Handbookから、技術スタックについての紹介ページを引用します。 エンジニアハンドブックより引用 この通り、実はRubyはアプリケーション開発のメインは使っていないのです*1。 ですが、今回は、後述する通り私がRubyKaigiのCfPに通過したため、「社内外へ積極

                                                            RubyメインでなくてもRubyKaigiから色々学べた話 - Mirrativ Tech Blog
                                                          • Linux 5.5におけるBPF(Berkeley Packet Filter)の新機能

                                                            Linux 5.5におけるBPF(Berkeley Packet Filter)の新機能:Berkeley Packet Filter(BPF)入門(7) Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。今回は、Linux 5.5で導入されたBPFに関する主な新機能について。 Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。 2020年1月26日にLinux 5.5がリリースされたので、今回は通常の連載内容を中断して、Linux 5.5で導入されたBPFに関する主な新機能を紹介します。 BPF Trampoline BPF Trampoli

                                                              Linux 5.5におけるBPF(Berkeley Packet Filter)の新機能
                                                            • Systems Performance 2nd Edition Book

                                                              Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                                              • Segment Routingを用いたKubernetes Podネットワーキングの実装 | CyberAgent Developers Blog

                                                                こんにちは、技術本部 プライベートクラウドグループの中西(@whywaita)です。 今回はCA Tech JOBの制度を用いてインターンに参加して頂いた上野さんからの寄稿記事です。 以下本文です。 みなさんはじめまして。 メディア事業部技術本部プライベートクラウドグループで、2ヶ月間のインターン(CA Tech JOB)を行いました上野裕一郎 (https://www.y1r.org) です。普段は東京工業大学で深層学習をスパコンなどの高性能計算技術で加速・大規模化させる研究をしています。 本インターンではSegment Routing、とくにSRv6を用いてKubernetesのPodネットワーキング機能(CNI)を実装しました。本稿では、CNIとSegment Routingについて紹介したのち、その実装と動作を説明します。 Container Network Interface;

                                                                  Segment Routingを用いたKubernetes Podネットワーキングの実装 | CyberAgent Developers Blog
                                                                • 【Ruby】LinuxとRubyとCoW - 地方エンジニアの学習日記

                                                                  hiboma.hatenadiary.jp こちらのアンサー記事を書いてみますw なぜ CoW の話が出てきたのか なぜCoWを気にしたのかを話すとまず社内で動かしているAPIサーバがメモリ利用過多となってアラートがなったのが話のスタートでした。サービス自体はUnicornを使って動いています。 メモリ利用過多となったときに調べる手法は言語ごとに様々ですが私はRubyの経験がほぼなくプロファイラなども使ったことがありません。この状況でできることは/procを見るくらいしかなかったので/proc/$pid/smapsを見始めました。そこで始めたのがメモリ共有率の計算でした。 以下のツールを書いてUnicornの親子プロセスのメモリ共有率を確認するとなんと40~60%程度となっていて「え!?」ってなったのが始まりでした。プロセスの生存期間が長いのかと思ったのですが起動時間も出すと数分前に起動し

                                                                    【Ruby】LinuxとRubyとCoW - 地方エンジニアの学習日記
                                                                  • bpftrace 2020 - 睡分不足

                                                                    (この記事はLinux Advent Calendar 2020 - Qiitaの2日目の記事です.前日はmasami256さんのTiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べるでした.) みなさんこんにちはこんばんは.bpftraceを使っていますか? (e)BPFといえば最近は専らCiliumなどネットワークが話題ですが,bpftraceはBPF*1を利用したトレーシングツールです.私は昨年からぼちぼち使い始めて,機能追加やバグ修正のパッチをいろいろと投げていた(130+)ら気づいたらコミッタになっていました.ということでbpftraceについては比較的よく知っていると思うので,今年にbpftraceに追加された主要な機能や変更点を紹介したいと思います. bpftrace知らないなぁという方はこちら(拙文です)を,bpftrace使ってないなぁとい

                                                                      bpftrace 2020 - 睡分不足
                                                                    • 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
                                                                      • [PATCH 000/190] Revertion of all of the umn.edu commits - Greg Kroah-Hartman

                                                                        linux-kernel.vger.kernel.org archive mirror help / color / mirror / Atom feedFrom: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Linus Torvalds <torvalds@linux-foundation.org>, Aditya Pakki <pakki001@umn.edu>, Kangjie Lu <kjlu@umn.edu>, Qiushi Wu <wu000273@umn.edu>, x86@kernel.org, Bjorn Helgaas <bhelgaas@googl

                                                                        • 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
                                                                          • 詳説 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
                                                                                • 「Debian 10(buster)」リリース | OSDN Magazine

                                                                                  The Debian projectは7月6日、最新のメジャーリリースとなる「Debian 10 (buster)」をリリースした。ディスプレイサーバーとしてWaylandがデフォルトとなったほか、セキュリティ面でも強化が加わった。 2017年6月に公開したDebian 9 (stretch)に続くメジャーリリース。25ヶ月の開発工期をかけたもので、サポート期間は5年。Linuxカーネルは4.9系を採用している。 ディスプレイサーバーはXorgに代わってWaylandがデフォルトになった。Waylandはシンプルかつモダンな設計であり、セキュリティ面でのメリットがあるとしている。Xorgも継続してデフォルトで提供され、デフォルトのディスプレイサーバーとして選択できる。 Debianでは「Reproducible Builds」として異なる環境でも同じバイナリを再生成できる仕組みの構築を進め

                                                                                    「Debian 10(buster)」リリース | OSDN Magazine