Androidలో ప్రామాణికం కాని UDP పోర్టులో IKEv2 ఎందుకు విఫలమవుతుంది
స్థానిక IKEv2 ఫారం చిరునామాను తీసుకుంటుంది, పోర్ట్ను కాదు. క్లయింట్ దానిని మద్దతిస్తుందో నిర్ధారించి, సర్వర్ యొక్క రెండు పోర్టులను సెట్ చేసి, ఆపై ఫ్రేమింగ్ మరియు లాగ్లను చూడండి.
గేట్వే UDP 4443లో IKEv2కి ఏదో కారణంగా సమాధానం ఇస్తుంది, ప్రొఫైల్లో Server అనే ఫీల్డ్ ఉంది, మీరు హోస్ట్ పేరు మరియు పోర్టును టైప్ చేస్తారు, ఫోన్ సర్వర్ను చేరుకోలేదని లేదా చిరునామాను పరిష్కరించలేదని నివేదిస్తుంది. ఏదీ నిరోధించబడలేదు. Android యొక్క స్థానిక ఫారం హోస్ట్ను ఆశిస్తుంది, Windowsలో కూడా అదే నిజం. అనుకూల పోర్ట్ సర్వర్ సెట్టింగ్గా మారకముందే క్లయింట్ సామర్థ్యం, కొన్ని క్లయింట్లు మాత్రమే దానిని వ్యక్తపరచడానికి అనుమతిస్తాయి. మూడు భాగాలను క్రమంగా చూడండి: క్లయింట్ ఏమి చెప్పగలదు, సర్వర్ ఏమి వింటోంది, మరియు రెండు చివరలు ప్యాకెట్లను ఒకే విధంగా ఫ్రేమ్ చేస్తాయా.
ఫోన్ నిజంగా ఏమి పంపింది
పేరు కోసం ఉద్దేశించిన ఫీల్డ్లోని host:port స్ట్రింగ్ పేరుగా పరిష్కరించబడుతుంది. పరిష్కర్త vpn.example.net:4443 కోసం ఏమీ తిరిగి ఇవ్వదు, మరియు మీరు చూసే లోపం పోర్ట్లో సమయం ముగియడం కాదు, పేరు పరిష్కారం లేదా అందుబాటులో లేకపోవడం. ఆ భేదం ముఖ్యం, ఎందుకంటే చిన్న పేరు లేదా వేరే నెట్వర్క్తో మళ్లీ ప్రయత్నించడం ఫారం అన్వయించలేని స్ట్రింగ్ను ఎప్పటికీ సరిచేయదు.
Androidలోని స్థానిక IKEv2 ప్రొఫైల్, Windows యొక్క అంతర్నిర్మిత VPN క్లయింట్ వలె, ప్రామాణిక IKE పోర్టులకు స్థిరపరచబడింది. ఏదీ పోర్ట్ ఫీల్డ్ను చూపదు, ప్రొఫైల్ సవరణ ఒకటి కూడా జోడించదు. ఆపరేటర్ శ్రోత నిజంగా 4443లో ఉన్నట్లయితే, అంతర్నిర్మిత క్లయింట్ తప్పుగా కాన్ఫిగర్ చేయబడినది కాదు, తప్పు సాధనం.
పోర్టును చూపే క్లయింట్ను ఉపయోగించండి
strongSwan యొక్క Android క్లయింట్ తన అధునాతన ప్రొఫైల్ సెట్టింగ్లలో కాన్ఫిగర్ చేయగల సర్వర్ పోర్టును డాక్యుమెంట్ చేస్తుంది, అందుకే ఈ డిజైన్కు పనిచేసే దాదాపు ప్రతి సూత్రంలో ఇది కనిపిస్తుంది. ఆ మద్దతు ఆ క్లయింట్కే చెందుతుంది: మరో IKEv2 యాప్, లేదా అదే యాప్ యొక్క విక్రేత ఫోర్క్, అంతర్లీన strongSwan డీమన్ మద్దతు ఇచ్చినా అదే ఫీల్డ్ను చూపకపోవచ్చు.
ఆపరేటర్ నుండి మొత్తం సెట్ను ఒకేసారి అడగండి: గేట్వే పేరు, UDP పోర్ట్, ప్రామాణీకరణ పద్ధతి, మరియు క్లయింట్ ఆశించవలసిన సర్వర్ గుర్తింపు. అనుకూల పోర్ట్ సర్టిఫికెట్ తనిఖీని ఆఫ్ చేయడానికి లేదా ప్రోటోకాల్లను మార్చడానికి కారణం కాదు. ఇన్స్టాల్ చేసిన క్లయింట్ పోర్టును ఆశించే చోట దానిని నమోదు చేయండి, ఆ క్లయింట్లో అలాంటి ఫీల్డ్ లేకపోతే, సమాధానం ఊహించిన పరిహారం కాదు, మరో ఆమోదించబడిన క్లయింట్.
సర్వర్కు రెండు పోర్టులు ఉన్నాయి, రెండూ సరిపోలాలి
IKE UDP 500లో ప్రారంభమవుతుంది, NAT ట్రావర్సల్ సాధారణంగా IKE మరియు కప్పబడిన ESPని UDP 4500కి తరలిస్తుంది. ఇవి strongSwanలో వేర్వేరు సెట్టింగ్లు, కాబట్టి ఒక అనుకూల పోర్టుకు తరలించిన సర్వర్ రెండింటినీ ఒకే విలువకు మార్చాలి:
plugins {
socket-default {
port = 4443
port_nat_t = 4443
}
}
ఒకే పోర్ట్ రెండు పాత్రలకు ఉన్నప్పుడు, డీమన్ అదే సాకెట్లో IKEని ESP-in-UDP నుండి వేరు చేయాలి, దానిని IKE సందేశానికి ముందు వచ్చే నాలుగు బైట్ల ESP కాని మార్కర్ ద్వారా చేస్తుంది. అందుకే క్లయింట్ అనుకూల పోర్టులో చర్చించి తర్వాత నిశ్శబ్దంగా 4500లో కొనసాగలేదు, అందుకే “పోర్టును మార్చండి చాలు” అనే వాక్యం ఫ్రేమింగ్ షరతును దాచుతుంది.
ఫార్వార్డింగ్ శ్రోత కాదు
4443ని సాధారణ IKE శ్రోతకు ఫార్వార్డ్ చేయడం దాదాపు విజయవంతంగా కనిపించే వైఫల్య విధానం. మొదటి మార్పిడి వస్తుంది, సర్వర్ సమాధానం ఇస్తుంది, తర్వాత కనెక్షన్ ఆగిపోతుంది లేదా ఏమీ లేకుండా కీలను తిరిగి ఉత్పత్తి చేస్తుంది, ఎందుకంటే సమాధానం మరో పోర్టు నుండి బయటకు వెళ్తుంది మరియు తర్వాతి కప్పబడిన ట్రాఫిక్ రెండు చివరలు సృష్టించిన స్థితికి ఎప్పటికీ సరిపోలదు. శ్రోతను కదిలించకుండా గమ్య పోర్టును తిరిగి రాసే నియమం సరిగ్గా ఈ సగం-తెరిచిన ఫలితాన్ని ఇస్తుంది.
మార్గం UDPని కూడా చివర నుండి చివర వరకు అనుమతించాలి. TCP 443 హోటల్ లేదా ఆపరేటర్ నెట్వర్క్ గుండా వెళ్లడం UDP పోర్టులోని IKEv2 గురించి ఏమీ చెప్పదు, సంఖ్య ఒకటే అయినా. TCP 443 మాత్రమే అనుమతించిన చోట, అనుకూల UDP పోర్ట్ IKEv2ని HTTPSగా మార్చదు, సరైన సమాధానం మరో పోర్ట్ ప్రయోగం కాదు, మరో యాక్సెస్ మార్గం కావచ్చు.
పరీక్షించేటప్పుడు మూడు దశలను వేరు చేయండి
క్లయింట్ ఒకసారి ప్రయత్నిస్తున్నప్పుడు సర్వర్లో క్యాప్చర్ చేయండి. ఎప్పటికీ రాని అభ్యర్థన చివరి బిందువు లేదా ఫైర్వాల్ ప్రశ్న; సమాధానం లేకుండా వచ్చే అభ్యర్థన శ్రోత లేదా విధానం ప్రశ్న; సమాధానం తర్వాత మౌనం రావడం ఫ్రేమింగ్ లేదా గుర్తింపు ప్రశ్న.
tcpdump -ni eth0 -vv udp port 4443
తర్వాత క్లయింట్ యొక్క తిరిగే సూచిక కాదు, దాని సందేశాన్ని చదవండి. ప్రతిపాదన లోపం అంటే అల్గారిథమ్లు సరిపోలలేదు, ప్రామాణీకరణ వైఫల్యం అంటే గుర్తింపులు లేదా సర్టిఫికెట్లు సరిపోలలేదు, మరియు సమాధానం లేకుండా పునరావృత పునఃప్రసారాలు అంటే ఆ పోర్టులో ఏదీ సమాధానం ఇవ్వడం లేదు. ఒకసారికి ఒక దశను పరీక్షించి ప్రయత్నాల మధ్య ఒక ఫీల్డ్ను మార్చండి; NAT ట్రావర్సల్ గురించిన strongSwan పత్రాలు క్యాప్చర్ మీకు చూపుతున్న మార్కర్ మరియు పోర్ట్ ప్రవర్తనను వివరిస్తాయి.