简要:三个出口的网络里,邮件服务器只能发邮件,不能收邮件。

    网络拓扑图:

 

 单核心二层架构   

    学校同时接入教育网、联通和电信,电脑的网关在核心交换机上,防火墙为联通网御的。

    用户提供的信息:如果电信的外线不接,即外线只有联通和教育网时,邮件服务器可以正常工作;如果电信的外线接上邮件服务器会出现只能发邮件不能收邮件的情况,其他应用不受影响,此问题存在一两年了,请教过不少人,但一直找不到原因。

    初步判断:邮件服务器是没有问题的,很有可能是防火墙上路由配置的问题,因为网络配置需要保证邮件服务器发送和接收的地址与DNS上的设置一致。

    处理过程:在其邮件服务器正常工作的状态下,从外网PING邮件服务器的域名,可以PING通;但在邮件服务器出问题的网络结构下,不能PING通邮件服务器的域名,IP地址也无法PING通。至此就可以判定是防火墙上的路由配置有问题致使邮件服务器无法被外网访问到。

    猜想:发送邮件时,防火墙对数据进行源NAT转换,这样目的地址没有发生改变,所以外网的邮件服务器可以收到邮件。 接收邮件时,邮件服务器解析出的地址为教育网的真实地址,即外网的数据包通过教育网线路进入内网,但在数据返回时走的是联通或电信,即使TCP 的三次握手无法成功。

    如何解决呢?就是要让返回的数据还从教育网返回即可,然后根据这个思想在防火墙上加上邮件服务器的源路由,即发送邮件和接受邮件都只能从教育网的线路上走。

    更改配置后,测试一切正常。此时可以从外网PING通邮件服务器。

    扩展:此类问题不仅存在于邮件服务器,只要是双出口的网络都可能会存在此类问题,即要保证外网访问内网的数据从哪里来还从哪里回去。一般常用的策略就是源路由。神州数码的安全网关在接口上有此配置选项“逆向路由”,将此项功能关闭即可实现数据报文从哪里来还从哪里返回的功能,不需要再配置源路由。