博客

装了 VirtualBox

不知道为什么,办公用机上跑 VMware Player 总是有问题,几乎是一运行就崩溃。没有一个可自由玩弄的开发环境,是非常不爽的事情;最近在 Postfix 上的一些研究,都是回家后完成的。

昨天无意中看到了对 VirtualBox 的介绍,于是试用了一下。性能还不错,反正在安装 debian etch 的过程中感觉不到和 VMware 有什么差别。如果你也碰到了和我一样的 VMware 故障,那么强烈推荐试试它。

和 VMware Player 对比优势如下:
1. VirtualBox 可自由下载版本是按 GPL 发布的,准确的说应该称为 VirtualBox Open Source Edition

2. 图形管理界面,包括创建虚拟机,还有中文语言界面。

当然问题也有:
1. 网络连接好麻烦,必须以命令行模式操作(操作步骤隐藏在 PDF 格式的用户手册中);而且必须停止虚拟机运行操作才有效果。当然 VMware 虽然自动化,可是擅自安装上的两个网络接口估计也挺让普通用户迷惑;另外访问 VirtualBox 的 NAT 虚拟机是通过配置端口转发来实现的,这样从别的机器也能访问我的 NAT 虚拟机了,貌似 VMware 就做不到这一点了。

2. 可能还是不够稳定或虚拟的还是不够好(相比较于 VMware),反正我若是使用网络安装,进行了一段时间后就停下来了,不晓得为什么。不过安装成功后的 apt-get 倒是从来没有出过错。anyway,在我的办公机器上总是比 VMware 稳定多了

Topic: 技术

Postfix 之 Milter

在整三年前,我负责亿邮反垃圾邮件网关的开发,在辛苦 Patch MTA 的同时,感到处理 SMTP 业务的代码和实现过滤的部分耦合的太紧密,而同时别的小组也在根据客户的需求时不时的修改 MTA 程序,这样长期下去势必会造成代码的不统一和高昂的维护成本。当时就开始设想一种 MTA 和 AntiSpam Engine 之间的通信机制,这样我们两个团队可以并行的高效开发,可惜在此方面一直没有琢磨太清楚,即使知道了 Milter 这个名次也没能把两个东西想到一起去,很快到了 04 年 9 月份我就离开了这个项目,也没有机会继续深入,实在是很遗憾。

Milter 就是一个 MTA 和 Filter 通信的协议。MTA 在会话的各个阶段不断把从客户端来的信息(IP、并发连接数)和数据传给 Filter,然后再根据 Filter 返回的结果返回给客户端,甚至修改信件内容!

Sendmail 不但定义了 Milter 协议,而且提供了 libmilter,它封装了一个多线程 Milter Daemon 的常规流程,帮助开发人员把更多精力放在实现过滤上。

使用 Milter 还有一个好处,就是能实现 before-queue 的过滤。这意味着我们能在 SMTP 会话处理阶段就把垃圾邮件拒绝,而不是接受下来后再弹回。

Postfix 2.4 对 Milter 已经支持的很完善,而且它还可以配置多个 Milter 的过滤,我们可以把网上那些开源的 Milter 和我们自己的 Milter 混合在一起实现更全面的防护。

这里透露一个信息:如果反垃圾邮件厂商希望在搜狐这里做测试,那提供一个 Milter 而不是 Gateway 我可是会给加分的,:)

因为要实现自定义白名单功能的话,Gateway 显然有潜在的问题。

另一方面我们也正在计划开发 SMTP-Milter,就是把防垃圾邮件网关封装成一个标准的 Milter Daemon(很奇怪,我满世界找了一圈,没有找到有这样的开源项目)。但这样也给 Gateway 提出了要求——首先是要能做到 before-queue 的过滤,另外就是最好能实现 Postfix 的 XCLIENT 扩展,如果你有自己的一套 IP 黑名单或者 HELO/EHLO 过滤机制的话。

加上 Postfix 之 tcp_tablePostfix 之 Dovecot Authencication Protocol,我们针对 Postfix 的开发就只包括这三方面,这是不是简单的有些难以置信?

Postfix 之 Dovecot Authencication Protocol

接前文 Postfix 之 tcp_table

和用户账户查询类似的一个应用就是用户身份认证。当然如果只是为了部署 MX 的话可以不考虑此点,但很多情况下我们还是需要给 SMTP 客户端用户一个连接上来认证后发信的方案

Postfix 没有内置任何形式的认证支持,必须通过第三方 SASL 服务才能达到这个目的。Postfix 2.4 支持两种认证服务,一类是链接 Cyrus-SASL 库来使用,另一类则是透过 Dovecot Authentication Protocol,连接一个 UNIX Socket 服务去认证。

虽然 Cyrus 在邮件领域更加有名,但我认为采取 Dovecot Authentication Protocol 去连接一个 Daemon 是一种更清晰的方案,编译部署也免去很多麻烦。

和 tcp_table server 一样,这个 Daemon 我们也是用 Python 完成的,为了方便描述,以后在团队内还是称之为 DAP server 吧。

Postfix 之 tcp_table

目前运行的 MTA 是在 Postfix 的一个很古老的版本上修改而来,再加上长期以来断断续续打了不少补丁,原始代码和修改代码纠缠太深,以至于很难把这些修改合并到最新的 Postfix 版本上;这次 MTA 改造的目标就是不修改 Postfix 任何代码,完全通过 Postfix 所支持的接口或协议实现需要的特性,这样以后可以跟着 Postfix 进行同步升级。

首先要解决的就是收件人地址查询的机制。

