请教章博士关于lvs/dr+qmail的配置问题

我在配置lvs/dr+qmail时遇到一个问题:本邮件系统能够发送邮件到其他邮件系统,但是其他邮件系统发送过来的邮件无法接收到,请问要怎样进行配置?
目前我的配置是这样的:
一台director和两台realserver、一台nfs server服务器;所有的服务器都是用redhat as 3 u4操作系统,且都打了kernel-2.4.21-27.0.2.EL.um.1.i686.rpm这个内核补丁包。邮件用户目录放在nfs服务器上,邮件服务在两个realserver上都有安装(smtp和pop服务)。

director机器的设置(231)
ifconfig eth0:254 192.168.2.230 broadcast 192.168.2.230 netmask 0xffffffff up
route add -host 192.168.2.230 dev eth0:254
#director is not gw for realservers: leave icmp redirects on
echo "0" >/proc/sys/net/ipv4/ip_forward
echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
安装的软件是piranha-0.7.10-2.rpm 和 ipvsadm-1.21-9.ipvs108.rpm 两个包
#ipvsadm -ln
TCP 192.168.2.230:25 wlc
-> 192.168.2.234:25 Route 1 0 0
-> 192.168.2.233:25 Route 1 0 1

realserver机器的设置
echo "0" > /proc/sys/net/ipv4/ip_forward
ifconfig lo:0 192.168.2.230 broadcast 192.168.2.230 netmask 0xffffffff up
route add -host 192.168.2.230 dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/all/hidden
echo "1" > /proc/sys/net/ipv4/conf/lo/hidden

qmail的设置
exec /usr/local/bin/softlimit -m 500000000 \
/usr/local/bin/tcpserver -v -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw-smtp /bin/true \
/bin/cmd5checkpw /bin/true 2>&1 \
/var/qmail/bin/splogger smtpd 3 &

经过tcpdump发现,对方有请求发送过来。请问该如何解决?

Forums:

我不明白问题是什么,“对方有请求发送过来”是什么意思?

另外,在director机器上,最好将ip_forward打开。
echo "1" >/proc/sys/net/ipv4/ip_forward

我的域名是emaildisk.com,以tom.com发送过来的邮件为例,邮件发送到域用户qczhou,过了很长时间在tom.com的邮箱中收到退信,内容如下:
你发送到qczhou@emaildisk.com的邮件由于以下原因被退回 : 邮件在队列中处理时间过长

The message to qczhou@emaildisk.com is bounced because : Rcpt queued timeout

在我用tom.com发送邮件时,我用ipvsadm -ln得到以下结果:
TCP 192.168.2.230:25 wlc
-> 192.168.2.234:25 Route 1 0 3
-> 192.168.2.233:25 Route 1 0 2
一封邮件的请求被发到两台realserver上了,而且都是在InActConn中,这里就不明白了。
用tcpdump得到这样的结果:
15:34:04.475752 smtpr4.tom.com.56104 > pop3.smtp: S 2303650224:2303650224(0) win 5840 (DF)
15:34:04.475778 smtpr4.tom.com.56104 > pop3.smtp: S 2303650224:2303650224(0) win 5840 (DF)
15:34:04.734145 192.168.2.231.41041 > app1.smtp: S 2393712690:2393712690(0) win 5840 (DF)
......
15:34:05.246523 smtpr4.tom.com.56104 > pop3.smtp: . ack 3637209475 win 5840 (DF)15:34:05.246534 smtpr4.tom.com.56104 > pop3.smtp: . ack 1 win 5840 (DF)15:34:06.019242 smtpr4.tom.com.56104 > pop3.smtp: . ack 26 win 5840 (DF)15:34:06.019254 smtpr4.tom.com.56104 > pop3.smtp: . ack 26 win 5840 (DF)15:34:06.019353 smtpr4.tom.com.56104 > pop3.smtp: P 0:6(6) ack 26 win 5840 (DF)15:34:06.019355 smtpr4.tom.com.56104 > pop3.smtp: P 0:6(6) ack 26 win 5840 (DF)15:34:06.080879 smtpr6.tom.com.56122 > pop3.smtp: S 2311125747:2311125747(0) win 5840 (DF)15:34:06.080902 smtpr6.tom.com.56122 > pop3.smtp: S 2311125747:2311125747(0) win 5840 (DF)15:34:06.298485 smtpr4.tom.com.56104 > pop3.smtp: F 6:6(0) ack 26 win 5840 (DF)15:34:06.298493 smtpr4.tom.com.56104 > pop3.smtp: F 6:6(0) ack 26 win 5840 (DF)15:34:06.655016 smtpr6.tom.com.56122 > pop3.smtp: . ack 2520651569 win 5840 (DF)15:34:06.655020 smtpr6.tom.com.56122 > pop3.smtp: . ack 1 win 5840 (DF)15:34:06.792799 smtpr4.tom.com.56104 > pop3.smtp: R 2303650231:2303650231(0) win 0 (DF)15:34:06.792810 smtpr4.tom.com.56104 > pop3.smtp: R 2303650231:2303650231(0) win 0 (DF)
15:34:07.066175 smtpr4.tom.com.56104 > pop3.smtp: R 7:7(0) ack 46 win 0 (DF)15:34:07.066187 smtpr4.tom.com.56104 > pop3.smtp: R 7:7(0) ack 46 win 0 (DF)15:34:07.233150 smtpr6.tom.com.56122 > pop3.smtp: . ack 26 win 5840 (DF)15:34:07.233164 smtpr6.tom.com.56122 > pop3.smtp: . ack 26 win 5840 (DF)15:34:07.233337 smtpr6.tom.com.56122 > pop3.smtp: P 0:14(14) ack 26 win 5840 (DF)15:34:07.233340 smtpr6.tom.com.56122 > pop3.smtp: P 0:14(14) ack 26 win 5840 (DF)
.......

发送过来的邮件并没有进入我的邮件队列中。
请问我这种配法是不是有问题,若是,请推荐比较好的做法。谢谢

我想检查集群系统的配置是否工作,例如找一台客户机器运行“telnet 192.168.2.230 25”,看连接能否正常建立。

如果工作,第二步查邮件服务器,运行tcpdump/ethereal看邮件服务器是否收到邮件?再查没有进邮件服务器的邮件队列原因。