2008年7月31日

遭遇反向域名解析

今天下午,因为一个访问限制,需要查看我现在所在的新办公楼机器的对外IP。采用常见的www.ip138.com, ipseeker.cn, ip.wisa.com.cn等网站显示的IP就是不对。后来折腾出Tracert工具得到的诸多ip网址都不正确。最终头大之时找到了我们组的高人Upali。

        话说Upali大哥先像我似的找了几个显示ip的英文网站,查到的ip和我查到的一样。我说这个不对,访问不了的。后来Upali大哥在firefox里敲入了http://www.grc.com,然后选择了倒数第二个链接ShieldsUP!。随后出现的网页https://www.grc.com/x/ne.dll?bh0bkyd2第二个方框下面出现了一个和我查到的ip地址很接近的ip地址。这两个地址只是最后一个数字不一样。经实验后发现新查到的这个ip地址是正确的。

         当时非常惊讶会有这种情况,详细请教了Upali大哥以及上网查了一下后,知道自己遭遇了反向域名解析的限制。原来我所在的新办公楼网络采用了这种技术来更好的避免垃圾邮件。搬家前的办公楼没有采用这种技术。以后如果在别的地方再遇到问题,就可以想想是不是反向域名在作怪咯 :)

 

转载一篇介绍反向域名的文章如下,以备学习:

----------------------------------------------------------------------------

link:http://www.ntty.net/blogview.asp?logID=864

反向域名解析,Reverse DNS。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应。IP反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。关于反向解析如何被应用到邮件服务器中来阻拦垃圾邮件的。

    由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名"in-addr.arpa"结尾。例如一个IP地址:218.30.103.170,其逆向域名表达方式为:170.103.30.218.in-addr.arpa。两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。

查看反向解析信息:

    命令行输入nslookup -qt=ptr yourIP,从返回的信息中您可以看到反向解析的结果,或者在这个网站查询。

如何做反向解析:

    首先要有固定公网IP地址、可用域名,例如您有needidc.com的域名,您可以要求您的域名注册商为您添加一个mail.needidc.com的域名并将其A记录指向您的SMTP服务器出口公网IP地址,如:122.200.66.43,接着请与您的固定IP所属ISP联系要求为您的IP反向解析至mail.lunch-time.com(可能要收费)。完成后别忘了将您的SMTP服务器的HELO域名改为mail.needidc.com,这样才可以达到目的。

另外:
    1、目前很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供Mail服务。
    2、一定要有固定公网IP地址以及真实可用域名。同时要注意反向解析的域名的A记录一定要指向该IP!
    3、对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。

    在垃圾邮件泛滥的今天,垃圾邮件给我们的生活、工作、学习带来了极大的危害。由于SMTP服务器之间缺乏有效的发送认证机制,即使采用了垃圾邮件识别阻拦技术效果仍旧一般,再者垃圾邮件识别阻拦技术主要是在收到信件后根据一定条件进行识别的,需要耗费大量服务器资源,如果能在信件到达服务器之前就采取一定手段,这样就能大大提高服务器效率了。因此,目前许多邮件服务器如sina.com,hotmail.com,yahoo.com.cn等等都采用了垃圾邮件识别阻拦技术+IP反向解析验证技术以更好的阻拦垃圾邮件。

    我们先来了解一下什么是IP反向解析。其实作过DNS服务器的朋友一定会知道DNS服务器里有两个区域,即“正向查找区域”和“反向查找区域”,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。

    那么IP反向解析是怎么被应用到邮件服务器中来阻拦垃圾邮件的呢?我们来看看下面一个例子:

    某天,阿Q到A公司拜访,他递上一张名片,名片上写着他来自“黑道杀人俱乐部”以及电话号码等信息,A公司觉得应该对阿Q的来历做个简单调查,于是打电话到阿Q名片上的电话号码所属电信局进行查实,如果电信局告诉A公司其电话号码不属于“黑道杀人俱乐部”,则A公司将拒绝阿Q的拜访,如果其电话号码的确属于“黑道杀人俱乐部”,A公司可能接受阿Q的拜访也可能进一步查实,于是就打电话到“黑道杀人俱乐部”所属注册机构查询,如果得到的答复确认该俱乐部确有此电话号码,则A公司将接受阿Q的拜访,否则仍将拒绝阿Q的拜访。

    这个例子中,阿Q好比是我们的邮件服务器,A公司是对方邮件服务器,“黑道杀人俱乐部”就是我们邮件服务器与对方邮件服务器通信时所使用的HELO域名(不是邮件地址@后的域名),名片上的电话号码就是我们邮件服务器出口的公网IP地址。A公司对阿Q进行调查的过程就相当于一个反向解析验证过程。由此看出,反向解析验证其实是对方服务器在进行的,如果我们没有做反向解析,那么对方服务器的反向解析验证就会失败,这样对方服务器就会以我们是不明发送方而拒收我们发往的邮件,这也就是我们排除其它原因后(如被对方列入黑名单、没有MX记录、使用的是动态IP地址等等)在没做反向解析时无法向sina.com、homail.com发信的原因。

    那么我们应当如何顺利做好反向解析?首先要有固定公网IP地址、可用域名(最好不要被其它服务所用),例如您有lunch-time.com的域名,您可以要求您的域名注册商为您添加一个okmail.lunch-time.com的域名并将其A记录指向您的SMTP服务器出口公网IP地址,如:220.112.20.18,接着请与您的固定IP所属ISP联系要求为您的IP反向解析至okmail.lunch-time.com。完成后别忘了将您的SMTP服务器的HELO域名改为okmail.lunch-time.com,这样才可以达到目的。

