మార్పు అమలులోకి రానప్పుడు రూట్ కాష్ను ఖాళీ చేయడం మొదటి ప్రవృత్తి, ఆధునిక Linux లో అది వృథా శ్రమ: ప్రపంచ IPv4 రూట్ కాష్ సంవత్సరాల క్రితం తొలగించబడింది, కాబట్టి ip route show cache ఏమీ ముద్రించదు, ఖాళీ చేయడానికి ఏమీ లేదు. మిమ్మల్ని మోసం చేసే స్థితి ఒక పొర పైన నివసిస్తుంది: socket లో, NAT మ్యాపింగ్లో, రిజాల్వర్లో లేదా పాత ప్రొఫైల్ను మళ్లీ వర్తించిన నెట్వర్క్ మేనేజర్లో. మూడు ప్రశ్నలు ఆ సందర్భాలను వేరు చేస్తాయి: తప్పు మార్గం కొత్త ప్రవాహం నుండి వస్తోందా పాత కనెక్షన్ నుండి వస్తోందా, మీ ప్లాట్ఫారమ్ రూట్లను కాష్ చేస్తుందా, స్థితి రూటింగ్లో ఉందా దానికి పైన ఉందా. ఇంటర్ఫేస్ను రీసెట్ చేయడానికి ముందు వాటికి సమాధానం ఇవ్వండి.

తనిఖీ ఒకటి: పాత మార్గం కొత్త ప్రవాహం నుండి వస్తోందా?

స్థాపించబడిన కనెక్షన్ అది సృష్టించబడిన మార్గాన్ని నిలుపుకుంటుంది. అందుకే టన్నెల్ మీద SSH సెషన్ రూటింగ్ పట్టిక మార్పును తట్టుకుంటుంది, కొత్త సెషన్ వెంటనే కొత్త మార్గాన్ని తీసుకుంటుంది, అందుకే «మార్పు ఏమీ చేయలేదు» అంటే తరచుగా «పాత socket ఇంకా దాన్ని పట్టుకుని ఉంది». ఇప్పటికే తెరిచిన విండోతో కాదు, కొత్త ప్రక్రియతో పరీక్షించండి.

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

చివరి ఆదేశం కొత్త కనెక్షన్ నిజంగా చేరుకున్న చిరునామాను ముద్రిస్తుంది, స్థితి విండోను నమ్మకుండా నిజమైన మార్గాన్ని చూడడానికి ఇదే చౌకైన మార్గం. namespace లేదా ఇంటర్ఫేస్ ఉపయోగించాల్సిన మూల చిరునామాతో దాన్ని పోల్చండి.

కొత్త ప్రవాహం సరైన మార్గాన్ని తీసుకుని పాతది కోలుకోకపోతే, రూటింగ్ చూడడం ఆపండి. మార్గం సరైనది; సెషన్ పాతది.

తనిఖీ రెండు: మీ ప్లాట్ఫారమ్ రూట్ కాష్ ఉంచుతుందా?

Linux లో సమాధానం లేదు, చాలా మార్గదర్శకాలు ఉద్దేశించే అర్థంలో. విసిరేయడానికి ప్రపంచ గమ్యస్థాన కాష్ లేదు, ఎంచుకున్న మార్గాన్ని ఉంచే ప్రతి-socket నమోదు socket తో పాటు విడుదల అవుతుంది. ip-route మాన్యువల్ కాష్ విభాగం చారిత్రక ప్రవర్తనను వివరిస్తుంది, ప్రస్తుత కెర్నల్లో మీరు ఖాళీ చేయగలిగేది కాదు.

ఇతర ప్లాట్ఫారమ్లు భిన్నం, సలహాలను కాపీ చేయడం ఇక్కడే తప్పవుతుంది. Windows గమ్యస్థాన కాష్ను ఉంచుతుంది, దాన్ని netsh interface ip delete destinationcache తో శుభ్రం చేయవచ్చు. BSD మరియు macOS route -n get ద్వారా ప్రతి గమ్యానికి శోధనలను చూపుతాయి, వాటి కాష్లు తమ షెడ్యూల్ ప్రకారం ముగుస్తాయి. వాటిలో ఒకదానిలో పనిచేసే ఆదేశం Linux లో ఏమీ చేయదు, అందుకే అదే పరిష్కారం ప్రయత్నించే సగం మందికి విఫలమైనట్టు కనిపిస్తుంది.

NAT లేదా conntrack పట్టిక రూట్ కాష్ కాదు, అదే లక్షణాన్ని ఉత్పత్తి చేసినా. మీ మార్పుకు ముందు అనువదించబడిన ప్రవాహం తన అనువాదాన్ని నిలుపుకుంటుంది, రూటింగ్ విధానం ముందుకు సాగిన తర్వాత కూడా conntrack -L దాన్ని చాలా కాలం చూపుతుంది. అది పాత స్థితి, కానీ రూట్లను శుభ్రం చేయడం దాన్ని తాకదు.

తనిఖీ మూడు: స్థితి రూటింగ్లో ఉందా దానికి పైన ఉందా?

