Интерфејс се подиже, конфигурација партнера изгледа исправно и ниједно руковање се никада не завршава. Додавање подразумеване руте кроз тунел је корак који то често изазива: иста табела рута сада одлучује куда треба да иду сопствени шифровани пакети тунела, а одговор који даје води назад у тунел. Ништа не може да носи спољни пакет који би носио унутрашњи, па се веза зауставља пре него што почне. Поправка је мала, али има редослед, а провера је важнија од измене.

Потврдите петљу пре него што промените руту

Прочитајте тренутну адресу крајње тачке партнера и затим питајте стек за рутирање куда би ишао пакет на ту адресу. Ако одговор наводи интерфејс тунела, петља је потврђена и даља дијагностика није потребна. Сачувајте оба излаза у запису о измени пре него што било шта додирнете, јер је поређење после поправке исте две команде. Петља није суптилна када се једном види; тешкоћа је у томе што интерфејс изгледа здраво док се то дешава.

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-у је онај предузет пре прве команде.

Повезани чланци