Verifiera VPN-dataflöde till ett virtuellt nätverk
Med en VPN-gatewayanslutning kan du upprätta en säker, lokal anslutning mellan ditt virtuella nätverk i Azure och din lokala IT-infrastruktur.
Den här artikeln visar hur du verifierar nätverkets dataflöde från de lokala resurserna till en virtuell Azure-dator (VM).
Kommentar
Den här artikeln är avsedd att hjälpa dig att diagnostisera och åtgärda vanliga problem. Kontakta supporten om du inte kan lösa problemet med hjälp av följande information.
Översikt
VPN-gatewayanslutningen omfattar följande komponenter:
- Lokal VPN-enhet (Visa en lista över verifierade VPN-enheter.)
- Offentligt Internet
- Azure VPN-gateway
- Azure VM
Följande diagram visar den logiska anslutningen för ett lokalt nätverk till ett virtuellt Azure-nätverk via VPN.
Beräkna den maximala förväntade ingressen/utgående
- Fastställa programmets krav på baslinjedataflöde.
- Fastställa dataflödesgränserna för din Azure VPN-gateway. Mer hjälp finns i avsnittet "Gateway-SKU:er" i Om VPN Gateway.
- Fastställa vägledningen för dataflöde för virtuella Azure-datorer för din VM-storlek.
- Fastställ bandbredden för internetleverantören (ISP).
- Beräkna ditt förväntade dataflöde genom att ta minst bandbredd för den virtuella datorn, VPN Gateway eller ISP. som mäts i Megabit per sekund (/) dividerat med åtta (8). Den här beräkningen ger dig Megabyte per sekund.
Om ditt beräknade dataflöde inte uppfyller programmets grundläggande dataflödeskrav måste du öka bandbredden för den resurs som du identifierade som flaskhalsen. Information om hur du ändrar storlek på en Azure VPN Gateway finns i Ändra en gateway-SKU. Information om hur du ändrar storlek på en virtuell dator finns i Ändra storlek på en virtuell dator. Om du inte har den förväntade Internetbandbredden kan du även kontakta internetleverantören.
Kommentar
VPN Gateway-dataflödet är en mängd av alla anslutningar från plats till plats\VNET-till-VNET eller punkt-till-plats-anslutningar.
Verifiera nätverkets dataflöde med hjälp av prestandaverktyg
Den här valideringen bör utföras under icke-piptimmar, eftersom mättnad i VPN-tunneldataflöde under testningen inte ger korrekta resultat.
Verktyget vi använder för det här testet är iPerf, som fungerar på både Windows och Linux och har både klient- och serverlägen. Den är begränsad till 3 Gbit/s för virtuella Windows-datorer.
Det här verktyget utför inga läs-/skrivåtgärder på disken. Den producerar endast självgenererad TCP-trafik från ena änden till den andra. Den genererar statistik baserat på experimentering som mäter den tillgängliga bandbredden mellan klient- och servernoder. När du testar mellan två noder fungerar en nod som server och den andra noden fungerar som en klient. När det här testet har slutförts rekommenderar vi att du ändrar nodernas roller för att testa både överförings- och nedladdningsdataflödet på båda noderna.
Ladda ned iPerf
Ladda ned iPerf. Mer information finns i iPerf-dokumentationen.
Kommentar
De produkter från tredje part som beskrivs i den här artikeln tillverkas av företag som är oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.
Kör iPerf (iperf3.exe)
Aktivera en NSG/ACL-regel som tillåter trafik (för testning av offentliga IP-adresser på en virtuell Azure-dator).
Aktivera ett brandväggsfel för port 5001 på båda noderna.
Windows: Kör följande kommando som administratör:
netsh advfirewall firewall add rule name="Open Port 5001" dir=in action=allow protocol=TCP localport=5001
Om du vill ta bort regeln när testningen är klar kör du det här kommandot:
netsh advfirewall firewall delete rule name="Open Port 5001" protocol=TCP localport=5001
Azure Linux: Azure Linux-avbildningar har tillåtande brandväggar. Om ett program lyssnar på en port tillåts trafiken. Anpassade avbildningar som skyddas kan behöva portar som öppnas explicit. Vanliga brandväggar på Linux OS-nivå är
iptables
,ufw
ellerfirewalld
.På servernoden ändrar du till katalogen där iperf3.exe extraheras. Kör sedan iPerf i serverläge och ställ in det på att lyssna på port 5001 som följande kommandon:
cd c:\iperf-3.1.2-win65 iperf3.exe -s -p 5001
Kommentar
Port 5001 är anpassningsbar för att ta hänsyn till särskilda brandväggsbegränsningar i din miljö.
På klientnoden ändrar du till katalogen där iperf-verktyget extraheras och kör sedan följande kommando:
iperf3.exe -c <IP of the iperf Server> -t 30 -p 5001 -P 32
Klienten dirigerar 30 sekunders trafik på port 5001 till servern. Flaggan "-P" anger att vi gör 32 samtidiga anslutningar till servernoden.
Följande skärm visar utdata från det här exemplet:
(VALFRITT) Om du vill bevara testresultaten kör du det här kommandot:
iperf3.exe -c IPofTheServerToReach -t 30 -p 5001 -P 32 >> output.txt
När du har slutfört föregående steg kör du samma steg med rollerna omvända, så att servernoden nu blir klientnoden och vice versa.
Kommentar
Iperf är inte det enda verktyget. NTTTCP är en alternativ lösning för testning.
Testa virtuella datorer som kör Windows
Läs in Latte.exe på de virtuella datorerna
Ladda ned den senaste versionen av Latte.exe
Överväg att placera Latte.exe i en separat mapp, till exempel c:\tools
Tillåt Latte.exe via Windows-brandväggen
På mottagaren skapar du en Tillåt-regel i Windows-brandväggen så att Latte.exe trafik kan tas emot. Det är enklast att tillåta hela Latte.exe programmet med namn i stället för att tillåta specifika inkommande TCP-portar.
Tillåt Latte.exe via Windows-brandväggen så här
netsh advfirewall firewall add rule program=<PATH>\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
Om du till exempel kopierade latte.exe till mappen "c:\tools" skulle det här vara kommandot
netsh advfirewall firewall add rule program=c:\tools\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
Köra svarstidstester
Starta latte.exe på MOTTAGAREN (kör från CMD, inte från PowerShell):
latte -a <Receiver IP address>:<port> -i <iterations>
Cirka 65 000 iterationer är tillräckligt långa för att returnera representativa resultat.
Alla tillgängliga portnummer är bra.
Om den virtuella datorn har en IP-adress på 10.0.0.4 skulle det se ut så här
latte -c -a 10.0.0.4:5005 -i 65100
Starta latte.exe på SENDER (kör från CMD, inte från PowerShell)
latte -c -a <Receiver IP address>:<port> -i <iterations>
Det resulterande kommandot är detsamma som på mottagaren förutom med tillägget av "-c" för att indikera att detta är "klienten" eller avsändaren
latte -c -a 10.0.0.4:5005 -i 65100
Vänta på resultatet. Beroende på hur långt ifrån varandra de virtuella datorerna är kan det ta några minuter att slutföra. Överväg att börja med färre iterationer för att testa för framgång innan du kör längre tester.
Testa virtuella datorer som kör Linux
Använd SockPerf för att testa virtuella datorer.
Installera SockPerf på de virtuella datorerna
På de virtuella Linux-datorerna (både SENDER och RECEIVER) kör du följande kommandon för att förbereda SockPerf på dina virtuella datorer:
RHEL – Installera GIT och andra användbara verktyg
sudo yum install gcc -y -q
sudo yum install git -y -q
sudo yum install gcc-c++ -y
sudo yum install ncurses-devel -y
sudo yum install -y automake
Ubuntu – Installera GIT och andra användbara verktyg
sudo apt-get install build-essential -y
sudo apt-get install git -y -q
sudo apt-get install -y autotools-dev
sudo apt-get install -y automake
Bash - alla
Från bash-kommandoraden (förutsätter att git är installerat)
git clone https://github.com/mellanox/sockperf
cd sockperf/
./autogen.sh
./configure --prefix=
Make är långsammare, kan ta flera minuter
make
Gör installationen snabb
sudo make install
Kör SockPerf på de virtuella datorerna
Exempelkommandon efter installationen. Server/mottagare – förutsätter att serverns IP-adress är 10.0.0.4
sudo sockperf sr --tcp -i 10.0.0.4 -p 12345 --full-rtt
Klient – förutsätter att serverns IP-adress är 10.0.0.4
sockperf ping-pong -i 10.0.0.4 --tcp -m 1400 -t 101 -p 12345 --full-rtt
Kommentar
Kontrollera att det inte finns några mellanliggande hopp (t.ex. virtuell installation) under dataflödestestningen mellan den virtuella datorn och gatewayen. Om det finns dåliga resultat (i termer av övergripande dataflöde) som kommer från iPERF/NTTTCP-testerna ovan kan du läsa den här artikeln för att förstå de viktigaste faktorerna bakom de möjliga rotorsakerna till problemet:
I synnerhet hjälper analys av spårningar av paketinsamling (Wireshark/Network Monitor) som samlats in parallellt från klient och server under dessa tester i utvärderingarna av dåliga prestanda. Dessa spårningar kan omfatta paketförlust, hög svarstid, MTU-storlek. fragmentering, TCP 0-fönster, out of order-fragment och så vidare.
Åtgärda problem med långsam filkopiering
Även om det övergripande dataflödet som utvärderades med föregående steg (iPERF/NTTTCP/osv.) var bra kan det uppstå långsam filhantering när du antingen använder Utforskaren eller drar och släpper genom en RDP-session. Det här problemet beror normalt på en eller båda av följande faktorer:
Filkopieringsprogram, till exempel Utforskaren och RDP, använder inte flera trådar när du kopierar filer. För bättre prestanda använder du ett program för flertrådad filkopiering, till exempel Richcopy , för att kopiera filer med hjälp av 16 eller 32 trådar. Om du vill ändra trådnumret för filkopiering i Richcopy klickar du på Alternativ för åtgärdskopiering>>Filkopiering.
Kommentar
Alla program fungerar inte likadant och alla program/processer använder inte alla trådar. Om du kör testet kan du se att vissa trådar är tomma och inte ger korrekta dataflödesresultat. Om du vill kontrollera programmets filöverföringsprestanda använder du flera trådar genom att öka antalet trådar i följd eller minska för att hitta det optimala dataflödet för programmet eller filöverföringen.
Otillräcklig läs-/skrivhastighet för virtuell datordisk. Mer information finns i Felsökning av Azure Storage.
Externt gränssnitt för lokal enhet
Nämnde undernäten för lokala intervall som du vill att Azure ska nå via VPN på lokal nätverksgateway. Definiera VNET-adressutrymmet i Azure samtidigt till den lokala enheten.
Routningsbaserad gateway: Principen eller trafikväljaren för routningsbaserade VPN:er konfigureras som valfri (eller jokertecken).
Principbaserad gateway: Principbaserade VPN krypterar och dirigerar paket via IPsec-tunnlar baserat på kombinationerna av adressprefix mellan ditt lokala nätverk och det virtuella Azure-nätverket. Principen (eller trafikväljaren) definieras vanligtvis som en åtkomstlista i VPN-konfigurationen.
UsePolicyBasedTrafficSelector-anslutningar : ("UsePolicyBasedTrafficSelectors" för att $True på en anslutning konfigurerar Azure VPN-gatewayen för att ansluta till en principbaserad VPN-brandvägg lokalt. Om du aktiverar PolicyBasedTrafficSelectors måste du se till att VPN-enheten har de matchande trafikväljarna definierade med alla kombinationer av prefixen för ditt lokala nätverk (lokal nätverksgateway) till och från prefixen för virtuella Azure-nätverk i stället för valfria.
Olämplig konfiguration kan leda till frekventa frånkopplingar i tunneln, paketförluster, dåligt dataflöde och svarstid.
Kontrollera svarstiden
Du kan kontrollera svarstiden med hjälp av följande verktyg:
- WinMTR
- TCPTraceroute
ping
ochpsping
(Dessa verktyg kan ge en bra uppskattning av RTT, men de kan inte användas i alla fall.)
Om du ser en hög svarstidstopp vid något av hoppen innan du anger MS Network-stamnätet kan du fortsätta med ytterligare undersökningar med internetleverantören.
Om en stor, ovanlig svarstidstoppar märks från hopp inom "msn.net" kontaktar du MS-supporten för ytterligare undersökningar.
Nästa steg
Mer information eller hjälp finns på följande länk: