క్లయింట్ ఒక చిరునామా పొందుతుంది, సర్వర్ ping కి ప్రతిస్పందిస్తుంది, అయినా ప్రతి పేజీ సమయం మించి విఫలమవుతుంది. చాలామంది ఈ దశలో క్లయింట్ ప్రొఫైల్ను సవరించడం ప్రారంభిస్తారు, ఇది సాధారణంగా వృథా శ్రమ: టన్నెల్ పైకి వచ్చాక సర్వర్ రౌటర్లా ప్రవర్తించాలి. ప్యాకెట్ బయటకు వెళ్లి ప్రతిస్పందన తిరిగి రావడానికి మూడు షరతులు ఏకకాలంలో నెరవేరాలి, ఏది తప్పిపోయినా లక్షణం ఒకటే.

పనిచేసే టన్నెల్కు ఇంకా బయటకు వెళ్లే మార్గం లేకపోవడం ఎందుకు

కర్నెల్ ఇంటర్ఫేస్ల మధ్య ప్యాకెట్లను ఫార్వర్డ్ చేయాలి, ఇది చాలా Linux పంపిణీలలో డిఫాల్ట్గా ఆఫ్లో ఉంటుంది. ట్రాఫిక్ బయటి ప్రపంచం ప్రతిస్పందించగల చిరునామాకు అనువదించబడాలి, ప్రతి పై రౌటర్కు టన్నెల్ సబ్నెట్కు తిరిగి వెళ్లే మార్గం ఇప్పటికే తెలియకపోతే. ఫైర్వాల్ యొక్క ఫార్వర్డ్ మార్గం రెండు దిశలలోనూ ట్రాఫిక్ను అనుమతించాలి, ప్రతిస్పందనలతో సహా.

వీటిలో ప్రతిదాన్ని విడిగా సరిచేయవచ్చు, అదే ఉచ్చు. అనువాద నియమం లేకుండా ఫార్వర్డింగ్ ఆన్ చేస్తే ప్యాకెట్లు ప్రైవేట్ మూలంతో, తిరిగి వెళ్లే మార్గం లేకుండా బయటకు వెళ్తాయి. ఫార్వర్డ్ నియమం లేకుండా అనువాదం జోడిస్తే కర్నెల్ ఒక అడుగు తర్వాత ప్యాకెట్ను వదిలేస్తుంది.

కాబట్టి క్లయింట్ కాదు, మూడు పొరలను పరీక్షించండి, ఫలితానికి అర్థం ఉండాలంటే ఒకేసారి ఒకటి మార్చండి.

ఫార్వర్డింగ్ అనేది శాశ్వతం చేయాల్సిన కర్నెల్ స్విచ్

మార్చే ముందు ప్రస్తుత విలువను తనిఖీ చేయండి, తర్వాత దాన్ని సెట్ చేసి మార్పు అమల్లోకి వచ్చిందని నిర్ధారించుకోండి.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

మొదటి ఆదేశం ప్రస్తుత విలువను నివేదిస్తుంది, రెండవది దాన్ని రన్టైమ్లో సెట్ చేస్తుంది, మూడవది రాయడం పనిచేసిందని నిరూపిస్తుంది. రన్టైమ్ విలువ తదుపరి రీబూట్లో అదృశ్యమవుతుంది, అందుకే పనిచేస్తున్న సెషన్ నిర్వహణ తర్వాత ఎలాంటి కాన్ఫిగరేషన్ మార్పు లేకుండా విరిగిపోవచ్చు.

దాన్ని /etc/sysctl.d/ కింద ఉన్న ఫైల్లో శాశ్వతం చేయండి, తర్వాత తెలుసుకోవడానికి రీబూట్ చేయడం బదులు ఆ ఫైల్ను వర్తించండి. FreeBSD లో సమానమైనది net.inet.ip.forwarding, శాశ్వతత్వానికి rc.conf లో gateway_enable=YES. ఫార్వర్డింగ్ ఆఫ్ అని నివేదించే పరికరం «ప్యాకెట్లు వస్తాయి, ఏదీ తిరిగి రాదు» అనే మొత్తం తరగతి నివేదికలను వివరిస్తుంది. ప్రతి అప్గ్రేడ్ తర్వాత కూడా సెట్టింగ్ను తనిఖీ చేయండి, ఎందుకంటే పునర్నిర్మించిన కర్నెల్ లేదా మార్చిన పరికర ఇమేజ్ ఎవరికీ చెప్పకుండా దాన్ని రీసెట్ చేయవచ్చు.

masquerade లేదా ఒక స్థిర అనువాద చిరునామాను ఎంచుకోండి

గతిశీల బయటి చిరునామాతో, masquerading సరళమైన సరైన రూపం. టన్నెల్ సబ్నెట్ను మూలంగా, బయటి ఇంటర్ఫేస్ను నిష్క్రమణగా పేర్కొనండి.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE

స్థిర పబ్లిక్ చిరునామాతో, మూలాన్ని సరిగ్గా ఆ చిరునామాకు అనువదించడం మరింత అంచనా వేయదగినది మరియు ఆడిట్ చేయడం సులభం.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j SNAT --to-source 198.51.100.10

