Konfigurera paketinsamling för VPN-gatewayer
Anslut och prestandarelaterade problem är ofta komplexa. Det kan ta mycket tid och ansträngning att bara begränsa orsaken till problemet. Paketinsamling kan hjälpa dig att begränsa omfånget för ett problem till vissa delar av nätverket. Det kan hjälpa dig att avgöra om problemet finns på kundsidan av nätverket, Azure-sidan av nätverket eller någonstans däremellan. När du har begränsat problemet är det mer effektivt att felsöka och vidta åtgärder.
Det finns några vanliga verktyg för paketinsamling. Det kan vara besvärligt att få relevanta paketinsamlingar med dessa verktyg, särskilt i scenarier med hög volymtrafik. De filtreringsfunktioner som tillhandahålls av Azure VPN Gateway-paketinsamling är en stor differentiering. Du kan använda VPN Gateway-paketinsamling tillsammans med vanliga paketinsamlingsverktyg.
Om paketinsamling för VPN Gateway
Du kan köra VPN Gateway-paketinsamling på gatewayen eller på en specifik anslutning, beroende på dina behov. Du kan också köra paketinsamling på flera tunnlar samtidigt. Du kan samla in enkelriktad eller dubbelriktad trafik, IKE- och ESP-trafik och inre paket tillsammans med filtrering på en VPN-gateway.
Det är bra att använda ett filter med fem tupplar (källundernät, målundernät, källport, målport, protokoll) och TCP-flaggor (SYN, ACK, FIN, URG, PSH, RST) när du isolerar problem i högvolymstrafik.
Följande exempel på JSON och ett JSON-schema ger förklaringar av varje egenskap. Här följer några begränsningar att tänka på när du kör paketinsamlingar:
- I schemat som visas här är filtret en matris, men för närvarande kan endast ett filter användas i taget.
- Du kan inte köra flera gatewayomfattande paketinsamlingar samtidigt.
- Du kan inte köra flera paketinsamlingar på en enda anslutning samtidigt. Du kan köra flera paketinsamlingar på olika anslutningar samtidigt.
- Högst fem paketinsamlingar kan köras parallellt per gateway. Dessa paketinsamlingar kan vara en kombination av gatewayomfattande paketinsamlingar och paketinsamlingar per anslutning.
- Enheten för MaxPacketBufferSize är byte och MaxFileSize är megabyte
Kommentar
Ange alternativet CaptureSingleDirectionTrafficOnly till false om du vill samla in både inre och yttre paket.
Exempel på JSON
{
"TracingFlags": 11,
"MaxPacketBufferSize": 120,
"MaxFileSize": 200,
"Filters": [
{
"SourceSubnets": [
"10.1.0.0/24"
],
"DestinationSubnets": [
"10.1.1.0/24"
],
"SourcePort": [
500
],
"DestinationPort": [
4500
],
"Protocol": [
6
],
"TcpFlags": 16,
"CaptureSingleDirectionTrafficOnly": true
}
]
}
JSON-schema
{
"type": "object",
"title": "The Root Schema",
"description": "The root schema input JSON filter for packet capture",
"default": {},
"additionalProperties": true,
"required": [
"TracingFlags",
"MaxPacketBufferSize",
"MaxFileSize",
"Filters"
],
"properties": {
"TracingFlags": {
"$id": "#/properties/TracingFlags",
"type": "integer",
"title": "The Tracingflags Schema",
"description": "Tracing flags that customer can pass to define which packets are to be captured. Supported values are CaptureESP = 1, CaptureIKE = 2, CaptureOVPN = 8. The final value is OR of the bits.",
"default": 11,
"examples": [
11
]
},
"MaxPacketBufferSize": {
"$id": "#/properties/MaxPacketBufferSize",
"type": "integer",
"title": "The Maxpacketbuffersize Schema",
"description": "Maximum buffer size of each packet. The capture will only contain contents of each packet truncated to this size.",
"default": 120,
"examples": [
120
]
},
"MaxFileSize": {
"$id": "#/properties/MaxFileSize",
"type": "integer",
"title": "The Maxfilesize Schema",
"description": "Maximum file size of the packet capture file. It is a circular buffer.",
"default": 100,
"examples": [
100
]
},
"Filters": {
"$id": "#/properties/Filters",
"type": "array",
"title": "The Filters Schema",
"description": "An array of filters that can be passed to filter inner ESP traffic.",
"default": [],
"examples": [
[
{
"Protocol": [
6
],
"CaptureSingleDirectionTrafficOnly": true,
"SourcePort": [
500
],
"DestinationPort": [
4500
],
"TcpFlags": 16,
"SourceSubnets": [
"10.1.0.0/24"
],
"DestinationSubnets": [
"10.1.1.0/24"
]
}
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items",
"type": "object",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"SourcePort": [
500
],
"DestinationPort": [
4500
],
"TcpFlags": 16,
"SourceSubnets": [
"10.1.0.0/24"
],
"DestinationSubnets": [
"10.1.1.0/24"
],
"Protocol": [
6
],
"CaptureSingleDirectionTrafficOnly": true
}
],
"additionalProperties": true,
"required": [
"SourceSubnets",
"DestinationSubnets",
"SourcePort",
"DestinationPort",
"Protocol",
"TcpFlags",
"CaptureSingleDirectionTrafficOnly"
],
"properties": {
"SourceSubnets": {
"$id": "#/properties/Filters/items/properties/SourceSubnets",
"type": "array",
"title": "The Sourcesubnets Schema",
"description": "An array of source subnets that need to match the Source IP address of a packet. Packet can match any one value in the array of inputs.",
"default": [],
"examples": [
[
"10.1.0.0/24"
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items/properties/SourceSubnets/items",
"type": "string",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"10.1.0.0/24"
]
}
},
"DestinationSubnets": {
"$id": "#/properties/Filters/items/properties/DestinationSubnets",
"type": "array",
"title": "The Destinationsubnets Schema",
"description": "An array of destination subnets that need to match the Destination IP address of a packet. Packet can match any one value in the array of inputs.",
"default": [],
"examples": [
[
"10.1.1.0/24"
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items/properties/DestinationSubnets/items",
"type": "string",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"10.1.1.0/24"
]
}
},
"SourcePort": {
"$id": "#/properties/Filters/items/properties/SourcePort",
"type": "array",
"title": "The Sourceport Schema",
"description": "An array of source ports that need to match the Source port of a packet. Packet can match any one value in the array of inputs.",
"default": [],
"examples": [
[
500
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items/properties/SourcePort/items",
"type": "integer",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
500
]
}
},
"DestinationPort": {
"$id": "#/properties/Filters/items/properties/DestinationPort",
"type": "array",
"title": "The Destinationport Schema",
"description": "An array of destination ports that need to match the Destination port of a packet. Packet can match any one value in the array of inputs.",
"default": [],
"examples": [
[
4500
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items/properties/DestinationPort/items",
"type": "integer",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
4500
]
}
},
"Protocol": {
"$id": "#/properties/Filters/items/properties/Protocol",
"type": "array",
"title": "The Protocol Schema",
"description": "An array of protocols that need to match the Protocol of a packet. Packet can match any one value in the array of inputs.",
"default": [],
"examples": [
[
6
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/Filters/items/properties/Protocol/items",
"type": "integer",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
6
]
}
},
"TcpFlags": {
"$id": "#/properties/Filters/items/properties/TcpFlags",
"type": "integer",
"title": "The Tcpflags Schema",
"description": "A list of TCP flags. The TCP flags set on the packet must match any flag in the list of flags provided. FIN = 0x01,SYN = 0x02,RST = 0x04,PSH = 0x08,ACK = 0x10,URG = 0x20,ECE = 0x40,CWR = 0x80. An OR of flags can be provided.",
"default": 0,
"examples": [
16
]
},
"CaptureSingleDirectionTrafficOnly": {
"$id": "#/properties/Filters/items/properties/CaptureSingleDirectionTrafficOnly",
"type": "boolean",
"title": "The Capturesingledirectiontrafficonly Schema",
"description": "A flags which when set captures reverse traffic also.",
"default": false,
"examples": [
true
]
}
}
}
}
}
}
Viktiga överväganden
- Att köra paketinsamling kan påverka prestanda. Kom ihåg att stoppa paketinsamlingen när du inte behöver den.
- Den föreslagna minsta varaktigheten för paketinsamling är 600 sekunder. På grund av synkroniseringsproblem mellan flera komponenter på sökvägen kanske kortare paketinsamlingar inte ger fullständiga data.
- Datafiler för paketinsamling genereras i PCAP-format. Använd Wireshark eller andra vanliga program för att öppna PCAP-filer.
- Paketinsamlingar stöds inte på principbaserade gatewayer.
- Den maximala filstorleken för paketinsamlingsdatafiler är 500 MB.
- Om parametern
SASurl
inte är korrekt konfigurerad kan spårningen misslyckas med lagringsfel. Exempel på hur du genererar enSASurl
parameter korrekt finns i Stop-AzVirtualNetworkGatewayPacketCapture. - Om du konfigurerar en användardelegerings-SAS kontrollerar du att användarkontot har rätt RBAC-behörigheter för lagringskontot, till exempel Lagringsblobdataägare.
Paketinsamling – portalen
Det här avsnittet hjälper dig att starta och stoppa en paketinsamling med hjälp av Azure-portalen.
Starta paketinsamling – portalen
Du kan konfigurera paketinsamling i Azure-portalen.
Gå till din VPN-gateway i Azure-portalen.
Till vänster väljer du VPN Gateway Packet Capture för att öppna sidan Paketinsamling för VPN Gateway.
Välj Starta paketinsamling.
På sidan Start Packet Capture (Starta paketinsamling ) gör du alla nödvändiga justeringar. Välj inte alternativet "Avbilda endast trafik i enkel riktning" om du vill samla in både inre och yttre paket.
När du har konfigurerat inställningarna klickar du på Starta paketinsamling.
Stoppa paketinsamling – portalen
För att slutföra en paketinsamling måste du ange en giltig URL för SAS (eller signatur för delad åtkomst) med läs- och skrivåtkomst. När en paketinsamling stoppas skrivs utdata från paketinsamlingen till containern som refereras till av SAS-URL:en.
Hämta SAS-URL:en genom att gå till lagringskontot.
Gå till den container som du vill använda och högerklicka för att visa listrutan. Välj Generera SAS för att öppna sidan Generera SAS.
På sidan Generera SAS konfigurerar du dina inställningar. Kontrollera att du har beviljat läs- och skrivåtkomst.
Klicka på Generera SAS-token och URL.
SAS-token och SAS-URL:en genereras och visas under knappen omedelbart. Kopiera BLOB-SAS-URL:en.
Gå tillbaka till sidan Paketinsamling för VPN Gateway i Azure-portalen och klicka på knappen Stoppa paketinsamling .
Klistra in SAS-URL:en (från föregående steg) i textrutan Sas-url för utdata och klicka på Stoppa paketinsamling.
Filen för paketinsamling (pcap) lagras i det angivna kontot.
Kommentar
Undvik användning av Azure-genererade containrar, till exempel $logs
. Containrar som börjar med $
är vanligtvis interna containrar, och endast den tjänst som skapar dem bör använda dem. Används till exempel $logs
av Azure Storage-kontot för att skriva lagringskontorelaterade loggar.
Paketinsamling – PowerShell
I följande exempel visas PowerShell-kommandon som startar och stoppar paketinsamlingar. Mer information om parameteralternativ finns i Start-AzVirtualnetworkGatewayPacketCapture.
Krav
Data för paketinsamling måste loggas in på ett lagringskonto i din prenumeration. Se Skapa lagringskonto.
För att stoppa paketinsamlingen måste du generera
SASUrl
för ditt lagringskonto. Se skapa en SAS för användardelegering.
Starta paketinsamling för en VPN-gateway
Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName"
Du kan använda den valfria parametern -FilterData
för att använda ett filter.
Stoppa paketinsamling för en VPN-gateway
Stop-AzVirtualNetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName" -SasUrl "YourSASURL"
Mer information om parameteralternativ finns i Stop-AzVirtualNetworkGatewayPacketCapture.
Starta paketinsamling för en VPN-gatewayanslutning
Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName"
Du kan använda den valfria parametern -FilterData
för att använda ett filter.
Stoppa paketinsamling på en VPN-gatewayanslutning
Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName" -SasUrl "YourSASURL"
Mer information om parameteralternativ finns i Stop-AzVirtualNetworkGateway Anslut ionPacketCapture.
Nästa steg
Mer information om VPN Gateway finns i Vad är VPN Gateway?