Mae'r switsh diogelwch yn cychwyn: beth sy'n digwydd i sesiynau TCP agored?
Nid yw pecyn a rwystrwyd yn gysylltiad caeedig. Penderfynwch a ddylai sesiwn oroesi'r bwlch, yna profwch y rhwystr a'r adferiad fel dau briodwedd ar wahân.
Mae'r twnnel yn cwympo, mae'r switsh diogelwch yn cymryd drosodd, ac mae lawrlwythiad oedd dair rhan o bedair wedi'i gwblhau naill ai'n rhewi neu'n methu ar unwaith. Daw'r ddau ganlyniad hyn o wahanol benderfyniadau gorfodi, nid o wahanol lefelau o amddiffyniad. Mae pecyn a ollyngwyd yn gadael y cysylltiad yn aros, tra bod un a wrthodwyd yn ei gau ac yn dweud wrth y rhaglen. Mae penderfynu pa ymddygiad rydych chi ei eisiau yn gwestiwn dylunio, ac mae ei brofi yn ymarfer ar wahân.
Mae gollwng, gwrthod ac ailosod yn wahanol
Mae rheol mur tân sy'n gollwng traffig yn taflu'r pecyn ac yn anfon dim yn ôl, felly mae'r anfonwr yn dal i ail-drosglwyddo ar ei amseryddion ei hun. Mae rheol sy'n gwrthod ag ailosodiad TCP yn cau'r cysylltiad ar unwaith ac mae'r rhaglen yn gweld gwall. Mae'r rhan fwyaf o switshis diogelwch yn gollwng, oherwydd byddai gwrthod yn datgelu'r polisi ac oherwydd bod gollwng yn debyg i sut mae rhwydwaith marw yn ymddwyn.
Nid yw rhwystro yr un peth ag cau'r soced chwaith. Mae'r rhaglen yn dal i ddal disgrifydd mewn cyflwr sefydledig, a'r pecynnau yn unig sydd ar goll. Dyna pam y gall tudalen eistedd ar droellwr am funudau tra bod y system weithredu yn mynnu bod y cysylltiad yn bodoli. Darllenwch y gorfodi a ddogfennwyd yn hytrach na'i gasglu o neges y rhaglen, gan fod y ddau ymddygiad yn edrych fel bod y rhwydwaith i lawr.
Beth mae'r rhaglen yn ei wneud tra mae'r bwlch yn para
Mae TCP yn ail-drosglwyddo gydag oedi cynyddol, ac mae cyllideb ailgynnig ragosodedig Linux yn dod i ben tua chwarter awr yn hytrach nag mewn eiliadau. Hyd nes hynny nid yw'r soced yn agored yn ddefnyddiol nac wedi'i gau. Mae rhaglenni sydd â'u keepalives neu amseroedd segur ceisiadau eu hunain yn aml yn rhoi'r gorau iddi yn gynt, a dyna pam mae dau raglen ar yr un peiriant yn ymddwyn yn wahanol yn ystod un methiant.
Pan ddaw'r twnnel yn ôl, mae'r soced lleol heb newid ond efallai nad yw'r llwybr. Mae cyfeiriad ffynhonnell cyhoeddus newydd yn cynhyrchu pedwarawd gwahanol ar y gweinydd, felly nid yw mur tân cyflwr ar yr ochr bell yn cyd-fynd â'r sesiwn mwyach. Mae'r cysylltiad yn farw er na welodd y cleient wall erioed.
Penderfynwch a oes angen adfer
Dewiswch rhwng dau gontract. Naill ai rhaid i'r sesiwn oroesi bwlch byr, sy'n gofyn am gyfeirio sefydlog a gweinydd sy'n cadw ei gyflwr, neu rhaid i'r rhaglen ailgysylltu'n lân, sy'n gofyn am resymeg ailgynnig sy'n ddiogel i'w hailadrodd. Mae unrhyw beth yn y canol yn cynhyrchu'r canlyniad gwaethaf: cleient sy'n ailanfon yr hyn y mae'r gweinydd eisoes wedi'i ymrwymo iddo, neu un sy'n adrodd llwyddiant ar gyfer sesiwn nad oes neb yn ei gweld.
Cyfeirio sefydlog yw'r rhan y mae pobl yn ei hanghofio, oherwydd mae ailgysylltiad sy'n glanio ar gyfeiriad cyhoeddus gwahanol yn annilysu cyflwr ochr y gweinydd hyd yn oed pan fydd soced y cleient yn edrych yn iach. Nodwch pa un o'r ddau gontract sy'n berthnasol i bob rhaglen, gan mai anaml y maent i gyd yn cyfateb.
Profwch y rhwystr a'r adferiad ar wahân
Triniwch amddiffyniad rhag gollyngiadau a goroesiad sesiwn fel dau briodwedd, oherwydd nid yw pasio un yn dweud dim am y llall. Nid yw sesiwn sy'n goroesi yn brawf bod traffig uniongyrchol wedi'i rwystro, ac nid yw sesiwn sy'n marw yn brawf bod pob llwybr uniongyrchol wedi'i rwystro.
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'
Defnyddiwch weithred brawf ddiniwed wrth arsylwi adferiad, fel nad yw ailanfon dyblyg yn dod yn ddigwyddiad ei hun. Cofnodwch y modd methu a welsoch mewn gwirionedd: beth ddangosodd y rhaglen, a oroesodd y soced, a phryd y gwellodd ei hun.
Ysgrifennwch yr ymddygiad disgwyliedig wrth ymyl y rheol orfodi a'i ddyddio. Mae angen i'r person nesaf sy'n newid y rheol honno wybod pa un o'r ddau gontract y gwnaeth y defnydd ei addo.