Skip to content

Commit aecee48

Browse files
authored
Merge pull request #106755 from orspod/2020-3-vnet
2020 3 vnet
2 parents 5aea99f + fc62cce commit aecee48

File tree

1 file changed

+149
-3
lines changed

1 file changed

+149
-3
lines changed

articles/data-explorer/vnet-deployment.md

Lines changed: 149 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ Deploying Azure Data Explorer cluster into your subnet allows you to setup data
169169
| West Europe | 23.97.212.5 |
170170
| West India | 23.99.5.162 |
171171
| West US | 23.99.5.162 |
172-
| West US 2 | 23.99.5.162 |
172+
| West US 2 | 23.99.5.162 |
173173

174174
#### Azure Monitor configuration endpoint addresses
175175

@@ -187,7 +187,7 @@ Deploying Azure Data Explorer cluster into your subnet allows you to setup data
187187
| Central US EUAP | 13.90.43.231 |
188188
| East Asia | 13.75.117.221 |
189189
| East US | 13.90.43.231 |
190-
| East US 2 | 13.68.89.19 |
190+
| East US 2 | 13.68.89.19 |
191191
| East US 2 EUAP | 13.68.89.19 |
192192
| France Central | 52.174.4.112 |
193193
| France South | 52.174.4.112 |
@@ -212,7 +212,7 @@ Deploying Azure Data Explorer cluster into your subnet allows you to setup data
212212

213213
## ExpressRoute setup
214214

