OpenVPN సర్వర్ nopool తో: స్పష్టమైన పూల్ పరిధిని ప్రకటించండి
సబ్నెట్ను ఉంచుకుని కేటాయింపును తీసుకోండి. స్వయంచాలక పూల్ను అణచి, కలుపుకునే హద్దులను ప్రకటించి, కొత్త క్లయింట్ నిజంగా ఏమి పొందుతుందో తనిఖీ చేయండి.
సర్వర్ సహాయకులు సబ్నెట్ను కాన్ఫిగర్ చేసి, తర్వాత తమ ఎంపిక ప్రకారం ఒక చలన పూల్తో నింపుతారు. కొన్ని చిరునామాలు కేటాయింపు వెలుపల ఉండాల్సిన వరకు ఆ డిఫాల్ట్ సౌకర్యవంతంగా ఉంటుంది — అవి స్థిర కేటాయింపులకు కేటాయించబడినా, భవిష్యత్తు విభాగం కోసం ఉంచబడినా. స్వయంచాలక పూల్ను అణచి పరిధిని మీరే ప్రకటించడానికి రెండు పంక్తులు మరియు ఏ చిరునామాలు కేటాయింపు కోసం కావు అనే ఒక స్పృహతో కూడిన నిర్ణయం అవసరం. మిగిలినది కార్యాచరణ క్రమశిక్షణ: జాబితా, అమలు, ధృవీకరణ, రోల్బ్యాక్.
ఇది నడుస్తున్న సేవలో మార్పు, కాబట్టి దీన్ని కార్యాచరణ పనిగా పరిగణించండి: మొదట జాబితా, తర్వాత సాధారణ జీవనచక్రం ద్వారా అమలు, కొత్త క్లయింట్తో ధృవీకరణ మరియు సిద్ధంగా ఉన్న రోల్బ్యాక్.
మీ దగ్గర ఇప్పటికే ఉన్న సబ్నెట్ నుండి ప్రారంభించండి
ప్రస్తుత సర్వర్ కాన్ఫిగరేషన్ మరియు క్లయింట్లు నిజంగా కలిగి ఉన్న చిరునామాలను చదవండి. ఆ ఆధారరేఖకు వ్యతిరేకంగానే పూల్ మార్పు అర్థవంతం, మరియు ఆధారరేఖ ఎప్పుడూ ఫైల్ సూచించినట్లుగా ఉండదు, ఎందుకంటే మీరు చదువుతున్న ఫైల్కు నిర్వహిత ఉత్పత్తి లేదా కాన్ఫిగరేషన్ జనరేటర్ యజమాని కావచ్చు.
grep -nE '^(topology|server|ifconfig-pool|max-clients|client-config-dir)' /etc/openvpn/server/lab.conf
ip -4 addr show tun0అమలులో ఉన్న టోపాలజీని నిర్ధారించండి. సబ్నెట్ టోపాలజీలో ప్రతి క్లయింట్ పూల్ నుండి ఒక చిరునామా తీసుకుంటుంది; పాత net30 అమరికలు ప్రతి క్లయింట్కు చిన్న బ్లాక్ కేటాయిస్తాయి మరియు గణితం పూర్తిగా భిన్నంగా ఉంటుంది. సర్వర్ ఇంకా net30 లో ఉంటే, ఈ పేజీ తప్పు మైగ్రేషన్ మార్గదర్శిని మరియు పూల్ సంఖ్యలు మీరు ఆశించిన అర్థాన్ని ఇవ్వవు. వేరే చోటి నుండి చిరునామా గణితాన్ని కాపీ చేయడానికి ముందు ఆ పంక్తిని తనిఖీ చేయండి.
సర్వర్ స్వంత చిరునామా, క్లయింట్ కాన్ఫిగరేషన్ డైరెక్టరీలోని ప్రతి స్థిర కేటాయింపు, మరియు ఒక మార్గం లేదా ప్రవేశ నియమం ఆధారపడే ఏ చిరునామానైనా రాసుకోండి. చలన పరిధి వెలుపల ఉండాల్సినవి ఇవే చిరునామాలు. వాటిని మొదట రాయడమే పరిధిని ఊహ కాకుండా నిర్ణయంగా మారుస్తుంది. ఇది రోల్బ్యాక్కు పునరుద్ధరించడానికి ఏదో ఠోసంగా ఇస్తుంది.
nopool జోడించి పరిధిని ప్రకటించండి
సహాయక కీవర్డ్ nopool ను అంగీకరిస్తుంది, అది సబ్నెట్ కాన్ఫిగరేషన్ను ఉంచి స్వయంచాలక చలన పూల్ను అణచివేస్తుంది, OpenVPN 2.6 మాన్యువల్ వివరించినట్లు. తర్వాత స్పష్టమైన ifconfig-pool పంక్తి మీరు ఉద్దేశించిన కలుపుకునే పరిధిని ఇస్తుంది, దాని నెట్మాస్క్ సబ్నెట్తో సరిపోతుంది. రెండు పంక్తులు ఒకే సర్వర్ బ్లాక్కు చెందుతాయి, ఎందుకంటే తన సబ్నెట్ లేని పూల్కు అర్థం లేదు. వాటి మధ్య క్రమం చదవడానికి మాత్రమే ముఖ్యం, ఎందుకంటే సేవ ప్రారంభమైనప్పుడు సహాయకుడు ఆ జంటను విస్తరిస్తాడు.
topology subnet
server 10.70.0.0 255.255.255.0 nopool
ifconfig-pool 10.70.0.50 10.70.0.120 255.255.255.0రెండు హద్దులు కలుపుకునేవి, కాబట్టి ఉదాహరణ డెబ్బై ఒక్క చిరునామాలను ఇస్తుంది. సర్వర్ చిరునామా మరియు ప్రతి స్థిర కేటాయింపును ఆ విస్తృతికి వెలుపల ఉంచండి; చలన పరిధిలో పడే స్థిర కేటాయింపు కనెక్షన్ క్రమం మీద ఆధారపడే ఘర్షణను సృష్టిస్తుంది, డీబగ్ చేయడానికి అది అత్యంత దారుణమైన రకం. స్థిర కేటాయింపులు పెరిగే అవకాశం ఉంటే కేటాయించిన సమితికి, పరిధికి మధ్య ఖాళీ ఉంచండి.
పరిధి పరిమాణం మరియు ఏకకాలికత వేర్వేరు పరిమితులు. max-clients వేరే చెప్పకపోతే వంద చిరునామాలు వంద ఏకకాల క్లయింట్లు కావు, ఏకకాలికత పరిమితి కంటే పెద్ద పూల్ వృథా కాదు, సాధారణం. ముఖ్యమైనది ఏమిటంటే రెండు పరిమితులు డిఫాల్ట్ నుండి వారసత్వంగా తీసుకోకుండా స్పృహతో ఎంపిక చేయడం.
స్థిర కేటాయింపులను చలన పరిధి వెలుపల ఉంచండి
క్లయింట్-నిర్దిష్ట ifconfig-push పూల్ కేటాయింపు కంటే భిన్నమైన యంత్రాంగం, మరియు అది క్రియాశీల టోపాలజీకి సరిపోయే పారామితులను ఉపయోగించాలి. సబ్నెట్ మోడ్లో అది ఒక చిరునామా మరియు నెట్మాస్క్; పాత ఉదాహరణలో కనిపించిందని net30 జంటను తీసుకురావడం సాధారణ పొరపాటు.
కేటాయింపు చరిత్ర ఒక సూచన, అధికారం కాదు. persist ఫైల్ ఏ క్లయింట్కు ఏ చిరునామా ఉందో గుర్తుంచుకుంటుంది, కాబట్టి తిరిగి కనెక్ట్ అయ్యే క్లయింట్లు సాధారణంగా అదే పొందుతారు, మరియు అది చిరునామాలను కేటాయించదు, విడుదల చేయదు లేదా స్థిర కేటాయింపును భర్తీ చేయదు. నిర్దిష్ట పరికరం ఎప్పుడూ నిర్దిష్ట చిరునామాన్ని కలిగి ఉండాలంటే persist ఫైల్పై ఆధారపడకుండా స్థిర కేటాయింపును ఉపయోగించండి.
తర్వాత చిరునామాలపై ఆధారపడే మార్గాలను తనిఖీ చేయండి. క్లయింట్లకు నెట్టబడే మార్గం, సబ్నెట్ను అనుమతించే ఫైర్వాల్ నియమం, లేదా నిర్దిష్ట హోస్ట్ను ఆశించే పర్యవేక్షణ తనిఖీ అన్నీ పాత పరిధిని ఊహించవచ్చు. వాటిని చదవకుండా పూల్ మార్చడం వైఫల్యాన్ని సంబంధం లేనట్లుగా కనిపించే ప్రదేశానికి కదిలిస్తుంది.
జీవనచక్రం ద్వారా అమలు చేసి, తర్వాత ధృవీకరించండి
సేవ సాధారణంగా కాన్ఫిగరేషన్ పొందే విధంగానే మార్పును అమలు చేయండి — ప్రత్యక్ష ఫైల్ మరియు పునఃప్రారంభం, లేదా ఫైల్ను మళ్లీ ఉత్పత్తి చేసే నిర్వహణ పొర. ఉత్పత్తి చేసిన ఫైల్లో చేతితో చేసిన సవరణ తదుపరి ఉత్పత్తి వరకే నిలుస్తుంది, అంతకు మించి కాదు. ఏ యంత్రాంగం ఫైల్ యజమాని అని నమోదు చేయండి, ఎందుకంటే తదుపరి ఆపరేటర్ అదే మార్పు ఎక్కడ చేయాలో తెలుసుకోవాలి. తర్వాత ఒకసారి పునఃప్రారంభించి క్లయింట్ను ఆహ్వానించడానికి ముందు లాగ్ చదవండి.
systemctl restart openvpn-server@lab
journalctl -u openvpn-server@lab -n 30 --no-pager
# on a fresh client
ip -4 addr show tun0మునుపు కనెక్ట్ కాని క్లయింట్ను కనెక్ట్ చేసి, చిరునామా ప్రకటించిన పరిధిలో మరియు కేటాయించిన సమితి వెలుపల పడుతుందని నిర్ధారించండి. తర్వాత తిరిగి వచ్చే మార్గాన్ని నిర్ధారించండి: విధానం అనుమతించిన దానికి క్లయింట్ చేరుకోవాలి, అంతకు మించి కాదు. ప్రణాళికతో సరిపోలినా పనిచేసే మార్గం లేని చిరునామా విజయవంతమైన మార్పు కాదు.
పాత పరిధి నుండి చిరునామాను కలిగి ఉన్న క్లయింట్ను మళ్లీ కనెక్ట్ చేయండి. అది కొత్త పరిధి నుండి చిరునామా పొందాలి, పాత చిరునామాకు బద్ధమైన ఏ సెషన్-స్థాయి స్థితి అయినా పోయి ఉండాలి. అది పాత చిరునామానే ఉంచుకుంటే, వేరే ఏదో దాన్ని కేటాయిస్తోంది మరియు పూల్ మీరు భావించే యజమాని కాదు.
పరిధి మార్పును రోల్బ్యాక్ చేయడం
మీ మార్పు-నమోదులో మునుపటి మూడు పంక్తులను ఉంచండి, మునుపటి ఫైల్ మాత్రమే కాదు. వాటిని పునరుద్ధరించి పునఃప్రారంభిస్తే కేటాయింపు పాత ప్రవర్తనకు తిరిగి వస్తుంది, తర్వాత మళ్లీ కనెక్ట్ అయ్యే క్లయింట్లు అందులో నుండి చిరునామాలు పొందుతారు.
నమోదులో రెండు హెచ్చరికలు ఉండాలి. రోల్బ్యాక్ చేసేటప్పుడు ఇప్పటికే కనెక్ట్ అయిన క్లయింట్లు మళ్లీ కనెక్ట్ అయ్యే వరకు తమ ప్రస్తుత చిరునామాలను ఉంచుకుంటారు, కాబట్టి రోల్బ్యాక్ మొత్తం దళంలో తక్షణమే ఉండదు. మరియు పాత పరిధి ఒక స్థిర కేటాయింపుతో అతివ్యాప్తి చెంది ఉంటే, దాన్ని పునరుద్ధరించడం ఘర్షణను కూడా పునరుద్ధరిస్తుంది; ఆ అతివ్యాప్తి మార్పుకు కారణం, దానికి రోల్బ్యాక్ కంటే భిన్నమైన పరిష్కారం అవసరం.
కొత్త క్లయింట్ పరిధిలోని చిరునామాను పొందినప్పుడు, కేటాయించిన చిరునామా ఎప్పటికీ ఇవ్వబడనప్పుడు, ఆ చిరునామాలను వినియోగించే మార్గాలు మరియు నియమాలు ఉద్దేశించిన విధంగా ప్రవర్తిస్తూనే ఉన్నప్పుడు పూల్ మార్పు పూర్తవుతుంది. అంతకు తక్కువ ఏదైనా మూడింటిలో ఏది నిజం కాదో కనుగొనడానికి తదుపరి వ్యక్తికి వదిలివేస్తుంది.