గత నెల రెండు మంది నా నుండి వ్యతిరేక ఫలితాలను అడిగారు: ఒకరు IPv6 VPN కవర్ చేయాలని కోరారు, మరొకరు ఆఫీసు ప్రింటర్ పని చేస్తూనే ఉండాలని కోరారు. ఒకే ::/0 మార్గం రెండింటినీ తనంతట తానే ఇవ్వలేదు. ఆ మార్గం సొరంగం లోపల చేరుతుందో లేదో మూడు షరతులపై ఆధారపడి ఉంటుంది, మొదటిది చాలా వాణిజ్య నిష్క్రమణలకు దాన్ని మినహాయిస్తుంది. నిష్క్రమణ IPv6 మోసుకెళ్లకపోతే, డిఫాల్ట్ మార్గాన్ని అక్కడికి పంపడం మీ ట్రాఫిక్ను పంపడానికి స్థలం లేని సొరంగంలో దాచిపెడుతుంది.

మూడు షరతులు సమాధానాన్ని నిర్ణయిస్తాయి

డిఫాల్ట్ మార్గం ఒక పంక్తి, ::/0, మరియు ఎక్కువ నిర్దిష్ట మార్గం లేని ఏ IPv6 గమ్యస్థానంతోనైనా సరిపోతుంది (RFC 4291). దాన్ని ఇన్స్టాల్ చేయడం సులభం. మీరు దీన్ని చేయాలా అనే నిర్ణయం మూడు షరతులపై ఆధారపడి ఉంటుంది.

షరతు ఒకటి: మీరు కనెక్ట్ అయ్యే నిష్క్రమణలో పని చేసే IPv6 ఉంది, దాన్ని పంపడానికి సిద్ధంగా ఉంది. షరతు రెండు: మీ క్లయింట్ సొరంగం ముగింపు బిందువుకు మార్గాన్ని ఉంచుకోగలదు, అది సాధారణంగా మీరు రూట్ చేయబోయే పరిధిలో ఉంటుంది. షరతు మూడు: సొరంగం వెలుపల ఉండాల్సిన స్థానిక IPv6 గమ్యస్థానాలను మీరు పేర్కొనగలరు.

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

What you seeDecision
Exit answers IPv6 probes, no local IPv6 devices to protectRoute ::/0 into the tunnel
Exit answers IPv6 probes, printer or NAS reachable by a global addressRoute ::/0, then give those prefixes a route of their own
Exit is IPv4-only inside the tunnelDo not route ::/0; block IPv6 on the client
Endpoint is reached over IPv6 and sits inside ::/0Install a host route for the endpoint first

నిష్క్రమణ నిజంగా IPv6 మోసుకెళ్తుందా?

IPv6 చిరునామా ఉన్న సొరంగ ఇంటర్ఫేస్ ఆవైపు గురించి ఏమీ నిరూపించదు. చాలా వాణిజ్య ప్రొఫైళ్లు లోపల IPv4 మాత్రమే: సర్వర్ మీకు v4 చిరునామా ఇచ్చి మిగతావన్నీ పడేస్తుంది. దానిపై AllowedIPs నుండి డిఫాల్ట్ మార్గాన్ని ఉంచండి, కెర్నల్ దాని జోడీ ఎప్పుడూ చూడని ఇంటర్ఫేస్కు IPv6 ను సంతోషంగా పంపుతుంది.

సొరంగం పైన ఉన్నప్పుడు క్లయింట్ నుండి పరీక్షించండి. ping -6 -c 3 2001:4860:4860::8888 మరియు ip -6 route get 2001:4860:4860::8888 వేర్వేరు ప్రశ్నలకు సమాధానమిస్తాయి: సమాధానం తిరిగి వస్తుందా, మరియు కెర్నల్ ఏ పరికరాన్ని ఎంచుకుంది. రెండోది మీ సొరంగాన్ని పేర్కొని మొదటిది ఏమీ తిరిగి ఇవ్వకపోతే, సమస్య మార్గంలో కాదు, నిష్క్రమణలో ఉంది.

