La eligo de traceroute, kiu finiĝas en unu direkto kaj presas vicojn da steloj en la alia, aspektas kiel nesimetria plusendado, kaj ĝi kutime ne estas. Ĉiu montrata salteto postulas, ke la sondilo alvenu, ke enkursigilo decidu respondi, kaj ke la respondo vojaĝu reen kaj estu parigita kun la sondilo. Rompu ajnan el tiuj ligiloj kaj la vico fariĝas stelo, dum la tunelo daŭre portas datumojn.

La spuro estas pruvo pri diagnozo antaŭ ol pruvo pri transporto. La demando inda je starigo estas, kiu el la tri ligiloj malsukcesis, kaj la respondo venas el la pakoj, ne el la formo de la eligo.

Stelo estas mankanta respondo, ne mankanta salteto

Traceroute iras eksteren sendante sondilojn, kies TTL finiĝas je unu enkursigilo pli malproksime en ĉiu raŭndo. Enkursigilo, kiu forĵetas eksvalidiĝintan sondilon, devus resendi mesaĝon ICMP Time Exceeded nomantan sin, kaj la ilo presas tiun nomon. Tio, kion la ilo efektive atendas, estas ke tiu mesaĝo alvenu ene de tempolimo. Se la enkursigilo respondas el alia fontadreso, limigas kiom ofte ĝi generas erarojn, aŭ forĵetas la sondilon sen vorto, la raŭndo donas nenion preseble.

Neniu el tiuj rezultoj diras, ke la antaŭa vojo estas rompita. Stelo estas raporto pri nespondita poŝto, ne pri malplena vojo.

La sondmetodo decidas, kiun filtron vi renkontos

La defaŭlta metodo en Linux kutime estas UDP-cela pordo kun alta numero, tracert en Windows sendas ICMP-ekojn, kaj oni povas ordoni al Linux uzi ICMP aŭ TCP anstataŭe. Ĉiu el ili aspektas kiel malsama speco de trafiko por stata fajroŝirmilo aŭ nuba sekureca grupo. Kompari UDP-spuron de unu flanko kun ICMP-spuro de la alia komparas du malsamajn eksperimentojn. Fiksu la metodon, la adresfamilion, la fontadreson kaj la tempolimon antaŭ ol nomi la rezultojn diferenco.

Por justa komparo, rulu la spuron el la gastigantoj, kiuj efektive portas la trafikon, anstataŭ el kluzo plusendanta nome de ili. Spuro generita de enkursigilo uzas la propran fontadreson kaj eligan politikon de la enkursigilo, kiuj povas esti pli striktaj ol io ajn, kion kliento vidas. Notu la ĝustan komandon, por ke la sekva persono povu ripeti ĝin.

La tempolima valoro estas la alia duono de la eksperimento, kaj facile mankas en la notoj. Atendo de du sekundoj sur kongestita vojo raportas stelojn tie, kie atendo de kvin sekundoj raportas saltetojn. Konservu la valoron identa en ĉiuj ruloj, por ke la komparo restu pri la reto.

La revena vojo estas propra itinero

ICMP-eraro estas ordinara pako kun propra fonto kaj celo, kaj ĝi bezonas itinon reen al la spurilo. Se la tunela politiko portas la LAN-prefiksojn sed ne la enkursigilan adreson, kiu generis la eraron, la mesaĝo eliras per vojo, kiu ne povas atingi vin. Responda filtrado povas forĵeti ĝin eĉ kiam la itinero ekzistas, ĉar la pako alvenas el neatendita adreso sur neatendita interfaco. Tio estas malkongruo en la diagnoza ebeno, ne fiasko de la aplikaĵo.

Larĝigi ĉiun selektilon ĝis la spuro finiĝos faras la bildon pli bela kaj la politikon pli malbona. Riparu la specifan diagnozan adreson, aŭ akceptu la stelon kaj testu la aplikaĵon alimaniere.

Konfirmu la tunelon per reala peto

TCP-manpremo sur la propra pordo de la servo ekzercas plusendadon, revenan enkursigadon kaj filtradon en la direkto, kiu gravas. La subaj komandoj rulas ĉe ambaŭ finoj kaj komparas, kion ĉiu flanko povas malfermi. Anstataŭigu la servan pordon kaj la nomon de la tunela interfaco per via propra agordo.

traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established

Unue legu la du rulojn de traceroute: se la ICMP-rulo montras saltetojn kaj la TCP-rulo ne, la diferenco estas metodo, ne vojo. Poste prenu la rezulton de curl kiel la respondon je aplikaĵa nivelo, ĉar kompletigita interŝanĝo kun prudenta statuskodo signifas, ke la antaŭa kaj revena vojoj ambaŭ funkcias por reala trafiko. La listo de ingoj montras, ĉu la konekto entute estas establita, kion neniu spuro povas diri al vi.

Tunelo, kiu portas interagan sesion en ambaŭ direktojn dum unu traceroute presas stelojn, estas sana kaj simple nefotogena. Konservu la komandan eligon de ĉiu flanko kiel la registron, kaj traktu mankantajn saltetojn kiel malfermitan demandon pri diagnozo, ne kiel verdikton pri la VPN.

Rilataj artikoloj