ebpf--入門03(網絡應用各種場景)
bpf_cmd: BPF_MAP_CREATE: 創建一個新的BPF映射。 BPF_MAP_LOOKUP_ELEM: 在BPF映射中查找一個元素。 BPF_MAP_UPDATE_ELEM: 更新BPF映射中的一個元素。 BPF_MAP_DELETE_ELEM: 從BPF映射中刪除一個元素。 BPF_MAP_GET_NEXT_KEY: 獲取BPF映射中下一個鍵的迭代器。 BPF_PROG_LOAD
昵称 putao
贡献者1
粉丝0
bpf_cmd: BPF_MAP_CREATE: 創建一個新的BPF映射。 BPF_MAP_LOOKUP_ELEM: 在BPF映射中查找一個元素。 BPF_MAP_UPDATE_ELEM: 更新BPF映射中的一個元素。 BPF_MAP_DELETE_ELEM: 從BPF映射中刪除一個元素。 BPF_MAP_GET_NEXT_KEY: 獲取BPF映射中下一個鍵的迭代器。 BPF_PROG_LOAD
昵称 putao
支持同時使用多個eBPF程序? 可以將多個 eBPF 程序加載到不同的鈎子點,或者在同一個鈎子點上串聯多個 eBPF 程序。例如,可以在 XDP 層同時加載 URL 過濾、IPv6 過濾和 Cookie 過濾程序。 場景01: #include linux/bpf.h #include bpf/bpf_helpers.h #include linux/if_ether.h #include
昵称 putao
先講tc,再講ebpf tc 的底層原理 隊列管理器(qdisc) 隊列管理器是 tc 的核心組件,用於管理數據包的隊列。不同的 qdisc 實現了不同的流量控制策略,如 FIFO、TBF(Token Bucket Filter)、HTB(Hierarchical Token Bucket)等。 FIFO(First In, First Out):最簡單的隊列管理器,按照數
昵称 putao
過濾和監控 socket 層的數據包 socket 類型的 eBPF 程序,返回值類型是 int,並且返回值用於決定如何處理捕獲的數據包。返回 0 表示丟棄數據包,返回非零值表示接受數據包。 #include linux/bpf.h #include bpf/bpf_helpers.h #include netinet/in.h #include linux/virtio_net.h SE
昵称 putao
ebpf不僅可以用於網絡數據包過濾和性能監控,還可以應用於安全領域,特別是在與 LSM(Linux Security Modules)結合使用時。通過 eBPF 和 LSM 的結合,可以實現更靈活和高效的安全策略,包括訪問控制、安全審計和入侵檢測等。 安全審計: 使用 eBPF 程序記錄特定系統調用的審計日誌。 SEC("lsm/file_open") int BPF_PROG(audit
昵称 putao