Tailscale సబ్నెట్ రౌటర్లో మూల NAT ఆఫ్ చేయండి, టన్నెల్ పని చేస్తూనే ఉంటుంది కానీ దాని ద్వారా వెళ్లే కనెక్షన్లు ఆగిపోతాయి. అభ్యర్థనలు గమ్యానికి దూరపు క్లయింట్ యొక్క స్వంత overlay చిరునామాతో చేరుతాయి, ఇదే ఈ మార్పు ఉద్దేశం, మరియు ప్రత్యుత్తరాలకు ఇప్పుడు LAN ఎప్పుడూ తెలుసుకోవాల్సిన అవసరం లేని మార్గం కావాలి. ఆ మార్గం లేకుండా ప్యాకెట్లు దిగుతాయి, ప్రత్యుత్తరాలు సాధారణ గేట్వే ద్వారా బయటకు వెళ్తాయి, మరియు వైఫల్యం ఏ ఫైర్వాల్ నియమమూ వివరించని ఫైర్వాల్ సమస్యగా కనిపిస్తుంది. టన్నెల్ ఆరోగ్యంగా ఉంది; తిరిగి వచ్చే భాగం లేదు.

SNAT ఏమి దాచింది

SNAT సక్రియంగా ఉన్నప్పుడు రౌటర్ సబ్నెట్కు పంపే ముందు మూల చిరునామాను తన స్వంత LAN చిరునామాగా తిరిగి రాస్తుంది, కాబట్టి గమ్యం ఇప్పటికే ఎలా చేరుకోవాలో తెలిసిన హోస్ట్కు ప్రత్యుత్తరం ఇస్తుంది మరియు మరేమీ కాన్ఫిగర్ చేయాల్సిన అవసరం లేదు. దాన్ని ఆఫ్ చేయడం అసలు మూలాన్ని కాపాడుతుంది, గమ్యం తన వైర్పై ఉన్న పొరుగువాడి బదులు overlay పరిధిలోని చిరునామాను చూస్తుంది. ఆ చిరునామా నిజమైనది మరియు tailnet అంతటా రౌట్ చేయదగినది, కానీ డిఫాల్ట్ గేట్వే ద్వారా LAN నుండి దాన్ని చేరుకోలేరు. డాక్యుమెంట్ చేసిన స్విచ్ --snat-subnet-routes=false, ఇది Linux సబ్నెట్ రౌటర్పైనే వర్తిస్తుంది.

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

తిరిగి వెళ్లే మార్గం ఎక్కడ ఉండగలదు

మూడు స్థానాలు సాధారణం, అవి ఖచ్చితత్వంలో కాదు, చేరుకోగల పరిధిలో భిన్నం. గమ్య హోస్ట్పై ఉన్న స్థిర మార్గం అత్యంత నేరుగా ఉండి అత్యంత తక్కువగా విస్తరించదగినది, ఎందుకంటే ప్రతి పరికరానికి దాని స్వంత కాపీ కావాలి. VPC లేదా సైట్ రౌటర్లోని మార్గ పట్టిక మొత్తం నెట్వర్కును ఒకేసారి కవర్ చేస్తుంది, మరియు తరగతి లేని స్థిర మార్గాలను మోసుకెళ్లే DHCP ఎంపిక క్లయింట్లను స్వయంచాలకంగా చేరుతుంది కానీ దాన్ని పట్టించుకోని పరికరాల్లో నిశ్శబ్దంగా విఫలమవుతుంది.

ip route add 100.64.0.0/10 via 192.168.1.10
ip route get 100.64.0.5

మీరు ఏ స్థానాన్ని ఎంచుకున్నా, తదుపరి హాప్ రౌటర్ యొక్క LAN చిరునామా, ఎప్పుడూ దాని tailnet చిరునామా కాదు. LAN హోస్ట్ ఈ మార్గం లేకుండా overlayను చేరుకోలేదు, కాబట్టి overlay లోపల తదుపరి హాప్ వృత్తాకారం మరియు ప్యాకెట్ను ఎక్కడికీ పంపదు. ఆ ఒకే తప్పు సరిగ్గా కనిపించి అయినా విఫలమయ్యే చాలా కాన్ఫిగరేషన్లను వివరిస్తుంది, మరియు రౌటర్ స్వంత పట్టికను మాత్రమే చదివే ప్రతి తనిఖీని దాటుతుంది. మీరు ఏ స్థానాన్ని ఉపయోగించారో రాసుకోండి, లేకుంటే తదుపరి వ్యక్తి తప్పుదాన్ని పరీక్షిస్తారు.

