Tl; Dr
Tengo una instancia de SQL Server (SQLSERVER01-i01) con una dirección IP y un puerto dedicados (162.xxx.xxx.51: 1433) en un servidor SQL de varias instancias (cada instancia de SQL Server en Windows Server tiene su propia dirección IP ) que se ejecutan en un servidor Windows (SQLSERVER01 / 162.xxx.xxx.50).
También tengo una instancia dedicada de Reporting Services (SQLSERVERRS01-i01) con su propia dirección IP y puerto (168.xxx.xxx.71: 1433), que se ejecuta en un servidor Windows diferente (SQLSERVERRS01) con su propia dirección IP (168 .xxx.xxx.70).
El servidor dedicado de Reporting Services tiene una aplicación a la APPL1
que se puede acceder a través de http://SQLSERVERRS01-i01:80/Reports_APPL1
o vía http://SQLSERVERRS01:80/Reports_APPL1
.
SSRS recogerá ambas solicitudes debido a la *:80
configuración en la Configuración de Reporting Services para los encabezados de host.
Tenemos varios firewalls entre cada rango de IP, lo que significa que tenemos que solicitar una regla específica para cada conexión de IP a IP o de rango de IP a IP. Sin embargo, cuando hay dos servidores involucrados, la seguridad dicta que siempre debe ser una regla de IP a IP en el firewall.
Pregunta
(basado en la captura de pantalla más abajo)
Cuando el servidor de Reporting Services se conecta a la instancia de SQL Server (en 162.xxx.xxx.51) para recuperar datos, siempre creará una conexión con la dirección IP subyacente del servidor de Windows (168.xxx.xxx.70 / preferido ) en el que se ejecuta SSRS, o ¿utilizará (a veces) la dirección IP de la instancia de SQL Server Reporting Services (168.xxx.xxx.71)?
Esto es relevante para la configuración de la regla de firewall utilizando un enfoque de IP a IP. Tendré que solicitar una regla que defina una conexión 168.xxx.xxx.71 a 162.xxx.xxx.51 a través del puerto 1433 o una conexión 168.xxx.xxx.70 a 162.xxx.xxx.51 a través de puerto 1433.
Actualmente, solicitaría ambas reglas de firewall.
Pregunta extra
¿Puedo configurar el servidor de Reporting Services para comunicarse con una dirección IP dedicada? En este caso con la dirección 168.xxx.xxx.71.
Respuestas que no estoy buscando
No busco consejos sobre cómo optimizar la configuración del firewall o cómo implementar un concepto de zonificación para nuestras redes. (Ya está en la tubería). Además, no me interesan los comentarios que sugieren que tener SQL Server y SSRS en el mismo servidor resolvería mis problemas. Lo sé y con gusto lo haría, pero para el software de terceros requerido para ejecutarse junto con los componentes SSRS.
Funciona
La configuración que tengo funciona si aplico ambas reglas de firewall entre SSRS y la instancia de SQL Server.
168.xxx.xxx.71 --> 162.xxx.xxx.51 : 1433
168.xxx.xxx.70 --> 162.xxx.xxx.51 : 1433
Quiero reducir de forma segura una regla de firewall y asegurarme de que todo seguirá funcionando. (Ver captura de pantalla más abajo)
Editar: Los artículos que he leído hasta ahora sugieren que solo necesito la segunda regla, pero no hay garantía.
Artículos que ya he consultado
Consideraciones de seguridad para un
artículo de Base de instalación de SQL Server .Configure el Firewall de Windows para permitir el acceso a SQL Server
Este artículo hace referencia a todos los demás artículos relacionados con la configuración del firewall para SQL Server.Configure un Firewall de Windows para el acceso al motor de la base de datos
No se utiliza ninguna palabra de las direcciones IP.Configurar un firewall para el acceso al servidor de informes
Este artículo fue bastante interesante, ya que señaló:Si está accediendo a bases de datos relacionales de SQL Server en computadoras externas, o si la base de datos del servidor de informes está en una instancia externa de SQL Server, debe abrir los puertos 1433 y 1434 en la computadora externa.
Selección de la dirección IP de origen en una computadora con Windows de alojamiento múltiple
Los artículos 5 y 6 fueron amablemente proporcionados por James (dba.se). Actualmente parecen ser las respuestas más apropiadas. Sin embargo, estoy un poco escéptico de que un artículo mencione el uso de múltiples NIC, mientras que solo tengo una NIC con varias IP asignadas. Tom (dba.se) también ha aportado consejos y comentarios generales.
¿Por qué aquí y no en dba.stackexchange.com?
Al principio era reacio a publicar esta pregunta en serverfault.com debido a la naturaleza compleja de la pregunta. La pregunta tiene ambas tendencias a ser específica de SQL Server, pero también a ser específica de Windows Server. Finalmente, decidí publicarlo aquí, porque creo que es una cosa de manejo de IP de Windows Server (por pérdida de mejores palabras).
Si un moderador cree que obtendré una mejor respuesta en dba.stackexchange.com, mueva la pregunta allí.
La larga explicación
En nuestro entorno tenemos servidores Windows que alojan múltiples instancias de SQL Server y múltiples configuraciones de IP. Agregamos configuraciones complejas de firewall, servidores dedicados de SQL Server Reporting Services (SSRS) y creamos un entorno que se parece un poco a esto:
Básicamente, podemos tener un Windows Server que ejecute hasta 15 (quince) instancias de SQL Server en direcciones IP individuales. Lo mismo es válido para la instancia dedicada de Reporting Services.
Reglas de cortafuegos
Los diferentes rangos de IP actualmente no están configurados como zonas, lo que significa que tenemos que configurar cada regla de firewall independientemente como una regla de IP a IP o de rango de IP a IP. Cuando hay dos servidores involucrados, la seguridad dicta que siempre debe ser una regla de IP a IP. Cada instancia de SQL Server tendrá su propio conjunto de reglas para los firewalls involucrados en las comunicaciones, ya sea un enlace de servidor a servidor o de cliente a servidor. Solicitar una regla de firewall actualmente incurre en un período de espera de cuatro a seis semanas. La reducción de la cantidad de reglas de firewall reducirá la presión sobre el equipo de seguridad de la red.
Configuración de IP de instancia de SQL Server
La configuración de una instancia de SQL Server para recoger solo en una IP dedicada y un puerto se realiza modificando algunas configuraciones en la utilidad Administrador de configuración de SQL Server. El primer paso es iniciar el Administrador de configuración de SQL Server y en la sección izquierda, seleccione la Configuración de red de SQL Server | Protocolos para InstanceName . En el panel izquierdo, haga clic con el botón izquierdo en el nombre del protocolo TCP / IP y habilite el protocolo. Luego, haga clic de nuevo en el protocolo y abra la ventana Propiedades para TCP / IP .
Luego asegúrese de que las siguientes configuraciones estén establecidas en el registro de Protocolo :
Enabled : Yes
Listen All : No
En el registro de direcciones IP, verifique la siguiente configuración para la dirección IP en cuestión (por ejemplo, para el servidor de Reporting Services en este ejemplo sería para 168.xxx.xxx.71)
Active : Yes
Enabled : Yes
IP Address : 168.xxx.xxx.71
TCP Dynamic Ports :
TCP Port : 1433
Nota: es importante que la configuración de los puertos dinámicos TCP esté vacía, no solo un 0 (cero).
Ahora tiene una instancia de SQL Server que solo recogerá las conexiones de la base de datos en 168.xxx.xxx.71 utilizando el puerto 1433.
Resumen de instancia de SQL Server
El servicio del navegador SQL Server no se está ejecutando y cada instancia individual de SQL Server está configurada para usar solo su propia dirección IP en el puerto 1433. Dada una instancia de SQL Server llamada GENERAL, un servidor Windows con el nombre de host SQLSERVER01 y dos direcciones IP 162.xxx .xxx.50 (host) y 162.xxx.xxx.51 (instancia de SQL) terminaré con los siguientes elementos de configuración:
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 no aceptará solicitudes para 162.xxx.xxx.50: 1433, porque ninguna instancia de SQL Server está configurada para escuchar en esta dirección IP en la utilidad Administrador de configuración de SQL Server. SQL Server solo recogerá solicitudes para SQLSERVER01-i01 (en el puerto 1433) o 162.xxx.xxx.51,1433.
Resumen de la instancia de SQL Server Reporting Services
El servicio del navegador SQL Server no se está ejecutando y cada instancia individual de SQL Server Reporting Services está configurada para usar solo su propia dirección IP en el puerto 1433. Dada una instancia de SQL Server Reporting Services llamada GENERAL, un servidor de Windows con el nombre de host SQLSERVERRS01, una aplicación en el SSRS nombrado APPL1
y dos direcciones IP 168.xxx.xxx.70 (host) y 168.xxx.xxx.71 (instancia de SQL) terminaré con los siguientes elementos de configuración:
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 no aceptará solicitudes para 168.xxx.xxx.70: 1433, porque ninguna instancia de SQL Server está configurada para escuchar en esta dirección IP en la utilidad Administrador de configuración de SQL Server. El servidor SQL solo aceptará solicitudes para SQLSERVER01-i01 (en el puerto 1433) o 162.xxx.xxx.71,1433.
SSRS recibirá solicitudes para http: // sqlserverrs01-i01 / Reports_APPL1 o http: // sqlserverrs01 / Reports_APPL1 debido a la configuración *: 80 en la configuración de Reporting Services para los encabezados de host.
Espero haber proporcionado suficiente información para cualquiera que esté dispuesto a pasar su tiempo escribiendo una respuesta y espero sus detalles técnicos y enlaces.
Escrito con StackEdit y luego modificado manualmente para ser compatible con stackexchange.
Historia
Edición 1 : Versión inicial
Edición 2 : Reformateado para facilitar la lectura. Explicación movida SF / DB abajo. Se agregó el nombre de host para Windows Server
Edit 3 : se corrigieron las direcciones IP incorrectas en la lista de reglas del firewall.
Edición 4 : cambió la palabra hosting a corriendo (es un entorno no virtualizado) en algunos lugares. Se agregó la dirección IP en una sola oración
Edición 5 : se agregó una lista de artículos que ya he consultado y se hizo referencia al soporte
Editar 6 : Se limpió la sección Historial