OpenVPN సొరంగం ద్వారా IPv6: ఇంటి రౌటర్ కోసం దశలవారీ మార్గదర్శిని
సొరంగం రౌటర్ రూట్ చేయలేని ప్రిఫిక్స్ ఇచ్చినప్పుడు IPv6 చనిపోతుంది లేదా లీక్ అవుతుంది. క్లయింట్, పూల్, ఫార్వర్డింగ్, ప్రాక్సీ NDP మరియు తిరిగి వచ్చే మార్గాన్ని వరుసగా చూడండి.
ల్యాప్టాప్కు IPv6 చిరునామా ఉంది, సొరంగం IPv4 మీద నడుస్తోంది, అయినా ప్రతి IPv6 పరీక్ష విఫలమవుతుంది. లేదా అంతకంటే దారుణంగా: పరీక్ష విజయవంతమవుతుంది మరియు ట్రాఫిక్ సొరంగంలోకి ఎప్పుడూ ప్రవేశించకుండానే ISP మార్గం నుండి బయటకు వెళ్తుంది. రెండు ఫలితాలు ఒకే మిస్ అయిన నిర్ణయానికి తిరిగి వస్తాయి: ఎవరూ రౌటర్కు క్లయింట్ల వైపు రూట్ చేయగల ప్రిఫిక్స్ ఇవ్వలేదు. క్లయింట్ నుండి బయటకు మార్గాన్ని నడిచితే ఏ భాగం మిస్ అయిందో తెలుస్తుంది.
క్లయింట్ ఉన్న చోటి నుండి ప్రారంభించండి
సర్వర్ను తాకే ముందు క్లయింట్ను చూడండి. ip -6 addr పూల్ నుండి సొరంగ చిరునామాను చూపాలి, ip -6 route సొరంగ పరికరం వైపు సూచించే నెట్టిన ప్రిఫిక్స్ను చూపాలి. చిరునామా ఉండి మార్గం లేకపోతే, నెట్టడం మిస్ అయింది లేదా క్లయింట్ దాన్ని పట్టించుకోలేదు. రెండూ లేకపోతే, సర్వర్ ఏమీ కేటాయించలేదు.
తర్వాత క్లయింట్ బయటి ప్రపంచం గురించి ఏమనుకుంటుందో పరిశీలించండి. సొరంగం మీద డిఫాల్ట్ మార్గం మొత్తం IPv6 ట్రాఫిక్ను క్లెయిమ్ చేస్తుంది, అయితే 2000::/3 కోసం మార్గం గ్లోబల్ యూనికాస్ట్ మాత్రమే క్లెయిమ్ చేస్తుంది. రెండూ సరైనవి కావచ్చు, అవి లీక్ గురించి వేర్వేరు ప్రశ్నలకు జవాబిస్తాయి.
ఏ IPv6 డిఫాల్ట్ లేని క్లయింట్ సొరంగం పూర్తిగా ఆరోగ్యంగా ఉన్నప్పటికీ ప్రతి పబ్లిక్ పరీక్షలో విఫలమవుతుంది. అది విధానంలోని లోపం, పగిలిన సొరంగం కాదు.
సర్వర్ నిజంగా రూట్ చేయగల పూల్ను తనిఖీ చేయండి
సర్వర్ నిజంగా నియంత్రించే ప్రిఫిక్స్ నుండి మాత్రమే కేటాయించగలదు. ISP ఒక /56 అప్పగిస్తే, సొరంగానికి ఒక /64 కేటాయించి మిగతాది LAN కోసం వదిలేయండి. ISP WAN పై ఒకే /64 ఇచ్చి ఇంకేమీ రూట్ చేయకపోతే, LAN ప్రిఫిక్స్ను అలాగే వదిలి సొరంగానికి ప్రత్యేక స్థానిక పరిధిని ఇవ్వండి, క్లయింట్లకు గ్లోబల్ నిష్క్రమణ ఉండదని అంగీకరిస్తూ.
పూల్ మరియు నెట్టడం కలిసి వెళ్తాయి. server-ipv6 2001:db8:80:10::/64 చిరునామాలను కేటాయిస్తుంది, push "route-ipv6 2000::/3" సొరంగంలోకి ఏమి పంపాలో క్లయింట్లకు చెబుతుంది. 2000::/3 నెట్టడం గ్లోబల్ యూనికాస్ట్ను కవర్ చేస్తుంది మరియు link-local మరియు multicast పరిధులను సొరంగం వెలుపల ఉంచుతుంది.
ఎంచుకున్న ప్రిఫిక్స్ను విస్తరణ రికార్డులో రాయండి. తదుపరిసారి ISP అప్పగింపును మార్చే వ్యక్తి సొరంగం ఇప్పటికే ఏ /64 ఆక్రమించిందో తెలుసుకోవాలి.
రెండవ కుటుంబానికి ఫార్వర్డింగ్ ఆన్ చేయండి
IPv4 ఫార్వర్డింగ్ అంటే IPv6 ఫార్వర్డింగ్ కాదు. net.ipv6.conf.all.forwarding=1 సెట్ చేసి IPv4 FORWARD విధానం ఇప్పటికే అనుమతించేదంతా ప్రతిబింబించండి. FORWARD చైన్ డిఫాల్ట్గా పడేసే రౌటర్లో, నియమాల సమితి మిస్ అవ్వడం చనిపోయిన సొరంగంలా కనిపిస్తుంది.
హ్యాండ్షేక్ విజయవంతమవుతుంది, క్లయింట్కు చిరునామా వస్తుంది, తిరిగి ఏమీ రాదు. రెండు దిశలకు మరియు WAN భాగానికి నియమాలు జోడించండి, ఎందుకంటే LAN చేరి ఇంటర్నెట్ చేరని సొరంగం మూడవ పరీక్షలో విఫలమవుతుంది. విఫల ప్రయత్నం తర్వాత చైన్ కౌంటర్లను చూడండి, ఎందుకంటే ఎప్పుడూ సరిపోలని నియమం సరిపోలి పడేసిన నియమం కంటే వేరు సమస్య.
ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT
ఒక దుష్ప్రభావం చివరికి సొరంగాన్ని నిందించేవారిని పట్టుకుంటుంది. ఫార్వర్డింగ్ ఆన్ చేసినప్పుడు కెర్నల్ Router Advertisement ద్వారా చిరునామా కాన్ఫిగరేషన్ను దాటవేస్తుంది, వేరే చెప్పకపోతే, మరియు అలా నేర్చుకున్న డిఫాల్ట్ మార్గం దానితో పాటు మాయమవుతుంది. గాని WAN ఇంటర్ఫేస్పై స్పష్టమైన డిఫాల్ట్ మార్గాన్ని పిన్ చేయండి, లేదా అక్కడ ఉద్దేశపూర్వకంగా accept_ra ను 2కి సెట్ చేయండి. ఏ మార్పు తర్వాతైనా, క్లయింట్లను మళ్లీ పరీక్షించే ముందు రౌటర్కు ఇంకా ఉపయోగపడే IPv6 బయటి మార్గం ఉందని నిర్ధారించుకోండి.
పై భాగం రూట్ చేయనప్పుడు పొరుగు అన్వేషణకు సమాధానం ఇవ్వండి
పై భాగపు పరికరాలు కొన్నిసార్లు అప్పగించిన /64ను తమ సొంత లింక్కు చెందినదిగా భావించి VPN పెట్టెకు ఏ ఉప-ప్రిఫిక్స్నూ రూట్ చేయడానికి నిరాకరిస్తాయి. అలా జరిగినప్పుడు, ప్రతి క్లయింట్ చిరునామా కోసం విడివిడిగా పొరుగు అభ్యర్థనలకు ఏదో సమాధానం చెప్పాలి.
OpenVPN కేటాయించిన చిరునామాను client-connect హుక్కు బహిర్గతం చేస్తుంది, కాబట్టి ఎంట్రీలు చేతితో నిర్వహించే జాబితా బదులు నిజమైన పూల్ను అనుసరించగలవు. హుక్ ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0 జోడిస్తుంది, సరిపోలే client-disconnect హుక్ దాన్ని తొలగిస్తుంది. తొలగించకపోతే ప్రాక్సీ పట్టిక పాతబడుతుంది మరియు తర్వాతి క్లయింట్ తాను ఎప్పుడూ పొందని చిరునామా ఎంట్రీని వారసత్వంగా పొందవచ్చు. ip -6 neigh show proxy తో స్థితిని నిర్ధారించుకోండి.
ప్రాక్సీని తాత్కాలిక పరిష్కారంగా భావించండి. సొరంగం /64 కోసం రౌటర్ వైపు సూచించే స్థిర మార్గం క్లయింట్ మార్పులను తట్టుకుంటుంది మరియు ప్రత్యేక షెల్ హుక్ అవసరమే లేదు.
బయటకు మార్గాన్ని అనుసరించండి, ఒక్కో హాప్
మూడు దశల్లో బయటకు పరీక్షించండి: మొదట రౌటర్ సొరంగ చిరునామా, తర్వాత LAN హోస్ట్, మూడవదిగా traceroute6 ద్వారా పబ్లిక్ గమ్యం. పూల్ మొదటిది నిరూపిస్తుంది, ఫార్వర్డింగ్ మరియు LAN ఫైర్వాల్ రెండవది, పై భాగం ద్వారా తిరిగి వచ్చే మార్గం మూడవది. ప్రతి వైఫల్యం మొత్తం డిజైన్ను మళ్లీ తెరవకుండా శోధనను ఒకే పరికరానికి కుదిస్తుంది.
సొరంగం MTUను గమనించండి, ఎందుకంటే మార్గంలోని IPv6 రౌటర్లు మీ తరఫున విభజించవు. చాలా పెద్ద MTU స్వచ్ఛమైన వైఫల్యం బదులు packet-too-big లోపం మరియు ఆగిపోయిన TLS లాగా కనిపిస్తుంది. దాన్ని స్పష్టంగా సెట్ చేసి పరిమితికి దగ్గరగా ఉన్న పేలోడ్తో పరీక్షించండి.