请原谅我的英语,因为它不是我的母语
我的网络中的邮件服务器位于 mikrotik 路由器和防火墙后面,我遇到的问题是我的邮件服务器位于公共 IP 地址上,我无法在内部连接到它。我从网络外部连接没有问题。目前我能够连接的唯一方法是将公共 IP 分配给 mikrotik 路由器并设置这两个 NAT 规则
我使用的 IP 地址仅作为示例 - 内部网络 = 172.162.30.0/12 - 公共 IP 邮件服务器 = 42.20.16.18 - 私有 IP 邮件服务器 = 172.162.30.65
**Internal clients Note:** Source address is my whole network this has a massive affect on my internet speed because
I think all traffic is being routed to mail server
chain=srcnat action=src-nat to-addresses=42.20.16.18
src-address=172.162.30.0/24 log=no log-prefix=""
对于从网络外部连接的客户端 链 = dstnat 动作 = dst-nat 到地址 = 172.162.30.65 dst 地址 = 42.20.16.18 log = no log-prefix=""
我尝试了几乎所有的解决方案,这是我的最后手段,我的主要目标是我可以将我的公共 IP 物理地分配给机器并进行内部连接,而无需使用私有 IP。
答案1
这个问题有两种解决方案。
您可以实现 NAT Loopback 或 NAT Hairpin 或 NAT Reflection(它们是相同的东西,只是名称不同),或者修改您的内部 DNS,以便您的邮件服务器的主机名不会解析为公共 IP,而是解析为您的本地 IP(仅从您的私有网络内部)。
使用 src-nat 规则,您已经执行了第一个解决方案 (NAT Hairpin),正如您提到的那样,它是有效的。这种方法的问题在于,您与邮件服务器的所有连接都将被更改为 src-address,42.20.16.18
因此邮件服务器仅记录此 IP,而不是每个用户的真实内部 IP。
另一种方法是使用 Mikrotik 的 DNS 服务器或您选择的任何其他本地 DNS 服务器。在那里,您使用邮件服务器的主机名设置 DNS 记录,并将其设置为解析邮件服务器的内部 IP。
然后,您必须配置网络上的所有 PC 以使用此 DNS 服务器,并且当访问您的邮件服务器的主机名时,它们将解析内部 IP 而不是公共 IP,从而允许它们直接连接到它,而不必通过 NAT 通过路由器。
有关 NAT Hairpin 的更多信息,您可以查看官方 Mikrotik 文档这里有关 Mikrotik DNS 服务器的更多信息,您可以查看这里
答案2
对于那些感兴趣的人,我遇到了此解决方案的一个问题,每当我向某人发送邮件时,接收方的邮件服务器都会检测到不同的源 IP,源 IP 被列入黑名单,我认为这与我的 ISP 在某处设置了伪装有关。我不知道,我的解决方法是我再次创建了 dst-st 和 src-nat,我将 dst-nat 与以前相同,只是将 src-nat 源地址从我的整个网络更改为我的邮件服务器私有 IP。这 100% 有效,见下文
链 = srcnat 动作 = src-nat 到地址 = 42.20.16.18 src 地址 = 172.162.30.65 日志 = 无日志前缀 =“”
链 = dstnat 动作 = dst-nat 到地址 = 172.162.30.65 dst 地址 = 42.20.16.18 log = no log-prefix=""