Kufuta akiba ya njia ni silika ya kwanza mabadiliko yasipoanza kutumika, na kwenye Linux ya kisasa ni jitihada bure: akiba ya njia ya IPv4 ya jumla iliondolewa miaka iliyopita, kwa hiyo ip route show cache haichapishi chochote na hakuna cha kufuta. Hali inayokudanganya inaishi tabaka moja juu: katika socket, uchoraji wa NAT, kitatuzi au msimamizi wa mtandao aliyetumia tena profaili ya zamani. Maswali matatu hutenganisha kesi hizo: njia isiyo sahihi inatoka kwenye mtiririko mpya au muunganisho wa zamani, jukwaa lako linahifadhi njia kabisa au la, na hali iko kwenye uelekezaji au juu yake. Wajibu kabla ya kuweka upya kiolesura.

Ukaguzi wa kwanza: njia ya zamani inatoka kwenye mtiririko mpya?

Muunganisho ulioimarishwa huhifadhi njia ulioumbwa nao. Ndiyo sababu kikao cha SSH juu ya handaki kinastahimili mabadiliko ya jedwali la uelekezaji wakati kikao kipya kinachukua njia mpya mara moja, na ndiyo sababu «mabadiliko hayakufanya chochote» mara nyingi humaanisha «socket ya zamani bado inaishikilia». Jaribu kwa mchakato mpya, si kwa dirisha ulilofungua tayari.

ss -tnp | head
ip route get 1.1.1.1
curl -m 5 -sS -o /dev/null -w '%{remote_ip}
' https://example.com

Amri ya mwisho huchapisha anwani ambayo muunganisho mpya uliifikia kweli, na hiyo ni njia ya bei nafuu ya kuona njia halisi bila kuamini dirisha la hali. Linganisha na anwani ya chanzo ambayo namespace au kiolesura kilipaswa kutumia.

Ikiwa mtiririko mpya unachukua njia sahihi na wa zamani hauponi, acha kuangalia uelekezaji. Njia ilikuwa sahihi; kikao kilikuwa cha zamani.

Ukaguzi wa pili: jukwaa lako linahifadhi akiba ya njia?

Kwenye Linux jibu ni hapana, kwa maana inayokusudiwa na miongozo mingi. Hakuna akiba ya marudio ya jumla ya kutupa, na ingizo la kila socket linalohifadhi njia iliyochaguliwa huachiliwa pamoja na socket. Sehemu ya akiba ya mwongozo wa ip-route inaelezea tabia ya kihistoria, si kitu unachoweza kufuta kwenye kerneli ya sasa.

Majukwaa mengine yanatofautiana, na hapa ndipo kunakili ushauri kunakosea. Windows huhifadhi akiba ya marudio ambayo unaweza kuisafisha kwa netsh interface ip delete destinationcache. BSD na macOS huonyesha utafutaji kwa kila marudio kupitia route -n get, na akiba zao huisha kwa ratiba yao wenyewe. Amri inayofanya kazi kwenye moja yao haifanyi chochote kwenye Linux, ndiyo sababu suluhisho lilelile linaonekana kushindikana kwa nusu ya wanaojaribu.

Jedwali la NAT au conntrack si akiba ya njia, ingawa huzalisha dalili ileile. Mtiririko uliotafsiriwa kabla ya mabadiliko yako huhifadhi tafsiri yake, na conntrack -L utauonyesha muda mrefu baada ya sera ya uelekezaji kusonga mbele. Hiyo ni hali ya zamani, lakini kufuta njia hakutagusa hilo.

Ukaguzi wa tatu: hali iko kwenye uelekezaji au juu yake?

Soma utafutaji wa sasa kabla ya kusoma kitu kingine: ip route get kwa marudio, kisha amri ileile na from na anwani ya chanzo, kisha ip rule show. Ikiwa hizi tatu zinapatana na kusudi lako, uelekezaji si tabaka la kurekebisha, na uchunguzi wa zamani ulikuja kutoka mahali pengine.

Watuhumiwa watatu wa kawaida hukaa juu ya uelekezaji. Msimamizi wa mtandao anaweza kusakinisha tena njia kutoka profaili iliyohifadhiwa sekunde chache baada ya wewe kuifuta, kwa hiyo mabadiliko yako yanaonekana kurudi; angalia nmcli connection show --active na hali ya kitengo kabla ya kuhariri jedwali tena. Akiba ya kitatuzi hurudisha anwani ya zamani, ambayo inaonekana kama kushindikana kwa uelekezaji hadi uulize jina lilelile kwa chombo kinachopita akiba. Bwawa la miunganisho la programu huhifadhi socket inayofanya kazi kwa marudio ya zamani na kamwe haiulizi kerneli uamuzi mpya.

Majibu matatu yanakuruhusu kuhitimisha nini

Unganisha majibu na ukarabati kwa kawaida hujieleza wenyewe. Mtiririko mpya unaochukua njia isiyo sahihi kwenye jukwaa lisilo na akiba ya njia humaanisha sera ni mbaya kweli, kwa hiyo soma kanuni na jedwali lililosakinishwa na handaki. Mtiririko mpya unaochukua njia sahihi wakati kikao cha zamani kimekwama humaanisha tatizo ni programu au socket. Njia sahihi zilizo na uchunguzi uliovunjika katika hali zote mbili humaanisha hali iko juu ya uelekezaji.

Kataa uboreshaji wa jumla. Kuanzisha upya mrundikano wa mtandao au kufuta kila njia kwenye mashine ambayo njia yake ya chaguo-msingi ni handaki kunaweza kukata muunganisho unaotumia kuurekebisha, na huharibu ushahidi ambao ungeeleza tabaka gani lilishindikana.

Ikiwa kweli unapaswa kufuta kitu, futa kitu kidogo zaidi kinacholingana na utambuzi: socket za mchakato mmoja, ingizo moja la conntrack, akiba ya kitatuzi. Kisha rudia jaribio lilelile la mtiririko mpya na uandike kilichobadilika.

Tenganisha hali tatu kwenye madokezo yako

Mipangilio iliyohifadhiwa, utafutaji wa sasa na mtiririko uliozingatiwa ni ukweli tatu tofauti, na kuziunganisha kuwa «akiba» ndiko kunakofanya hitilafu kuwa ngumu kuzalisha tena. Andika profaili au kitengo kinachomiliki njia, matokeo ya ip route get, na chanzo na marudio ya muunganisho halisi.

Andika kando jukwaa na toleo la mteja, kwa sababu ukarabati unaosafisha akiba ya marudio ya Windows si ukarabati unaotumika kwa mwenyeji wa Linux, na utaratibu ulionakiliwa kati ya hizo mbili hufundisha somo lisilo sahihi. Unapomkabidhi tatizo mtu mwingine, mistari hiyo mitatu humwezesha kuzalisha tena hali iliyoshindikana badala ya kukisia.

Makala zinazohusiana