2020年12月03日

eBPF入門する

この記事はITRC Advent Calendar 2020 の 3 日目の記事です.

前の記事は@site0801nested 対応してるクラウド事業者リスト です.

次の記事は@bluekey0725TUN モジュールによる Docker のロードエラーと linux カーネル です.

はじめに

この記事は 2020/10/28 - 29 に開催された eBPF summit の Day 1 の「A Beginner’s Guide to eBPF Programming」の内容を受けて書いています.

eBPF summit の内容は公開されています.

https://ebpf.io/summit-2020/

実際に自分の環境で公開されているコードを実行してみました.

環境

OS: Gnu/Linux Ubuntu20.04

Python: 3.8

ソースコードはプレゼンを行った lizrice 氏の GitHub にて公開されています.それを使わせていただきました.

https://github.com/lizrice/ebpf-beginners

やること

clone システムコールの監視を行います.

ターミナルを2つ開き,1つのターミナルでプログラムを実行,もう1つのターミナルでlsコマンドを実行し clone システムコールを発行します.

結果

ID 0 が追加されたところは,root ユーザでlsコマンドを実行しています.

$ sudo python3 ebpf.py
No entries yet
No entries yet
ID 1000: 1
ID 1000: 1
ID 1000: 1
ID 1000: 1
ID 1000: 2
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 3	ID 0: 1
ID 1000: 6	ID 0: 1
ID 1000: 7	ID 0: 1