另:

   1、做好反向解析后发往sina.com的信件有可能会被转至“不明邮件夹”中,此时请您与sina.com联系,要求为您解决该问题。

   2、查看反向解析是否成功,可用如下命令:nslookup –qt=ptr yourIP,从返回的信息中您可以看到反向解析的结果。

   3、一定要有固定公网IP地址以及真实可用域名。同时要注意反向解析的域名的A记录一定要指向该IP!

   4、对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。(和这些SMTP服务器上的地址域是无关的)

2008年7月29日

Next

刚过去的6月、7月算是来SG最为忙碌的日子。编程方面,SG这边的项目基本完结。会议方面有幸参加了米国的ACL08、SG的SIGIR08,领略了NLP和IR领域各自顶级会议的风采。论文方面完成了一些新文的撰写和旧文的修改。

          今天上午,实习所在的研究所终于结束了搬家的工作,新的办公地点离地铁站近了些,但是离住处远了很多。刚才在办公室趴着小睡了一会儿,居然是被冻醒的。哎,这里的空调不能自己调温度,只能格外凉爽一阵子咯。

          在SG的日子还有十来天了,想来也有点感慨。整理一下各个方面的资料,同时结束项目需要的程序和文档,再和朋友们聚聚,也就该走了。

         下一步做什么呢?

2008年7月22日

SIGIR2008好玩~!

这次SIGIR在SG召开,因为还在SG,有幸能够参加。会议是20号开始的,今天是第三天。总体感觉SIGIR08比ACL08有意思,但是也算各有千秋。在会上见到很多久仰的老师、以前认识的朋友,已经新认识一些朋友。

 

先记到这里,等两天再写个详细些的 :)

2008年7月13日

zz 介绍几本数学书

MIT大牛最新博文,感觉很不错,转载于此,有机会时,俺也得开始认真学习这些书籍。

Link:http://dahua.spaces.live.com/Blog/cns!28AF4251DF30CA42!2496.entry

 

 

前面几篇谈了一些对数学的粗浅看法。其实,如果对某门数学有兴趣,最好的方法就是走进那个世界去学习和体验。

这里说说几本我看过后觉得不错的数学教科书。

1. 线性代数 (Linear Algebra):

我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要。这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的。我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是

Introduction to Linear Algebra (3rd Ed.)  by Gilbert Strang.

这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材。它的难度适中,讲解清晰,重要的是对许多核心的概念讨论得比较透彻。我个人觉得,学习线性代数,最重要的不是去熟练矩阵运算和解方程的方法——这些在实际工作中MATLAB可以代劳,关键的是要深入理解几个基础而又重要的概念:子空间(Subspace),正交(Orthogonality),特征值和特征向量(Eigenvalues and eigenvectors),和线性变换(Linear transform)。从我的角度看来,一本线代教科书的质量,就在于它能否给这些根本概念以足够的重视,能否把它们的联系讲清楚。Strang的这本书在这方面是做得很好的。

而且,这本书有个得天独厚的优势。书的作者长期在MIT讲授线性代数课(18.06),课程的video在MIT的Open courseware网站上有提供。有时间的朋友可以一边看着名师授课的录像,一边对照课本学习或者复习。

http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm

2. 概率和统计 (Probability and Statistics):

概率论和统计的入门教科书很多,我目前也没有特别的推荐。我在这里想介绍的是一本关于多元统计的基础教科书:

Applied Multivariate Statistical Analysis (5th Ed.)  by Richard A. Johnson and Dean W. Wichern

这本书是我在刚接触向量统计的时候用于学习的,我在香港时做研究的基础就是从此打下了。实验室的一些同学也借用这本书学习向量统计。这本书没有特别追求数学上的深度,而是以通俗易懂的方式讲述主要的基本概念,读起来很舒服,内容也很实用。对于Linear regression, factor analysis, principal component analysis (PCA), and canonical component analysis (CCA)这些Learning中的基本方法也展开了初步的论述。

之后就可以进一步深入学习贝叶斯统计和Graphical models。一本理想的书是

Introduction to Graphical Models (draft version).  by M. Jordan and C. Bishop.

我不知道这本书是不是已经出版了(不要和Learning in Graphical Models混淆,那是个论文集,不适合初学)。这本书从基本的贝叶斯统计模型出发一直深入到复杂的统计网络的估计和推断,深入浅出, statistical learning的许多重要方面都在此书有清楚论述和详细讲解。MIT内部可以access,至于外面,好像也是有电子版的。

