Kopiranje datoteka pada kad se VPN poveže: SMB višekanalnost
Kopija čeka svoj najsporiji kanal, pa ispravan test propusnosti skriva uzrok. Potvrdite kanal tunela, izvadite ga iz SMB-a, pa izmerite oba puta.
Kopiranje datoteke između dve Windows mašine je brzo dok se obe ne pridruže istom VPN-u, a onda se ruši, iako test propusnosti preko istog para još uvek prijavljuje skoro punu brzinu linije. Ta razlika je dijagnoza: veza je u redu i nešto bira lošiji put za samo prenošenje. To nešto je obično SMB3 višekanalnost, koja radi tačno ono za šta je napravljena. Izvadite dodatni kanal iz jednačine i kopija se vraća na fizičku vezu.
Simptom čeka svoj najsporiji kanal
Višekanalnost dopušta jednoj SMB sesiji da koristi nekoliko TCP veza, po jednu za svaki odgovarajući par adresa između klijenta i servera. Kad su obe mašine na LAN-u i na istom tunelu, Windows može da upari LAN adrese sa adresama tunela i oba para smatra upotrebljivim. Sesija na kraju ima više kanala nego što fizičkoj vezi treba, a jedan od njih je mnogo sporiji.
To ne pada. Ono čeka, jer sesija ne može da završi brže od svog najsporijeg kanala.
Zato test propusnosti može da izgleda ispravno dok kopija puzi: merenje jednog toka može da izabere jedan put, a prenošenje je bilo raspoređeno na dva. Pročitajte listu kanala pre nego što promenite bilo koje podešavanje adaptera, i čitajte je dok kopija još traje, jer neaktivna sesija ne pokazuje ništa. Ono što zapišete treba da imenuje interfejs iza svakog kanala, a ne samo koliko je rezultat delovao sporo.
Potvrdite da postoji drugi kanal
Dve cmdlet naredbe odgovaraju na pitanje direktno. Lista veza pokazuje kanale u upotrebi, a sažetak sesije pokazuje samu vezu. Pokrenite obe tokom spore kopije.
Get-SmbMultichannelConnection
Get-SmbConnectionTražite više od jednog reda označenog kao izabran za isti server, zatim razrešite adresu klijenta u sumnjivom redu. Ako ta adresa pripada adapteru tunela, drugi put je stvaran i potvrđen. Ako svaki red pripada fizičkom interfejsu, višekanalnost nije vaš problem i kopija je spora iz nepovezanog razloga. Uradite tu potvrdu prvo, jer je popravka dovoljno ometajuća da zasluži minut dokaza.
Get-NetIPAddress -IPAddress 10.20.30.44Adrese su ovde zamenske. Zamenite ih onim što prijavljuje vaš sopstveni izlaz, jer kopiranje adrese sa bloga je način na koji radna naredba postaje zbunjujuća poruka o grešci.
Izvadite tunel iz SMB-a, pa merite ponovo
Isključivanje višekanalnosti je najbrži način da potvrdite dijagnozu i reverzibilno je. Primenite klijentsko podešavanje na mašini koja kopira, a serversko na mašini koja hostuje deljeni resurs, jer bilo koja strana sama može da održi dodatni kanal živim. Promena važi za nove veze, a ne za postojeće, pa otvorena sesija je preživljava. Ponovo pokrenite obe mašine ili barem zatvorite svaki handle prema deljenom resursu pre nego što bilo šta izmerite.
Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -ForcePotvrdite novo stanje, pa pogledajte šta server sada oglašava klijentima.
Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *Interfejs tunela treba da ispadne sa tog oglašenog spiska. Ako ne ispadne, podešavanje je sletelo na pogrešan kraj ili je stara sesija još otvorena. Ako deljenje datoteka jednostavno ne sme da koristi tunel, umesto toga odvežite serversku komponentu sa tog adaptera, što tunel ostavlja upotrebljivim za svaku drugu uslugu.
Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_serverPreferirajte LAN put bez pretvaranja da briše kanale
Metrika interfejsa govori Windowsu koji put da preferira za nove veze. Ona ne uklanja kanal koji je višekanalnost već odlučila da otvori. Podizanje metrike tunela se ipak isplati, jer drži nepovezani saobraćaj dalje od sporog puta i čini preferiranu rutu predvidljivom, ali to je guranje, a ne filter.
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000Kopirajte alias iz tog izlaza umesto da ga kucate, jer neke instalacije lokalizuju naziv adaptera i engleski niz se neće poklopiti.
Zatim ponovo izmerite oba broja: kopiranje datoteke i test propusnosti preko istog para. Ako se kopija oporavi dok test propusnosti nikada nije bio spor, višekanalnost je bila uzrok i možete da prestanete. Ako se oba sruše, tunel je usko grlo a višekanalnost ga je samo pojačala. Ako kopija ostane spora dok oba puta izgledaju ispravno, preostali problem živi u deljenom resursu, skladištu ili drajveru filtera, što je druga istraga.