Bumagsak ang tunnel, nag-activate ang kill switch, at ang download na tatlong-kapat nang tapos ay nag-freeze o nabigo agad. Ang dalawang resultang ito ay nagmumula sa magkaibang pagpili sa pagpapatupad, hindi sa magkaibang antas ng proteksyon. Ang itinapong packet ay iniiwan ang koneksyon na naghihintay, habang ang tinanggihang packet ay pinapasara ito at ipinapaalam sa aplikasyon. Ang pagpapasya kung aling pag-uugali ang gusto mo ay tanong sa disenyo, at ang pagsubok dito ay hiwalay na pagsasanay.

Ang pagtatapon, pagtanggi at pag-reset ay magkaiba

Ang firewall rule na nagtatapon ng trapiko ay inilalabas ang packet at walang ibinabalik, kaya patuloy na nagpapadala muli ang nagpadala ayon sa sarili nitong timer. Ang rule na tumatanggi gamit ang TCP reset ay agad na nagsasara ng koneksyon at nakikita ng aplikasyon ang error. Karamihan sa kill switch ay nagtatapon, dahil ang pagtanggi ay magbubunyag ng patakaran at dahil ang pagtatapon ay kahawig ng pag-uugali ng patay na network.

Ang pag-block ay hindi katulad ng pagsasara ng socket. Hawak pa rin ng aplikasyon ang descriptor sa establisadong estado, at ang mga packet lang ang kulang. Iyon ang dahilan kung bakit ang isang pahina ay maaaring manatili sa spinner nang minuto habang iginiit ng operating system na may koneksyon. Basahin ang dokumentadong pagpapatupad sa halip na hulaan ito mula sa mensahe ng aplikasyon, dahil ang dalawang pag-uugali ay mukhang bumagsak ang network.

Ano ang ginagawa ng aplikasyon habang tumatagal ang agwat

Nagpapadala muli ang TCP nang may tumataas na pagkaantala, at ang default na badyet sa pagsubok muli ng Linux ay nauubos sa ikaapat na bahagi ng oras, hindi sa mga segundo. Hanggang doon ang socket ay hindi kapaki-pakinabang na bukas at hindi rin sarado. Ang mga aplikasyong may sariling keepalive o takdang oras ng kahilingan ay madalas sumuko nang mas maaga, kaya magkaiba ang pag-uugali ng dalawang programa sa iisang makina sa isang pagkawala.

Kapag bumalik ang tunnel, hindi nagbago ang lokal na socket ngunit ang landas ay maaaring iba na. Ang bagong pampublikong source address ay gumagawa ng ibang apat-na-tuple sa server, kaya ang stateful firewall sa kabilang panig ay hindi na tugma sa session. Patay na ang koneksyon kahit hindi kailanman nakakita ng error ang client.

Magpasya kung kailangan ang pagbangon

Pumili sa pagitan ng dalawang kontrata. Alinman sa dapat lumampas ang session sa maikling agwat, na nangangailangan ng matatag na pag-address at server na nagpapanatili ng estado nito, o dapat muling kumonekta nang malinis ang aplikasyon, na nangangailangan ng retry logic na ligtas ulitin. Anumang nasa pagitan ay nagbubunga ng pinakamasamang resulta: client na muling nagpapadala ng naitala na ng server, o isang nag-uulat ng tagumpay para sa session na walang makakita.

Ang matatag na pag-address ay ang bahaging nakakalimutan ng mga tao, dahil ang muling pagkonekta na dumadapo sa ibang pampublikong address ay nagpapawalang-bisa sa estado sa panig ng server kahit mukhang malusog ang socket ng client. Isulat kung alin sa dalawang kontrata ang naaangkop sa bawat aplikasyon, dahil bihirang magtugma ang lahat.

Suriin nang hiwalay ang pag-block at pagbangon

Ituring ang proteksyon sa pagtagas at paglampas ng session bilang dalawang katangian, dahil ang pagpasa sa isa ay walang sinasabi tungkol sa isa pa. Ang session na nakaligtas ay hindi patunay na na-block ang direktang trapiko, at ang session na namatay ay hindi patunay na na-block ang bawat direktang ruta.

ss -tnp state established '( dport = :443 )'
sudo conntrack -L -p tcp --dport 443
sudo tcpdump -ni any 'tcp port 443 and tcp[tcpflags] & tcp-syn != 0'

Gumamit ng walang pinsalang pagsubok kapag pinagmamasdan ang pagbangon, upang ang dobleng pagsumite ay hindi maging insidente. Itala ang paraan ng pagpalya na talagang nakita mo: ano ang ipinakita ng aplikasyon, nakaligtas ba ang socket, at kailan ito bumangon nang mag-isa.

Isulat ang inaasahang pag-uugali sa tabi ng rule sa pagpapatupad at lagyan ito ng petsa. Ang susunod na taong magbabago ng rule na iyon ay kailangang malaman kung alin sa dalawang kontrata ang ipinangako ng deployment.

Kaugnay na mga artikulo