వైఫల్యాన్ని ఏకదిశ ట్రాఫిక్గా చదవడం

లక్షణాన్ని కారణం కంటే సులభంగా గుర్తించవచ్చు: సేవ రౌటర్పైనే ప్రత్యుత్తరం ఇస్తుంది మరియు దూరపు క్లయింట్ నుండి మౌనంగా ఉంటుంది. గమ్యంలో క్యాప్చర్ అభ్యర్థనలు వస్తున్నట్లు మరియు ప్రత్యుత్తరాలు వెళ్తున్నట్లు చూపుతుంది, ఆ ప్రత్యుత్తరాలు ఎక్కడికి వెళ్తున్నాయో గమనించే వరకు అది విజయంగా కనిపిస్తుంది. అవి డిఫాల్ట్ గేట్వే వైపు వెళ్తున్నాయి, అంటే వచ్చే భాగం పని చేసింది, తిరిగి వెళ్లే భాగం చేయలేదు.

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

sudo tcpdump -ni any host 100.64.0.5
ip route get 100.64.0.5

నిజమైన చిరునామా మార్గానికి అర్హమేనా

గమ్య నెట్వర్కును తిరిగి కాన్ఫిగర్ చేయలేని ప్రతిసారీ SNAT ఉంచుకోవడం సులభమైన సమాధానంగా మిగిలిపోతుంది, మరియు ఖర్చు ఏమిటంటే ప్రతి క్లయింట్ గమ్యం లాగ్లు మరియు విధానంలో రౌటర్లాగా కనిపిస్తుంది. అప్లికేషన్కు నిజమైన మూల చిరునామా కావాల్సినప్పుడు లేదా ఒకే రౌటర్ను పంచుకునే క్లయింట్లను నెట్వర్క్ విధానం వేరు చేయాల్సినప్పుడు దాన్ని ఆఫ్ చేయడం సమర్థనీయం. రెండూ చట్టబద్ధమైన కారణాలు, ఏదీ ఉచితం కాదు. ప్రయోజనం ప్రతి గమ్య నెట్వర్కులో మార్గాన్ని నిర్వహించడానికి, అలాగే క్రింద వివరించిన ఫైర్వాల్ సమీక్షకు అర్హమైనదిగా ఉండాలి.

ఒక చిన్న LANకు ఈ మార్పిడి సాధారణంగా లాభదాయకం, స్థిర మార్గాన్ని తీసుకోలేని పరికరాల సమూహానికి సాధారణంగా కాదు. నిర్ణయాన్ని మరియు కారణాన్ని రౌటర్ కాన్ఫిగరేషన్ పక్కన నమోదు చేయండి, తదుపరి నిర్వాహకుడు ఏ ప్రవర్తన ఉద్దేశపూర్వకమో తెలుసుకోవడానికి. ఎవరూ రాయని డిఫాల్ట్ను నిర్లక్ష్యం నుండి వేరు చేయలేరు.

ఫైర్వాల్, లాగింగ్ మరియు ద్వంద్వ పాత్ర

రౌటర్ యొక్క LAN చిరునామాతో సరిపోలిన ప్రతి నియమం ఇప్పుడు వేరే మూలంతో సరిపోలుతుంది, అందులో అనుమతి నియమాలు మరియు రౌటర్ను క్లయింట్గా నమోదు చేసిన ఏ లాగ్ ఫీల్డ్ అయినా ఉంటుంది. ఆ నియమాలను మొదటి పరీక్షకు ముందే చదవండి, మొదటి వైఫల్యం తర్వాత కాదు, ఎందుకంటే రౌటర్ చిరునామాకు మాత్రమే అనుమతి ఇచ్చే నియమం కొత్త మూలాన్ని పూర్తిగా నిరోధిస్తుంది. భర్తీని అవసరమైన క్లయింట్లు మరియు పోర్టులకు పరిమితం చేయండి, ఆపై అది మొత్తం tailnetను నిశ్శబ్దంగా అంగీకరించడం లేదని నిర్ధారించండి.

sudo nft list ruleset | grep -n '100\.64'
sudo iptables-save | grep -n '100\.64'

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

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