ఒక Linux గేట్వేపై రెండు OpenVPN క్లయింట్లు: విధానాన్ని విభజించండి
రెండు సొరంగాలు పైకి రాగలవు, కానీ ప్రతి క్లయింట్ ఒకటి ఉపయోగిస్తుంది. మూలం ప్రకారం నిర్ణయించండి, ప్రతి సమూహానికి దాని స్వంత పట్టిక ఇవ్వండి, ఆపై ఎంచుకున్న పరికరంలో అనుమతించి అనువదించండి.
రెండు OpenVPN డీమన్లు విజయవంతమైన సొరంగాన్ని నివేదించగలవు, అయితే గేట్వే ప్రతి క్లయింట్ను అదే ఒకటి ద్వారా పంపుతుంది. క్లయింట్ ఏ సొరంగం ఉపయోగిస్తుందో చేతినిచ్చుకోవడంలో ఏదీ నిర్ణయించదు; దాన్ని కర్నెల్ నిర్ణయిస్తుంది, ప్యాకెట్ ప్యాకెట్గా, విధాన నియమాల గుండా ఆపై ప్రతి నియమం పేర్కొనే పట్టిక గుండా వెళుతుంది. అలా చూస్తే, కాన్ఫిగరేషన్ OpenVPN ఎంపికల గురించి ఉండటం మానేసి ఇద్దరు యజమానులున్న రూటింగ్ మ్యాట్రిక్స్ అవుతుంది.
కర్నెల్ నిర్ణయిస్తుంది, డీమన్ కాదు
ఫార్వర్డ్ చేసిన ప్యాకెట్ LAN ఇంటర్ఫేస్కు వస్తుంది మరియు రూటింగ్ కోడ్ నియమాల జాబితాను ప్రాధాన్యత క్రమంలో మూల్యాంకనం చేస్తుంది. సెలెక్టర్ మొదట సరిపోలే నియమం ఒక పట్టికను పేర్కొంటుంది, ఆ పట్టిక మార్గాలు అవుట్పుట్ పరికరాన్ని ఎంచుకుంటాయి. పట్టికలో సరిపోలే మార్గం లేకపోతే, శోధన తదుపరి నియమానికి కొనసాగుతుంది, ఈ వివరమే సగం పూర్తయిన సెటప్ను బిగ్గరగా కాకుండా నిశ్శబ్దంగా విఫలమయ్యేలా చేస్తుంది.
ఆ ప్రయాణంలో సొరంగ ప్రక్రియకు చెప్పడానికి ఏమీ లేదు. అది ఇంటర్ఫేస్ను సృష్టించి మార్గాలను ఇన్స్టాల్ చేయగలదు, కానీ నిర్దిష్ట క్లయింట్ ప్యాకెట్ ఆ ఇంటర్ఫేస్లోకి ప్రవేశిస్తుందా అనేది అది ఏ పట్టికకు పంపబడిందనే దానిపై పూర్తిగా ఆధారపడి ఉంటుంది. అందువల్ల ఒకే విధంగా దిగుమతి చేసిన మార్గాలున్న రెండు సొరంగాలు పోటీపడతాయి, చివరగా వ్రాసేది అందరికీ గెలుస్తుంది. అందుకే సెటప్ కాన్ఫిగరేషన్ ఫైళ్లలో సమతుల్యంగా కనిపించినా అన్ని క్లయింట్లను ఒకే డీమన్ ద్వారా పంపవచ్చు.
ప్రతి ప్రతికి దాని సొంత వనరుల సమితిని ఇవ్వండి
పేర్లతో ప్రారంభించండి, ఎందుకంటే మళ్లీ ఉపయోగించిన పేర్లే రెండు ప్రతులు యాదృచ్ఛికంగా స్థితిని పంచుకోవడం ప్రారంభించే మార్గం. వేర్వేరు సొరంగ పరికరాలు, వేర్వేరు కాన్ఫిగరేషన్ ఫైళ్లు, వేర్వేరు ఆధారాలు మరియు వేర్వేరు సేవా యూనిట్లు కేటాయించండి. ప్రతి ప్రతి బయటి ముగింపు బిందువు మరియు సొరంగ చిరునామాను విధాన మ్యాట్రిక్స్ ఉన్న అదే పట్టికలో నమోదు చేయండి, తద్వారా తర్వాతి మార్పుకు చూడటానికి ఒకే చోటు ఉంటుంది.
dev tun-office
route-nopull
pull-filter ignore "redirect-gateway"
dev tun-lab
route-nopull
route-nopull సర్వర్ నెట్టే మార్గాలను స్థానిక పట్టిక వెలుపల ఉంచుతుంది, విధాన పట్టికలు స్పష్టంగా ఉండాల్సినప్పుడు మీరు కోరేది ఇదే. ఇచ్చిన సర్వర్ redirect-gateway ఎంపికను కూడా నెట్టుతుందా, మీ క్లయింట్ వెర్షన్ ఫిల్టర్ రూపాన్ని మద్దతిస్తుందా అనేది ఊహించకుండా మాన్యువల్లో తనిఖీ చేయదగినది.
మ్యాట్రిక్స్ రాయండి: మూలం, పట్టిక, పరికరం
ప్రతి క్లయింట్ సమూహానికి, మూల చిరునామా ద్వారా పట్టికను ఎంచుకునే నియమాన్ని జోడించి, ఆపై ఉద్దేశించిన మార్గాన్ని ఆ పట్టికలో ఉంచండి:
ip rule add from 10.8.1.0/24 lookup 100 priority 1000
ip rule add from 10.9.1.0/24 lookup 200 priority 1000
ip route add default dev tun-office table 100
ip route add default dev tun-lab table 200
సమూహం ఉండాల్సిన గమ్యస్థాన మార్గాలు, అలాగే గేట్వేను ఉపయోగించదగినదిగా ఉంచే ఏవైనా స్థానిక లేదా నిర్వహణ మినహాయింపులు పట్టికకు అవసరం. డిఫాల్ట్ మార్గం మాత్రమే ఉన్న పట్టిక ఆ సమూహానికి పూర్తి-సొరంగ విధానం, అది సరిగ్గా సరైనది కావచ్చు, కానీ అది విస్మరణ కాకుండా నిర్ణయం అయి ఉండాలి.
సొరంగం యొక్క సొంత రవాణా క్లయింట్ సమూహంలో లేదు
ప్రతి డీమన్ యొక్క ఎన్క్రిప్ట్ చేసిన ప్యాకెట్లు గేట్వేపైనే పుడతాయి, బయటి భాగస్వామికి చిరునామా చేయబడి. క్లయింట్ మూల ఉపసర్గతో మాత్రమే సరిపోలే నియమం ఆ ప్యాకెట్లను తాకకుండా వదిలేస్తుంది, అందుకే మూలంతో పరిమితమైన నియమాలు అన్నింటితో సరిపోలే నియమాల కంటే సురక్షితం. సెలెక్టర్ లేని నియమం సొరంగం యొక్క సొంత రవాణాను పట్టుకోగలదు మరియు దాన్ని మళ్లీ సొరంగం ద్వారా పంపగలదు, అప్పుడు కనెక్షన్ సేవా ప్రదాత సమస్యలా కనిపించే విధంగా విఫలమవుతుంది.
స్థానిక నిర్వహణ సెషన్ మరియు క్రింది పొర మార్గాన్ని విధాన పట్టికల వెలుపల స్పష్టంగా ఉంచండి. ఆ మినహాయింపులను మ్యాట్రిక్స్ పక్కన రాయండి; అవి రూపకల్పనలో భాగం, సంఘటన సమయంలో మళ్లీ కనుగొనవలసిన పరిష్కారం కాదు.
మార్గాన్ని ఎంచుకోవడం దానికి అనుమతి కాదు
ఫార్వర్డింగ్ అనుమతి మార్గంలో తర్వాత తీసుకునే రెండవ నిర్ణయం. రెండవ సొరంగం ద్వారా బయటకు వెళ్లే ప్యాకెట్లను అంగీకరించే ఫైర్వాల్ నియమం రూటింగ్ కోడ్ను దాన్ని ఎంచుకోవడానికి బలవంతం చేయదు, సరైన పట్టిక ఫార్వర్డ్ చేయడానికి అనుమతి ఇవ్వదు. రెండూ ఉండాలి, ఒకటి మాత్రమే నిరూపించే పరీక్ష మరొకదాని గురించి మిమ్మల్ని తప్పుదారి పట్టిస్తుంది. ఒక సమూహం పనిచేసి మరొకటి పనిచేయనప్పుడు, పట్టికలను మళ్లీ రాయడం బదులు ఈ రెండు దశలను విడివిడిగా తనిఖీ చేయండి.
మూల అనువాదం మూడవ నిర్ణయం, అది మూల సమూహానికి మరియు దాన్ని నిజంగా మోసే సొరంగ పరికరానికి పరిమితం చేయాలి. postrouting గొలుసును ఖాళీ చేయడం బదులు రెండు ప్రతులకు ప్రత్యేక గొలుసును జోడించండి, ఎందుకంటే సంబంధం లేని సేవలకు అక్కడ నమోదులు ఉండవచ్చు మరియు ఖాళీ చేయడం వాటిని నిశ్శబ్దంగా తొలగిస్తుంది.
ఒక సొరంగం పడిపోతే ఏమి జరుగుతుంది
వైఫల్య ప్రవర్తనను ముందుగానే నిర్ణయించండి. సొరంగ పట్టిక తన మార్గాన్ని కోల్పోతే, శోధన తదుపరి నియమానికి పడిపోతుంది, సమూహం ట్రాఫిక్ ఎలాంటి లోపం లేకుండా మరొక సొరంగం లేదా సాధారణ పైలింక్ ద్వారా కొనసాగుతుంది. అది ఆమోదయోగ్యం కాకపోతే, తక్కువ ప్రాధాన్యత సంఖ్యలో ఆ మూలానికి చేరుకోలేని ఫలితాన్ని తిరిగి ఇచ్చే ముగింపు నియమాన్ని జోడించండి, నష్టం శోషించబడకుండా కనిపించేలా.
ప్రతి మూల సమూహం నుండి కొత్త అభ్యర్థనను పంపి నాలుగు వాస్తవాలను నమోదు చేయండి: ఎంచుకున్న పట్టిక, అవుట్పుట్ పరికరం, అనువదించిన మూలం, మరియు సమాధానం అదే మార్గంలో తిరిగి వచ్చిందా. తర్వాత ఒక సొరంగాన్ని దించి పునరావృతం చేయండి. ఇంటర్ఫేస్ జాబితాలో రెండు TUN పరికరాలు ఉండటం రెండు డీమన్లు ప్రారంభమైనట్లు రుజువు మాత్రమే; ఒక నిర్దిష్ట క్లయింట్ ఏది ఉపయోగించిందో అవి చెప్పవు. ఒక సొరంగం లేని రెండవ పరుగే మీ ఫాల్బ్యాక్ నియమం మీరు ఉద్దేశించినది చేస్తుందా అని చూపిస్తుంది.