డ్యూయల్-స్టాక్ VPN: అడ్రస్ ఫ్యామిలీని క్లయింట్ ఎంచుకుంటుంది, మీరు కాదు
ఒక పేరు, రెండు ఫ్యామిలీలు, రెండు వేర్వేరు మార్గాలు. టన్నెల్ ఆరోగ్యంగా ఉన్నా అభ్యర్థన విఫలమవ్వచ్చు, ఎందుకంటే మీరు ఎప్పుడూ రూట్ చేయని అభ్యర్థిని క్లయింట్ ఎంచుకుంది.
టన్నెల్ నడుస్తోంది, IPv4 సైట్లు లోడ్ అవుతున్నాయి, ఒక హోస్ట్నేమ్ సమయం ముగుస్తోంది. వెంటనే VPN పాడైంది లేదా ఆధారాలు తప్పు అని నిర్ణయించుకుంటాం, కానీ సాధారణంగా రెండూ నిజం కావు. పేరు IPv4 మరియు IPv6 రెండు చిరునామాలను తిరిగి ఇచ్చింది, యాప్ ఒకటి ఎంచుకుంది, ఆ అభ్యర్థుల్లో ఒకటి మాత్రమే పనిచేసే మార్గాన్ని కలిగి ఉంది. ఎంపిక నిర్ణయాన్ని క్లయింట్ తీసుకుంది; టన్నెల్ అది ఎంచుకున్నదాన్ని కవర్ చేయలేదు అంతే.
ఎంపిక కవరేజ్ హామీ కాదు
RFC 6724లో వివరించిన డిఫాల్ట్ చిరునామా ఎంపిక, అనేకం అందుబాటులో ఉన్నప్పుడు హోస్ట్ ఏ మూలం-గమ్యస్థాన జోడీకి ప్రాధాన్యం ఇస్తుందో నిర్ణయిస్తుంది. Happy Eyeballs దానిపై కనెక్షన్ వ్యూహాన్ని జోడిస్తుంది: రెండు ఫ్యామిలీల్లోనూ ప్రయత్నాలు ప్రారంభించి మొదట సమాధానం ఇచ్చినదాన్ని ఉంచుతుంది, తద్వారా వినియోగదారు పాడైన ఫ్యామిలీ టైమౌట్ కోసం వేచి ఉండాల్సిన అవసరం లేదు.
ఏ యంత్రాంగం మార్గాన్ని సృష్టించదు. మీ టన్నెల్ IPv4 మాత్రమే మోసుకెళ్తే, AAAA అభ్యర్థి ఇప్పటికీ క్లయింట్ ప్రయత్నించగల చెల్లుబాటు గమ్యస్థానం, మరియు వైఫల్యం లోపంగా కాకుండా నెమ్మదిగా లోడింగ్గా కనిపిస్తుంది, ఎందుకంటే బ్రౌజర్ వెనక్కి తగ్గింది. వినియోగదారు పాడైన సైట్ కాదు, నెమ్మదిగా ఉన్న సైట్ అని నివేదిస్తారు, మరియు మద్దతు టికెట్ ఆ అస్పష్టతను వారసత్వంగా పొందుతుంది. స్థిరమైన ఫ్యామిలీతో దీన్ని పునరుత్పత్తి చేయండి, నివేదిక నిర్దిష్టమవుతుంది.
ఆ వెనక్కి తగ్గడం వల్లే లక్షణం యాప్ల మధ్య అస్థిరంగా ఉంటుంది. బ్రౌజర్ ఆలస్యాన్ని దాస్తుంది; స్థిర ఫ్యామిలీ ఉన్న కమాండ్-లైన్ క్లయింట్ నిజమైన వైఫల్యాన్ని వెంటనే చూపుతుంది.
అభ్యర్థన వాస్తవానికి ఏ ఫ్యామిలీని ఉపయోగించిందో కనుగొనండి
టన్నెల్ నుండి కాదు, పేరు నుండి ప్రారంభించండి. రెండు రికార్డు రకాలను అడగండి మరియు ఏమి తిరిగి వచ్చిందో రాయండి:
dig +short A example.com
dig +short AAAA example.com
curl -4 -sS -o /dev/null -w '%{http_code}\n' https://example.com
curl -6 -sS -o /dev/null -w '%{http_code}\n' https://example.comv4 అభ్యర్థన విజయవంతమై v6 అభ్యర్థన విఫలమైతే, సమస్యను డీబగ్ చేయగల రూపంలో పునరుత్పత్తి చేశారు. షెల్ నుండి రెండూ విజయవంతమై బ్రౌజర్ ఇంకా విఫలమైతే, టన్నెల్ తాకడానికి ముందు యాప్ స్వంత రిజాల్వర్ లేదా కాష్ చేసిన సమాధానాన్ని చూడండి.
ఫ్యామిలీ మరియు గమ్యస్థానాన్ని మీ నోట్స్లో ఉంచండి. VPN ద్వారా సైట్ లోడ్ అవ్వదు అనే టికెట్ను ఎవరూ ధృవీకరించలేరు, కానీ AAAA విఫలమవుతుంది మరియు A పనిచేస్తుంది అనే టికెట్ నిర్దిష్ట మార్గాన్ని సూచిస్తుంది.
ఆ ఫ్యామిలీ కోసం మార్గాన్ని తనిఖీ చేయండి
విఫలమవుతున్న ఫ్యామిలీ కోసం, కెర్నల్ను ఏ మార్గం ఉపయోగిస్తుందని అడిగి టన్నెల్ కాన్ఫిగర్ చేసిన చిరునామాలతో పోల్చండి. Linuxలో, ip -6 route get గమ్యస్థానానికి ఎంచుకోబడే ఇంటర్ఫేస్ మరియు మూలాన్ని చూపుతుంది.
తర్వాత టన్నెల్ను స్వయంగా తనిఖీ చేయండి. WireGuard పీర్లు అనుమతించిన IP జాబితాను మోసుకెళ్తాయి, మరియు 0.0.0.0/0 కోసం ఎంట్రీ IPv6 గురించి ఏమీ చెప్పదు. పీర్ జాబితాలో IPv6 ప్రీఫిక్స్ లేకపోతే, AAAA ట్రాఫిక్ను టన్నెల్లోకి పంపడానికి క్లయింట్కు కారణం లేదు, మరియు ప్యాకెట్ హోస్ట్ మరొక విధంగా చేసే మార్గం ద్వారా బయటకు వెళ్తుంది.
ఫైర్వాల్ నియమాలు మరియు NAT విధానం ప్రతి ఫ్యామిలీకి అదే తనిఖీకి అర్హమైనవి. IPv4 కోసం రాసిన నియమం ఏ ప్లాట్ఫారమ్లోనూ IPv6 ను కవర్ చేయదు, మరియు ఒక ఫ్యామిలీ పనిచేసి మరొకటి పనిచేయకపోవడానికి ఇదే అత్యంత సాధారణ కారణం.
స్క్రీన్షాట్ సులభతరం చేయడానికి IPv6 ను నిష్క్రియం చేయవద్దు
సిస్టమ్ అంతటా IPv6 ఆఫ్ చేస్తే లక్షణం మాయమవుతుంది మరియు మీరు నిర్ధారణ లేకుండా మిగిలిపోతారు. ఇది IPv6-మాత్రమే గమ్యస్థానాలను కూడా విరగ్గొడుతుంది, మరియు తదుపరి యాప్ కోసం అదే బగ్ను దాస్తుంది. ఒక మెషీన్ నిజంగా IPv6 ఉపయోగించకూడదు అనుకుంటే, అది యజమాని మరియు పరీక్షతో కూడిన ఉద్దేశపూర్వక విధానం. సంఘటన సమయంలో దాన్ని ఆఫ్ చేయడం రెండూ కాదు.
ఫ్యామిలీతో క్లయింట్ ఏమి చేయాలో నిర్ణయించి దాన్ని స్పష్టంగా కాన్ఫిగర్ చేయండి: దాన్ని టన్నెల్ ద్వారా తీసుకెళ్లండి, లేదా మద్దతు ఉన్న విధంగా బ్లాక్ చేయండి, ఎంపిక ఎప్పుడూ చేరుకోలేని అభ్యర్థిని అందించకుండా. రెండూ చెల్లుబాటు డిజైన్లు. ప్రపంచవ్యాప్త నిష్క్రియం రెండూ కాదు, ఎందుకంటే అది డిజైన్ కూడా కాదు.
టికెట్లో ఏమి రాయాలి
నాలుగు విషయాలను నమోదు చేయండి: హోస్ట్నేమ్, విఫలమైన ఫ్యామిలీ, కెర్నల్ ఎంచుకున్న మార్గం, మరియు ఫ్యామిలీ-నిర్దిష్ట అభ్యర్థన ఫలితం. ఈ సెట్ మరొకరికి వైఫల్యాన్ని పునరుత్పత్తి చేయడానికి సరిపోతుంది, మీరు ఏ రెండు మార్గాలను ఉద్దేశించారో ఊహించకుండా.
RFC 6724 చిరునామా ఎంపిక నియమాలు క్లయింట్ ఎందుకు ఆ అభ్యర్థికి ప్రాధాన్యం ఇచ్చిందో వివరిస్తాయి, మరియు RFC 8305 ఆలస్యాన్ని దాచిన పోటీ ప్రవర్తనను వివరిస్తుంది. వాటిలో ఏదీ మీ తరఫున ప్యాకెట్ను రూట్ చేయదు, మరియు టన్నెల్ చేయవలసినది అదే భాగం.