The Cable Guy - 2003年5月

发布者 作者:The Cable Guy

配置对位于网络地址转换(NAT)后方的服务的访问

cable_guy

欲了解关于The Cable Guy所主持的所有专栏的列表和更多信息,请点击此处

网络地址转换(NAT)是RFC 1631和2663中定义的一种IP路由器,它能够在转发数据包时转换它们的IP地址和TCP/UDP端口号。对于传出的数据包,源IP地址和TCP/UDP端口号被映射到一个公共源IP地址和一个可能被改变的TCP/IP端口号。对于传入的包,目标IP地址和TCP/UDP端口号被映射到专用IP地址和最初的TCP/IP端口号。

如果NAT转换表中存在一种特定的映射,NAT仅把来自Internet的流量转发到专用网络。由于这个原因,NAT为连接到专用网段的计算机提供了某种程度的保护。然而,当您想要让专用网络资源对Internet客户端可用时,这种程度的保护也带来了连接问题。

例如,假设您在专用网络上安装了一个Web服务器,该专用网络以一个NAT为边界,并让您的ISP创建了一个域名系统(DNS)记录,以便您的ISP使用其将www.example.com解析为可分配于您的公共IP地址(154.160.0.1)。当某个Internet客户端发起与您的专用网络上的Web服务器的通信时,将会发生下列情况:

  1. Internet Web客户端计算机(使用公共IP地址131.107.0.1)上的用户在他们的Web浏览器中键入http://www.example.com。

  2. Internet Web客户端使用DNS将名称www.example.com解析为地址154.60.0.1。

  3. Internet Web客户端计算机从131.107.0.1/TCP端口2000向154.60.0.1/TCP端口80发送一个传输控制协议(TCP)同步(SYN)段。

  4. 当NAT计算机接收到该TCP SYN段时,将检查自己的NAT转换表。

  5. 由于不存在针对目标154.60.0.1/TCP 80的条目,该TCP SYN段将自动被丢弃。

  6. Internet Web客户端计算机一直重试,直至最终显示一条出错消息。

由于不存在针对传入流量的NAT映射,位于NAT后方的服务器上的资源就不能从Internet进行访问。

解决这一连接问题的办法,就是为来自Internet的被转换为针对NAT后方的资源服务器的流量提供手动配置的静态映射。为了帮助将传入流量转发到专用网上的资源服务器,您可以配置两类型静态映射中的任意一类:

  • 您可以将某个特定公共IP地址的所有流量映射到某个特定的专用地址(地址映射)。

    这类映射的优点是易于配置。由于针对该公共IP地址的所有流量都被转发,您不必根据运行在专用网计算机上的服务的TCP和UDP端口来确定流量的类型。

    这类映射的缺点在于专用网络计算机现在直接对Internet开放,从而更容易受到攻击。您可以使用Windows XP的Internet连接防火墙或其他防火墙软件来帮助保护专用网络计算机。另一个缺点在于您必须获得多个公共IP地址。至少必须要两个公共IP地址: 一个针对资源服务器,另一个针对其他专用网络计算机的已转换流量。

  • 将一个特定的公共IP地址/端口号映射到一个特定的专用IP地址/端口号(地址/端口映射)

    这类静态映射的优点在于,资源服务器更不易受到攻击,除非通过静态地址/端口映射所允许的流量进行攻击。其另一个优点在于,您只需对发送到资源服务器的流量和专用网计算机的转换后的流量使用一个公共地址。

    这类影射的缺点在于需要额外的配置。对于资源服务器上您想要使之对Internet可用的每个服务,您都必须对其创建静态映射。

本页内容

如何允许位于NAT计算机后方的服务的流量
更多信息

如何允许位于NAT计算机后方的服务的流量

在您配置NAT计算机之前,确保ISP已经创建了一个DSN记录用以将DNS名称解析为与资源服务器相关联的公共IP地址。

