shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数865
阅读:2639回复:3

【云原生进阶】eBPF实战入门之网络篇

楼主#
更多 发布于:2023-06-30 02:05
 之前我们开过一个eBPF粗暴入门篇(还在更新),接下来我们就需要针对单项知识点进行强化。首当其冲的是网络如xdp、tc等,并且结合之前我们说过的otel来进行基于eBPF可观测的实现。本课程不适合新手
    本课程分三章:
   1、基于docker ,我们来完成基于xdp的流量监听、数据包修改等基操
   2、结合之前讲过的otel。来完成无侵入链路监控
   3、k8s相关的应用
   本课程大约50课时(后面还要开进阶课程)。由于众所周知的原因,关键细节会故意留坑,VIP学员一对一口述破解


第二章:Traffic Control(tc)基本开发学习
第10讲:Traffic Control入门、基本写法
今天我们进入新的一章,本章我们将学习到数据包修改、重定向相关知识

第11讲:使用golang运行Traffic Control监听
本课时很重要,课程代码也参考了cilium源码。

第12讲:Traffic Control基操(1): 解析IP报文 试听
我们先从基操开始。xdp之前也实现过,使用tc更方便些

第13讲:Traffic Control基操(2): 用户态交互、显示IP
之前xdp讲过类似的方法。tc模式下我们做个修改和适应性复习

第14讲:Traffic Control基操(3): 函数封装的基本技巧
大段代码会导致可读性很差,今天我们演示下简单的、初步的函数封装


第15讲:Traffic Control基操(4): tcp包解析
今天我们演示下在tc模式下的tcp包解析,后面其实还有更方便的方法

第16讲:Traffic Control基操(5): 监听docker容器的代码改造
在我们之前的基础上做一个改造和改进


第17讲:修改端口重新封包(1) 基本方法和思路
接下来我们要讲重点部分:修改网络数据包,今天先讲基本方法和思路


第18讲:tc修改端口重新封包(2) 初步修改目标端口、抓包
今天这课时我们来尝试对目标端口进行修改,并使用抓包的方式查看


第19讲:tc修改端口重新封包(3) 完成目标端口重定向
有了前面课时的基础,今天我们完成目标端口的修改


第20讲:tc修改tcp数据包的目标IP+端口重新封包、重定向
上节课我们是改了端口,有了这个基础我们来完成IP和端口的修改和重定向


本课程不定期更新





第一章:xdp和docker监控
第1讲:课程内容、基本运行效果 试听
开张课,讲下课程内容。先从docker监控开始

第2讲:xdp监听docker容器流量基本原理
之前我们是监听了流量进入docker容器的情况,如果是容器互访怎么监听流量呢?今天讲一下原理

第3讲:过滤tcp握手和挥手阶段的数据包(选学)
上节课我们答应了所有交互连接情况,这节课我们来通过一些手法尽可能的过滤掉我们不需要的数据包

第4讲:eBPF获取tcp的报文内容(http模式)
本课时我们通过xdp取出tcp报文内容,为后面解析mysql、redis等协议做准备

第5讲:eBPF根据tcp的报文判断是否是http请求
今天我们来判定请求是否属于http请求

第6讲:(补充)根据tcp的报文判断是否是http响应
在上节课的基础上,我们来区分请求和响应

第7讲:eBPF+mysql报文解析初步:解析SQL语句(查询)
有了今天的课时,我们就能监听所有容器的SQL查询语句,而无需修改代码

第8讲:redis报文解析初步(上):基本手法
这节课我们来讲原理,下节课我们完成redis监听

第9讲:redis报文解析初步(下):监控所有容器执行的Redis命令 试听
有了上节课基础,今天我们就来结合eBPF监控所有容器执行的redis命令



会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数865
沙发#
发布于:2023-07-07 02:17
开始更新
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数865
板凳#
发布于:2023-08-05 02:33
开始更新第二章
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数865
地板#
发布于:2023-09-28 02:07
更至第20讲
会讲故事的程序员
游客

返回顶部