మీరే నిష్క్రమణను నడిపిస్తే, క్లయింట్ పరీక్ష గడించవచ్చు, మార్గం అయినా ముట్టడిలో ముగిసిపోవచ్చు. గేట్వేపై net.ipv6.conf.all.forwarding=1 పని చేస్తోందని మరియు దాని ఫైర్వాల్ సొరంగం నుండి పంపబడే ప్యాకెట్లను అంగీకరిస్తుందని నిర్ధారించండి. తిరిగి పంపడానికి నిరాకరించే నిష్క్రమణకు సరిగ్గా రూట్ చేసిన ప్యాకెట్ క్లయింట్ వైపు నుండి సరిగ్గా రూటింగ్ బగ్గా కనిపిస్తుంది.

క్లయింట్ ముగింపు బిందువు వరకు తన మార్గాన్ని ఉంచుకోగలదా?

IPv6 మాత్రమే ఉన్న WireGuard ముగింపు బిందువు ఉన్న ల్యాప్టాప్లో నన్ను పట్టుకున్న సందర్భం ఇదే. ముగింపు బిందువు చిరునామా సాధారణ ప్రపంచ చిరునామా, కాబట్టి అది ::/0 లోపల పడుతుంది. మొత్తం ప్రిఫిక్స్ను ఇంటర్ఫేస్కు రూట్ చేయండి, హ్యాండ్షేక్ ప్యాకెట్లు ఇంకా నిర్మించడానికి ప్రయత్నిస్తున్న సొరంగంలోకి తమను తాము తరుముకుంటాయి. సొరంగం ఎప్పటికీ ఎగరదు, క్లయింట్ అవుట్పుట్లో ఎందుకో ఏమీ చెప్పదు.

wg-quick లినక్స్లో దీన్ని నిర్వహిస్తుంది. ఇది AllowedIPs నుండి మార్గాలను పొంది, వాటిని తన స్వంత పట్టికలో ఇన్స్టాల్ చేసి, ముగింపు బిందువుకు ట్రాఫిక్ మొదట ప్రధాన పట్టిక ద్వారా పరిష్కరించబడేలా విధాన నియమాన్ని జోడిస్తుంది: suppress_prefixlength 0 నియమం, దాన్ని ip -6 rule లో కనుగొంటారు. అందుకే wg-quick up చేతితో రాసిన ip -6 route add default dev wg0 మిమ్మల్ని కత్తిరించే చోట విజయవంతమవుతుంది.

సొరంగాన్ని పైకి లేపడానికి ముందు మరియు తర్వాత, రెండు స్థితులను ip -6 route get <endpoint-v6> తో తనిఖీ చేయండి. సమాధానం మీ సొరంగ పరికరానికి మారితే, సొరంగానికి అవసరమైన మార్గాన్ని మీరు తొలగించారు. మార్గాలను మీరే రాసినప్పుడు, అసలు గేట్వే ద్వారా ముగింపు బిందువుకు హోస్ట్ మార్గాన్ని జోడించండి, లేదా IPv4 ద్వారా ముగింపు బిందువుకు కనెక్ట్ అయి IPv6 ను పేలోడ్కు వదిలేయండి.

సొరంగం వెలుపల ఏమి ఉండాలి?

ఎక్కువ నిర్దిష్ట మార్గాలు డిఫాల్ట్ను ఓడిస్తాయి, కాబట్టి లింక్పై ఉన్న ప్రిఫిక్స్ లేదా సొంత మార్గం ఉన్న ULA పరిధి అదనపు ప్రయత్నం లేకుండా పని చేస్తూనే ఉంటుంది. చాలా పూర్తి సొరంగ IPv4 సెటప్లు నిలిచి ఉండటానికి ఇదే నిశ్శబ్ద కారణం: LAN ప్రిఫిక్స్లు డిఫాల్ట్ కంటే నిర్దిష్టమైనవి, ఎప్పుడూ సొరంగంలోకి ప్రవేశించవు.

