Pakketopname configureren voor VPN-gateways
Verbinding maken iviteit en prestatieproblemen zijn vaak complex. Het kan veel tijd en moeite kosten om de oorzaak van het probleem te beperken. Met pakketopname kunt u het bereik van een probleem beperken tot bepaalde onderdelen van het netwerk. U kunt hiermee bepalen of het probleem zich aan de klantzijde van het netwerk, de Azure-kant van het netwerk of ergens daartussen bevindt. Nadat u het probleem hebt beperkt, is het efficiënter om fouten op te sporen en actie te ondernemen.
Er zijn enkele veelgebruikte hulpprogramma's voor pakketopname. Het verkrijgen van relevante pakketopnamen met deze hulpprogramma's kan lastig zijn, met name in scenario's met veel verkeer. De filtermogelijkheden die worden geboden door pakketopname van Azure VPN Gateway zijn een belangrijke differentiator. U kunt VPN Gateway-pakketopname gebruiken samen met veelgebruikte hulpprogramma's voor pakketopname.
Pakketopname voor VPN Gateway
U kunt VPN Gateway-pakketopname uitvoeren op de gateway of op een specifieke verbinding, afhankelijk van uw behoeften. U kunt ook pakketopname uitvoeren op meerdere tunnels tegelijk. U kunt éénrichtings- of bidirectioneel verkeer, IKE- en ESP-verkeer en interne pakketten vastleggen, samen met filteren op een VPN-gateway.
Het is handig om een filter met vijf tuples (bronsubnet, doelsubnet, bronpoort, doelpoort, protocol) en TCP-vlaggen (SYN, ACK, FIN, URG, PSH, RST) te gebruiken wanneer u problemen met veel volumeverkeer isoleert.
De volgende voorbeelden van JSON en een JSON-schema bevatten uitleg van elke eigenschap. Hier volgen enkele beperkingen waarmee u rekening moet houden wanneer u pakketopnamen uitvoert:
- In het schema dat hier wordt weergegeven, is het filter een matrix, maar momenteel kan slechts één filter tegelijk worden gebruikt.
- U kunt niet tegelijkertijd meerdere pakketopnamen voor de hele gateway uitvoeren.
- U kunt niet meerdere pakketopnamen tegelijkertijd uitvoeren op één verbinding. U kunt meerdere pakketopnamen tegelijkertijd uitvoeren op verschillende verbindingen.
- Er kunnen maximaal vijf pakketopnamen parallel per gateway worden uitgevoerd. Deze pakketopnamen kunnen een combinatie zijn van pakketopnamen voor de hele gateway en pakketopnamen per verbinding.
- De eenheid voor MaxPacketBufferSize is bytes en MaxFileSize is megabytes
Notitie
Stel de optie CaptureSingleDirectionTrafficOnly in op false als u zowel interne als buitenste pakketten wilt vastleggen.
Voorbeeld van 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
]
}
}
}
}
}
}
Belangrijkste overwegingen
- Het uitvoeren van pakketopname kan van invloed zijn op de prestaties. Vergeet niet om de pakketopname te stoppen wanneer u deze niet nodig hebt.
- De voorgestelde minimale duur van pakketopname is 600 seconden. Vanwege synchronisatieproblemen tussen meerdere onderdelen op het pad bieden kortere pakketopnamen mogelijk geen volledige gegevens.
- Gegevensbestanden voor pakketopname worden gegenereerd in PCAP-indeling. Gebruik Wireshark of andere veelgebruikte toepassingen om PCAP-bestanden te openen.
- Pakketopnamen worden niet ondersteund op gateways op basis van beleid.
- De maximale bestandsgrootte van gegevensbestanden voor pakketopname is 500 MB.
- Als de
SASurl
parameter niet juist is geconfigureerd, kan de tracering mislukken met opslagfouten. Zie Stop-AzVirtualNetworkGatewayPacketCapture voor voorbeelden van het correct genereren van eenSASurl
parameter. - Als u een door de gebruiker gedelegeerde SAS configureert, moet u ervoor zorgen dat aan het gebruikersaccount de juiste RBAC-machtigingen zijn verleend voor het opslagaccount, zoals eigenaar van opslagblobgegevens.
Pakketopname - portal
Deze sectie helpt u bij het starten en stoppen van een pakketopname met behulp van Azure Portal.
Pakketopname starten - portal
U kunt pakketopname instellen in Azure Portal.
Ga naar uw VPN-gateway in Azure Portal.
Selecteer aan de linkerkant VPN Gateway Packet Capture om de pagina VPN Gateway Packet Capture te openen.
Selecteer Pakketopname starten.
Breng de benodigde aanpassingen aan op de pagina Pakketopname starten. Selecteer niet de optie Alleen enkel richtingsverkeer vastleggen als u zowel interne als buitenste pakketten wilt vastleggen.
Nadat u de instellingen hebt geconfigureerd, klikt u op Pakketopname starten.
Pakketopname stoppen - portal
Als u een pakketopname wilt voltooien, moet u een geldige SAS-URL (of Shared Access Signature) opgeven met lees-/schrijftoegang. Wanneer een pakketopname wordt gestopt, wordt de uitvoer van de pakketopname naar de container geschreven waarnaar wordt verwezen door de SAS-URL.
Als u de SAS-URL wilt ophalen, gaat u naar het opslagaccount.
Ga naar de container die u wilt gebruiken en klik met de rechtermuisknop om de vervolgkeuzelijst weer te geven. Selecteer SAS genereren om de pagina SAS genereren te openen.
Configureer uw instellingen op de pagina SAS genereren. Zorg ervoor dat u lees- en schrijftoegang hebt verleend.
Klik op SAS-token en URL genereren.
Het SAS-token en de SAS-URL worden gegenereerd en worden direct onder de knop weergegeven. Kopieer de SAS-URL van blob.
Ga terug naar de pagina VPN Gateway Packet Capture in Azure Portal en klik op de knop Pakketopname stoppen.
Plak de SAS-URL (uit de vorige stap) in het tekstvak Uitvoer-SAS-URL en klik op Pakketopname stoppen.
Het pcap-bestand (pakketopname) wordt opgeslagen in het opgegeven account.
Notitie
Vermijd het gebruik van door Azure gegenereerde containers, zoals $logs
. Containers die beginnen met $
zijn doorgaans interne containers en alleen de service waarmee ze worden gemaakt, moeten ze gebruiken. Wordt bijvoorbeeld $logs
gebruikt door het Azure Storage-account voor het schrijven van logboeken met betrekking tot opslagaccounts.
Pakketopname - PowerShell
In de volgende voorbeelden ziet u PowerShell-opdrachten waarmee pakketopnamen worden gestart en gestopt. Zie Start-AzVirtualnetworkGatewayPacketCapture voor meer informatie over parameteropties.
Vereisten
Pakketopnamegegevens moeten worden aangemeld bij een opslagaccount in uw abonnement. Zie Opslagaccount maken.
Als u de pakketopname wilt stoppen, moet u het
SASUrl
voor uw opslagaccount genereren. Zie Een SAS voor gebruikersdelegering maken.
Pakketopname starten voor een VPN-gateway
Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName"
U kunt de optionele parameter -FilterData
gebruiken om een filter toe te passen.
Pakketopname stoppen voor een VPN-gateway
Stop-AzVirtualNetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName" -SasUrl "YourSASURL"
Zie Stop-AzVirtualNetworkGatewayPacketCapture voor meer informatie over parameteropties.
Pakketopname starten voor een VPN-gatewayverbinding
Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName"
U kunt de optionele parameter -FilterData
gebruiken om een filter toe te passen.
Pakketopname stoppen op een VPN-gatewayverbinding
Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName" -SasUrl "YourSASURL"
Zie Stop-AzVirtualNetworkGateway Verbinding maken ionPacketCapture voor meer informatie over parameteropties.
Volgende stappen
Zie Wat is VPN Gateway voor meer informatie over VPN Gateway ?