రెండవ రూపంలో నిర్వహణ ఉచ్చు ఉంది: తర్వాత మారే హార్డ్కోడ్ చేసిన చిరునామా టన్నెల్ను నడుపుతూనే ఉంటుంది, ఇంటర్నెట్ యాక్సెస్ నిశ్శబ్దంగా ఆగిపోతుంది. masquerade వాడండి లేదా ప్రొవైడర్ మిమ్మల్ని తరలించిన ప్రతిసారీ నియమాన్ని అప్డేట్ చేయండి. ఇంటర్ఫేస్ కూడా ముఖ్యం, ఎందుకంటే తన సొంత పై టన్నెల్ను పంచుకునే రౌటర్ భౌతిక WAN ద్వారా కాదు, ఆ టన్నెల్ ద్వారా అనువదించాలి.

ఫిల్టర్ పట్టిక మూడవ ద్వారం

ఫార్వర్డింగ్ మరియు అనువాదం రెండూ సరైనవి కావచ్చు, అయినా ప్యాకెట్ ఫిల్టర్ పట్టికలో మరణిస్తుంది. ufw తరచుగా నిందితుడు: దాని ఫార్వర్డ్ విధానం DROP గా వస్తుంది, మిగిలిన సెటప్ పూర్తిగా సరిగ్గా కనిపించవచ్చు ఆ ఒక సెట్టింగ్ ట్రాఫిక్ను చంపుతుండగా. దాన్ని పెంచడం చెక్బాక్స్ కాదు, ఉద్దేశపూర్వక భద్రతా నిర్ణయం.

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

మొదటి నియమం టన్నెల్ నుండి బయటకు కొత్త ట్రాఫిక్ను అనుమతిస్తుంది, రెండవది ప్రతిస్పందనలను మాత్రమే తిరిగి రావడానికి అనుమతిస్తుంది. రెండింటినీ టన్నెల్ సబ్నెట్ మరియు ఉద్దేశించిన గమ్యస్థానానికి పరిమితం చేయండి, ఎందుకంటే టన్నెల్ ఇంటర్ఫేస్పై సర్వవ్యాప్త అనుమతి VPN ను ప్రామాణీకరించగల ఎవరికైనా తెరిచిన నిష్క్రమణ బిందువుగా మారుస్తుంది.

బ్రిడ్జ్ చేసిన టన్నెల్కు వేరే సమాధానం కావాలి. చిరునామా భౌతిక పోర్టుది కాదు, బ్రిడ్జ్ది, కాబట్టి ఇంటర్ఫేస్ను బానిస చేయడం దానికి ముందున్న చిరునామాను తొలగిస్తుంది, బ్రిడ్జ్ కూడా ఒకటి పొందే వరకు హోస్ట్ చేరుకోలేనిదిగా కనిపిస్తుంది, దాన్ని dhclient br0 అందించగలదు. ఆ వైఫల్యం VPN సమస్యలా కనిపిస్తుంది, నిజానికి రెండవ పొర సమస్య. ఫైర్వాల్ను తాకే ముందు బ్రిడ్జ్ సొంత చిరునామాను తనిఖీ చేయండి, ఎందుకంటే ఫిల్టర్ మార్పు పంపడానికి చిరునామా లేని హోస్ట్ను సరిచేయలేదు.

పేజీ ఎప్పుడూ లోడ్ కానప్పుడు ఎక్కడ చూడాలి

టన్నెల్ ఉందని నిరూపించడానికి సర్వర్ టన్నెల్ చిరునామాకు ping చేయండి. తర్వాత క్లయింట్ నుండి పబ్లిక్ చిరునామాకు traceroute నడిపి ఎక్కడ ఆగుతుందో చదవండి: సర్వర్లో ప్యాకెట్ చేరుతుంది కానీ ఫార్వర్డ్ లేదా అనువాదం కాదు; సర్వర్ ఆవల సమస్య పైన ఉంది మరియు మీ చేతులకు అందనిది.

ping -c 3 10.9.0.1
traceroute -n 198.51.100.10

మొదటి ఆదేశం టన్నెల్ ట్రాఫిక్ను సర్వర్ వరకే తీసుకెళ్తుందని నిరూపిస్తుంది, రెండవది ప్యాకెట్ బయటకు ఎంత దూరం చేరుతుందో చూపిస్తుంది. టన్నెల్ చిరునామాలో ముగిసే జాడ సర్వర్లో ఫార్వర్డింగ్ లేదా అనువాదాన్ని సూచిస్తుంది, ఒక హాప్ తర్వాత ఆగే జాడ ప్రొవైడర్ లేదా పై రౌటర్ తిరిగి వెళ్లే మార్గాన్ని సూచిస్తుంది.

సర్వర్లో, క్లయింట్ పేజీ లోడ్ చేస్తున్నప్పుడు బయటి ఇంటర్ఫేస్ను గమనించండి. ప్రైవేట్ మూల చిరునామాతో బయటకు వెళ్లే ట్రాఫిక్ అంటే అనువాదం తప్పిపోయింది, ప్రతిస్పందనే లేకపోవడం అంటే ఫార్వర్డ్ మార్గం లేదా పై తిరిగి వెళ్లే మార్గం దాన్ని పడేస్తోంది.

దూరపు క్లయింట్లు సర్వర్ LAN లోని హోస్ట్లకు కూడా చేరాలంటే, LAN కి టన్నెల్ సబ్నెట్కు తిరిగి వెళ్లే మార్గం కావాలని గుర్తుంచుకోండి. ఇది అనువాదం కాదు, రూటింగ్, ఇంటర్నెట్ మార్గం చివరకు పనిచేసిన తర్వాత అత్యధికంగా మరచిపోయే దశ ఇదే.

సంబంధిత వ్యాసాలు