我的公共网站名称和AD域名相同。如何从网络内部访问外部网站?


15

我在公司使用我的域名example.org。我可以www.example.org用来查看我的网站。如果我http://example.org从公司外地尝试,则没有问题,但如果从内部尝试,则Windows DNS服务器将提供域控制器的IP。

我该如何解决?我可以阻止我的DC example.org在DNS中注册,这对我的环境会造成问题吗?


需要说明的是,您的内部网络DNS名称是example.org,而不是example.local?
DanBig

6
您可以通过正确命名您的域来解决此问题,该域应该类似于ad.example.orgcorp.example.org。如果这不再可能,您将陷入困境。最好的办法是www.example.org在也安装了IIS的任何DC上设置重定向到(这是一个坏主意,但是很多域控制器的设置很差)。
克里斯S

2
“我可以阻止我的DC在我的DNS中注册为example.org吗”。“这会对我的环境造成影响吗?” -是的!
mfinni

Answers:


29

如果您已经为Active Directory命名,example.org则无法避免。您已经违反了Microsft命名AD的最佳做法,并且看到了其中一种症状。

您有几种选择:

  1. 迁移到正确命名的AD。有点像corp.example.org

  2. 在每个DC上安装Web服务器,并将其配置为将Web请求转发example.orgwww.example.org。这很脏,不应该这样做,但这仍然是一个选择。

  3. 培训您的用户进行www.example.org内部访问。

我已经在博客上多次提到AD命名最佳做法,并链接到Microsoft的官方资源。您应该阅读它们:

http://www.mdmarra.com/2013/04/best-practices-for-configuring-new.html http://www.mdmarra.com/2012/11/why-you-shouldnt-use-local-in -your.html http://www.mdmarra.com/2013/07/more-documentation-from-microsoft-about.html

如果要使用简短版本:

不要使用与外部DNS名称相同的名称创建新的Active Directory林。例如,如果您的Internet DNS URL为 http://contoso.com,则必须为内部目录林选择其他名称,以避免将来出现兼容性问题。该名称应该是唯一的,并且不太可能影响网络流量。例如:corp.contoso.com。

- http://technet.microsoft.com/en-us/library/jj574166.aspx


此外,您可以在DNS中设置一个简单的“ example” CNAME(技术上称为example.example.org),并将其指向www.example.org。然后,您可以告诉用户去http://example。当然很愚蠢,否则,MDMarra列表中的#3是解决此问题的唯一简单方法。我去过(split-dns),处理起来很不好玩。
TheCleaner

只要“ example”不是您域的NetBIOS名称。如果是这样,我可以想象在这样的环境下这会是多么快乐。
mfinni

我将获得一些有关迁移到专有名称的信息,我只是有点害怕通过它获得问题。问题出在我的Nagios Monitoring上,我可以用来确保这一点,www.example.org并且example.org可以从外部进行。只要我有/不会迁移,我就会在这里找到设置的替代方法。Thx
Max

我只是想更新答案...虽然它曾经是Microsoft的最佳实践建议,但RFC取代了它,因为它干扰了Zeroconf(mDNS)。此外,此TechNet文章还建议您反对(截至2012年),尤其是当您希望将AD环境与Office 365集成或在您的域上使用Mac时,尤其是当我们在我的工作地点都遇到这种情况时。一级指出的解决方法是使用一个分裂区,为[这里详述](social.technet.microsoft.com/Forums/windowsserver/en-US/...

3
@stevenh再次阅读了您链接的文章。它完全呼应了我的回答。使用混合身份移动到Office 365时,应将用户主体名称设置为与每个用户的主SMTP地址匹配。这完全独立于您的目录名称。我的回答在发布时是有效的,并且今天仍然有效。
MDMarra 2015年

4

如果您在DC上运行Exchange,请不要设置PortProxy-可能不言而喻,但是它将破坏端口80上托管的Exchange服务。

我知道这篇文章已经很老了,但是您仍然可以在不将IIS安装在DC上的情况下执行此操作。在每个DC上,运行以下命令以将端口80代理端口连接到外部Web服务器。

netsh interface portproxy add v4tov4 listenport=80 listenaddress={Static IP v4 address of DC) connectport=80 connectaddress={IP Address of public Web Server}

这要求从DC可以访问Web服务器。但同样不是一个好方法。然后,您可以重定向到www。版本从DC承担工作。(临TIPP:我认为端口代理需要“IP帮助”窗口服务)
马克斯

0

因此,我不知道这是否回避了其他任何人,但是针对此问题的最佳解决方案可能只是获得具有不同后缀的辅助域,尤其是如果由于Exchange位于DC上(或由于主机头问题)而无法进行PortProxy的时候与您的虚拟主机。)

例如:如果内部AD域是EXAMPLE.com,则您只需购买EXAMPLE.NET供内部使用。

这是内部Web访问的最便宜,最简单的解决方法。

那对我们有用。


0

如果要将URL用作域,请为每台服务器使用机器名称,例如dc1.example.com和dc2.example.com。

确保为每个服务器正确设置CNAME以获取正确的服务器IP地址

我已经能够做到这一点,方法是先创建一个CNAME,然后设置服务器,然后等待一天DNS记录传播


-2

您可以通过两种方式解决问题,但这涉及在DC上放置HTTP服务器:

您可以使用URL重定向(HTTP 301代码)进行重定向,IIS 7可以为您完成重定向,或者您可以安装反向代理(适用于Windows的Apache)并使用以下代码:

ProxyPass / http://www.example.com/

ProxyPassRever / http://www.example.com/

ProxyPreserveHost开启


1
这包含在MDMarra的答案中;这是项目
2。– mfinni
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.