用于允许对资源服务器的流量的配置,取决于您是在使用Windows 2000 Server还是在使用Windows Server 2003&0153;以及您是在配置一个地址映射还是在配置一个地址/端口映射。

Windows 2000 Server

在配置基于Windows 2000 Server的NAT计算机之前,您必须在资源服务器上配置一个静态IP地址配置,包括IP地址、子网掩码、默认网关(NAT计算机的专用IP地址)和DNS服务器(也是NAT计算机的专用IP地址)。

如果NAT计算机充当专用网络所连接的子网的DHCP分配器,那么专用IP地址和子网掩码必须在该NAT计算机分配的IP地址范围之内。这在“路由器和远程访问”插件中的**“”网络地址转换(NAT)属性对话框的“地址分配”选项卡上有所定义。此外,分配给资源计算机的IP地址必须排除在该NAT计算机分配的IP地址范围之外。因此,请单击“地址分配”选项卡上的“排除”**。

地址映射

为了给运行Windows 2000 Server的NAT计算机配置一个地址映射,请完成以下步骤:

  1. 单击**“开始”,指向“程序”,指向“管理工具”,然后单击“路由和远程访问”**。

  2. 在控制台树中,打开*“服务器名称”*,然后打开**“IP路由”,再单击“网络地址转换(NAT)”**。

  3. 在详细信息窗格中,右键单击您的公共接口,然后单击**“属性”**。

  4. 单击**“地址池”**选项卡。

  5. 如果您已经配置了Internet服务提供商分配给您的公共IP地址的IP地址范围,请转到步骤10。

  6. 单击 “添加”

  7. 在**“添加地址池”**中,键入一个连续公共IP地址范围的起始IP地址、子网掩码和结束IP地址。

  8. 单击**“确定”**。

  9. 对对应于您的公共IP地址的所有范围重复步骤6至步骤8。

  10. 单击**“保留”**。

  11. 在**“保留地址”中,单击“添加”**。

  12. 在**“添加保留地址”中,在“保留公共IP地址”中键入对应于资源服务器的公共IP地址,在“针对专用网络上的这台计算机”中键入资源服务器的专用网络地址,然后选择“允许会话传入此地址”**。

  13. 单击**“确定”**,添加该地址映射。

  14. 单击**“确定”**,保存对保留地址所作的更改。

  15. 单击**“确定”**,保存对公共接口的所作的更改。

地址/端口映射

为了给运行Windows 2000 Server的NAT计算机配置一个地址/端口映射,请完成以下步骤:

  1. 单击**“开始”,指向“程序”,指向“管理工具”,然后单击“路由和远程访问”**。

  2. 在控制台树中,打开*“服务器名称”*,然后打开**“IP路由”,再单击“网络地址转换(NAT)”**。

  3. 在详细信息窗格中,右键单击您的公共接口,然后单击**“属性”**。

  4. 在**“特殊端口”选项卡上,在“协议”中选择“TCP”“UDP”,然后单击“添加”**。

  5. 在**“添加特殊端口”**中,请配置以下设置:

    • 在**“公共地址”中,选择“在此接口上”(如果针对资源服务器的流量被发送到该公共接口的公共地址)或“在此地址池条目上”(如果资源服务器使用一个已保留的公共地址)。如果选择“在此地址池条目上”**,请键入已保留的公共地址。

    • 在**“传入端口”中,键入从Internet发送到资源服务器的传入流量的TCP或UDP目标端口号。例如,如果该资源服务器是一个Web服务器,您需要键入“80”**(TCP端口80是默认的Web服务器TCP端口)。

    • 在**“专用地址”**中,键入资源服务器的静态专用IP地址。

    • 在**“传出端口”中,键入由NAT计算机转发到资源服务器的流量的TCP或UDP目标端口号。例如,如果该资源服务器是一个Web服务器,您需要键入“80”(TCP端口80是默认的Web服务器TCP端口)。 这个值和“传入端口”**值通常是相同的。

  6. 单击**“确定”**,添加特殊的端口映射。

  7. 单击**“确定”**,保存对公共接口的所作的更改。

