Linuxలో Kerio: సర్వర్ ఆశించే MACను kvnetకు ఇవ్వడం
ప్రతి కనెక్షన్లో kvnet మళ్లీ సృష్టించబడుతుంది, కాబట్టి ఒకసారి చేసే చిరునామా మార్పు పోతుంది. క్లయింట్ నమోదు చేసిన విలువను చదివి కనెక్షన్ తర్వాత హుక్ నుండి దాన్ని వర్తించండి.
Kerio సొరంగం ట్రాఫిక్ మోసుకెళ్లే ముందు మూడు విషయాలు సరిపోలాలి: kvnet ఇంటర్ఫేస్పై చిరునామా, క్లయింట్ నమోదు చేసిన విలువ, మరియు సర్వర్ విధానం లేదా DHCP ఆశించేది. అవి సరిపోలకపోయినా సొరంగం ఇప్పటికీ ధృవీకరిస్తుంది మరియు ఇప్పటికీ పైకి వస్తుంది, అదే వైఫల్యాన్ని గందరగోళంగా చేస్తుంది. ఇంటర్ఫేస్ ప్రతి కనెక్షన్కు సృష్టించబడుతుంది, కాబట్టి చేతితో సెట్ చేసిన చిరునామా ఆ సెషన్కు మాత్రమే చెందుతుంది. ఇదే సమస్య రూపం, పరిష్కారం కాన్ఫిగరేషన్ ఫైల్ కాదు, హుక్. మిగిలినది విలువను ఎక్కడ చదవాలి, ఎక్కడ వర్తించాలి అనేది.
చిరునామా ఎందుకు పదేపదే వెనక్కి వస్తుంది
kvnet అనేది కనెక్షన్ ప్రారంభమైనప్పుడు క్లయింట్ సృష్టించి, ముగిసినప్పుడు తొలగించే వర్చువల్ అడాప్టర్. కాబట్టి చేతితో చేసిన ip link set అది వర్తించిన సెషన్ ఉన్నంతకాలమే నిలిచి ఉంటుంది, తదుపరి కనెక్షన్ క్లయింట్ కేటాయించేదానితో ప్రారంభమవుతుంది. క్లయింట్ ఆశించిన చిరునామాను వర్తించలేని యంత్రంలో, ప్రతి పునఃకనెక్షన్ అదే అసమతౌల్యాన్ని మళ్లీ తెస్తుంది, లీజ్ లేదా యాక్సెస్ నియమం పరికరాన్ని మళ్లీ తిరస్కరిస్తుంది.
ఆ నమూనా దానంతటదే నిర్ధారణాత్మకం. ఒక సెషన్లో పనిచేసి తదుపరి సెషన్లో విఫలమయ్యే సొరంగం ఆధారాల సమస్య కాదు, ఎందుకంటే కనెక్షన్ల మధ్య ఆధారాలు మారవు.
విలువను ఇంటర్ఫేస్ నుండి కాదు, క్లయింట్ నుండి చదవండి
Linux క్లయింట్ చర్చల వివరాలను తన డీబగ్ లాగ్కు రాస్తుంది, ఉపయోగించాలనుకునే చిరునామా కనెక్షన్ క్రమంలో చివరి చిరునామా ఆకార టోకెన్గా అక్కడ కనిపిస్తుంది. దాన్ని కర్నెల్ నిజంగా ఉంచుకున్న దానితో పోల్చండి, అది ఒక readlink దూరంలో ఉంది: cat /sys/class/net/kvnet/address.
రెండూ భిన్నంగా ఉంటే, క్లయింట్కు సరైన విలువ తెలిసి ఉండి వర్తించలేకపోయింది, ఇంటర్ఫేస్ ఏర్పడిన తర్వాత దాన్ని వర్తించే హుక్ ఈ అంతరాన్ని మూస్తుంది. లాగ్లో చిరునామా అసలు లేకపోతే, సమస్య ముందుగా ఉంది, అది స్క్రిప్ట్ది కాదు, క్లయింట్ వెర్షన్ లేదా సర్వర్ ప్రొఫైల్ది.
ఇంటర్ఫేస్ ఏర్పడిన తర్వాత దాన్ని వర్తించండి
NetworkManager వినియోగదారులు దాని డిస్పాచర్ డైరెక్టరీలో స్క్రిప్ట్ పెట్టి VPN ఇంటర్ఫేస్ పైకి వచ్చినప్పుడు మాత్రమే పని చేయవచ్చు. systemd నిర్వహించే క్లయింట్కు ఎక్కువ జాగ్రత్త అవసరం: సేవ ప్రారంభంలో నడిచే drop-in సాధారణంగా అడాప్టర్ ఉనికిలోకి రాకముందే యాక్టివేట్ అవుతుంది, కాబట్టి హుక్ దాన్ని ఊహించకుండా ఇంటర్ఫేస్ కోసం వేచి ఉండాలి. అప్పుడు చిరునామా సెట్ చేయండి, లింక్ పైన ఉన్నప్పుడు కర్నెల్ నిరాకరిస్తే దాన్ని కిందకు దించి, చిరునామా సెట్ చేసి మళ్లీ పైకి తీసుకురండి. సంగ్రహించిన టోకెన్ను ip link ఆదేశానికి అప్పగించే ముందు MAC నమూనా ద్వారా తిరిగి చదవండి, అనుకోని లాగ్ లైన్ వాదనగా మారకుండా.
క్లయింట్ లాగ్ నుండి rootగా నడిచే ఏదైనా సన్నని యాజమాన్యానికి అర్హం: root సొంతమైన ఫైల్, ఇతరులు రాయలేనిది, మరియు ధృవీకరించిన చిరునామా దాటి ఎలాంటి షెల్ ఇంటర్పొలేషన్ లేనిది. నమూనా తనిఖీని స్క్రిప్ట్ లోపలే ఉంచండి. లాగ్ కంటెంట్ ఏ ఆదేశం నడుస్తుందో నిర్ణయించనివ్వకండి.
లింక్ కాదు, లీజ్ను ధృవీకరించండి
ip -4 -o addr show dev kvnet ఆశించిన పరిధిలో చిరునామాను చూపాలి, ip neigh show dev kvnet గేట్వేను చూపాలి, VPN వెనుక ఒక సేవ సమాధానం ఇవ్వాలి. తర్వాత ఒకసారి డిస్కనెక్ట్ అయి మళ్లీ కనెక్ట్ అవ్వండి; చిరునామా వెనక్కి వస్తే, హుక్ తప్పు సంఘటనపై నడుస్తోంది లేదా అసలు నడవట్లేదు.
సరైన చిరునామాతో కనిపించి ఎప్పుడూ లీజ్ పొందని ఇంటర్ఫేస్ సర్వర్ వైపును సూచిస్తుంది. అది మరో తనిఖీ మరియు సాధారణంగా మరో బృందం. హుక్ను మళ్లీ సవరించే ముందు ఖాతాకు అనుమతి ఉందని, పూల్లో ఇంకా చిరునామా ఉందని నిర్ధారించుకోండి.
అప్గ్రేడ్ తర్వాత వర్క్అరౌండ్ను మళ్లీ పరిశీలించండి
చిరునామాను సరిగ్గా సెట్ చేసే క్లయింట్ బిల్డ్ మీ హుక్ను పాత విలువను వర్తించనిస్తుంది, అది సవరణ తెచ్చిన కొత్త లోపం. మరో యంత్రం లేదా ఫోరమ్ పోస్ట్ నుండి కూడా MACను ఎప్పుడూ కాపీ చేయకండి; ఈ క్లయింట్ ఈ ఖాతా కోసం నమోదు చేసే విలువను ఉపయోగించండి, ధృవీకరించిన తేదీని నమోదు చేయండి.
స్క్రిప్ట్ను ఒకే కూర్చోనే చదవగలిగేంత చిన్నదిగా ఉంచండి. లాగ్లను విశ్లేషించే వర్క్అరౌండ్లు స్వభావంగా తాత్కాలికం. నిలిచేవి అసలు థ్రెడ్ లేకుండా భవిష్యత్ పాఠకుడు అర్థం చేసుకోగలిగేవి.