Architettura della connettività del database SQL di AzureAzure SQL Database Connectivity Architecture

Questo articolo illustra l'architettura della connettività del database SQL di Azure e spiega il funzionamento dei diversi componenti per indirizzare il traffico a un'istanza del database SQL di Azure.This article explains the Azure SQL Database connectivity architecture and explains how the different components function to direct traffic to your instance of Azure SQL Database. La funzione dei componenti di connettività del database SQL di Azure è indirizzare il traffico di rete verso il database di Azure con client che si connettono dall'interno di Azure e client che si connettono dall'esterno di Azure.These Azure SQL Database connectivity components function to direct network traffic to the Azure database with clients connecting from within Azure and with clients connecting from outside of Azure. Questo articolo include anche alcuni esempi di script per modificare la modalità di connessione e propone alcune considerazioni sulla modifica delle impostazioni di connettività predefinite.This article also provides script samples to change how connectivity occurs, and the considerations related to changing the default connectivity settings.

Architettura della connettivitàConnectivity architecture

Il diagramma seguente offre una panoramica generale dell'architettura della connettività del database SQL di Azure.The following diagram provides a high-level overview of the Azure SQL Database connectivity architecture.

panoramica dell'architettura

I passaggi seguenti descrivono come viene stabilita una connessione a un database SQL di Azure tramite il servizio di bilanciamento del carico software del database SQL di Azure e il gateway del database SQL di Azure.The following steps describe how a connection is established to an Azure SQL database through the Azure SQL Database software load-balancer (SLB) and the Azure SQL Database gateway.

  • I client all'interno o all'esterno di Azure si connettono al servizio di bilanciamento del carico software, che ha un indirizzo IP pubblico ed è in ascolto sulla porta 1433.Clients within Azure or outside of Azure connect to the SLB, which has a public IP address and listens on port 1433.
  • Il servizio di bilanciamento del carico software indirizza il traffico al gateway del database SQL di Azure.The SLB directs traffic to the Azure SQL Database gateway.
  • Il gateway reindirizza il traffico al middleware proxy corretto.The gateway redirects the traffic to the correct proxy middleware.
  • Il middleware proxy reindirizza il traffico al database SQL di Azure appropriato.The proxy middleware redirects the traffic to the appropriate Azure SQL database.

Importante

Ognuno di questi componenti incorpora la protezione DDoS (Distributed Denial of Service) a livello di rete e di app.Each of these components has distributed denial of service (DDoS) protection built-in at the network and the app layer.

Connettività dall'interno di AzureConnectivity from within Azure

Se ci si connette dall'interno di Azure, il criterio di connessione predefinito per le connessioni è reindirizzamento.If you are connecting from within Azure, your connections have a connection policy of Redirect by default. Un criterio di reindirizzamento significa che, dopo aver stabilito la sessione TCP al database SQL di Azure, la sessione client viene reindirizzata al middleware proxy sostituendo l'indirizzo IP virtuale di destinazione del gateway del database SQL di Azure con quello del middleware proxy.A policy of Redirect means that connections after the TCP session is established to the Azure SQL database, the client session is then redirected to the proxy middleware with a change to the destination virtual IP from that of the Azure SQL Database gateway to that of the proxy middleware. Tutti i pacchetti successivi passano poi direttamente attraverso il middleware proxy, ignorando il gateway del database SQL di Azure.Thereafter, all subsequent packets flow directly via the proxy middleware, bypassing the Azure SQL Database gateway. Il diagramma seguente illustra il flusso del traffico.The following diagram illustrates this traffic flow.

panoramica dell'architettura

Connettività dall'esterno di AzureConnectivity from outside of Azure

Se ci si connette dall'esterno di Azure, le connessioni usano un criterio di connessione proxy per impostazione predefinita.If you are connecting from outside Azure, your connections have a connection policy of Proxy by default. Il criterio proxy significa che la sessione TCP viene stabilita tramite il gateway del database SQL di Azure e che tutti i pacchetti successivi passano attraverso il gateway.A policy of Proxy means that the TCP session is established via the Azure SQL Database gateway and all subsequent packets flow via the gateway. Il diagramma seguente illustra il flusso del traffico.The following diagram illustrates this traffic flow.

panoramica dell'architettura

Indirizzi IP del gateway del database SQL di AzureAzure SQL Database gateway IP addresses