Postfix 支持一大票查询表(lookup table)格式,包括什么 unix、nis、bdb、cdb、ldap、mysql、pqsql 等等,但是对搜狐来说,能用的只有 tcp_table

简单地说,tcp_table 只是一个面向网络连接的协议描述,可以用它来封装任何形式、任何目标的用户查询。只可惜 Postfix 一直没有对它提供正式的支持,需要打开 SNAPSHOT 定义才能获得这个功能。

为了提高性能,可以在实现 tcp_table 的 daemon 里面加入用户名查询的缓存,以及连接用户名数据库的连接池。还要说的是,这个 daemon 很适合用 Python 来实现,:)

今日发现

http://ftp.apnic.net/stats/apnic/delegated-apnic-latest (将近1M的文本文件) 就可以得到亚太地区的 IP 分配详情...大概是详细到各个 CIDR 的分配时间。

CN 的 IPv4 分配目前共有 1252 条记录,从里面简单分类一下,倒是很容易把省份都挑出来,虽然不如纯真IP牛,但做个天气预报什么的还是没有问题的。

BTW: 说到纯真IP,突然觉得它的运作很类似 wiki。

Topic: 技术

Inbox Forever

确实没有想到,到了搜狐不仅仅只是和邮件地址打交道,到后来还是邮件的命。当初 qyt 同志开玩笑的提起我的英文名可以叫 Inbox,难道这就一语成谶,Inbox 真会像姓名那样陪我过这一辈子么?

昨天在邮件中正式宣布了任命,目前的想法很简单——先不考虑什么市场份额,服务好现有的用户是最重要的。

虽然这些年互联网上的热点一个个涌现,但 Email 的重要性一点也没有降低,反而我们可以看到现在新兴服务流行的用户注册从 id 变成了邮箱。道理很简单——邮箱是网络服务提供者和用户沟通的第一选择。但从运营的层面来说,提供 WebMail 服务又面临比以往更大的困难,一方面对技术和服务要求越来越高、另一方面业内好像都没有找到一个靠谱的营收模式。

前途是光明的,道路是曲折的;路漫漫其修远兮,吾将上下而求索

屈大夫的另一句我也很喜欢:亦余心之所善兮,虽九死其犹未悔

Topic: 生活

圣诞老人和牙仙子

算起来达达看过两个动画片里面有牙仙子(tooth fairy)的事迹了,眼看她就要面临掉牙,我已经开始考虑到哪里去搞 tooth fairy coins;而且现在我们也是以牙仙子喜欢又白又亮的牙齿为诱饵,劝她晚上老老实实去刷牙。

仔细想来中国传统的节日或者是神仙就不如牙仙子和圣诞老人那样可亲。概念中中国的神仙一是高高在上,不那么亲民;即使是比较亲民的神仙比如灶王爷或是土地,则只是更高级神仙的传声筒而已,也从来不给平头百姓什么实在的好处。

所以现在我越来越理解为什么小孩喜欢圣诞节——圣诞节是属于家的,不需要在无趣的亲戚之间串来串去;圣诞节礼物是圣诞老人无条件的馈赠,不需要磕头或者是给长辈问好...反正一觉起来,袜子里或者是枕头下就有了礼物或硬币

让孩子知道这个世界上有仙女随时准备给她一枚硬币以安慰她掉牙的困扰,真是件很棒的事情。

Topic: 文化 社会

今日发现

1. safari 3.0.2 beta 发布。不但中文显示好了,搜狐通行证的登陆框也不再 crash 了。

搜狐通行证在 safari 3.0 beta 下崩溃的问题害我担心了好多天,还以为所有 Mac 用户都是这个体验呢,后来问了霍炬 知道 Safari 2 没有问题才放下心来。

2. 从 IEBlog 上看到一堆 IE 的 Web 开发工具列表,里面提到一个免费的工具 Web Development Helper,包括 HTTP Traffic 功能,强烈推荐!

不过介绍的工具没有包括 sohu 开发人员用的比较多的 HttpWatch,莫非我们至out了???

3. 亨利转会巴塞罗那!!!!阿森纳前景暗淡....祝亨利能在西甲获得成功。

Topic: 技术 运动

今日发现

1. 从 sf 的 Hottest 10 Apps 里面发现一个叫 Zenoss 的项目,和 Nagios、OpenNMS、Zabbix 类似,属于网管平台。

吸引我的一点是它是用 python/zope 实现的..

2. 知道 Ubuntu 的 No.1 bug 是什么吗——Microsoft has a majority market share

Microsoft has a majority market share in the new desktop PC marketplace. This 
is a bug, which Ubuntu is designed to fix.

Non-free software is holding back innovation in the IT industry, restricting access 
to IT to a small part of the world's population and limiting the ability of software 
developers to reach their full potential, globally. This bug is widely evident in 
the PC industry.
  Steps to repeat:
    1. Visit a local PC store.
  What happens:
    2. Observe that a majority of PCs for sale have non-free software pre-installed.
    3. Observe very few PCs with Ubuntu and free software pre-installed.
  What should happen:
    1. A majority of the PCs for sale should include only free software like Ubuntu.
    2. Ubuntu should be marketed in a way such that its amazing features and 
benefits would be apparent and known by all.
    3. The system shall become more and more user friendly as time passes.

3. 找到一个查询 DNS 记录的在线工具。可以知道国外是怎么解析你的域名记录的,除了 DNS 之外,该网站也提供 traceroute 等在线工具。

Topic: 技术
订阅 RSS - 博客 | BT的花