3. 分析 (Analysis):

我想大家基本都在大学就学过微积分或者数学分析,深度和广度则随各个学校而异了。这个领域是很多学科的基础,值得推荐的教科书莫过于

Principles of Mathematical Analysis, by Walter Rudin

有点老,但是绝对经典,深入透彻。缺点就是比较艰深——这是Rudin的书的一贯风格,适合于有一定基础后回头去看。

在分析这个方向,接下来就是泛函分析(Functional Analysis)。

Introductory Functional Analysis with Applications, by Erwin Kreyszig.

适合作为泛函的基础教材,容易切入而不失全面。我特别喜欢它对于谱论和算子理论的特别关注,这对于做learning的研究是特别重要的。 Rudin也有一本关于functional analysis的书,那本书在数学上可能更为深刻,但是不易于上手,所讲内容和learning的切合度不如此书。

在分析这个方向,还有一个重要的学科是测度理论(Measure theory),但是我看过的书里面目前还没有感觉有特别值得介绍的。

4. 拓扑 (Topology):

在我读过的基本拓扑书各有特色,但是综合而言,我最推崇:

Topology (2nd Ed.)  by James Munkres

这本书是Munkres教授长期执教MIT拓扑课的心血所凝。对于一般拓扑学(General topology)有全面介绍,而对于代数拓扑(Algebraic topology)也有适度的探讨。此书不需要特别的数学知识就可以开始学习,由浅入深,从最基本的集合论概念(很多书不屑讲这个)到Nagata- Smirnov Theorem和Tychonoff theorem等较深的定理(很多书避开了这个)都覆盖了。讲述方式思想性很强,对于很多定理,除了给出证明过程和引导你思考其背后的原理脉络,很多令人赞叹的亮点——我常读得忘却饥饿,不愿释手。很多习题很有水平。

5. 流形理论 (Manifold theory):

对于拓扑和分析有一定把握时,方可开始学习流形理论,否则所学只能流于浮浅。我所使用的书是

Introduction to Smooth Manifolds.  by John M. Lee

虽然书名有introduction这个单词,但是实际上此书涉入很深,除了讲授了基本的manifold, tangent space, bundle, sub-manifold等,还探讨了诸如纲理论(Category theory),德拉姆上同调(De Rham cohomology)和积分流形等一些比较高级的专题。对于李群和李代数也有相当多的讨论。行文通俗而又不失严谨,不过对某些记号方式需要熟悉一下。

虽然李群论是建基于平滑流形的概念之上,不过,也可能从矩阵出发直接学习李群和李代数——这种方法对于急需使用李群论解决问题的朋友可能更加实用。而且,对于一个问题从不同角度看待也利于加深理解。下面一本书就是这个方向的典范:

Lie Groups, Lie Algebras, and Representations: An Elementary Introduction.  by Brian C. Hall

此书从开始即从矩阵切入,从代数而非几何角度引入矩阵李群的概念。并通过定义运算的方式建立exponential mapping,并就此引入李代数。这种方式比起传统的通过“左不变向量场(Left-invariant vector field)“的方式定义李代数更容易为人所接受,也更容易揭示李代数的意义。最后,也有专门的论述把这种新的定义方式和传统方式联系起来。

————————————————————————————

无论是研究Vision, Learning还是其它别的学科,数学终究是根基所在。学好数学是做好研究的基石。学好数学的关键归根结底是自己的努力,但是选择一本好的书还是大有益处的。不同的人有不同的知识背景,思维习惯和研究方向,因此书的选择也因人而异,只求适合自己,不必强求一致。上面的书仅仅是从我个人角度的出发介绍的,我的阅读经历实在非常有限,很可能还有比它们更好的书(不妨也告知我一声,先说声谢谢了)。

2008年7月8日

如何刻录系统安装盘

一直以来,俺都没有搞懂如何刻录系统盘。以前曾做过一次现在想来挺傻的事,就是直接把一张系统盘的内容像数据盘那样拖拽到刻录盘上。结果可想而知,不能自动引导。

今天实在无奈下,开始学习这种操作。最终可行的步骤如下:
1. 用WinISO将原始系统盘制作成ISO文件,选用默认的ASPI模式(这样能保留自动引导信息);
2. 用NERO BURNING ROM选择菜单栏上刻录器下的刻录映像文件,选定ISO后配置好相关选项,即可刻录了;
3. 将刻录好的盘插入待装电脑的光驱即可正常安装了。

哎!原来如此简单。备份一下,以防年纪大些给忘了 :)

木桶哲学

原先知道木桶原理,说的是一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。

image今日得知还有另外的木桶原理,如果桶底不是坚固无缺的,那么当木桶的容量随着木板的加长而增大到一定程度时,桶底便开始泄露,严重的情况下桶底会开裂甚至会脱落而令木桶整个崩溃。

另外,还有人提出反木桶原理,木桶最长的一根木板决定了其特色与优势,在一个小范围内成为制高点。

小小的木桶居然蕴含了这么多道理,从这三个不同的道理,可以解释很多现象。