Tl;博士
我在多实例SQL Server(Windows Server上的每个SQL Server实例都有其自己的IP地址)上有一个具有专用IP地址和端口(162.xxx.xxx.51:1433)的SQL Server实例(SQLSERVER01-i01) )都在一台Windows服务器(SQLSERVER01 / 162.xxx.xxx.50)上运行。
我还有一个专用的Reporting Services实例(SQLSERVERRS01-i01),具有其自己的IP地址和端口(168.xxx.xxx.71:1433),该实例在具有其IP地址(168)的其他Windows服务器(SQLSERVERRS01)上运行.xxx.xxx.70)。
专用的Reporting Services服务器具有一个应用程序APPL1
,可以通过http://SQLSERVERRS01-i01:80/Reports_APPL1
或通过来访问http://SQLSERVERRS01:80/Reports_APPL1
。
由于*:80
Reporting Services配置中主机标头的配置,SSRS将同时接收这两个请求。
每个IP范围之间都有多个防火墙,这意味着我们必须为每个IP到IP或IPrange到IP连接申请特定的规则。但是,当涉及两台服务器时,安全性要求它始终必须是防火墙中的IP到IP规则。
题
(基于屏幕截图)
当Reporting Services服务器连接到SQL Server实例(位于162.xxx.xxx.51上)以检索数据时,它将始终与Windows服务器的基础IP地址(168.xxx.xxx.70 /首选)建立连接。 )表明SSRS正在运行,或者它(有时)会使用SQL Server Reporting Services实例的IP地址(168.xxx.xxx.71)?
这与使用IP到IP方法配置防火墙规则有关。我将必须申请一个规则,该规则定义通过端口1433连接168.xxx.xxx.71至162.xxx.xxx.51或通过端口168.xxx.xxx.70连接至162.xxx.xxx.51端口1433。
目前,我将同时申请这两个防火墙规则。
奖金问题
我可以配置Reporting Services服务器与专用IP地址通信吗?在这种情况下,请使用168.xxx.xxx.71地址。
我不要找的答案
我没有寻求有关如何优化防火墙配置或如何为我们的网络实施分区概念的建议。(它已经在准备中)。另外,我对建议在同一服务器上使用SQL Server和SSRS可以解决我的问题的反馈不感兴趣。我知道这一点,并且很乐意这样做,但需要与SSRS组件一起运行的第三方软件。
有用
如果在SSRS和SQL Server实例之间同时应用了两个防火墙规则,则可以使用我的配置。
168.xxx.xxx.71 --> 162.xxx.xxx.51 : 1433
168.xxx.xxx.70 --> 162.xxx.xxx.51 : 1433
我想通过一条防火墙规则来安全地减少数据,并确保一切仍然正常。(请参见下面的屏幕截图)
编辑:到目前为止,我已阅读的文章暗示我只需要第二条规则,但不能保证。
我已经咨询过的文章
SQL Server安装
基础文章中的安全注意事项。配置Windows防火墙以允许SQL Server访问
本文指向有关SQL Server防火墙配置的所有其他文章。为数据库引擎访问配置Windows防火墙
不使用任何IP地址。为报告服务器访问配置防火墙
正如本文所述,本文非常有趣:如果要访问外部计算机上的SQL Server关系数据库,或者报表服务器数据库位于外部SQL Server实例上,则必须在外部计算机上打开端口1433和1434。
Windows Server 2008和Windows Vista中用于源IP地址选择的功能与Windows早期版本中的相应功能不同
詹姆斯(dba.se)向我提供了第5条和第6条。目前,它们似乎是最合适的答案。但是,我有点怀疑是否有一篇文章提到使用多个NIC,而我只有一个分配了多个IP的NIC。汤姆(dba.se)也提出了建议和一般性意见。
为什么在这里而不是在dba.stackexchange.com中
由于问题的复杂性,我起初不愿在serverfault.com上发布此问题。这个问题既有特定于SQL Server的趋势,也有特定于Windows Server的趋势。最终,我决定将其发布在这里,因为我认为这是Windows Server IP处理的问题(因为丢失更好的单词)。
如果主持人认为在dba.stackexchange.com上我会得到更好的答复,请将该问题移到那儿。
详细说明
在我们的环境中,我们有Windows服务器托管多个SQL Server实例和多个IP设置。我们添加了复杂的防火墙配置,专用的SQL Server Reporting Services(SSRS)服务器,并提供了如下所示的环境:
基本上,我们可以使一个Windows Server在单个IP地址上最多运行15(十五)个SQL Server实例。这对于专用的Reporting Services实例同样有效。
防火墙规则
当前未将不同的IP范围未配置为区域,这意味着我们必须将每个防火墙规则分别配置为IP到IP或IPrange到IP规则。当涉及到两个服务器时,安全性要求它始终必须是IP到IP规则。每个SQL Server实例对于通信中涉及的防火墙都有自己的一套规则,这是服务器到服务器或客户端到服务器的链接。申请防火墙规则目前需要等待四到六周的时间。减少防火墙规则的数量将减少对网络安全团队的压力。
SQL Server实例IP配置
通过修改SQL Server配置管理器实用程序中的某些设置,可以将SQL Server实例配置为仅在专用IP和端口上进行拾取。第一步是启动SQL Server配置管理器,然后在左侧部分中选择“ SQL Server网络配置| SQL Server配置”。InstanceName的协议。在左窗格中,右键单击“ TCP / IP协议名称”并启用该协议。然后再次左键单击协议,并弹出“ TCP / IP的属性”窗口。
然后确保在协议寄存器中设置了以下设置:
Enabled : Yes
Listen All : No
在IP地址寄存器中,检查相关IP地址的以下设置(例如,对于本示例中的Reporting Services服务器,它应为168.xxx.xxx.71)
Active : Yes
Enabled : Yes
IP Address : 168.xxx.xxx.71
TCP Dynamic Ports :
TCP Port : 1433
注意:重要的是TCP动态端口的设置为空,而不仅仅是0(零)。
现在,您有了一个SQL Server实例,该实例将仅使用端口1433在168.xxx.xxx.71上拾取数据库连接。
SQL Server实例摘要
SQL Server Browser服务未运行,并且每个单独的SQL Server实例都配置为在端口1433上仅使用其自己的IP地址。给定名为GENERAL的SQL Server实例,这是一个Windows服务器,其主机名为SQLSERVER01,两个IP地址为162.xxx .xxx.50(主机)和162.xxx.xxx.51(SQL实例),我将得到以下配置项:
Windows Server : SQLSERVER01
Windows Server IP : 162.xxx.xxx.50
SQL Server Instance : SQLSERVER01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 162.xxx.xxx.51:1433
SQL Server将不会接收对162.xxx.xxx.50:1433的请求,因为在SQL Server配置管理器实用程序中未将任何SQL Server实例配置为侦听此IP地址。SQL Server将仅接收对SQLSERVER01-i01(在端口1433上)或162.xxx.xxx.51,1433的请求。
SQL Server Reporting Services实例摘要
SQL Server浏览器服务未运行,并且每个单独的SQL Server Reporting Services实例都配置为仅在端口1433上使用其自己的IP地址。给定名为GENERAL的SQL Server Reporting Services实例,这是一台主机名为SQLSERVERRS01的Windows服务器,是一个应用程序在名为SSRS的服务器上,APPL1
并使用两个IP地址168.xxx.xxx.70(主机)和168.xxx.xxx.71(SQL实例),我将得到以下配置项:
Windows Server : SQLSERVERRS01
Windows Server IP : 168.xxx.xxx.70
SQL Server Instance : SQLSERVERRS01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 168.xxx.xxx.71:1433
Reporting Services : http://sqlserverrs01-i01/Reports_APPL1
http://sqlserverrs01/Reports_APPL1
SQL Server将不会接收对168.xxx.xxx.70:1433的请求,因为在SQL Server配置管理器实用程序中未将任何SQL Server实例配置为侦听此IP地址。SQL Server将仅接收对SQLSERVER01-i01(在端口1433上)或162.xxx.xxx.71,1433的请求。
SSRS将为http:// sqlserverrs01-i01 / Reports_APPL1或http:// sqlserverrs01 / Reports_APPL1提取请求,这是 因为Reporting Services配置中主机标头的*:80配置。
希望我能为愿意花时间写答案的任何人提供足够的信息,并期待您的技术细节和链接。
用StackEdit编写,后来手动修改为与stackexchange兼容。
历史
编辑1:初始发行版
编辑2:重新格式化以提高可读性。下移说明SF / DB。为Windows Server
Edit 3添加了主机名:修复了防火墙规则列表中的错误IP地址。
编辑4:在某些地方将托管一词更改为正在运行(这是一个非虚拟环境)。在一次句子中添加了IP地址
编辑5:添加了我已经咨询并参考过的支持的文章列表
编辑6:清理历史记录部分