La interfície està aixecada però wg-quick ha fallat: què fer ara
Una unitat fallida pot deixar un túnel mig configurat. Llegeix el primer pas que falla, decideix si cal netejar o reparar, i després demostra-ho amb una petició.
La unitat és vermella, la interfície existeix i el túnel funciona en bona part, que és la combinació més desconcertant possible. La configuració és una seqüència: primer es crea la interfície, després vénen adreces, rutes, ajustos del resolutor i qualsevol ordre de hook. Una fallada al quart pas deixa els tres primers al seu lloc, així que el nom de la interfície és prova que l’arrencada va començar, no que va acabar. Un sol fet addicional hauria estalviat el desconcert: el pas que va fallar.
L’estat parcial és la fallada normal
Aquest comportament s’ha d’esperar en lloc de tractar-lo com a corrupció. La interfície és la part més barata de la configuració i la més fàcil de deixar enrere, i també és la part que fa que la màquina sembli mig operativa.
El que encara no existeix és tot el que venia després del pas fallit. Si la fallada va ser a l’etapa del resolutor, les adreces i les rutes hi són i el DNS no. Si va ser una ruta, el túnel té una adreça i cap camí per travessar-lo.
La conseqüència és una màquina que respon a algunes proves i falla en altres, i per això la gent conclou que el servei va a batzegades quan en realitat mai no ha arrencat amb èxit. Un servei que mai no ha acabat no pot anar a batzegades. Només pot fallar una vegada i una altra pel mateix motiu.
Trobeu el primer pas que falla
Llegiu el diari de la unitat i no només l’estat actual, i llegiu-lo des del començament de l’execució fallida. L’última línia us diu el codi de sortida; el primer error us diu què cal reparar.
Aquestes ordres imprimeixen l’estat de la unitat, el diari d’arrencada d’aquesta unitat i l’estat viu del túnel:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Un error del resolutor, una ruta que ja existeix, un hook que ha sortit amb codi diferent de zero i una fallada d’anàlisi de la configuració apareixen tots en aquesta finestra, i cadascun anomena el seu component. Endevinar només a partir de l’estat de la interfície ignora tota aquesta informació.
Tres condicions que decideixen la reparació
Decidiu si netegeu, si repareu al lloc o si traieu la unitat del camí d’arrencada, i decidiu-ho abans d’escriure res.
Si la interfície està trencada però la configuració és correcta, netegeu i torneu a començar. Si la configuració és incorrecta, arregleu-la i tot i així netegeu primer, perquè engegar un segon gestor sobre un estat parcial produeix dos propietaris per a una interfície. Si la fallada és un component del sistema que falta, com un assistent de resolutor que la màquina no té, instal·leu o traieu la dependència deliberadament en lloc d’editar la unitat fins que deixi de queixar-se.
Aquests tres casos cobreixen la major part del que sembla una unitat vermella misteriosa. La pregunta que distingeix és si la mateixa fallada passaria en una màquina amb estat net, i la resposta sol venir de la primera línia d’error.
Netegeu abans de tornar-ho a provar
Un reintent sobre un estat existent pot fallar per un motiu nou i amagar el motiu original. Baixeu la interfície amb la mateixa eina que la va crear i després confirmeu que no hi queda res.
No esborreu interfícies que no hi tenen res a veure ni reinicieu la pila de xarxa de l’amfitrió. Totes dues són accions grans per arreglar un objecte petit, i converteixen un sol túnel fallit en una màquina les altres connexions de la qual cal restablir. L’abast correcte és una interfície i la unitat que la posseeix. Qualsevol cosa més àmplia necessita un motiu escrit abans que passi.
Demostreu el túnel, no la unitat
Una unitat verda vol dir que la seqüència d’arrencada ha sortit amb zero. No vol dir que un paquet hagi arribat a l’altre costat, ni que el resolutor s’hagi configurat com volíeu.
Envieu una petició pel túnel i llegiu l’estat que l’ha produïda:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netUna encaixada de mans sense resposta encara us diu que el túnel s’ha format i que el costat remot està en silenci, cosa que és un problema diferent d’una unitat que mai no ha arrencat. Guardeu l’estat de la unitat, l’encaixada de mans i el resultat de la petició en un sol registre, perquè fallen de manera independent i només la combinació descriu el sistema.