摘要:问题现象 # 93816ef1ab90是ubuntu:23.10,ip是172.17.0.2 docker run -itd 93816ef1ab90 bash 主机可以ping通该容器。 删除容器内默认路由和子网路由后,无法ping通。 问题分析 nettrace -p icmp --daddr
阅读全文
摘要:pkt_type取值范围 https://elixir.bootlin.com/linux/v6.5/source/include/uapi/linux/if_packet.h#L33 skb中pkt_type值,由网卡驱动层函数eth_type_trans,在tc ingress之前,根据目的ma
阅读全文
摘要:问题现象 一般cronjob执行时间会比预期晚8小时。 问题分析 cronjob执行时区以kube-controller-manager为准,而kube-controller-manager默认是0时区。 解决问题 解决方式1kube-controller-manager容器挂载宿主机timezon
阅读全文
摘要:场景1:打印时间 now_time=`date +"%Y-%m-%d %H:%M:%S"` echo $now_time # 使用双引号可以解析变量,单引号不行 echo 'time is $now_time' echo "time is $now_time" x=10 echo 'x is $x'
阅读全文
摘要:压缩碎片->清理空间 # 压缩会产生碎片,清理会删除碎片。只有删除碎片,才能减少空间占用。 # 压缩回收历史版本,回收从0到指定版本号的非key最新版本的历史版本数据 etcdctl compact 版本号 # 清理占用的系统存储空间 etcdctl defrag 自动压缩策略的2种模式 压缩策略
阅读全文
摘要:修改tcp options中mss值 src/ipvs/ip_vs_proto_tcp.c 因为tcp头部options中不同kind顺序是随机的,所以需要遍历找到kind值是mss 2和length值是4,再修改后面的mss value。 static void tcp_out_adjust_ms
阅读全文
摘要:函数定义 https://www.man7.org/linux/man-pages/man7/bpf-helpers.7.html bpf_redirect不指定flag时,默认走egress,veth egress(in)和虚拟机网口egress(out)方向不同。 网卡响应报文 网卡要响应报文,
阅读全文
摘要:arp请求根据路由来确定下一跳。 目的ip与源ip不同网段,走网关,arp请求目的地址是网关地址,下一跳mac是网关mac。ping 192.168.1.11 目的ip与源ip同网段,不走网关,arp请求目的地址是原来的目的地址,下一跳mac是原来目的地址mac。ping 192.168.11.10
阅读全文
摘要:问题现象 k8s上启动pod后,使用主机网络的容器,加载eBPF程序到网口上,持久化map只能保存在容器文件系统/sys/fs/bpf中。容器复位后,新容器与原来eBPF程序使用的不是同一个map。 问题分析 新容器使用新的文件系统,无法找回原来的/sys/fs/bpf挂载点,需要持久化到宿主机上。
阅读全文
摘要:相比于perf_event_array,ringbuf优势在于1. 读取数据是有序的,即提交顺序和消费顺序保持一致。2. 避免数据复制,即提交数据到map和传递到用户态都不需要拷贝。 内核态 ringbuf/ringbuf.c #include "../headers/vmlinux.h" #inc
阅读全文
摘要:方式1:只用参数值 package main import ( "fmt" "os" ) func main() { // os.Args是[]string for k, v := range os.Args { fmt.Printf("args[%d]=[%s]\n", k, v) } } 方式2
阅读全文
摘要:bpftool是eBPF的命令行工具,prog和map是最常用的2种方式。 prog # 查看系统中所有的BPF Prog bpftool prog list # 查看tracelog bpftool prog tracelog map # 查看系统中所有的BPF Map bpftool map l
阅读全文
摘要:package main import "fmt" type Test string func (t Test) String() string { return "test string" } func (t Test) Error() string { return "test error" }
阅读全文