我的邮件服务器 (sendmail) 有一个桥接的 DSL 连接,通过 PPPoE 连接到外部世界。
网络接口最初分配了一个用于我的域的 IP 地址,但当 PPPoE 启动时,IP 地址被强制为来自我的 ISP 的 IP 地址,而这个地址不在我的域中,我无法控制它或其反向 DNS。
此 IP 地址是出现在外发邮件信封中的 IP 地址;例如,收到的外发邮件带有如下标题:
from mailhost.my-domain.com ([56.99.126.37]) by ...
有没有办法让 sendmail 使用主机的“真实”IP,而不是我的 ISP 分配给接口的 56.99.126.37?MASQUERADE_AS 会影响域名,但我看不出有什么方法可以强制使用 IP 地址。它是否设置在 sendmail 之下的 IP 级别,并且不受 sendmail 的控制?
我有一个 SPF 记录,其中包括 +ip4:56.99.126.37,所以这基本上不是问题,但 att 和 abusix.com 仍然抱怨,因为反向 DNS 没有映射到我的域。
PPPoE启动时修改后的路由表如下:
Destination Gateway Flags Netif Expire
default 59.41.70.25 US tun0
56.99.126.37 link#4 UHS lo0
56.99.131.56/29 link#1 U xl0
56.99.131.57 link#1 UHS lo0
59.41.70.25 link#4 UHS tun0
127.0.0.1 link#3 UH lo0
192.168.0.0/25 link#2 U fxp0
192.168.0.1 link#2 UHS lo0
所需 IP 和原始默认路由为 56.99.131.57 out xl0。ifconfig tun0 如下所示:
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
options=80000<LINKSTATE>
inet 56.99.126.37 --> 59.41.70.25 netmask 0xffffffff
groups: tun
答案1
我会看一下CLIENT_OPTIONS
m4 宏和Addr
密钥。它可能允许您指定使用的传出地址。
如果失败,您可以尝试使用src
ENCAP_IP (man ip-route) 安装默认路由。当然,这是假设 Linux,我无法帮助其他 Unix。