iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

教練我想玩eBPF 系列

eBPF在cloud native好熱門,趁著這個機會來學學eBPF是什麼以及到底怎麼開發,探索現有的eBPF相關專案,例如bcc和cilium。

鐵人鍊成 | 共 30 篇文章 | 9 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day11 - eBPF基本知識(8) - map (上)

今天我們要介紹eBPF的另外一個重要組件map,前一天提到trace_printk只適合用在除錯階段,輸出eBPF的執行資訊到user space,然而我們需要...

2022-09-26 ‧ 由 gamerslouis 分享
DAY 12

Day12 - eBPF基本知識(9) - map(下)

接續前面的內容,今天我們要來研究怎麼透過map與user space的程式溝通。 和其他eBPF的操作一樣,我們透過bpf的system call去與kerne...

2022-09-27 ‧ 由 gamerslouis 分享
DAY 13

Day13 - eBPF基本知識(10) - Tail call

eBPF的基本知識部分來到了第10章,剛好也就是這個部分的最後一章,今天我們要來聊的是tail call的功能。 tail call簡單來說就是在eBPF程式內...

2022-09-28 ‧ 由 gamerslouis 分享
DAY 14

Day14 - BCC 簡介

前面兩周的時間我們完成了eBPF基本架構和功能的介紹,接下來一周的時間我們的主題會放在之前在在Day5的範例程式碼有出現過的BCC這個eBPF Project的...

2022-09-29 ‧ 由 gamerslouis 分享
DAY 15

Day15 - BCC 安裝

首先bcc的安裝大概有幾種方式 透過各大發行板的套件管理工具安裝 直接使用原始碼編譯安裝 透過docker image執行對於前兩著,bcc官方的文件列舉了需...

2022-09-30 ‧ 由 gamerslouis 分享
DAY 16

Day16 - BCC tcpconnect (上)

我們今天要來看的是tools/tcpconnect.py這支程式。原始碼在這邊。 這隻程式會追蹤紀錄kernel發起的TCP連線 python3 tools/t...

2022-10-01 ‧ 由 gamerslouis 分享
DAY 17

Day17 - BCC tcpconnect (下)

我們接續昨天繼續講tcpconnect的程式碼。 後半部分的eBPG程式碼定義了trace_connect_return,這個函數會被attach到tcp_v4...

2022-10-02 ‧ 由 gamerslouis 分享
DAY 18

Day18 - BCC HTTP filter

我們今天要來看的是bcc的另外一個範例 examples/networking/http_filter/http-parse-simple.py (原始碼)首先...

2022-10-03 ‧ 由 gamerslouis 分享
DAY 19

Day19 - 外傳 - Socket filter 底層摸索 (上)

前一天我們介紹了http-parse-simple,他利用了socket filter的eBPF program來過濾http封包,然而在解析的過程中保留了兩個...

2022-10-04 ‧ 由 gamerslouis 分享
DAY 20

Day20 - 外傳 - Socket filter 底層探索 (下)

接旭昨天,我們可以更深入的了解一下eBPF對BPF_ABS做了什麼事情,在verifier這個神奇的地方搜尋BPF_ABS這個instruction,會找到下面...

2022-10-05 ‧ 由 gamerslouis 分享