Trasa VPN připnutá k indexu rozhraní se při opětovném připojení rozbije
Trasa navázaná na číslo adaptéru umírá, když se toto číslo změní. Zkontrolujte úložiště, přivažte prefix k profilu a potom se připojte v novém pořadí.
Trasa fungovala týdny a pak začala posílat provoz nikam, přičemž cíl zůstal nezměněný a nic se needitovalo. Změnilo se číslo: trasa vytvořená proti konkrétnímu indexu rozhraní odkazuje na adaptér, který po opětovném připojení už neexistuje, a cílový prefix dál ukazuje na infrastrukturu, která byla vyměněna. Přidání trvalosti k tomu příkazu nepomůže, protože problém nikdy nebyl v tom, zda trasa přežije restart. Řešením je přivázat záměr ke spojení, které změny adaptérů přežívá už z principu.
Zkontrolujte, na co trasa skutečně ukazuje
Začněte tím, že si přečtete záznam trasy a adaptéry vedle sebe. Trasa s dalším skokem na rozhraní VPN a indexem, který neodpovídá žádnému současnému adaptéru, je podpisem této závady; stejný prefix na jiném indexu je buď zbytek, nebo trasa, kterou skutečně chcete. Přečtěte si oba seznamy, než kterýkoli změníte, protože zajímavé je srovnání mezi číslem v trase a čísly, která právě existují. Pokud se index trasy v seznamu adaptérů objeví, index není váš problém a hledání se přesouvá k metrikám, zásadám nebo vzdálené straně. Pokud se neobjeví, není co dál diagnostikovat: trasa je přivázaná k infrastruktuře, která už neexistuje.
Get-NetRoute -DestinationPrefix '10.77.0.0/16' | Select-Object DestinationPrefix, NextHop, InterfaceIndex, Store
Get-NetAdapter | Where-Object InterfaceDescription -like '*VPN*' | Select-Object Name, InterfaceIndex, InterfaceDescription
Get-VpnConnection -Name 'Lab VPN' | Select-Object Name, ServerAddress, SplitTunneling
Sloupec Store rozlišuje záznam, který přetrvává restarty, od záznamu, který mizí s adaptérem, a tento rozdíl určuje, zda se závada zítra vrátí. Záznam v trvalém úložišti, který ukazuje na zmizelý index, je nejhorší případ, protože přežívá restarty, a přitom se nikdy s ničím neshoduje.
Přivažte prefix k profilu, ne k adaptéru
Nativní VPN ve Windows může nést vlastní seznam tras, takže spojení znovu použije správný adaptér, kdykoli se objeví. Trasa pak následuje profil namísto čísla, které jste jednou viděli, a žádný skript nemusí po každém vytáčení hádat index. Přidání prefixu je také vratné pomocí odpovídajícího příkazu pro odebrání, což udržuje změnu auditovatelnou. Prefix se ukládá se spojením namísto do spouštěcího skriptu, takže profil zkopírovaný jinému uživateli nese záměr s sebou.
Add-VpnConnectionRoute -ConnectionName 'Lab VPN' -DestinationPrefix '10.77.0.0/16' -PassThru
Referenční stránka Add-VpnConnectionRoute dokumentuje asociaci se spojením a rozsah telefonního seznamu je důležitý: profil pro jednoho uživatele a profil pro všechny uživatele jsou různé objekty. Tento mechanismus patří vlastnímu klientu VPN ve Windows, takže adaptér dodavatele spravovaný jeho vlastní službou může brát trasy z úplně jiného zdroje zásad.
Před přidáním nové trasy vyčistěte staré
Dvě trasy se stejným prefixem a různými vlastníky jsou horší než jedna špatná trasa, protože vítěz závisí na metrikách, které nikdo nezapsal. Prohlédněte si, co pro prefix už existuje, včetně záznamů v trvalém úložišti, a odstraňte jen to, co patří k neúspěšnému pokusu. Zbytek z předchozího návrhu je v této oblasti běžný, protože selhávající trasa obvykle nahradila něco, co fungovalo. Než cokoli odstraníte, poznamenejte si, které záznamy patří kterému spojení, a seznam si nechte v záznamu o změně.
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like '10.77.*'
Remove-NetRoute -DestinationPrefix '10.77.0.0/16' -NextHop '0.0.0.0' -Confirm:$false
Porovnávejte prefix, další skok, úložiště a vlastníka společně, místo abyste mazali vše, co vypadá podobně. Jiné spojení může legitimně záviset na části toho prostoru a plošné mazání promění úhlednou opravu v incident podpory.
Připojte se znovu v jiném pořadí
Reprodukujte podmínku, místo abyste doufali, že první pokus byl reprezentativní. Odpojte se, připojte se znovu a potvrďte zvolenou cestu ke stejnému vzdálenému zdroji, dokud je tunel aktivní; když je ve hře několik VPN, zvedněte je v jiném pořadí a sledujte, zda se zvolená cesta změní. Pořadí je proměnná, kterou většina lidí vynechá, a právě ona odhalí trasu přivázanou ke špatnému spojení.
rasdial 'Lab VPN' /disconnect
rasdial 'Lab VPN'
Find-NetRoute -RemoteIPAddress 10.77.5.20 | Select-Object -First 1
Výsledek, který chcete, není to, že si adaptér jednou podrží své číslo. Je to, že se trasa objeví s jakýmkoli číslem, které spojení dostane, pokaždé, a zmizí, když se spojení zavře. Dvojité opětovné připojení je nejlevnější způsob, jak tyto výsledky rozlišit.
Vězte, co trasa neumí
Trasa z profilu poskytuje cestu a nic jiného. Neotevírá vzdálený firewall, nevytváří zpětnou trasu na vzdáleném konci ani neřeší dvě lokality se stejným rozsahem adres; každé z toho je samostatná konfigurace se samostatným vlastníkem. Potvrzení cesty je proto začátek akceptačního testu, ne celý test.
Uchovávejte seznam prefixů u profilu a poznamenejte, pod jakým rozsahem byl přidán, aby si další člověk mohl přečíst zamýšlený návrh, místo aby ho odvozoval z tabulky tras. Trasy, které existují jen v něčí paměti, jsou ty, které se po dalším připojení znovu postaví špatně. Jednořádkový komentář v poznámkách k nasazení stojí méně než celé odpoledne znovuobjevování.