Skip to content

Commit ab65e26

Browse files
Merge pull request #184410 from duongau/erdebug
ExpressRoute debug ACL - added screenshots
2 parents 70bfd94 + 80cb7e7 commit ab65e26

File tree

6 files changed

+58
-8
lines changed

6 files changed

+58
-8
lines changed

articles/expressroute/expressroute-troubleshooting-expressroute-overview.md

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: 'Azure ExpressRoute: Verify Connectivity - Troubleshooting Guide'
3-
description: This page provides instructions on troubleshooting and validating end to end connectivity of an ExpressRoute circuit.
3+
description: This page provides instructions on troubleshooting and validating end-to-end connectivity of an ExpressRoute circuit.
44
services: expressroute
55
author: duongau
66

77
ms.service: expressroute
88
ms.topic: troubleshooting
9-
ms.date: 10/31/2019
9+
ms.date: 01/07/2022
1010
ms.author: duau
1111
ms.custom: seodec18, devx-track-azurepowershell
1212

@@ -23,7 +23,7 @@ This article helps you verify and troubleshoot ExpressRoute connectivity. Expres
2323
>
2424
2525

26-
The purpose of this document is to help user to identify if and where a connectivity issue exists. Thereby, to help seek support from the appropriate team to resolve an issue. If Microsoft support is needed to resolve an issue, open a support ticket with [Microsoft Support][Support].
26+
The purpose of this document is to help you identify if and where a connectivity issue exists. Thereby, to help seek support from the appropriate team to resolve an issue. If Microsoft support is needed to resolve an issue, open a support ticket with [Microsoft Support][Support].
2727

2828
> [!IMPORTANT]
2929
> This document is intended to help diagnosing and fixing simple issues. It is not intended to be a replacement for Microsoft support. Open a support ticket with [Microsoft Support][Support] if you are unable to solve the problem using the guidance provided.
@@ -65,6 +65,8 @@ The following are the logical steps, in troubleshooting ExpressRoute circuit:
6565

