The question was, how can you use Azure Traffic Manager if the destinations are restricted with IP white lists?
This is the only way I could find:
- There is a blob that contains the source IPs of the probes. Here is the file, And here is the reference
- This list would need to be queried often because I couldn’t find any indication of when it would be updated
- I wrote PowerShell to parse the results and put it into an NSG.
$RGName= "Your RG Name" $NSGName = "Your NSG Name" $NSGRuleName = "Your Rule Name" $Priority = 120 $DestinationPortRange = 443 $url="https://azuretrafficmanagerdata.blob.core.windows.net/probes/azure/probe-ip-ranges.json" $results=Invoke-RestMethod -Uri $url $allAddresses=@() foreach ($address in $results.ipv4_prefixes){ $allAddresses += $address.ip_prefix } # for some reason, get-AzureRmNetworkSecurityRuleConfig errors out if there is no matchin name # could use a try - catch if ((Get-AzureRmNetworkSecurityGroup -ResourceGroupName $RGName -Name $NSGName | get-AzureRmNetworkSecurityRuleConfig -Name $NSGRuleName -ErrorAction SilentlyContinue) -eq $null){ # Creating RUle Get-AzureRmNetworkSecurityGroup -ResourceGroupName $RGName -Name $NSGName | ` Add-AzureRmNetworkSecurityRuleConfig -Name $NSGRuleName -Description "Allow Probe from ATM" -Access Allow -Protocol Tcp -Direction Inbound -Priority $Priority -SourceAddressPrefix $allAddresses -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange $DestinationPortRange | Set-AzureRmNetworkSecurityGroup } else { # Updating Rule Get-AzureRmNetworkSecurityGroup -ResourceGroupName $RGName -Name $NSGName | ` Set-AzureRmNetworkSecurityRuleConfig -Name $NSGRuleName -Description "Allow Probe from ATM" -Access Allow -Protocol Tcp -Direction Inbound -Priority $Priority -SourceAddressPrefix $allAddresses -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange $DestinationPortRange | Set-AzureRmNetworkSecurityGroup }
Hope that helps.