రెండు గేట్వేలు, ఒక VPN: OpenVPN తప్పు అప్లింక్ను ఎందుకు ఎంచుకుంటుంది
టన్నెల్ బాగానే ఉంది; సాకెట్ తప్పు WAN ద్వారా బయటకు వెళ్తోంది. లైవ్ పీర్ చిరునామాను చదవండి, హోస్ట్ రూట్ను పిన్ చేయండి మరియు మొదట పాలసీ నియమాలను తనిఖీ చేయండి.
రెండు అప్లింక్లు, ఒక టన్నెల్, మరియు మీరు ఎంచుకోని మార్గం ద్వారా ట్రాఫిక్ బయటకు వెళ్తోంది. ప్రైవేట్ సబ్నెట్లు చేరుకోగలిగేవి, లాగ్ విజయవంతమైన కనెక్షన్ను నివేదిస్తుంది, మరియు కొలిచిన లింకే దాన్ని మోస్తోంది. OpenVPN అవుట్పుట్లో గేట్వే గురించి ఏమీ లేదు, ఎందుకంటే క్లయింట్ ఎప్పుడూ ఒకదాన్ని ఎంచుకోలేదు. అది దూరపు చిరునామాకు సాకెట్ తెరిచి, ఆ చిరునామాను ఎలా చేరుకోవాలో కెర్నల్కు నిర్ణయించనిచ్చింది.
టన్నెల్ చిరునామా ముగింపు బిందువు కాదు
ప్రతి సెషన్లో రెండు వేర్వేరు మార్గాలు ఉంటాయి. బాహ్య మార్గం ఎన్క్రిప్టెడ్ రవాణాను సర్వర్ పబ్లిక్ చిరునామాకు తీసుకెళ్తుంది. అంతర్గత మార్గం సర్వర్ టన్నెల్లోకి నెట్టే ప్రతిదీ మోస్తుంది, ఒకదాని రూటింగ్ నియమాలు మరొకదానిపై ప్రభావం చూపవు.
ప్రొఫైల్లోని remote నమోదు బాహ్య గమ్యాన్ని పేర్కొంటుంది, కాబట్టి పిన్ చేయాల్సిన చిరునామా అదే. హోస్ట్ పేరు వేరే విధంగా పరిష్కరించబడినప్పుడు లేదా ప్రొఫైల్ అనేక remote జాబితా చేసినప్పుడు మారే విలువ కూడా అదే.
క్లయింట్ నిజంగా డయల్ చేసిన చిరునామాన్ని కనుగొనండి
కాన్ఫిగరేషన్ ఫైల్ బదులు లైవ్ సాకెట్ చదవండి. సాకెట్ పట్టిక ప్రాసెస్ నిజంగా కనెక్ట్ అయిన పీర్ను చూపుతుంది, మినహాయింపు ఆ విలువతో సరిపోలాలి. సెషన్ ప్రారంభమైన తర్వాత కూడా ప్రొఫైల్ సవరించవచ్చు, ఏమి డయల్ చేయబడిందో ఏకైక రుజువు సాకెట్:
ss -tunp | grep -i openvpn
journalctl -u openvpn-client@work --no-pager | grep -i "Peer Connection Initiated"
లాగ్ లైన్ కనెక్షన్ సమయంలో పీర్ చిరునామా మరియు పోర్ట్ను పేర్కొంటుంది. అది ప్రొఫైల్తో సరిపోలకపోతే, క్లయింట్ ముందు ఏదో కనెక్షన్ ప్రారంభం కావడానికి ముందే గమ్యాన్ని తిరిగి రాస్తోంది.
చిరునామా కుటుంబాన్ని కూడా తనిఖీ చేయండి. డ్యూయల్ స్టాక్ ప్రొఫైల్ IPv6 ద్వారా కనెక్ట్ కావచ్చు, కానీ మీ మినహాయింపు IPv4ని మాత్రమే కవర్ చేస్తుంది, అప్పుడు ట్రాఫిక్ మీరు రాసిన నియమం కంటే వేరే నియమాన్ని అనుసరిస్తుంది. ముగింపు బిందువు తరఫున సమాధానమిచ్చే ప్రాక్సీకి కూడా ఇదే వర్తిస్తుంది. రెండు సందర్భాల్లోనూ మీ రూట్ ఏమీ చేయనప్పుడు టన్నెల్ పనిచేస్తుంది.
ముగింపు బిందువును పిన్ చేసి పాలసీ క్రమాన్ని చదవండి
హోస్ట్ రూట్ ఏదైనా డిఫాల్ట్ రూట్ కంటే నిర్దిష్టమైనది. అందువల్ల పీర్ చిరునామా కోసం /32 దాన్ని కలిగి ఉన్న పట్టికలో గెలుస్తుంది. సాధారణ రూపం గేట్వే మరియు పరికరాన్ని స్పష్టంగా పేర్కొంటుంది:
ip route add 203.0.113.40/32 via 192.168.10.1 dev eth0
ఆ రూట్ శోధన ఆ పట్టికను చేరుకుంటేనే సహాయపడుతుంది. పాలసీ నియమాలు క్రమంలో మూల్యాంకనం చేయబడతాయి, మొదటి సరిపోలిక నిర్ణయిస్తుంది, కాబట్టి అన్నింటినీ రెండవ పట్టికకు పంపే నియమం mainలో మీ హోస్ట్ రూట్ను దాటవేస్తుంది. రూట్ అధికారికం అని భావించే ముందు నియమాలను చదవండి:
ip rule show
ip route get 203.0.113.40
పాలసీ వాటిపై ఆధారపడినప్పుడు క్లయింట్ ఉపయోగించే అదే మూల చిరునామా లేదా గుర్తుతో రెండవ ఆదేశాన్ని అడగండి. కెర్నల్ ఎంచుకునే రూట్ను అది నివేదిస్తుంది, అది శోధన గురించిన రుజువు, లైవ్ సాకెట్ ఆ మార్గాన్ని ఉపయోగిస్తోందని రుజువు కాదు.
ముగింపు బిందువు కదిలినప్పుడు
అనేక చిరునామాలకు పరిష్కరించబడే హోస్ట్ పేరు సమాధానం మారిన వెంటనే శాశ్వత /32ని చెల్లని చేస్తుంది. అనేక remote పంక్తులు ఉన్న ప్రొఫైల్కు కూడా అదే సమస్య ఉంది, ఎందుకంటే క్లయింట్ వాటిలో ఏదైనా ఒకదానిపై దిగవచ్చు. రూట్ను చేతితో జోడించడం బదులు క్లయింట్ స్వంత జీవిత చక్ర హుక్ల నుండి రిఫ్రెష్ చేయండి. up స్క్రిప్ట్ సంప్రదించిన పీర్ను చదివి హోస్ట్ రూట్ను ఇన్స్టాల్ చేస్తుంది, మినహాయింపును వాస్తవికతతో సమన్వయంగా ఉంచుతుంది, సరిపోలే down స్క్రిప్ట్ దాన్ని తీసివేస్తుంది.
రిఫ్రెష్ను హోస్ట్ మిగిలిన రూటింగ్ కాన్ఫిగరేషన్ ఉన్న అదే ప్రదేశంలో నమోదు చేయండి. తదుపరి రీబూట్ వరకు మాత్రమే ఉండే రూట్ పరీక్ష, పరిష్కారం కాదు.
లోపలి పాలసీని వేరుగా ఉంచండి
బాహ్య మార్గాన్ని కదిలించడం కొత్త ప్రైవేట్ సబ్నెట్కు ప్రాప్యత ఇవ్వదు, సర్వర్ టన్నెల్లోకి ఏ గమ్యాలను నెట్టుతుందో కూడా మార్చదు. దిగువ పొర రూట్ తీగను ఎంచుకుంటుంది; నెట్టబడిన రూట్లు టన్నెల్లోకి ఏది ప్రవేశిస్తుందో ఎంచుకుంటాయి. ఈ రెండు నిర్ణయాలను వేరుగా ఉంచడమే విభజనను ఊహించగలిగేలా చేస్తుంది.
లక్ష్యం ఎన్క్రిప్టెడ్ రవాణాను కొలిచిన లింక్ నుండి దూరంగా ఉంచడం మాత్రమే అయితే, డిఫాల్ట్ రూట్ను అలాగే ఉంచి ఏకైక హోస్ట్ మినహాయింపును జోడించండి. ఒక VPN కనెక్షన్ను కదిలించడానికి యంత్రం మొత్తం డిఫాల్ట్ను మార్చడం హోస్ట్లోని ప్రతి ఇతర అప్లికేషన్ను పాడు చేస్తుంది.
ఫలితాన్ని రెండు స్వతంత్ర పరిశీలనలతో ధృవీకరించండి: సాకెట్ స్థానిక చిరునామా మరియు పరికరం, మరియు ప్రైవేట్ గమ్యం పరిష్కరించబడే రూట్. రెండూ మీ ఉద్దేశంతో సరిపోలినప్పుడు విభజన నిజం. OpenVPN 2.6 మాన్యువల్ క్లయింట్ ఏ చిరునామాకు డయల్ చేస్తుందో నిర్ణయించే remote మరియు స్థానిక బైండింగ్ ఎంపికలను కవర్ చేస్తుంది.