加载中…
个人资料
benjiaming
benjiaming
  • 博客等级:
  • 博客积分:0
  • 博客访问:92,464
  • 关注人气:68
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
分类
博文
标签:

ipset

iptables

分类: tcpip
IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which can be administered by the ipset utility. Depending on the type, currently an IP set may store IP addresses, (TCP/UDP) port numbers or IP addresses with MAC addresses in a way, which ensures lightning speed when matching an entry against a set.
refer to http://ipset.netfilter.org/;

ipset是高效管理 ip地址/端口/mac地址 的模块,一般用于辅助提高iptables的性能;
例如,
ipset -N testset iphash
ipset -A testset 192.168.1.1
ipset -A testset 192.168.2.2
iptables -A INPUT -m set --set testset src -j DROP

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

tcp数据发送

成功

tcp

分类: tcpip
问题描述:socket编程,发送少量数据时,send/write等发送函数会立即返回成功,发送的数据会存在TCP发送缓冲区中,依靠TCP协议栈自身的重传机制来保证 该数据 被接收端收到;我们的问题是 发送端应用程序 如何判断 少量数据 已经成功发送到接收端?

解决思路:发送数据存在缓冲区中,我们判断发送缓冲区大小变化,即可获知发送是否成功;具体方法如下: 发送数据后,获得已使用缓冲区大小buf,如果buf==0,表示成功,否则,表示未发送;
那么,如何来获得当前已占用发送缓冲区大小?
1. 第一步我们自然想到是否存在这样的sockopt接口
getsockopt(clientSocket, SOL_SOCKET, SO_SNDBUF, (void*)&sendbuflen, &len);
getsockopt中,有参数SO_SNDBUF,貌似是用来获得发送缓冲大小的;
但经过试验,我们发现 无论数据是否发送成功,该值一直不
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

tcp

三次握手

连接失败

netstat

分类: tcpip

针对问题:TCP连接失败

分析:netstat -s输出中和连接失败相关的参数

202270382 invalid SYN cookies received --- 三次握手

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

tcp

三次握手

reset

杂谈

分类: tcpip
1. 现象
最近线上发现如下异常包,

tcp三次握手期间,server端发送syn_ack,client回复了reset包;

问题:为什么client会回复reset?

2. 分析
参考linux2.6.32内核(redhat 6U2)源码,
client端TCPIP协议栈在以下情况下,收到SYN_ACK包,会返回reset;
  • 第一,相应socket不存在;
  • 第二,socket处于FIN_WAIT2状态;
  • 第三,socket处于ESTABLISHED状态,并且数据包序列号大于socket待接收数据序列号;
  • 第四,socket处于SYNSENT状态,数据包ack序列号不正确 或者 timestamp时间戳不正确;

根据抓包,

  • socket不可能处于FIN_WAIT2和ESTBALISHED状态,排除2/3;
  • ack序列号和timestamp时间戳(和syn包中的相同)是正确的,排除4;

因此,只有可能是1;strace查看系统调用如下:

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2013-09-02 19:29)
标签:

lvs

负载均衡

分类: LVS

LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器,早在2.4内核就已经合并入linux标准内核,并被全球各

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

lvs

负载均衡

分类: LVS
根据前文的介绍,可以通过ipvsadm命令和LVS内核打交道;
除此之外,我们还可以通过proc参数,来 配置全局参数 和 获取统计信息;
  • 配置全局参数,位于目录/proc/sys/net/ipv4/vs/下;
  • 获取统计信息,位于目录/proc/net/下;

下面介绍一下几个常用的proc参数;

1. /proc/net/ip_vs

   获取当前LVS内核配置,包括VS和RS相关信息;同ipvsadm -ln;
IP Virtual Server version 1.2.1 (size=1048576) - 这里size是指连接hash表大小;
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP  0ADC0108:0050 rr                          - vs信息,vip和vport 16进制,调度算法rr;
  -> C0A8010B:0050      Route              
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

lvs

负载均衡

分类: LVS
上一篇《配置管理2》,我们介绍了如何利用keepalived来部署LVS;
本文将介绍一些LVS配置的注意点,以及 性能相关的一些配置;
1. SH调度算法-尽量不要采用
   一些业务为了支持会话保持,选择SH调度算法,以实现 同一源ip的请求调度到同一台RS上;但 SH算法本省没有实现一致性hash,一旦一台RS down,当前所有连接都会断掉;如果配置了inhibit_on_failure,那就更悲剧了,调度到该RS上的流量会一直损失;
   实际线上使用时,如需 会话保持,建议配置 persistence_timeout参数,保证一段时间同一源ip的请求到同一RS上;
2. WLC调度算法-注意RS donw->up的影响
  WLC算法下,RS一旦出现down后up的情况,瞬间所有的新建连接都会调度到该RS上,可能会超过该RS处理请求的上限;
3. 关闭网卡LRO/GRO功能
  现在大多数网卡都具有LRO/GRO功能,即 网卡收包时将同一流的小包合并成大包 (
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

lvs

负载均衡

分类: LVS
上篇《LVS技术浅析-配置管理1》主要介绍了采用ipvsadm命令配置LVS;
ipvsadm虽然可以完成LVS的所有配置,但要线上应用,还有一些不足;
  • LVS down了怎么办?

    LVS一旦down了,则所有流量都会损失;因此,我们需要做好LVS冗余;

  • RS down了怎么办?

    RS down掉后,LVS调度到该RS的流量就会损失;因此,我们需要对RS进行健康监测;

LVS管理软件-keepalived-很好的解决了上述问题,

  • LVS down?- 采用VRRP心跳协议,实现LVS主备冗余;
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

lvs

负载均衡

分类: LVS
本文将介绍部署LVS一个最简单的流程;
LVS本身是一个内核模块:ip_vs,位于内核目录net/netfilter/ipvs/下,官方网址:http://www.linuxvirtualserver.org/;
从2.4内核开始,linux kernel已经集成了ipvs模块;因此,当前我们的系统kernel都是支持LVS功能的,无需额外下载;

那么,我们如何操作内核模块ipvs呢?
LVS官方提供了一个应用程序ipvsadm,可用通过ipvsadm的一系列命令和内核ipvs打交道。

1.ipvsadm
ipvsadm程序可以从官网http://www.linuxvirtualserver.org/software/ipvs.html下载,最新版本为
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2013-08-26 15:09)
标签:

lvs

负载均衡

分类: LVS
    上周在北京和“乌云漏洞平台”-晓顿聊天,谈到产品技术如何能更好的接地气,一个有效的衡量方法:非专业的人能很容易地使用该技术产品到专业水平。
   由此想到,自己一直研发多年的LVS,离上述目标还有一定差距;后续,希望通过博客分享个人的LVS使用/研发经验,让大家能更加简单地操作LVS。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有