215-
Use ExpressRoute to connect on premises network to the Azure Virtual Network. A common setup is to advertise the default route (0.0.0.0/0) through the Border Gateway Protocol (BGP) session. This forces traffic coming out of the Virtual Network to be forwarded to the customers premise network that may drop the traffic, causing outbound flows to break. To overcome this default, [User Defined Route (UDR)](/azure/virtual-network/virtual-networks-udr-overview#user-defined) (0.0.0.0/0) can be configured and next hop will be *Internet*. Since the UDR takes precedence over BGP, the traffic will be destined to the Internet.
215+
Use ExpressRoute to connect on premises network to the Azure Virtual Network. A common setup is to advertise the default route (0.0.0.0/0) through the Border Gateway Protocol (BGP) session. This forces traffic coming out of the Virtual Network to be forwarded to the customer's premise network that may drop the traffic, causing outbound flows to break. To overcome this default, [User Defined Route (UDR)](/azure/virtual-network/virtual-networks-udr-overview#user-defined) (0.0.0.0/0) can be configured and next hop will be *Internet*. Since the UDR takes precedence over BGP, the traffic will be destined to the Internet.
216216

217217
## Securing outbound traffic with firewall
218218

@@ -258,3 +258,149 @@ For example, for **West US** region, the following UDRs must be defined:
258258
To deploy Azure Data Explorer cluster into your virtual network, use the [Deploy Azure Data Explorer cluster into your VNet](https://azure.microsoft.com/resources/templates/101-kusto-vnet/) Azure Resource Manager template.
259259

260260
This template creates the cluster, virtual network, subnet, network security group, and public IP addresses.
261+
262+
## Troubleshooting
263+
264+
In this section you learn how to troubleshoot connectivity, operational, and cluster creation issues for a cluster that is deployed into your [Virtual Network](/azure/virtual-network/virtual-networks-overview).
265+
266+
### Access issues
267+
268+
If you have an issue while accessing cluster using the public (cluster.region.kusto.windows.net) or private (private-cluster.region.kusto.windows.net) endpoint and you suspect it's related to virtual network setup, perform the following steps to troubleshoot the issue.
269+
270+
#### Check TCP connectivity
271+
272+
The first step includes checking TCP connectivity using Windows or Linux OS.
273+
274+
# [Windows](#tab/windows)
275+
276+
1. Download [TCping](https://www.elifulkerson.com/projects/tcping.php) to the machine connecting to the cluster.
277+
2. Ping the destination from the source machine by using the following command:
278+
279+
```cmd
280+
C:\> tcping -t yourcluster.kusto.windows.net 443
281+
282+
** Pinging continuously. Press control-c to stop **
283+
284+
Probing 1.2.3.4:443/tcp - Port is open - time=100.00ms
285+
```
286+
287+
# [Linux](#tab/linux)
288+
289+
1. Install *netcat* in the machine connecting to the cluster
290+
291+
```bash
292+
$ apt-get install netcat
293+
```
294+
295+
2. Ping the destination from the source machine by using the following command:
296+
297+
```bash
298+
$ netcat -z -v yourcluster.kusto.windows.net 443
299+
300+
Connection to yourcluster.kusto.windows.net 443 port [tcp/https] succeeded!
301+
```
302+
---
303+
304+
If the test isn't successful, proceed with the following steps. If the test is successful, the issue isn't due to a TCP connectivity issue. Go to [operational issues](#cluster-creation-and-operations-issues) to troubleshoot further.
305+
306+
#### Check the Network Security Group (NSG)
307+
308+
Check that the [Network Security Group](/azure/virtual-network/security-overview) (NSG) attached to the cluster's subnet, has an inbound rule that allows access from the client machine's IP for port 443.
309+
310+
#### Check route table
311+
312+
If the cluster's subnet has force-tunneling setup to firewall (subnet with a [route table](/azure/virtual-network/virtual-networks-udr-overview) that contains the default route '0.0.0.0/0'), make sure that the machine IP address has a route with [next hop type](/azure/virtual-network/virtual-networks-udr-overview) to VirtualNetwork/Internet. This is required to prevent asymmetric route issues.
313+
314+
### Ingestion issues
315+
316+
If you're experiencing ingestion issues and you suspect it's related to virtual network setup, perform the following steps.
317+
318+
#### Check ingestion health
319+
320+
Check that the [cluster ingestion metrics](/azure/data-explorer/using-metrics#ingestion-health-and-performance-metrics) indicate a healthy state.
321+
322+
#### Check security rules on data source resources
323+
324+
If the metrics indicate that no events were processed from the data source (*Events processed* (for Event/IoT Hubs) metric), make sure that the data source resources (Event Hub or Storage) allow access from cluster's subnet in the firewall rules or service endpoints.
325+
326+
#### Check security rules configured on cluster's subnet
327+
328+
Make sure cluster's subnet has NSG, UDR, and firewall rules are properly configured. In addition, test network connectivity for all dependent endpoints.
329+
330+
### Cluster creation and operations issues
331+
332+
If you're experiencing cluster creation or operation issues and you suspect it's related to virtual network setup, follow these steps to troubleshoot the issue.
333+
334+
#### Diagnose the virtual network with the REST API
335+
336+
The [ARMClient](https://chocolatey.org/packages/ARMClient) is used to call the REST API using PowerShell.
337+
338+
1. Log in with ARMClient
339+
340+
```powerShell
341+
armclient login
342+
```
343+
344+
1. Invoke diagnose operation
345+
346+
```powershell
347+
$subscriptionId = '<subscription id>'
348+
$clusterName = '<name of cluster>'
349+
$resourceGroupName = '<resource group name>'
350+
$apiversion = '2019-11-09'
351+
352+
armclient post "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Kusto/clusters/$clusterName/diagnoseVirtualNetwork?api-version=$apiversion" -verbose
353+
```
354+
355+
1. Check the response
356+
357+
```powershell
358+
HTTP/1.1 202 Accepted
359+
...
360+
Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operation-id}?api-version=2019-11-09
361+
...
362+
```
363+
364+
1. Wait for operation completion
365+
366+
```powershell
367+
armclient get https://management.azure.com/subscriptions/$subscriptionId/providers/Microsoft.Kusto/locations/{location}/operationResults/{operation-id}?api-version=2019-11-09
368+
369+
{
370+
"id": "/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationresults/{operation-id}",
371+
"name": "{operation-name}",
372+
"status": "[Running/Failed/Completed]",
373+
"startTime": "{start-time}",
374+
"endTime": "{end-time}",
375+
"properties": {...}
376+
}
377+
```
378+
379+
Wait until the *status* property shows *Completed*, then the *properties* field should show:
380+
381+
```powershell
382+
{
383+
"id": "/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationresults/{operation-id}",
384+
"name": "{operation-name}",
385+
"status": "Completed",
386+
"startTime": "{start-time}",
387+
"endTime": "{end-time}",
388+
"properties": {
389+
"Findings": [...]
390+
}
391+
}
392+
```
393+
394+
If the *Findings* property shows an empty result, it means that all network tests passed and no connections are broken. If it shows an error as follows: *Outbound dependency '{dependencyName}:{port}' might be not satisfied (Outbound)*, the cluster can't reach the dependent service endpoints. Proceed with the following steps to troubleshoot.
395+
396+
#### Check Network Security Group (NSG)
397+
398+
Make sure that the [Network Security Group](/azure/virtual-network/security-overview) is configured properly per the instructions in [Dependencies for VNet deployment](/azure/data-explorer/vnet-deployment#dependencies-for-vnet-deployment)
399+
400+
#### Check route table
401+
402+
If the cluster's subnet has force-tunneling set up to firewall (subnet with a [route table](/azure/virtual-network/virtual-networks-udr-overview) that contains the default route '0.0.0.0/0') make sure that the [management IP addresses](#azure-data-explorer-management-ip-addresses) and [health monitoring IP addresses](#health-monitoring-addresses) have a route with [next hop type](/azure/virtual-network/virtual-networks-udr-overview##next-hop-types-across-azure-tools) *Internet*, and [source address prefix](/azure/virtual-network/virtual-networks-udr-overview#how-azure-selects-a-route) to *'management-ip/32'* and *'health-monitoring-ip/32'*. This is required to prevent asymmetric route issues.
403+
404+
#### Check firewall rules
405+
406+
If you force tunnel subnet outbound traffic to a firewall, make sure all dependencies FQDN (for example, *.blob.core.windows.net*) are allowed in the firewall configuration as described in [securing outbound traffic with firewall](/azure/data-explorer/vnet-deployment#securing-outbound-traffic-with-firewall).

0 commit comments

Comments
 (0)