我的问题简而言之:“哪个更好?将私有IP地址分配给公共服务器,并进行NAT,或者为其分配公有IP地址而不需要NAT”?
NAT可以让用户使用一小群公有IP地址(可以只是一个IP)允许许多用户访问互联网。 这也叫做PATing。
我正在讨论将公共服务器的IP地址(例如DNS,Web服务器,电子邮件服务器等)进行NAT转换。公共服务器的NAT应该使用静态NAT来完成。 因此,有人可以想到消除NAT过程并在服务器上分配公共IP。 这是两种情况的比较。
与NATing:
+公共IP地址在网关上被pipe理和使用。
+公共IP被保留下来,可以尽可能有效地使用。
– 网关路由器/防火墙上会增加一些开销。
– 专用IP地址可能暴露在外(例如,在电子邮件标题中,或configuration错误)。
– 我们需要为DNS服务器创build两个视图(私有内部用户和公共外部用户)。
没有NATing:
– 为服务器分配多个IP地址应该在服务器上完成。 应用程序/服务应该知道使用所有的IP来传出stream量。
– 公共IP地址直接分配给服务器。 因此,一些IP可能会被浪费(未使用),例如cluster和VIP的情况。
+路由/转发会快一点,因为我们没有做NAT(less开销)。
+所有通信都将使用公共IP进行。
+一个DNS视图就足够了,因为我们从内部和外部使用相同的IP。
任何其他的想法/build议?
我强烈支持NAT方法。 正如你所说,更有效地保存了公共IP地址,另外,除非你有意愿做到这一点,否则你不会将任何服务暴露给外部世界 – 你可以分配一个与你的进程相关联的公共地址来批准防火墙规则集给定的服务器。
使用我们使用的思科路由器,至less,与使用防火墙模块的开销相比,NAT的开销可以忽略不计,而且由于我们已经在使用它,所以性能问题并不是什么大问题。 它也有一个可选的自动重写规则,以便从内部networking访问外部地址被“魔术”重写为内部地址,从而避免了拆分DNS的需要。 (我们使用.int子域作为内部10.x地址)。
好的,这是前几天提出的,已经有了一个可以接受的答案。
保持简单先生。 一般而言,一个公共Internet服务器应该有一个公共IP地址。
与NATing:公共IPs被保存并且可以尽可能有效地使用。
恕我直言,一点红色heering。 好的,这是真的,但是v4 IP并不稀缺,而且修复互联网“地址短缺”并不是你唯一的责任。
没有NAT:为服务器分配多个IP地址应该在服务器上完成。 应用程序/服务应该知道使用所有的IP来传出stream量。
为什么分配多个IP地址? 如果您有多个服务,请使用DNS CNAMES和IP端口范围进行分解。 如果您在进行浮动IP(VIP)时需要保护IP,您通常可以将专用IP用于特定于机器的IP,并且只将公共IP用于宣传Internet应用程序的实际VIP。
正如我所看到的,主要归结为:
使用NAT,您可以通过默默无闻的方式获得一点安全性。 这没有什么价值。
没有NAT,你可以按照互联网的devise意图。 常见的疑难解答工具,如Ping等按预期工作。 其他站点和上游ISP的系统pipe理员可以更好地与您一起解决问题。
我明确的select是每个服务器都有一个公共的IP地址,除非有一些本地的限制迫使我不这样做。
@mattdm:在没有防火墙的情况下使用NAT并不是很聪明(也就是通过默默无闻的“安全”)。
使用NAT时,如果使用NATreflection(或发夹式NAT),则不需要DNS的内部视图。
至于你的问题,我会说这是一个偏好问题。
你有计划保存你的IP地址吗?
你有多台机器提供相同的服务,需要使用标准端口从外部访问?
您希望您的路由器作为网关有多重要?
我会假设回答这些问题将帮助您确定遵循哪条path。 只要记住,无论哪种方式都不会有太大的关系,而且也不会妨碍您在以后使用其他策略。
我遇到了“无奈”的情况。
您的内部客户端可能最终尝试使用其公有IP连接到内部服务器。 这可能导致stream量从内部networking路由到路由器,然后返回到networking – 或者可能完全失败,具体取决于您的路由configuration。
您需要小心内部客户端总是获得内部IP,否则您将失去“路由/转发将有点快”的好处。
编辑我可能已经解释了上述不佳。 内部局域网有私有IP。 当决定公开面对一些服务器时,他们被分配了私有IP和公共IP,路由器/防火墙被设置为允许这些公共IP通信。
私人IP上的内部客户端试图通过公共IP访问内部服务器时出现问题。 这是几年前,我认为DNS和/或路由configuration错误 – 所以对于这个networking,内部客户端开始访问内部IP上的一台服务器。
当第一台服务器试图将用户引导到另一台服务器时,对内部/外部名称和IP有一些混淆。 通常情况下,服务器会将内部客户端指向一个公共IP,并且客户端认为这是通过路由器。 从私有IP到公有IP的路由没有正确build立,这样做是尴尬的。
或者,服务器会通过内部名称/ IP将客户端指向另一台服务器,而内部客户端可以正常工作 – 但外部客户端不会。
这种设置可以正常工作 – 但是需要仔细考虑或者如何布置内部networking。
IIRC通过确保公共服务器具有专用IP的内部客户端没有单独的内部子网并确保客户端默认网关的路由configuration正确来解决问题。
我不是说不这样做,只是join一些应该考虑的事情。