Per connettersi a un database SQL di Azure da risorse locali, è necessario consentire il traffico di rete in uscita verso il gateway del database SQL di Azure per la propria area di Azure.To connect to an Azure SQL database from on-premises resources, you need to allow outbound network traffic to the Azure SQL Database gateway for your Azure region. Le connessioni passano solo attraverso il gateway quando ci si connette in modalità proxy, ovvero l'impostazione predefinita per la connessione da risorse locali.Your connections only go via the gateway when connecting in Proxy mode, which is the default when connecting from on-premises resources.

La tabella seguente elenca gli indirizzi IP primario e secondario del gateway del database SQL di Azure per tutte le aree dati.The following table lists the primary and secondary IPs of the Azure SQL Database gateway for all data regions. Per alcune aree sono disponibili due indirizzi IP.For some regions, there are two IP addresses. In queste aree, l'indirizzo IP primario è l'indirizzo IP corrente del gateway e il secondo indirizzo IP è un indirizzo IP di failover.In these regions, the primary IP address is the current IP address of the gateway and the second IP address is a failover IP address. L'indirizzo di failover è l'indirizzo verso cui potrebbe essere spostato il server per mantenere l'alta disponibilità del servizio.The failover address is the address to which we might move your server to keep the service availability high. Per queste aree, è consigliabile consentire il traffico in uscita verso entrambi gli indirizzi IP.For these regions, we recommend that you allow outbound to both the IP addresses. Il secondo indirizzo IP è di proprietà di Microsoft e non è in ascolto su alcun servizio fino a quando non viene attivato dal database SQL di Azure per accettare connessioni.The second IP address is owned by Microsoft and does not listen in on any services until it is activated by Azure SQL Database to accept connections.

Nome areaRegion Name Indirizzo IP primarioPrimary IP address Indirizzo IP secondarioSecondary IP address
Australia orientaleAustralia East 191.238.66.109191.238.66.109 13.75.149.8713.75.149.87
Australia sud-orientaleAustralia South East 191.239.192.109191.239.192.109 13.73.109.25113.73.109.251
Brasile meridionaleBrazil South 104.41.11.5104.41.11.5
Canada centraleCanada Central 40.85.224.24940.85.224.249
Canada orientaleCanada East 40.86.226.16640.86.226.166
Stati Uniti centraliCentral US 23.99.160.13923.99.160.139 13.67.215.6213.67.215.62
Asia orientaleEast Asia 191.234.2.139191.234.2.139 52.175.33.15052.175.33.150
Stati Uniti orientali 1East US 1 191.238.6.43191.238.6.43 40.121.158.3040.121.158.30
Stati Uniti orientali 2East US 2 191.239.224.107191.239.224.107 40.79.84.18040.79.84.180
India centraleIndia Central 104.211.96.159104.211.96.159
India meridionaleIndia South 104.211.224.146104.211.224.146
India occidentaleIndia West 104.211.160.80104.211.160.80
Giappone orientaleJapan East 191.237.240.43191.237.240.43 13.78.61.19613.78.61.196
Giappone occidentaleJapan West 191.238.68.11191.238.68.11 104.214.148.156104.214.148.156
Corea centraleKorea Central 52.231.32.4252.231.32.42
Corea meridionaleKorea South 52.231.200.8652.231.200.86
Stati Uniti centro-settentrionaliNorth Central US 23.98.55.7523.98.55.75 23.96.178.19923.96.178.199
Europa settentrionaleNorth Europe 191.235.193.75191.235.193.75 40.113.93.9140.113.93.91
Stati Uniti centro-meridionaliSouth Central US 23.98.162.7523.98.162.75 13.66.62.12413.66.62.124
Asia sudorientaleSouth East Asia 23.100.117.9523.100.117.95 104.43.15.0104.43.15.0
Regno Unito settentrionaleUK North 13.87.97.21013.87.97.210
Regno Unito meridionale 1UK South 1 51.140.184.1151.140.184.11
Regno Unito meridionale 2UK South 2 13.87.34.713.87.34.7
Regno Unito occidentaleUK West 51.141.8.1151.141.8.11
Stati Uniti centro-occidentaliWest Central US 13.78.145.2513.78.145.25
Europa occidentaleWest Europe 191.237.232.75191.237.232.75 40.68.37.15840.68.37.158
Stati Uniti occidentali 1West US 1 23.99.34.7523.99.34.75 104.42.238.205104.42.238.205
Stati Uniti occidentali 2West US 2 13.66.226.20213.66.226.202

