కంటెయినర్లో vpnc రూట్-ఫ్లష్ హెచ్చరిక ఎందుకు వస్తుంది
రూట్ కాషె ఫ్లష్ అనేది ఆ కాషెను ఇకపై ఉంచుకోని కెర్నెల్ యొక్క అవశేషం; చదవడం-మాత్రమే లోపం టన్నెల్ నుండి కాదు, కంటెయినర్ మౌంట్ నుండి వస్తుంది.
కొత్త కంటెయినర్ లాగ్లు తరచుగా /proc/sys/net/ipv4/route/flush గురించి Read-only file system ఫిర్యాదుతో ముగుస్తాయి, ఆ లైన్ పూర్తిగా ఆరోగ్యంగా ఉండగల టన్నెల్పై నింద వేయబడుతుంది. దాని వెనుక ఉన్న రచన IPv4 రూట్ కాషె పోయిన తర్వాత ఏ ఉపయోగకరమైన పనీ చేయని కెర్నెల్ ఎంట్రీని లక్ష్యంగా చేసుకుంటుంది. కంటెయినర్ లోపల /proc/sys చదవడం-మాత్రమేగా మౌంట్ అవుతుంది, కాబట్టి ఏదైనా విలువ చేరకముందే రీడైరెక్షన్ తిరస్కరించబడుతుంది మరియు షెల్ ఆ తిరస్కరణను ముద్రిస్తుంది. పనిచేసే టన్నెల్ పాత లైన్ స్క్రిప్ట్లో ఉన్నంతకాలం ఈ హెచ్చరికను ముద్రించగలదు, మరియు --privileged రచనను ఎప్పటికీ అర్థవంతం చేయదు.
స్క్రిప్ట్ ఏమి ఫ్లష్ చేయాలని ప్రయత్నించింది
పాత కనెక్షన్ స్క్రిప్ట్లు కాషె శుభ్రతతో ముగిసేవి: కెర్నెల్ నియంత్రణ ఫైల్లో విలువ రాయడం మరియు IPv4 స్టాక్ను తన రూటింగ్ కాషెను వదిలించుకోమని అడగడం, తద్వారా పాత ఎంట్రీలు గడువు ముగిసే వరకు వేచి ఉండకుండా కొత్త టన్నెల్ రూట్ ఎంపిక అవుతుంది. ఫైల్ /proc/sys/net/ipv4/ కింద చిరునామా చేయబడింది, ఇది చర్యను రూటింగ్ ఆదేశం కాకుండా షెల్ రీడైరెక్షన్గా మార్చింది. కెర్నెల్ 3.6 ఆ కాషెను తొలగించింది, దానితో పాటు ఫ్లష్ ఉనికికి కారణాన్ని కూడా. ప్రస్తుత డేటా మార్గంలో ఏదీ ఆ రచనపై ఆధారపడి లేదు.
ఎంట్రీ స్వయంగా పాత రాయడం-మాత్రమే ఫైల్గా మిగిలిపోయింది, కాబట్టి ఇంకా అందులో రాసే స్క్రిప్ట్ నిజమైన మార్గాన్ని మరియు నిజమైన అనుమతి తనిఖీని చేరుకుంటుంది. హోస్ట్లో రచన విజయాన్ని తిరిగి ఇస్తుంది, ఏమీ మార్చదు. కంటెయినర్లో అదే రీడైరెక్షన్ చదవడం-మాత్రమే /proc/sys ను ఢీకొని EROFS తో విఫలమవుతుంది, దానిని షెల్ చదవడం-మాత్రమే ఫైల్సిస్టమ్ సందేశంగా ముద్రిస్తుంది. మార్గం నిజంగా లేని కెర్నెల్లలో పదబంధం No such file or directory అవుతుంది, ముగింపు మారదు.
రెండు లోపాలు వేర్వేరు విషయాలు చెబుతాయి, భేదాన్ని స్పష్టంగా ఉంచుకోవడం విలువైనది. Read-only file system అంటే కెర్నెల్ ఒక ఎంట్రీని చేరి రచనను తిరస్కరించింది; No such file or directory అంటే ఎంట్రీ పోయింది. ఏ సందేశం టన్నెల్ పరికరం, రూట్లు లేదా పేరు పరిష్కారం గురించి నివేదించదు, కాబట్టి ఏదీ ఎక్కువ ప్రత్యేక హక్కులను సమర్థించలేదు.
సందేశాన్ని కారణాత్మకంగా కనిపించేలా చేసేది క్రమమే. కనెక్షన్ స్క్రిప్ట్ చివరి శుభ్రతను చేరుకునే ముందు రూట్లను ఇన్స్టాల్ చేస్తుంది, ఇంటర్ఫేస్ స్థితిని మారుస్తుంది మరియు పేరు పరిష్కారాన్ని తిరిగి రాస్తుంది, కాబట్టి చివరగా ముద్రించిన లైనే ప్రజలు ఉటంకించే లైన్, ప్రతి ముఖ్యమైన అడుగు విజయాన్ని ఇచ్చినా. ఈ హెచ్చరికను ముద్రిస్తూనే స్థాపించబడి ట్రాఫిక్ మోసే టన్నెల్ పైన చెప్పిన యంత్రాంగానికి సరిగ్గా సరిపోతుంది.
ప్రత్యేక హక్కు జోడించే ముందు మౌంట్ మరియు మార్గాన్ని తనిఖీ చేయండి
మూడు పఠనాలు ఉపరితల హెచ్చరికను నిజమైన వైఫల్యం నుండి వేరు చేస్తాయి: ఇన్స్టాల్ చేసిన స్క్రిప్ట్ ఇంకా లైన్ను కలిగి ఉందా, /proc/sys ఎలా మౌంట్ అయింది, మరియు అప్లికేషన్ ట్రాఫిక్ నిజంగా ఎక్కడికి వెళ్తుంది. హెచ్చరిక కనిపించిన అదే కంటెయినర్ నేమ్స్పేస్లో లేదా హోస్ట్లో వాటిని అమలు చేయండి, ఎందుకంటే సంబంధం లేని మెషీన్లో తనిఖీ వేరే ప్రశ్నకు సమాధానం ఇస్తుంది.
grep -n 'ipv4/route/flush' /usr/share/vpnc-scripts/vpnc-script
findmnt -no OPTIONS /proc/sys
ip -4 route get 10.20.5.10grep సమాధానం కనిపించే దానికంటే బలహీనం, ఎందుకంటే కనుగొనడం లైన్ ఉనికిని నిరూపిస్తుంది, రక్షణ లేకుండా నడుస్తుందని కాదు; నిర్వహించే స్క్రిప్ట్ రచనను దాన్ని దాటవేసే కాపలా లోపల ఉంచగలదు. findmnt -no OPTIONS /proc/sys మౌంట్ను నేరుగా నిర్ణయిస్తుంది, ఆ అవుట్పుట్లో ro అంటే ఆ బిందువు కింద ప్రతి రచన తిరస్కరించబడుతుంది, స్క్రిప్ట్ ఏమి చేసినా. తర్వాత మార్గ శోధన అప్లికేషన్కు అవసరమైన గమ్యం టన్నెల్ ఇంటర్ఫేస్ ద్వారా లేదా కంటెయినర్ డిఫాల్ట్ గేట్వే ద్వారా పరిష్కారమవుతుందో చూపిస్తుంది. డిఫాల్ట్ గేట్వేను ఎంచుకునే శోధన అంటే టన్నెల్ పైకి వచ్చింది, దానిలోకి ఏమీ రూట్ కావడం లేదు, ఇది రూటింగ్ సమస్య, ప్రత్యేక హక్కుల సమస్య కాదు.
సరిదిద్దడం నిజంగా ఎక్కడి నుండి వస్తుంది
నిర్వహించే సరిదిద్దడం కంటెయినర్ ఫ్లాగ్లలో కాదు, స్క్రిప్ట్లో నివసిస్తుంది. upstream vpnc-script ఈ చర్యను ఎలా నిర్వహిస్తుందో మార్చింది, కాబట్టి ఇమేజ్ లోపల ఉన్న కాపీని ప్రస్తుత upstream తో పోల్చి, దాన్ని అందించే ప్యాకేజ్ లేదా ఇమేజ్ బిల్డ్ ద్వారా అప్డేట్ చేయండి. నడుస్తున్న కంటెయినర్ లోపల చేతితో సవరించిన ఫైల్ సమీక్షించదగినది కాదు, తదుపరి బిల్డ్ వరకు నిలదొక్కుకోదు.
--privileged అన్ని సామర్థ్యాలను మరియు విస్తృత పరికర ప్రాప్యతను ఇస్తుందని నమోదు చేయబడింది, ఏమీ మార్చని సందేశానికి ఇది పెద్ద రాయితీ, కాబట్టి నిజంగా ఏదైనా సామర్థ్యం లేకపోతే దాన్ని పేర్కొనండి. అప్డేట్ తర్వాత మార్గ శోధనను పునరావృతం చేయండి మరియు అప్లికేషన్ టన్నెల్ను ఉపయోగించనివ్వండి, ఎందుకంటే నిశ్శబ్ద లాగ్ మరియు పనిచేసే కనెక్షన్ వేర్వేరు ఫలితాలు.