స్థానిక పరికరం ప్రపంచ చిరునామా ద్వారా చేరుకోగలిగినప్పుడు ఇది విరుగుతుంది, అదే రౌటర్ ప్రజా ప్రిఫిక్స్ ఇచ్చిన ప్రింటర్, NAS లేదా టెలివిజన్కు ఇది సాధారణం. ఆ చిరునామాలు ::/0 తో మాత్రమే సరిపోతాయి, మరేదానితోనూ కాదు, కాబట్టి అవి మిగతా అన్నింటితో పాటు సొరంగంలోకి మారి అదృశ్యమవుతాయి.

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

సమాధానం కాదు అయితే, దాన్ని నిరోధించండి

IPv6 ను మార్గం లేకుండా వదిలేయడం దాన్ని ఒంటరిగా వదిలేయడం వంటిది కాదు. పని చేసే IPv6 డిఫాల్ట్ ఉన్న హోస్ట్ సొరంగం IPv4 మోసుకెళ్తున్నప్పుడు కూడా దాన్ని ఉపయోగిస్తుంది, కాబట్టి ట్రాఫిక్ VPN పక్కనుండి బయటకు వెళ్తుంది మరియు IPv6 ను ఇష్టపడే ప్రతి సేవ మీ నిజమైన చిరునామాను చూస్తుంది. అది లీక్, విభజిత సొరంగం కాదు.

ఒకటి ఎంచుకోండి మరియు ఏది ఎంచుకున్నారో రాయండి. డిఫాల్ట్ను రూట్ చేసి పైన చెప్పిన రాజీలను అంగీకరించండి, లేదా సొరంగం ఉన్నంత కాలం IPv6 ను నిలిపివేయండి. AllowedIPs నుండి ప్రిఫిక్స్ను వదిలేయడం మాత్రమే సరిపోదు, ఎందుకంటే ఆపరేటింగ్ సిస్టమ్ తన స్వంత డిఫాల్ట్ను ఉంచుకుంటుంది. లినక్స్లో మొద్దుబారిన సంస్కరణ sysctl -w net.ipv6.conf.all.disable_ipv6=1; సూక్ష్మమైన సంస్కరణ ఫైర్వాల్ నియమంతో IPv6 ను సొరంగం వెలుపల పడేస్తుంది. ఫోన్ క్లయింట్లలో అదే పని చేసే స్పష్టమైన IPv6 నిరోధక టోగుల్ ఉంటుంది.

లీక్ లాగా ధృవీకరించండి

సొరంగాన్ని పైకి లేపి టోగుల్ను నమ్మడం బదులు స్థితిని చదవండి. ip -6 route show default ఒక డిఫాల్ట్ను చూపాలి, మీ LAN వెలుపలి గమ్యానికి ip -6 route get సొరంగ పరికరాన్ని పేర్కొనాలి. కనెక్షన్ తెగిన తర్వాత రెండింటినీ పునరావృతం చేయండి: సొరంగం కంటే ఎక్కువ కాలం నిలిచే డిఫాల్ట్ మీరు వెతుకుతున్న బగ్.

తర్వాత ఎదురు దిశను పరీక్షించండి. స్థానిక నెట్వర్క్లోని హోస్ట్ నుండి, క్లయింట్ను దాని స్థానిక IPv6 చిరునామాలో చేరుకోండి. అది పని చేయడం ఆపితే, అప్పుడు మార్గ పట్టిక ఏమి చెప్పినా, మూడో షరతు ఎప్పుడూ నెరవేరలేదు.

ఫలితాన్ని తదుపరి వ్యక్తి కనుగొనే చోట రాయండి: ఏ ప్రిఫిక్స్లు స్థానికంగా ఉంటాయి, ఎందుకు, మరియు కనెక్షన్ తెగిన తర్వాత క్లయింట్ ఏమి చేస్తుంది. runbook లో రెండు పంక్తులు తదుపరి ఇంజనీర్ అర్ధరాత్రి ముగింపు బిందువు లూప్ను తిరిగి కనుగొనకుండా కాపాడతాయి.

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