Modificare il criterio di connessione del database SQL di AzureChange Azure SQL Database connection policy

Per modificare il criterio di connessione del database SQL di Azure per un server di database SQL di Azure, usare l'API REST.To change the Azure SQL Database connection policy for an Azure SQL Database server, use the REST API.

  • Se il criterio di connessione è impostato su proxy, tutti i pacchetti di rete passano attraverso il gateway del database SQL di Azure.If your connection policy is set to Proxy, all network packets flow via the Azure SQL Database gateway. Per questa impostazione, è necessario consentire il traffico in uscita solo per l'indirizzo IP del gateway del database SQL di Azure.For this setting, you need to allow outbound to only the Azure SQL Database gateway IP. L'uso dell'impostazione proxy ha una latenza maggiore rispetto all'impostazione reindirizzamento.Using a setting of Proxy has more latency than a setting of Redirect.
  • Se il criterio di connessione è impostato su reindirizzamento, tutti i pacchetti di rete passano direttamente al proxy del middleware.If your connection policy is setting Redirect, all network packets flow directly to the middleware proxy. Per questa impostazione, è necessario consentire il traffico in uscita verso più IP.For this setting, you need to allow outbound to multiple IPs.

Script per modificare le impostazioni di connessione tramite PowerShellScript to change connection settings via PowerShell

Importante

Per questo script è necessario il modulo Azure PowerShell.This script requires the Azure PowerShell module.

Lo script di PowerShell seguente mostra come modificare il criterio di connessione.The following PowerShell script shows how to change the connection policy.

Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName <Subscription Name>

# Azure Active Directory ID
$tenantId = "<Azure Active Directory GUID>"
$authUrl = "https://login.microsoftonline.com/$tenantId"

# Subscription ID
$subscriptionId = "<Subscription GUID>"

# Create an App Registration in Azure Active Directory.  Ensure the application type is set to NATIVE
# Under Required Permissions, add the API:  Windows Azure Service Management API

# Specify the redirect URL for the app registration
$uri = "<NATIVE APP - REDIRECT URI>"

# Specify the application id for the app registration
$clientId = "<NATIVE APP - APPLICATION ID>"

# Logical SQL Server Name
$serverName = "<LOGICAL DATABASE SERVER - NAME>"

# Resource Group where the SQL Server is located
$resourceGroupName= "<LOGICAL DATABASE SERVER - RESOURCE GROUP NAME>"


# Login and acquire a bearer token
$AuthContext = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]$authUrl
$result = $AuthContext.AcquireToken(
"https://management.core.windows.net/",
$clientId,
[Uri]$uri,
[Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior]::Auto
)

$authHeader = @{
'Content-Type'='application\json; '
'Authorization'=$result.CreateAuthorizationHeader()
}

#Get current connection Policy
Invoke-RestMethod -Uri "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/connectionPolicies/Default?api-version=2014-04-01-preview" -Method GET -Headers $authHeader

#Set connection policy to Proxy
$connectionType="Proxy" <#Redirect / Default are other options#>
$body = @{properties=@{connectionType=$connectionType}} | ConvertTo-Json

# Apply Changes
Invoke-RestMethod -Uri "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/connectionPolicies/Default?api-version=2014-04-01-preview" -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"

Script per modificare le impostazioni di connessione tramite l'interfaccia della riga di comando di Azure 2.0Script to change connection settings via Azure CLI 2.0

Importante

Per questo script è necessaria l'interfaccia della riga di comando di Azure 2.0.This script requires the Azure CLI 2.0.

Lo script dell'interfaccia della riga di comando seguente mostra come modificare il criterio di connessione.The following CLI script shows how to change the connection policy.

# Get SQL Server ID
sqlserverid=$(az sql server show -n sql-server-name -g sql-server-group --query 'id' -o tsv)

# Set URI
id="$sqlserverid/connectionPolicies/Default"

# Get current connection policy 
az resource show --ids $id

# Update connection policy 
az resource update --ids $id --set properties.connectionType=Proxy

Passaggi successiviNext steps