మరేదైనా చదవడానికి ముందు ప్రస్తుత శోధనను చదవండి: గమ్యానికి ip route get, తర్వాత from మరియు మూల చిరునామాతో అదే ఆదేశం, తర్వాత ip rule show. ఈ మూడు మీ ఉద్దేశంతో సరిపోతే, రూటింగ్ సరిచేయాల్సిన పొర కాదు, పాత పరిశీలన మరెక్కడి నుండో వచ్చింది.

మూడు సాధారణ అనుమానితులు రూటింగ్ పైన కూర్చుంటారు. నెట్వర్క్ మేనేజర్ మీరు తొలగించిన కొన్ని సెకన్ల తర్వాత సేవ్ చేసిన ప్రొఫైల్ నుండి మార్గాన్ని మళ్లీ ఇన్స్టాల్ చేయగలదు, కాబట్టి మీ మార్పు తిరిగి వస్తున్నట్టు కనిపిస్తుంది; పట్టికను మళ్లీ సవరించే ముందు nmcli connection show --active మరియు యూనిట్ స్థితిని తనిఖీ చేయండి. రిజాల్వర్ కాష్ పాత చిరునామాను తిరిగి ఇస్తుంది, కాష్ను దాటవేసే సాధనంతో అదే పేరును అడిగే వరకు అది రూటింగ్ వైఫల్యంలా కనిపిస్తుంది. అప్లికేషన్ కనెక్షన్ పూల్ పాత గమ్యానికి పనిచేసే socket ను ఉంచుతుంది, కెర్నల్ను ఎప్పుడూ కొత్త నిర్ణయం అడగదు.

మూడు సమాధానాలు ఏమి నిర్ధారించడానికి అనుమతిస్తాయి

సమాధానాలను కలపండి, మరమ్మత్తు సాధారణంగా తనను తాను చెప్పుకుంటుంది. రూట్ కాష్ లేని ప్లాట్ఫారమ్లో కొత్త ప్రవాహం తప్పు మార్గాన్ని తీసుకుంటే విధానం నిజంగా తప్పు, కాబట్టి టన్నెల్ ఇన్స్టాల్ చేసిన నియమాలను, పట్టికను చదవండి. పాత సెషన్ నిలిచిపోయి ఉండగా కొత్త ప్రవాహం సరైన మార్గాన్ని తీసుకుంటే సమస్య అప్లికేషన్ లేదా socket. రెండు సందర్భాలలో సరైన మార్గాలతో విరిగిన పరిశీలన అంటే స్థితి రూటింగ్ పైన ఉంది.

సాధారణ రిఫ్రెష్కు వ్యతిరేకంగా నిలబడండి. నెట్వర్క్ స్టాక్ను పునఃప్రారంభించడం లేదా డిఫాల్ట్ మార్గం టన్నెల్ అయిన యంత్రంలో ప్రతి మార్గాన్ని తొలగించడం మీరు దాన్ని సరిచేయడానికి ఉపయోగిస్తున్న కనెక్షన్నే తెగతెంపులు చేయవచ్చు, ఏ పొర విఫలమైందో చెప్పే సాక్ష్యాన్ని నాశనం చేస్తుంది.

నిజంగా ఏదైనా శుభ్రం చేయాల్సి వస్తే, నిర్ధారణకు సరిపోయే అతి చిన్న వస్తువును శుభ్రం చేయండి: ఒక ప్రక్రియ socket లు, ఒక conntrack నమోదు, రిజాల్వర్ కాష్. తర్వాత అదే కొత్త-ప్రవాహ పరీక్షను పునరావృతం చేసి ఏమి మారిందో రాయండి.

మీ నోట్స్లో మూడు స్థితులను వేరుగా ఉంచండి

సేవ్ చేసిన కాన్ఫిగరేషన్, ప్రస్తుత శోధన మరియు గమనించిన ప్రవాహం మూడు వేర్వేరు వాస్తవాలు, వాటిని «కాష్» గా కలపడమే లోపాన్ని మళ్లీ ఉత్పత్తి చేయడం కష్టతరం చేస్తుంది. మార్గానికి యజమాని అయిన ప్రొఫైల్ లేదా యూనిట్, ip route get అవుట్పుట్, మరియు నిజమైన కనెక్షన్ మూలం మరియు గమ్యాన్ని రాయండి.

వాటి పక్కన ప్లాట్ఫారమ్ మరియు క్లయింట్ సంస్కరణను రాయండి, ఎందుకంటే Windows గమ్యస్థాన కాష్ను శుభ్రం చేసే పరిష్కారం Linux హోస్ట్కు వర్తించే పరిష్కారం కాదు, రెండింటి మధ్య కాపీ చేసిన విధానం తప్పు పాఠం నేర్పుతుంది. సమస్యను మరొకరికి అప్పగించినప్పుడు, ఆ మూడు పంక్తులు ఊహించడం బదులు విఫల స్థితిని మళ్లీ ఉత్పత్తి చేయడానికి అనుమతిస్తాయి.

సంబంధిత వ్యాసాలు