Monthly Archives: February 2009

ARP 擒贼记

注意!本文涉及标题党

之前一直在做的一个 reverse proxy,在 RHEL 上用了 nginx 。基本功能是根据 cookie 做 load balance 和特定网页内容的替换。功能上是没有问题了吧,性能的话我觉得能满足公司需要,虽然看上去不是太好。

这个小项目一直是不顺利的,主要原因就是 nginx 得不到认可。基本上和每一个人说我用了什么的时候,都要先介绍 nginx。Net Craft 给的报告是不难看,好歹也算第四大应用广泛的 Web Server 了。前三是 Apache、IIS 和 GFE。Apache 做 reverse proxy 太慢,IIS 我不会用(也不知能不能做 reverse proxy),GFE 是人家的私人珍藏…… 那么用 nginx 还是有些道理的吧。

昨天,正当梁生还在质疑 nginx seems too young to be proven 的时候,我们的 server 开始变得不稳定。基本上就是好一阵坏一阵,不能用的时候错误很奇怪,不是连不到而是 connection refused。不但网页看不到,连 ssh 都连不到。连上的 ssh 也会在几分钟内断开。起先是以为网线接触不良,但是看 message.log 没有看到 eth0 down 的迹象。于是只好带着疑问下班,哦,我真不愿意看到这种情况啊。梁生会不会得意的笑,哈,我说你这 server 不行吧,too young~

我知道这个问题和 nginx 是无关的,应该是网络问题。硬件是不大会有问题的,我一直以为这还是软件的问题。不知道为啥,遇到诡异的局域网问题,我就会自然的想到 ARP。百度上搜 ARP 的结果是恐怖的,Google 上要好些,曾几何时 ARP 劫持在中国大陆的泛滥,让很多人以为这是一个病毒的名字。我是觉得处处防范的企业内部出现病毒是不大可能的,而且现在的故障不像是 ARP 劫持,倒像是……哦,谁偷了我的 IP 啊~~

Keats 给我的信息是很有用的,就是不断地 ping 那个 IP,TTL 值竟然会变,一会儿 64 一会儿 128,64的时候能连上,128就connection refused。于是问题变得清晰起来,这分明是两台机器嘛,RHEL5 的默认 TTL 是 64 的,返回 128 估计就是给某台 Windows XP 抢了 IP。于是乎,arp -a 蹲点蹲了一阵,终于让我揪出了抢我 IP 的 MAC Address~ 交给 Keats,剩下的事情,就不是我们 Team 的啦,Technical Team 的同事们加油啊,你们有什么妙招根据 MAC 地址把那台机器的主人找出来吗……

First Runner Up,是第二名啦

IMG_0084

这个礼拜六不用上班,不过之前报了个 IBM Inter-University Programming Contest,所以还是要出门。好在比赛是在下午,懒觉还是有得睡的。

去年我也参加了这比赛的,就为了参赛皆有的 2GB USB 手指,和宇哥、刘坷折腾了一下午,果然什么奖都没拿到,除了手指外还有踊跃参与的证书。不过这次好像有些觊觎那奖金了,于是也多准备一下。和小万、徐伟超一路去中环,也不忘提醒小万,嘿,你是 Team Leader 啊,快准备获奖感言啊,别一会儿啥都不会说啊。

皇后大道中9号,33楼,Clifftons,那个地方已是第二次去,轻车熟路,桌上茶水任饮,我也不再客气,整杯咖啡先。未几,各校选手纷纷聚首,会场已然人头攒动,登记,领衫,都和去年没有啥分别。 Continue reading

Twitter 和饭否同步

Twitter饭否上看到 Zhaonc, aka Nelson 同学一直在折腾同步,我闲得无聊,也开始折腾这事。他的研究结果是,饭否发的消息最后能自动跑到 Twitter 上,并写得此文 Twitter与饭否同步。于是我非要逆向行驶,目标是搞个 Twitter 发的消息自动跑去饭否的方法,方法现在找到了,于是我开始写本文……

啰嗦完毕,说正事。那些国外的第三方工具啊,大都是不认识饭否的,认识饭否的又竟然不认识中文。Ping.fm 倒是支持 Custom URL ,我尝试写个脚本让他支持饭否,可是又发现速度奇慢,还老丢东西。最后一怒之下自己写了个脚本,用最笨的办法吧,却是最靠谱的。放到 Dreamhost 上 cron 了10分钟一次,效果奇佳。 Continue reading