A yw cache llwybrau VPN yn cuddio eich newid? Gwiriwch dri pheth
Nid oes gan Linux cache llwybrau byd-eang i’w wagio. Mae prawf hen yn aml yn golygu soced hen, cofnod NAT neu broffil a ailgymhwyswyd. Mae tri gwiriad yn eu gwahaniaethu.
Gwagio’r cache llwybrau yw’r reddf gyntaf pan nad yw newid yn dod i rym, ac ar Linux modern mae’n ymdrech ofer: tynnwyd y cache llwybrau IPv4 byd-eang flynyddoedd yn ôl, felly nid yw ip route show cache yn argraffu dim ac nid oes dim i’w glirio. Mae’r cyflwr sy’n eich twyllo yn byw un haen yn uwch: mewn soced, mapiad NAT, datryswr neu reolwr rhwydwaith sydd wedi ailgymhwyso’r hen broffil. Mae tri chwestiwn yn gwahanu’r achosion hyn: a yw’r llwybr anghywir yn dod o fflŵ newydd neu o gysylltiad hen, a yw eich platfform yn cadw llwybrau mewn cache o gwbl, ac a yw’r cyflwr yn y llwybro neu uwch ei ben. Atebwch nhw cyn ailosod rhyngwyneb.
Gwiriad un: a yw’r hen lwybr yn dod o fflŵ newydd?
Mae cysylltiad sefydledig yn cadw’r llwybr y’i crëwyd ag ef. Dyna pam mae sesiwn SSH dros y twnnel yn goroesi newid yn y tabl llwybro tra bo sesiwn newydd yn cymryd y llwybr newydd ar unwaith, a dyna pam mae «doedd y newid ddim yn gwneud dim» yn aml yn golygu «mae’r hen soced yn dal i’w ddal». Profwch gyda phroses newydd, nid gyda’r ffenestr sydd eisoes ar agor gennych.
ss -tnp | head
ip route get 1.1.1.1
curl -m 5 -sS -o /dev/null -w '%{remote_ip}
' https://example.com
Mae’r gorchymyn olaf yn argraffu’r cyfeiriad y cyrhaeddodd y cysylltiad newydd ef mewn gwirionedd, sef y ffordd rataf i weld y llwybr go iawn heb ddibynnu ar ffenestr statws. Cymharwch ef â’r cyfeiriad ffynhonnell y dylai’r namespace neu’r rhyngwyneb fod wedi’i ddefnyddio.
Os yw fflŵ newydd yn cymryd y llwybr cywir ac nad yw’r hen un yn gwella, stopiwch edrych ar y llwybro. Roedd y llwybr yn gywir; roedd y sesiwn yn hen.
Gwiriad dau: a yw eich platfform hyd yn oed yn cadw cache llwybrau?
Ar Linux yr ateb yw na, yn yr ystyr mae’r rhan fwyaf o ganllawiau’n ei olygu. Nid oes cache cyrchfan byd-eang i’w ollwng, ac mae’r cofnod fesul soced sy’n dal llwybr a ddewiswyd yn cael ei ryddhau gyda’r soced. Mae adran cache y llawlyfr ip-route yn disgrifio ymddygiad hanesyddol, nid rhywbeth y gallwch ei wagio ar gnewyllyn cyfredol.
Mae platfformau eraill yn wahanol, a dyma lle mae copïo cyngor yn mynd o’i le. Mae Windows yn cadw cache cyrchfan y gallwch ei glirio gyda netsh interface ip delete destinationcache. Mae BSD a macOS yn datgelu chwiliadau fesul cyrchfan trwy route -n get, ac mae eu caches yn dod i ben ar eu hamserlen eu hunain. Nid yw gorchymyn sy’n gweithio ar un o’r rhain yn gwneud dim o gwbl ar Linux, a dyna pam mae’r un atgyweiriad yn ymddangos yn aflwyddiannus i hanner y bobl sy’n ei roi ar brawf.
Nid yw tabl NAT neu conntrack yn cache llwybrau, er ei fod yn cynhyrchu’r un symptom. Mae fflŵ a gyfieithwyd cyn eich newid yn cadw ei gyfieithiad, a bydd conntrack -L yn ei ddangos ymhell ar ôl i’r polisi llwybro symud ymlaen. Cyflwr hen yw hwnnw, ond ni fydd clirio llwybrau yn ei gyffwrdd.
Gwiriad tri: a yw’r cyflwr yn y llwybro, neu uwch ei ben?
Darllenwch y chwiliad cyfredol cyn darllen unrhyw beth arall: ip route get ar gyfer y gyrchfan, yna’r un gorchymyn gyda from a’r cyfeiriad ffynhonnell, yna ip rule show. Os yw’r tri hynny’n cytuno â’r hyn a fwriadwyd gennych, nid y llwybro yw’r haen i’w thrwsio, ac mae’r arsylwad hen wedi dod o rywle arall.
Mae tri amheuai cyffredin yn eistedd uwchben y llwybro. Gall rheolwr rhwydwaith ailosod llwybr o broffil a gadwyd eiliadau ar ôl i chi ei ddileu, felly mae eich newid yn ymddangos fel pe bai’n dychwelyd; gwiriwch nmcli connection show --active a chyflwr yr uned cyn golygu’r tabl eto. Mae cache datryswr yn dychwelyd cyfeiriad hen, sy’n edrych fel methiant llwybro nes i chi holi’r un enw ag offeryn sy’n torri’r cache. Mae pwll cysylltiadau rhaglen yn cadw soced gweithredol i’r hen gyrchfan ac yn byth yn gofyn i’r gnewyllyn am benderfyniad newydd.
Beth mae’r tri ateb yn caniatáu i chi ei gasglu
Rhowch yr atebion at ei gilydd ac mae’r atgyweiriad fel arfer yn datgan ei hun. Mae fflŵ newydd yn cymryd y llwybr anghywir ar blatfform heb cache llwybrau yn golygu bod y polisi wirioneddol anghywir, felly darllenwch y rheolau a’r tabl a osododd y twnnel. Mae fflŵ newydd yn cymryd y llwybr cywir tra bo’r hen sesiwn yn stondio yn golygu mai’r rhaglen neu’r soced yw’r broblem. Mae llwybrau cywir ag arsylwad wedi torri yn y ddau achos yn golygu bod y cyflwr uwchben y llwybro.
Gwrthwynebwch yr adnewyddiad cyffredinol. Gall ailgychwyn y pentwr rhwydwaith neu ddileu pob llwybr ar beiriant y mae ei lwybr diofyn yn dwllu dorri’r union gysylltiad rydych yn ei ddefnyddio i’w drwsio, ac mae’n dinistrio’r dystiolaeth a fyddai wedi dweud pa haen a fethodd.
Os oes rhaid i chi glirio rhywbeth, cliriwch y peth lleiaf sy’n cyfateb i’r diagnosis: socedi un broses, un cofnod conntrack, cache’r datryswr. Yna ailadroddwch yr un prawf fflŵ newydd ac ysgrifennwch beth a newidiodd.
Cadwch y tri chyflwr ar wahân yn eich nodiadau
Mae cyfluniad a gadwyd, y chwiliad cyfredol a’r fflŵ a arsylwyd yn dri ffaith wahanol, a’u cwympo’n «y cache» yw’r hyn sy’n gwneud y diffyg yn anodd ei atgynhyrchu. Ysgrifennwch y proffil neu’r uned sy’n berchen ar y llwybr, allbwn ip route get, a ffynhonnell a chyrchfan y cysylltiad gwirioneddol.
Cofnodwch y platfform a fersiwn y cleient wrth eu hymyl, oherwydd nid yw atgyweiriad sy’n clirio cache cyrchfan Windows yn atgyweiriad sy’n berthnasol i westeiwr Linux, ac mae gweithdrefn a gopïwyd rhwng y ddau yn dysgu’r wers anghywir. Pan fyddwch yn trosglwyddo’r broblem i rywun arall, mae’r tair llinell hynny’n caniatáu iddo atgynhyrchu’r cyflwr sy’n methu yn lle dyfalu.