eth0:0 ఒక లేబుల్, పరికరం కాదు: SNAT సరిపోలికను సరిచేయండి
సున్నా కౌంటర్ అంటే నియమం ఉనికిలో ఉండలేని ఇంటర్ఫేస్ను పేర్కొంటుంది. నిజమైన పరికరాన్ని చదవండి, -o సరిపోలికను సరిచేయండి, ఆపై అనువదించిన చిరునామాను ఉద్దేశపూర్వకంగా ఎంచుకోండి.
ఒక VPN క్లయింట్ పూల్కు దాని స్వంత పబ్లిక్ చిరునామా ఇవ్వాల్సిన NAT నియమం సున్నా ప్యాకెట్లపై నిలిచి ఉంది, అదే పూల్ తప్పు మూలంతో బయటకు వెళ్తూనే ఉంది. నియమం సాధారణంగా చిరునామాలో తప్పు చేయదు; ఇంటర్ఫేస్లో తప్పు చేస్తుంది. -o eth0:0 లేని పరికరాన్ని సూచిస్తుంది, ఎందుకంటే eth0:0 చిరునామాకు జోడించిన లేబుల్, ఆ చిరునామా పరికరం eth0 అవుతుంది. కౌంటర్లను చూడటం దీన్ని నిర్ధారించే అత్యంత వేగవంతమైన మార్గం, మరియు సవరణ పరిశోధన సూచించే దానికంటే చిన్నది.
కెర్నల్ పరికరాన్ని ఏమని పిలుస్తుందో చూడండి
ఏదైనా మార్చే ముందు రెండు వీక్షణలను విడివిడిగా చదవండి:
ip link show
ip address show dev eth0
ip route get 203.0.113.20
లింక్ జాబితా ఇంటర్ఫేస్లను చూపుతుంది. చిరునామా జాబితా లేబుల్ మోసే రెండవ IPv4 చిరునామాను చూపవచ్చు eth0:0, ఆ చిరునామా పరికరం ఇంకా eth0 అవుతుంది. iproute2 చిరునామా చేతిపుస్తకం లేబుల్ను చిరునామా పేరుగా పరిగణిస్తుంది, రెండవ లింకుగా కాదు, మొత్తం సమస్య ఈ భేదంపైనే నిలిచి ఉంది.
చరిత్ర గందరగోళాన్ని వివరిస్తుంది. పాత ifconfig eth0:0 వాక్యనిర్మాణం నిజంగా కొత్త ఇంటర్ఫేస్లా కనిపించింది, ఆ కాలపు స్క్రిప్ట్లు ఇప్పటికీ ఒకదాన్ని సూచిస్తాయి. నేటి వ్యవస్థలో అలియాస్ అనేది చిరునామాపై ఉన్న లేబుల్, రూటింగ్ లేదా netfilter మార్గంలో ఏదీ దాన్ని ప్రత్యేక నిష్క్రమణ బిందువుగా పరిగణించదు.
నియమం నిజంగా దేనితో సరిపోలిందో చూడండి
కౌంటర్లను గుర్తుపట్టి కాదు, నియమాల జాబితాతో పాటు చదవండి:
iptables -t nat -L POSTROUTING -v -n --line-numbers
సరిపోలే ట్రాఫిక్ ప్రవహిస్తున్నప్పుడు ప్యాకెట్ కౌంటర్ సున్నాలోనే ఉండే నియమం మూల్యాంకనం కాదు, మరియు ఈ కింది దాన్ని పేర్కొనే నిష్క్రమణ ఇంటర్ఫేస్ షరతు eth0:0 సాధారణ కారణం. రూట్ ఎంచుకున్న నిష్క్రమణ పరికరం eth0, కాబట్టి వేరే పేరు వెతికే షరతు కెర్నల్ ఏ మూల చిరునామాన్ని ఎంచుకున్నా ఎప్పటికీ నిజం కాదు.
షరతును నిజమైన పరికరానికి మార్చి లేబుల్ను దాని వెలుపల ఉంచండి. ఆ పరికరాన్ని పంచుకునే రెండు క్లయింట్ పూలను వేరు చేయాల్సి ఉంటే, మూల ప్రిఫిక్స్తో వేరు చేయండి, ఉనికిలో ఉండలేని ఇంటర్ఫేస్ పేరుతో కాదు. ఒకదానిపై మరొకటి పడని -s సరిపోలికలు ఉన్న రెండు నియమాలు చదవగలిగేవి మరియు పరీక్షించగలిగేవి; కల్పిత పరికరం ఉన్న ఒక నియమం రెండూ కాదు. ప్రతి నియమానికి పూల్ పేరు తెలిపే వ్యాఖ్య జోడించండి, ఎందుకంటే ఆరు నెలల తర్వాత ప్రిఫిక్స్ మాత్రమే అది ఎందుకు అక్కడ ఉందో ఎవరికీ చెప్పదు.
పరికరాన్ని ఎంచుకున్న రూట్ను చూడండి
Postrouting NAT రూట్ ఇప్పటికే నిష్క్రమణ ఇంటర్ఫేస్ను ఎంచుకున్న తర్వాత నడుస్తుంది, కాబట్టి నియమంలోని ఇంటర్ఫేస్ రూట్ ఎంచుకున్నదే అయి ఉండాలి. కెర్నల్ను నేరుగా అడగండి ip route get తో ప్రతినిధి క్లయింట్ చిరునామా కోసం, అది నివేదించే పరికరాన్ని మరియు మూలాన్ని రెండింటినీ చదవండి.
సమాధానం eth0 అని పేర్కొంటే, నియమం ఇంటర్ఫేస్ భాగం తేలిపోయింది. అది టన్నెల్ పరికరాన్ని పేర్కొంటే, మీరు సవరిస్తున్న నియమాన్ని ప్యాకెట్ ఎప్పటికీ చేరుకోదు, మరియు అన్వేషణ రూటింగ్ పట్టికకు, దాని ప్రాధాన్యతలకు మారుతుంది. ప్యాకెట్ వేరే చోట నుంచి బయటకు వెళ్లినందున ఎప్పటికీ సరిపోలని నియమం, తప్పుగా రాసిన పరికరం ఉన్న నియమంలా కౌంటర్ అవుట్పుట్లో కనిపిస్తుంది. ఏదైనా సవరించే ముందు రెండింటిలో ఏ స్థితి ఉందో నిర్ధారించుకోండి, ఎందుకంటే రెండవది టెక్స్ట్ కాదు, రూటింగ్ మార్పు అవసరం.
అనువదించిన మూలాన్ని ఉద్దేశపూర్వకంగా ఎంచుకోండి
పరికరం సరైనదైన తర్వాత, మూల చిరునామా ప్రత్యేక నిర్ణయం. ఇది కేవలం వివరణాత్మక IPv4 పూల్ మరియు నమూనా చిరునామా:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
-j SNAT --to-source 203.0.113.20
చిరునామాను --to-source లో రాయడం వల్ల ఎవరూ దాన్ని మీ వైపు తిరిగి రూట్ చేయరు. పైన సేవా ప్రదాత లేదా చిరునామా యజమాని ఆ చిరునామా జవాబులను ఈ హోస్ట్కు అందించాలి, మరియు చిరునామా మీకు ఉపయోగించే అధికారం ఉన్నదై ఉండాలి. అలా కాకుంటే, నియమం సరిపోలి అనువదిస్తుంది, జవాబులు ఇంకా వేరే చోటికి వెళ్తాయి.
మూల చిరునామాన్ని మార్చడం పై లింక్ను మార్చడం వంటిది కాదు. నిజమైన అవసరం వేరే భౌతిక మార్గం అయితే, రూటింగ్ విధానం మొదట ఆ మార్గాన్ని ఎంచుకోవాలి; తర్వాత SNAT విధానం ఎంచుకున్న పరికరంపై మూలాన్ని తిరిగి రాస్తుంది. అదనపు లేబుల్లు eth0 జోడించడం మార్గాన్ని లేదా అనుమతిని ఇవ్వదు.
ఇప్పుడే తెరిచిన కనెక్షన్తో నిర్ధారించండి
ఉన్న కనెక్షన్ను మళ్లీ ఉపయోగించకుండా కొత్త క్లయింట్ కనెక్షన్ తెరవండి. కనెక్షన్ ట్రాకింగ్ ప్రవాహం ప్రారంభమైనప్పుడు నమోదు చేసిన అనువాదాన్ని ఉంచుతుంది, కాబట్టి పాత సెషన్ మునుపటి మూల చిరునామాను ఉపయోగిస్తూ సరైన కొత్త నియమాన్ని పాడైనట్లు చూపవచ్చు. కౌంటర్ పెరుగుతున్నట్లు చూడండి, తర్వాత అనువదించిన మూలాన్ని తీగపై లేదా దూరపు చివరలో గమనించండి.
ఒక ఇంటర్ఫేస్ను పంచుకునే అనేక పూలకు, ప్రతిదానికీ స్పష్టమైన మూల సరిపోలిక మరియు దాని స్వంత అనువాద చిరునామా ఇవ్వండి, వాటిని ఫైర్వాల్ నిర్వహిత కాన్ఫిగరేషన్లో ఉంచి, ఏ క్రమంలో మూల్యాంకనం చేయబడతాయో గుర్తించండి. తర్వాత మీరు నిర్ధారించినది నమోదు చేయండి: ip route get నుండి పరికరం, కదిలిన కౌంటర్, మరియు దూరపు వైపు చూసిన మూలం. ఆ నమోదు లేబుల్ గందరగోళాన్ని పునరావృతం చేయకుండా తదుపరి నివేదికకు సమాధానం ఇస్తుంది.