Chinaunix

标题: 利用systemtap学习Linux路由代码 [打印本页]

作者: pwp_cu    时间: 2013-07-11 10:20
标题: 利用systemtap学习Linux路由代码
本帖最后由 pwp_cu 于 2013-07-11 10:20 编辑

一、为什么要这样做
读kernel route子系统代码,当我弄懂了数据结构之间的关系以及控制流程后,
心里还是不妥贴,总有一种“纸上得来终觉浅,绝知此事要躬行”的感觉。
此时,systemtap能起大作用。

二、准备工作
安装systemtap, kernel, kernel-debuginfo, kernel-debuginfo-common等。
uname -r
2.6.38.6-26.rc1.fc15.i686

http://ftp.jaist.ac.jp/pub/Linux ... 26.rc1.fc15.src.rpm

rpmbuild --rebuild --target=i686 --without pae --without perf --with firmware --without debug kernel-2.6.38.6-26.rc1.fc15.src.rpm

三、编写脚本
这个脚本是针对 2.6.38.6-26代码编写的,如果你使用别的kernel版本,
需要相应的修改。需要重命名成 route.tap。
route.tap.tar.gz (171 Bytes, 下载次数: 77)

四、运行

在一个终端运行:
stap -v route.tap |tee log

在另一个终端运行:
ip route flush cache
ssh 10.66.66.66

五:分析
分析log文件,你就可以看到整个路由查找的过程。

log.tar.gz (1.07 KB, 下载次数: 82)

鱼饮水,冷暖自知,乐趣尽在其中!



作者: Godbach    时间: 2013-07-11 13:33
回复 1# pwp_cu

感谢 LZ 分享


   
作者: peruke    时间: 2013-07-11 16:07
mark mark
作者: gpstrive    时间: 2013-07-11 17:47
本帖最后由 gpstrive 于 2013-07-11 17:49 编辑

systemtap 很强大,我以前跟踪路由的时候,用的是UML,感觉没有这个方便。

回复 1# pwp_cu


   
作者: 瀚海书香    时间: 2013-07-12 11:04
回复 1# pwp_cu
systemtap+kprobe 分析内核的确比较方便。

多谢分享!

   
作者: daniel_11    时间: 2013-07-12 14:45
mark下,多谢分享~
作者: zghover    时间: 2013-08-26 07:25
楼主的route.tap文件打不开把?
作者: pwp_cu    时间: 2013-10-12 11:13
还真是,原来的route.tap被我压缩时搞坏了。
贴个例子吧,不是针对2.6.38.6-26内核的了,里面的具体行数需要相应修改。

route.tar

10 KB, 下载次数: 30


作者: humjb_1983    时间: 2013-10-12 12:46
学习一下~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2