自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

原创 UDP怎么会返回Connection refused错误

有时候,写UDP socket程序的时候,在调用sendto或者recvfrom的时候,会发现有Connection refused错误返回,错误码是ECONNREFUSED。对于懂得socket接口但是不很很懂网络的人,可能这根本就不是个问题,他会根据错误码知道远端没有这个服务端口,正如sock...

2013-07-28 21:26:23 17729 2

原创 这就是所谓的历史剧?

今天晚上看了一集《精忠岳飞》,之后就把电视关了!我并不是不喜欢看国产的历史剧,是感觉拍得太假,历史剧感觉跟唱戏的一样。总结下来,国产历史剧就两个特点:1.主人公都是儿女情长;2.主人公都会飞檐走壁。如果西方的历史剧也拍成这样,第一,凯撒不会和克里奥佩特拉就那么点事,第二,凯撒不会在完全清醒状态下被...

2013-07-27 14:47:47 3578 7

原创 微信被光缆所断-脆弱的行业

脆弱的是网络设计,而不是网络本身!我不晓得为何挖断一根线就能宕机数个小时,这明显是一个物理灾难,为何会影响业务逻辑那么久?网络是分层设计的,一个TCP段丢失了,协议层就会重传,一个有连接链路帧丢失了,甚至IP都感觉不到,不影响上层在于下层提供的冗余!如果说应用服务器不堪重负或者其它原因宕机数个小时...

2013-07-27 14:46:20 3648 2

原创 Linux系统如何平滑生效NAT-DNAT改进以及解释

在《Linux系统如何平滑生效NAT》中,我介绍了如何在Linux中让NAT瞬间生效的patch,提到了那个patch只在SNAT环境中测试过,没有在DNAT环境中测试过,实际上,DNAT中也是可以使用的,只需要将nf_nat_rule_find做以下修改即可:int nf_nat_rule_fi...

2013-07-21 14:29:47 4310 0

原创 Linux系统如何平滑生效NAT

1.Linux实现的NAT概述以及问题所在Linux的NAT基于ip_conntrack。iptables设置的nat规则仅仅对一个流的第一个数据包有效。当然xtables-addons实现的rawnat除外!即便是rawnat,它也必须设置两条规则。真正好的设计是,有个选项可以自定义nat的行为...

2013-07-21 01:25:40 6326 4

原创 Operation not permitted引发的惊魂72小时

0.问题及描述在测试产品的时候,莫名其妙发现了我们的主进程VPNd会出现以下的报错:2013-07-18 13:05:13  www.1.com/192.168.200.220:65527 write UDPv4 []: Operation not permitted (code=1)2013-0...

2013-07-18 22:30:09 15567 2

原创 子PID namespace中获取父namespace中pid的方法

在那篇《使用独立PID namespace防止误杀进程》中的最后,我碰到了一个难题,那就是父PID namespace中的进程无法使用进入子PID namespace中通过echo $$ >$pidfile写入的pid值,进程发信号时,目标pid是和自己处于同样的PID namespace的...

2013-07-14 23:47:04 3817 0

原创 使用独立PID namespace防止误杀进程

Linux实现了独立的PID namespace,可以将进程隔离在独立的PID空间内,只有一个命名空间的进程才能对同一空间的PID进行操作,这样可以防止进程被误操作!Linux的pid namespace是树型结构的

2013-07-14 16:46:43 4972 0

原创 静态数组表示的有限状态机

前段时间搞无状态的TCP conntrack,发现其中一个静态数组表示的TCP状态机很是不错,希望这种思想以后可以用在实际的工作中,直说吧,就是这个状态机数组:static const u8 tcp_conntracks[2][6][TCP_CONNTRACK_MAX] = { { /* ...

2013-07-13 16:18:38 4261 1

原创 无状态TCP的ip_conntrack

Linux的ip_conntrack实现得过于沉重和精细。而实际上有时候,根本不需要在conntrack中对TCP的状态进行跟踪,只把它当UDP好了,我们的需求就是让系统可以将一个数据包和一个五元组标示的流相关联,因为很多的基于流的策略都设置在conntrack结构中,所以当关联好之后,就可以直接...

2013-07-13 16:03:14 9571 0

原创 关于iptables的u32匹配

前面一篇文章----阐释了iptables最新的bpf match,说它将多个matches并成了一个经过编译的解释型bytecode bpf match,早在bpf match之前,u32 match也可以做到matches合并,虽然语法让人费解没有分离match可读性强之外,效率还真是高!它可...

2013-07-06 15:10:27 8155 0

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