寻觅生命中的那一片浅草......

文章属于类别 Network

发包工具Packet Sender简明教程

一、背景

  1. 腾讯开放平台的机器并没有独立的公网IP,从外面连进去,必须经过TGW进行转发,连接说明可以参考TGW接入说明
  2. 在处理玩家连接问题,非常的“人体不存在的器官”疼

二、解决方案

  1. web开发组做的TGW测试工具
  2. 本文主角Packet Sender

三、Packet Sender的使用

此软件有Window、Linux、MAC版本,真是业界良心啊,下面主要介绍下它的界面

  1. Name,标记本发包过程的名字,随便填,Save时会用到,如果单次使用,不填也可以
  2. ASCII,发包的内容,参考下面的格式,我们根据实际情况修改域名和端口即可
tgw_l7_forward\r\nHost:app12345.qzoneapp.com:80\r\n\r\n
  1. HEX,自动根据ASCII生成
  2. IP和端口,定义数据发到哪里,填域名也可以
  3. Persistent TCP,这个勾选上,保持TCP的长连接
  4. 如果想下次继续使用,就点击Save,不用就直接Send
  5. 如果是TCP长连接,它会弹一个新的窗口出来,给你发后续的内容
  6. 例如你可以输入“andy”,这时在服务器上抓包,可以抓到andy,抓包指令
tcpdump -i any -X host 192.168.xxx.xxx

现在,我们就可以用这个工具来测试玩家到服务器的连通性了

四、其他

Packet Sender Documentation

CentOS:当双网卡遇上双网段

如题,这种情况,通常是作为网关,但本例并不是作为网关,而是局域网中的 一台机器,需要连接2个网段,CentOS上的默认设置只能有一个网段通讯,解决办法是设置rp_filter这个内核参数,对于排查这种问题比较有用的内核参数是log_martians,具体方法请参考下面的地址:

Linux rp_filter 配置

在实际设置过程中,把rp_filter从2设置为1时,需要等一段时间后,eth1才会显示不通,比较奇怪

BTW,rp_filter这个参数是在《深度实践KVM》中看到的,很赞的一本书。

2.6.32-279.5.2.el6.x86_64引起的软中断不均衡

昨天代理反馈游戏卡顿,玩家闹得厉害,ping服务器的时候,延迟非常不稳定,100-400ms不等,找不到原因,研发反馈
玩家反馈卡顿的时间,与大型活动开启时间点吻合,怀疑是玩家较多引起流量过大导致,但看Zabbix监控,该机器流量最大
也只有18Mbit/s而已,带宽未满,不应该这样。

深夜登上去查了些服务器状态,发现软中断集中在CPU0,胸当诡异,经查,有开启irqbalance服务,查网卡中断亲和性也确实
是有设置。肿么不生效呢?百思不得骑姐。

想起最近几天研究cpu中断和RPS/RFS时看到的一文:http://hi.baidu.com/nw207/item/ab9098411d76ab31fa896027
里面有提到博通网卡,因为开启MSI而导致CPU中断亲和性不生效的问题,难道是网卡驱动引起?然后看了下网卡的驱动,并
以另外一台CPU软中断均衡的作对比。

一、系统环境
CentOS 6.2 64bit,开启了irqbalance服务

网卡型号
Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01)

二、有问题机器:

1、内核:2.6.32-279.5.2.el6.x86_64

2、网卡驱动信息
driver: tg3
version: 3.122
firmware-version: 5719-v1.33 NCSI v1.0.60.0
bus-info: 0000:03:00.0

三、没有问题机器

1、内核:2.6.32-358.14.1.el6.x86_64

2、网卡驱动信息
driver: tg3
version: 3.124
firmware-version: 5719-v1.33 NCSI v1.0.60.0
bus-info: 0000:03:00.0

四、测试

手头上刚好有一台同配置机器,内核是CentOS6.2默认版本,2.6.32-220.el6.x86_64,

题外话,此版本内核,CPU软中断是正常的,但因为它在约220天的时候,会莫名宕机,所以我们一般是把它升级为2.6.32-279.5.2.el6.x86_64

好,我升级将它升级到2.6.32-279.5.2.el6.x86_64,重启机器,发现CPU软中断马上集中在CPU0
然后我再升级到2.6.32-358.14.1.el6.x86_64,重启,CPU软中断马上均衡了,至此,问题解决,安排了生产服维护,升级内核。

Linux下根据模块名查看网卡驱动版本

例如我们要查看博通网卡的驱动版本,如果该机器上刚好是博通的网卡,最简单的方法就是
ethtool -i eth0

但如果我们所查看的机器用的不是博通的网卡,则可以通过以下方法查看
我们知道博通网卡的驱动文件名叫bnx2.ko
我们查找下bnx2.ko的位置
updatedb
locate bnx2.ko
结果如下
/lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
查看驱动详细情况
modinfo /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
以下信息中,version记录就是我们的网卡驱动版本,是2.0.8-j15

filename: /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
firmware: bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw
firmware: bnx2/bnx2-rv2p-09-5.0.0.j10.fw
firmware: bnx2/bnx2-mips-09-5.0.0.j15.fw
firmware: bnx2/bnx2-rv2p-06-5.0.0.j3.fw
firmware: bnx2/bnx2-mips-06-5.0.0.j6.fw
version: 2.0.8-j15
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
author: Michael Chan <mchan@broadcom.com>
srcversion: 8CDA41B3E0DF70A112FBA80
alias: pci:v000014E4d0000163Csv*sd*bc*sc*i*
alias: pci:v000014E4d0000163Bsv*sd*bc*sc*i*
alias: pci:v000014E4d0000163Asv*sd*bc*sc*i*
alias: pci:v000014E4d00001639sv*sd*bc*sc*i*
alias: pci:v000014E4d000016ACsv*sd*bc*sc*i*
alias: pci:v000014E4d000016AAsv*sd*bc*sc*i*
alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*
alias: pci:v000014E4d0000164Csv*sd*bc*sc*i*
alias: pci:v000014E4d0000164Asv*sd*bc*sc*i*
alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*
alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*
depends:
vermagic: 2.6.32-71.el6.x86_64 SMP mod_unload modversions
parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int)

彩影ARP防火墙(Antiarp)导致虚拟机无法上网

最近从host登录到vm非常慢,经常无法连接,登录进去也无法ping通网关,折腾大半天,发现是彩影ARP防火墙惹的祸,把它关了就一了百了
但又不能关,尝试了下修改配置,竟然可以了
右键托盘上彩影ARP防火墙的图标,选择基本配置,将“拦截本机对外ARP攻击”和“拦截本机对外伪造IP攻击(伪造源IP)”前面的勾去掉,点击确定,虚拟机上网就一溜一溜的了。

2024年四月
« 5月    
1234567
891011121314
15161718192021
22232425262728
2930