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

Пацвердзіце пятлю, перш чым змяняць маршрут

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

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

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

Чытайце шлях канчатковага пункта, а не шлях тунеля

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

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

Аднавіце шлях канчатковага пункта адной узгодненай зменай

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

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

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

Праверце, затым пакіньце шлях назад

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

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

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

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