自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (4)
  • 收藏
  • 关注

原创 大年初五嘉定观影《天将雄师》后点评

本年度假期和往常一样,长,太长,春节过得和往年一样,旅游。今年自驾去了绍兴,杭州,与我的偶像鲁迅有了亲密的接触,人还是一如既往的多,心还是一如既往的烦,所幸本人是玩网络的,对路由比较精通,脑子里总有一张实时路由表,几乎绕开了一切拥堵路段。在回上海的路上,杭州G2501和沪杭高速的口子,一个牌子上写着“上海”,于是就分出去了大量的车流,我知道,很多拥堵的原因就是因为那块牌子上写着“上海”,如果一个牌

2015-02-25 09:46:13 5158 8

原创 DxR路由查找算法前传

你认为现在携带现代操作系统的通用计算机中哪类计算看上去是且必须是超级快的,毫无疑问,答案是内存访问。你认为现在携带现代操作系统的通用计算机中哪类计算看上去是且理论上超级慢的,毫无疑问,答案是路由寻址。提前放假真的很无聊!你认为内存寻址为什么快?你认为它为什么必须要快?因为现在操作系统基于虚拟内存地址寻址,在虚址和物理地址之间需要有一个映射,这个过程事实上减慢了内存访问的速度,但是我们拥有CPU的恩

2015-02-15 11:25:19 7077

原创 xtables-addons中的一个让我吃了一惊的模块DNETMAP

这篇文章,我不想展开,本来我并不想写这么一篇文章,由于前段时间,我写了一个static-stateless-2-way-NAT-on-Linux-with-iptables发现自己重新造了轮子之后,我不得不讴歌一下自己。下载xtables-addons,编译,安装,然后man xtables-addons,你会发现:   DNETMAP       The DNETMAP target allow

2015-02-08 17:37:26 5029 1

原创 Linux流负载均衡中Layer7的数据流(连接跟踪)识别问题

1.支持Layer7的nf_conntrack真的没有必要做走火入魔之后,你会觉得需要赶紧将“基于五元组的数据流”改成“基于应用层协议固定偏移的数据流”,赶紧动手,越快越好!于是此人在支持zone conntrack的Linux 3.17内核上为nf_conn增加了几个字段:bool l7; //布尔型,表示是否要进行layer7的匹配。u32 offset; //应用层流标识的偏移u32 off

2015-02-08 17:33:46 7603 2

原创 IPVS基于应用层任意偏移字段HASH值的负载均衡算法

在比较早的那些年,我曾经写了一个负载均衡调度算法模块,是基于应用层协议包任意偏移量开始的一段固定长度的数据计算一个值,然后将这个值hash到不同的服务器。那时觉得没啥用,就没有再继续,直到前一段时间的一段思考以及前几天的一次预研。我决定作文以记之,以后说不定能用得着。1.UDP服务的负载均衡以前使用UDP的服务很少,虽然HTTP并没有说一定要是TCP,但事实上几乎没有UDP上的HTTP。但是随着网

2015-02-08 17:02:16 7065

原创 sk_buff封装和解封装网络数据包的过程详解

可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体进行的,它的重要性和BSD的mbuf类似(看过《TCP/IP详解 卷2》的都知道),那么sk_buff是什么呢?       sk_buff就是网络数据包本身以及针对它的操作元数据。       想要理解sk_buff,最简单的方式就是凭着自己对网络协议栈的理解封装一个直到以太层的数据帧并

2015-02-08 15:00:08 20607 8

原创 系统panic后主动广播最后内核dmesg信息-一个几乎可以使用的方案

在《远程触发SYSRQ获取最新的dmesg信息-一个几乎没有什么用的方案》中,我认为远程触发SYSRQ并没有什么实际的用处,系统没有挂起时,用SSH等标准方式会好很多,系统挂起时,远程触发在多数情况下均无法得到响应。那么有什么方法在系统panic的时候通知外部呢?       当然采用crash kexec kernel的方式会是一个好方法,但是那毕竟是为了debug而生的,有的时候只是想知道dm

2015-02-01 11:53:45 4469 1

原创 远程触发SYSRQ获取最新的dmesg信息-一个几乎没有什么用的方案

本文在前半部分叙述一个听起来十分吸引人且合理的故事,然后紧接着告诉你这个美好的故事事实上几乎不会发生,最后来个总结。在接下来的一篇文章中,我提出一个比较自我的方案。第一部分:美好的故事在xtables-addons中,有一个特别有意思的小模块,那就是xt_SYSRQ,它作为一个iptables的target加载进内核,可以在远程为本机发送sysrq命令,这个功能可谓强大。在去年的项目中中,我已经将

2015-02-01 11:46:58 4609

原创 集体内省的本质-我对中医养生的看法

中华传统内省自身,罗马文化放眼世界。多么痛的领悟!为什么中国总是内向,不懂开拓,这是历史使然,跟地缘绝对相关。看看我们的几个外向拓展的年代,西汉时期,迄至武皇后的唐代,明永乐时期,方向几乎都是一个:西北!因为这个方向是唯一可以出去的通道(那个时候没有波音,空客和远洋邮轮...)。只要那个通道一但封闭,整个华夏瞬间转为内省。通道封闭的原因多种多样,内在的原因有财政问题,补给问题,内乱问题,外在的因素

2015-02-01 11:23:17 9068

原创 使用multi zone的nf conntrack来缓存路由和socket构建高性能处理

前些日子完成了一个extension for nf_conntrack底层基础设施,后来写了一个测试代码,将:1.一个数据流两个方向的路由结果;2.如果数据流目的地是本机,则和该流关联的socket;缓存在了conntrack的extension中。这意味着什么?        这意味着可以将几乎所有的查找操作都压缩在conntrack的查找中:1.路由可以保存在conntrack中;2.sock

2015-02-01 11:21:24 4544

一个iptables的stateless NAT模块实现

如果你在寻找Linux上配置诸如Cisco设备上的static双向NAT的方法,这个或许就是你想要的; what?你觉得它完不成PAT?是的,它不行。但是想做PAT为何不使用现有的iptables实现呢?它可以自动为你解决元组唯一性问题。不要从概念上分析,事实上,static双向NAT是完全对称的,一对一的 ,也只有在BOX两边的网络在拓扑级别是完全对等的情形下,这种NAT或许才是有用的,Cisco设备经常处在这样的位置,比如一个很大的stub节点的出口位置,比如两个domain的中间位置... 我将名字取为STATIC-2-WAY-NAT,比较长也比较怪,完全不符合UNIX的小写短名传统,我的想法是:这样可以少写很多的帮助信息,因为名字就是自解释的。

2014-12-27

模块化的nf-HiPAC

原版的nf-hipac需要为内核打patch,且只支持较低版本的内核,构建起来相对比较麻烦。 模块化后的nf-hipac可以直接作为内核可加载模块编译,且适配了高版本的Linux内核。为了移植工作简化,去掉了和iptables模块的联动支持!

2014-11-21

配置文件还有一些other

代码和配置iptables配置文件,还有一些别的东西

2010-04-16

关于linux内核以及其他个人体会的文集

本文集是我用将近两年的时间写成的,大多数文章是关于linux内核的,另外还有一些我自己对计算机的理解,还有一些历史,音乐方面的东西。适合于对linux内核思想感兴趣的阅读,文章偏重于对于思想的理解。

2009-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除