Маршрут працаваў тыднямі, а затым пачаў адпраўляць трафік у нікуды, пры тым што пункт прызначэння не змяніўся і нічога не рэдагавалася. Змяніўся нумар: маршрут, створаны для пэўнага індэкса інтэрфейса, спасылаецца на адаптар, якога больш не існуе пасля перападключэння, а прэфікс прызначэння працягвае паказваць на інфраструктуру, якую замянілі. Даданне захавання да гэтай каманды не дапамагае, бо праблема ніколі не была ў тым, ці перажыве маршрут перазагрузку. Рашэнне — прывязаць намер да злучэння, якое па вызначэнні перажывае змену адаптараў.

Праверце, на што насамрэч паказвае маршрут

Пачніце з чытання запісу маршруту і адаптараў побач. Маршрут з наступным крокам на інтэрфейсе VPN і індэксам, які не адпавядае ніводнаму бягучаму адаптару, — гэта подпіс такой няспраўнасці; той жа прэфікс на іншым індэксе — або рэштка, або менавіта патрэбны вам маршрут. Прачытайце абодва спісы, перш чым змяняць любы з іх, бо цікавае параўнанне — паміж нумарам у маршруце і нумарамі, якія існуюць цяпер. Калі індэкс маршруту прысутнічае ў спісе адаптараў, індэкс не ваша праблема, і пошук пераходзіць да метрык, палітыкі або далёкага боку. Калі ён не прысутнічае, больш нічога не трэба дыягнаставаць: маршрут прывязаны да інфраструктуры, якой больш няма.

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

Слупок Store адрознівае запіс, які застаецца паміж перазагрузкамі, ад запісу, які знікае разам з адаптарам, і гэтая розніца вызначае, ці вернецца няспраўнасць заўтра. Запіс у пастаянным сховішчы, які паказвае на зніклы індэкс, — найгоршы выпадак, бо ён перажывае перазапускі, але ніколі ні з чым не супадае.

Прывяжыце прэфікс да профілю, а не да адаптара

Уласны VPN Windows можа несці свой спіс маршрутаў, таму злучэнне паўторна выкарыстоўвае правільны адаптар, калі ён узнікае. Тады маршрут ідзе за профілем, а не за нумарам, які вы назіралі аднойчы, і ніводнаму скрыпту не трэба ўгадваць індэкс пасля кожнага званка. Даданне прэфікса таксама зваротнае праз адпаведную каманду выдалення, што пакідае змену прыдатнай для аўдыту. Прэфікс захоўваецца разам са злучэннем, а не ў скрыпце запуску, таму профіль, скапіяваны іншаму карыстальніку, нясе намер з сабой.

Add-VpnConnectionRoute -ConnectionName 'Lab VPN' -DestinationPrefix '10.77.0.0/16' -PassThru

Даведка Add-VpnConnectionRoute апісвае сувязь са злучэннем, і ахоп тэлефоннай кнігі мае значэнне: профіль асобнага карыстальніка і профіль усіх карыстальнікаў — розныя аб’екты. Гэты механізм належыць уласнаму кліенту VPN Windows, таму адаптар пастаўшчыка, які кіруецца ўласнай службай, можа браць свае маршруты з цалкам іншай крыніцы палітыкі.

Ачысціце старыя маршруты, перш чым дадаць новы

Два маршруты з адным прэфіксам і рознымі ўласнікамі горш за адзін няправільны маршрут, бо пераможца залежыць ад метрык, якія ніхто не запісаў. Агледзьце, што ўжо існуе для прэфікса, уключаючы запісы ў пастаянным сховішчы, і выдаляйце толькі тое, што належыць няўдалай спробе. Рэштка ад папярэдняга дызайну тут звычайная, бо маршрут, які зламаўся, звычайна замяніў нешта працоўнае. Адзначце, якія запісы належаць якому злучэнню, перш чым нешта выдаляць, і захавайце спіс у запісе змен.

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

Суппастаўляйце прэфікс, наступны крок, сховішча і ўласніка разам, а не выдаляйце ўсё, што выглядае падобна. Іншае злучэнне можа законна залежаць ад часткі гэтай прасторы, а суцэльнае выдаленне ператварае акуратны рамонт у інцыдэнт падтрымкі.

Перападключыцеся ў іншым парадку

Узнавіце ўмову, а не спадзявайцеся, што першая спроба была паказальнай. Адключыцеся, перападключыцеся і пацвердзіце абраны шлях да таго ж аддаленага рэсурсу, пакуль тунель актыўны; калі задзейнічана некалькі VPN, узніміце іх у іншым парадку і паназірайце, ці зменіцца абраны шлях. Парадак — гэта зменная, якую большасць прапускае, і менавіта яна выяўляе маршрут, прывязаны да няправільнага злучэння.

rasdial 'Lab VPN' /disconnect
rasdial 'Lab VPN'
Find-NetRoute -RemoteIPAddress 10.77.5.20 | Select-Object -First 1

Вынік, які вам патрэбны, не ў тым, каб адаптар аднойчы захаваў свой нумар. Ён у тым, каб маршрут з’яўляўся з любым нумарам, які атрымае злучэнне, кожны раз, і знікаў, калі злучэнне зачыняецца. Двойчы перападключыцца — самы танны спосаб адрозніць гэтыя вынікі.

Ведайце, чаго маршрут не можа

Маршрут профілю дае шлях і больш нічога. Ён не адкрывае аддалены файрвол, не стварае зваротны маршрут на далёкім баку і не вырашае два сайты з адным дыяпазонам адрасоў; кожнае з гэтага — асобная канфігурацыя з асобным уласнікам. Таму пацверджанне шляху — гэта пачатак прыёмачнага тэсту, а не ўвесь ён.

Трымайце спіс прэфіксаў разам з профілем і адзначце, пад якім ахопам ён быў дададзены, каб наступны чалавек мог прачытаць задуманы дызайн, а не выводзіць яго з табліцы маршрутаў. Маршруты, якія існуюць толькі ў чыёйсьці памяці, — гэта тыя, што пасля чарговага перападключэння перабудоўваюцца няправільна. Аднарадковы каментар у нататках пра разгортванне каштуе менш за цэлую пасляабедзенную гадзіну паўторнага пошуку.

Падобныя артыкулы