6666
* [Confirm the traffic flow](#confirm-the-traffic-flow)
6767

68+
* [Test private peering connectivity](#test-private-peering-connectivity)
69+
6870

6971
## Verify circuit provisioning and state
7072
Provisioning an ExpressRoute circuit establishes a redundant Layer 2 connections between CEs/PE-MSEEs (2)/(4) and MSEEs (5). For more information on how to create, modify, provision, and verify an ExpressRoute circuit, see the article [Create and modify an ExpressRoute circuit][CreateCircuit].
@@ -75,7 +77,7 @@ Provisioning an ExpressRoute circuit establishes a redundant Layer 2 connections
7577
>
7678
7779
### Verification via the Azure portal
78-
In the Azure portal, open the ExpressRoute circuit blade. In the ![3][3] section of the blade, the ExpressRoute essentials are listed as shown in the following screenshot:
80+
In the Azure portal, open the ExpressRoute circuit page. In the ![3][3] section of the page, the ExpressRoute essentials are listed as shown in the following screenshot:
7981

8082
![4][4]
8183

@@ -154,11 +156,11 @@ After the service provider has completed the provisioning the ExpressRoute circu
154156
> In IPVPN connectivity model, service providers handle the responsibility of configuring the peerings (layer 3 services). In such a model, after the service provider has configured a peering and if the peering is blank in the portal, try refreshing the circuit configuration using the refresh button on the portal. This operation will pull the current routing configuration from your circuit.
155157
>
156158
157-
In the Azure portal, status of an ExpressRoute circuit peering can be checked under the ExpressRoute circuit blade. In the ![3][3] section of the blade, the ExpressRoute peerings would be listed as shown in the following screenshot:
159+
In the Azure portal, status of an ExpressRoute circuit peering can be checked under the ExpressRoute circuit page. In the ![3][3] section of the page, the ExpressRoute peerings would be listed as shown in the following screenshot:
158160

159161
![5][5]
160162

161-
In the preceding example, as noted Azure private peering is provisioned, whereas Azure public and Microsoft peerings are not provisioned. A successfully provisioned peering context would also have the primary and secondary point-to-point subnets listed. The /30 subnets are used for the interface IP address of the MSEEs and CEs/PE-MSEEs. For the peerings that are provisioned, the listing also indicates who last modified the configuration.
163+
In the preceding example, as noted Azure private peering is provisioned, but Azure public and Microsoft peerings aren't provisioned. A successfully provisioned peering context would also have the primary and secondary point-to-point subnets listed. The /30 subnets are used for the interface IP address of the MSEEs and CEs/PE-MSEEs. For the peerings that are provisioned, the listing also indicates who last modified the configuration.
162164

163165
> [!NOTE]
164166
> If enabling a peering fails, check if the primary and secondary subnets assigned match the configuration on the linked CE/PE-MSEE. Also check if the correct *VlanId*, *AzureASN*, and *PeerASN* are used on MSEEs and if these values maps to the ones used on the linked CE/PE-MSEE. If MD5 hashing is chosen, the shared key should be same on MSEE and PE-MSEE/CE pair. Previously configured shared key would not be displayed for security reasons. Should you need to change any of these configuration on an MSEE router, refer to [Create and modify routing for an ExpressRoute circuit][CreatePeering].
@@ -212,7 +214,7 @@ $ckt = Get-AzExpressRouteCircuit -ResourceGroupName "Test-ER-RG" -Name "Test-ER-
212214
Get-AzExpressRouteCircuitPeeringConfig -Name "MicrosoftPeering" -ExpressRouteCircuit $ckt
213215
```
214216

215-
If a peering is not configured, there would be an error message. A sample response, when the stated peering (Azure Public peering in this example) is not configured within the circuit:
217+
If a peering isn't configured, there would be an error message. A sample response, when the stated peering (Azure Public peering in this example) isn't configured within the circuit:
216218

217219
```azurepowershell
218220
Get-AzExpressRouteCircuitPeeringConfig : Sequence contains no matching element
@@ -284,7 +286,7 @@ Path : 123##
284286
>
285287
286288

287-
The following example shows the response of the command for a peering that does not exist:
289+
The following example shows the response of the command for a peering that doesn't exist:
288290

289291
```azurepowershell
290292
Get-AzExpressRouteCircuitRouteTable : The BGP Peering AzurePublicPeering with Service Key ********************* is not found.
@@ -313,6 +315,54 @@ Get-AzExpressRouteCircuitRouteTable : The BGP Peering AzurePublicPeering with Se
313315
StatusCode: 400
314316
```
315317

318+
## Test private peering connectivity
319+
320+
Test your private peering connectivity by **counting** packets arriving and leaving the Microsoft edge of your ExpressRoute circuit, on the Microsoft Enterprise Edge (MSEE) devices. This diagnostic tool works by applying an Access Control List (ACL) to the MSEE to count the number of packets that hit specific ACL rules. Using this tool will allow you to confirm connectivity by answering the questions such as:
321+
322+
* Are my packets getting to Azure?
323+
* Are they getting back to on-prem?
324+
325+
### Run test
326+
1. To access this diagnostic tool, select **Diagnose and solve problems** from your ExpressRoute circuit in the Azure portal.
327+
328+
:::image type="content" source="./media/expressroute-troubleshooting-expressroute-overview/diagnose-problems.png" alt-text="Screenshot of diagnose and solve problem page from ExpressRoute circuit.":::
329+
330+
1. Select the **Connectivity issues** card under **Common problems**.
331+
332+
:::image type="content" source="./media/expressroute-troubleshooting-expressroute-overview/connectivity-issues.png" alt-text="Screenshot of connectivity issues option.":::
333+
334+
1. In the dropdown for *Tell us more about the problem you are experiencing*, select **Connectivity to Azure Private, Azure Public, or Dynamics 365 services.**
335+
336+
:::image type="content" source="./media/expressroute-troubleshooting-expressroute-overview/tell-us-more.png" alt-text="Screenshot of drop-down option for problem user is experiencing.":::
337+
338+
1. Scroll down to the **Test your private peering connectivity** section and expand it.
339+
340+
:::image type="content" source="./media/expressroute-troubleshooting-expressroute-overview/test-private-peering.png" alt-text="Screenshot of troubleshooting connectivity issues options.":::
341+
342+
1. Execute the [PsPing](https://docs.microsoft.com/sysinternals/downloads/psping) test from your on-premises IP address to your Azure IP address and keep it running during the connectivity test.
343+
344+
1. Fill out the fields of the form, making sure to enter the same on-premises and Azure IP addresses used in Step 5. Then select **Submit** and then wait for your results to load. Once your results are ready, review the information for interpreting them below.
345+
346+
:::image type="content" source="./media/expressroute-troubleshooting-expressroute-overview/form.png" alt-text="Screenshot of debug ACL form.":::
347+
348+
### Interpreting results
349+
Your test results for each MSEE device will look like the example below. You'll have two sets of results for the primary and secondary MSEE devices. Review the number of matches in and out and use the following scenarios to interpret the results:
350+
* **You see packet matches sent and received on both MSEEs:** This indicates healthy traffic inbound to and outbound from the MSEE on your circuit. If loss is occurring either on-premises or in Azure, it is happening downstream from the MSEE.
351+
* **If testing PsPing from on-premises to Azure *(received)* results show matches, but *sent* results show NO matches:** This indicates that traffic is getting inbound to Azure, but isn't returning to on-prem. Check for return-path routing issues (for example, are you advertising the appropriate prefixes to Azure? Is there a UDR overriding prefixes?).
352+
* **If testing PsPing from Azure to on-premises *(sent)* results show NO matches, but *(received)* results show matches:** This indicates that traffic is getting to on-premises, but isn't getting back. You should work with your provider to find out why traffic isn't being routed to Azure via your ExpressRoute circuit.
353+
* **One MSEE shows NO matches, while the other shows good matches:** This indicates that one MSEE isn't receiving or passing any traffic. It could be offline (for example, BGP/ARP down).
354+
355+
#### Example
356+
```
357+
src 10.0.0.0 dst 20.0.0.0 dstport 3389 (received): 120 matches
358+
src 20.0.0.0 srcport 3389 dst 10.0.0.0 (sent): 120 matches
359+
```
360+
This test result has the following properties:
361+
362+
* IP Port: 3389
363+
* On-prem IP Address CIDR: 10.0.0.0
364+
* Azure IP Address CIDR: 20.0.0.0
365+
316366
## Next Steps
317367
For more information or help, check out the following links:
318368

78.1 KB
Loading
40.4 KB
Loading
25 KB
Loading
40.6 KB
Loading
68.6 KB
Loading

0 commit comments

Comments
 (0)