下图显示了一个充当Web服务器并使用专用IP地址192.168.0.99的资源服务器的**“添加特殊端口”对话框。 对于这个例子,NAT计算机只有单个公共IP地址。 因此,“在此地址池条目上”**选项不可用。

cg0501.gif

下图显示了针对资源服务器的流量及其与**“添加特殊端口”**对话框中的字段的关系。

cg0502.gif

Windows Server 2003

在配置基于Windows Server 2003的NAT计算机之前,您必须在资源服务器上创建一个静态IP地址配置,包括IP地址、子网掩码、默认网关(NAT计算机的专用IP地址)和DNS服务器(也是NAT计算机的专用IP地址)。

如果NAT计算机充当专用网所连接到的子网的DHCP分配器,那么IP地址和子网掩码必须在该NAT计算机分配的IP地址范围之内。这在“路由器和远程访问”插件的**“NAT/防火墙基本属性”对话框的“地址分配”选项卡上有所定义。此外,分配给资源计算机的IP地址必须排除在该NAT计算机分配的IP地址范围之外。因此,请单击“地址分配”选项卡上的“排除”**。

地址映射

为了给运行Windows Server 2003的NAT计算机配置一个地址映射,请完成前面的地址映射小节中描述的相同步骤。 然而在第2步中,您必须打开*“服务器名称”*,然后打开**“IP路由”,再单击“NAT/基本防火墙”(而不是单击“网络地址转换”**)。

地址/端口映射

为了给运行Windows Server 2003的NAT计算机配置一个地址/端口映射,请完成以下步骤:

  1. 单击**“开始”,指向“程序”,指向“管理工具”,然后单击“路由和远程访问”**。

  2. 在控制台树中,打开*“服务器名称”*,然后打开**“IP路由”,再单击“NAT/基本防火墙”**。

  3. 在详细信息窗格中,右键单击您的公共接口,然后单击**“属性”**。

  4. 在**“服务和端口”选项看上,在“服务”**列表中,定位与资源服务器匹配的预定义服务。

  5. 如果存在一个匹配的服务,则通过单击服务复选框启用映射,并选择**“在此接口上”“在此地址池条目上”。如果选择“在此地址池条目上”,则键入已保留的公共地址,再在“专用地址”**中键入资源服务器的专用地址,然后执行步骤8。

  6. 如果不存在匹配的服务,则单击**“添加”**。

  7. 在**“添加服务”**对话框中,请配置以下选项:

    • 在**“服务描述”**中,键入您正在配置的服务的描述。

    • 在**“公共地址”中,选择“在此接口上”(如果针对资源服务器的流量被发送到该公共接口的公共地址)或“在此地址池条目上”(如果资源服务器使用一个已保留的公共地址)。如果选择“在此地址池条目上”**,则键入已保留的公共地址。

    • 在**“协议”中,选择“TCP”“UDP”**。

    • 在**“传入端口”**中,键入从Internet发送到该资源服务器的传入流量的TCP或UDP端口号。

    • 在**“专用地址”**中,键入资源服务器的静态专用IP地址。

    • 在**“传出端口”**中,键入由NAT计算机转发到资源服务器的流量的TCP或UDP目标端口号。

  8. 单击**“确定”**,保存服务配置。

  9. 单击**“确定”**,保存对公共接口的所作的更改。

更多信息

关于Windows 2000 Server或Windows Server 2003的NAT的更多信息,请参考以下资源:

如对本专栏的内容有任何疑问或想发表反馈信息,请致信Microsoft TechNet。请注意,我们不保证回复您的来信。

欲了解关于The Cable Guy所主持的所有专栏的列表和更多信息,请点击此处