నిష్క్రియ మోడ్‌లో వినియోగదారులను కనెక్ట్ చేయడానికి NAT ట్రావర్సల్‌ని ఉపయోగించడం

ఈ వ్యాసం లోని ఎంట్రీలలో ఒకదానికి స్వేచ్ఛా అనువాదం DC++ డెవలపర్స్ బ్లాగ్.

రచయిత అనుమతితో (అలాగే స్పష్టత మరియు ఆసక్తి కోసం), నేను కొన్ని లింకులను మరియు కొంత వ్యక్తిగత పరిశోధనను జోడించాను.

పరిచయం

ప్రస్తుతం, కనెక్ట్ అయ్యే జతలోని వినియోగదారులలో కనీసం ఒకరు తప్పనిసరిగా యాక్టివ్ మోడ్‌లో ఉండాలి. రెండు వైపులా యాక్టివ్ మోడ్ కాన్ఫిగర్ చేయనప్పుడు NAT ట్రావర్సల్ ఉపయోగపడుతుంది. ఫైర్‌వాల్ లేదా NAT పరికరం ద్వారా ఇన్‌కమింగ్ కనెక్షన్‌లు బ్లాక్ చేయబడటం వల్ల సాధారణంగా ఇలా జరుగుతుంది.

రెండు క్లయింట్లు యాక్టివ్ మోడ్‌లో ఉంటే

ప్రారంభించే క్లయింట్ తన సొంత IP చిరునామా మరియు పోర్ట్‌ను కలిగి ఉన్న ఆదేశాన్ని పంపుతుంది. $ConnectToMe మరొక క్లయింట్‌కు. ఈ డేటాను ఉపయోగించి, ఆదేశాన్ని స్వీకరించే క్లయింట్ ప్రారంభించేవారితో కనెక్షన్‌ను ఏర్పరుస్తుంది.

క్లయింట్‌లలో ఒకరు పాసివ్ మోడ్‌లో ఉంటే

హబ్ ద్వారా, ఒక నిష్క్రియ క్లయింట్ A ఆదేశాన్ని పంపుతుంది $RevConnectToMe చురుకైన క్లయింట్ B, ఆ తర్వాత $ConnectToMe కమాండ్‌తో ప్రతిస్పందిస్తుంది.

నిష్క్రియ మోడ్‌లో వినియోగదారులను కనెక్ట్ చేయడానికి NAT ట్రావర్సల్‌ని ఉపయోగించడం
సర్వర్‌గా S పై సందర్భంలో, DC హబ్ ఉంది

రెండు క్లయింట్లు పాసివ్ మోడ్‌లో ఉంటే ADC హబ్

వివిధ NATల వెనుక ఉన్న క్లయింట్లు A и B హబ్‌లో చేరారు S.

నిష్క్రియ మోడ్‌లో వినియోగదారులను కనెక్ట్ చేయడానికి NAT ట్రావర్సల్‌ని ఉపయోగించడం
క్లయింట్ వైపు నుండి హబ్‌కు కనెక్షన్ ఈ విధంగా కనిపిస్తుంది. A

హబ్ 1511 పోర్ట్‌పై కనెక్షన్‌లను అంగీకరిస్తుంది. క్లయింట్ A పోర్ట్ 50758 ద్వారా దాని ప్రైవేట్ నెట్‌వర్క్ నుండి బయటకు వెళ్లే కనెక్షన్‌లను చేస్తుంది. హబ్, NAT పరికరం యొక్క చిరునామాను చూసి, దానితో పనిచేసి, క్లయింట్‌ల ఐడెంటిఫైయర్‌ల ప్రకారం వారికి ప్రసారం చేస్తుంది.

కస్టమర్ A సర్వర్‌కు పంపుతుంది S క్లయింట్‌తో కనెక్ట్ అవ్వడానికి సహాయం కోరుతూ వచ్చిన సందేశం B.

Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991

నిష్క్రియాత్మక స్థితిలో కూడా ఉండటం వలన, క్లయింట్ Bఈ ఆదేశాన్ని స్వీకరించిన తర్వాత, NAT ద్వారా హబ్‌కు కనెక్ట్ అవ్వడానికి ఉపయోగించే దాని ప్రైవేట్ పోర్ట్‌ను తప్పనిసరిగా నివేదించాలి.

Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991

ఈ సమాచారం అందుకున్న తర్వాత, క్లయింట్ A వెంటనే క్లయింట్‌తో కనెక్షన్‌ను ఏర్పాటు చేయడానికి ప్రయత్నిస్తుంది B మరియు దాని స్వంత ప్రైవేట్ పోర్టును కలిగి ఉన్నట్లు నివేదిస్తుంది.

Hub:		[Outgoing][178.79.159.147:1511]	 	D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991

దీని ఉద్దేశ్యం ఏమిటి? ఇప్పటికే వాడుకలో ఉన్న ప్రైవేట్ పోర్ట్ ద్వారా పబ్లిక్ అడ్రస్‌కు కొత్త కనెక్షన్‌ను సృష్టించడం ద్వారా, అదే కనెక్షన్ యొక్క చివరి బిందువును మార్చడమే దీని ఉద్దేశ్యం.

నిష్క్రియ మోడ్‌లో వినియోగదారులను కనెక్ట్ చేయడానికి NAT ట్రావర్సల్‌ని ఉపయోగించడం
పేకాట!

అయితే, ఈ సందర్భంలో క్లయింట్ యొక్క NAT B క్లయింట్ నుండి వచ్చే మొదటి కనెక్షన్ అభ్యర్థనను తిరస్కరించే పూర్తి హక్కు ఉంది Aకానీ, అతని స్వంత అభ్యర్థన ఇప్పటికే ఈ అనుసంధానం ద్వారా సృష్టించబడిన "రంధ్రం" లోకి మళ్ళించబడింది, మరియు ఆ అనుసంధానం చివరకు స్థాపించబడింది.

నిష్క్రియ మోడ్‌లో వినియోగదారులను కనెక్ట్ చేయడానికి NAT ట్రావర్సల్‌ని ఉపయోగించడం
మొత్తం ప్రక్రియకు సరిపోయే ఒక దృష్టాంతం, అయితే ఒక హెచ్చరికతో ప్రోటోకాల్ సెషన్ ద్వారా తెరవబడిన పబ్లిక్ పోర్ట్‌లను ఉపయోగించదు NATSఅలాగే ప్రైవేట్ చిరునామాలు.

ఉపసంహారం

ఈ వ్యాసం రాస్తున్న సమయానికి, DC క్లయింట్‌లలో సుమారు సగం మంది పాసివ్ మోడ్‌లో పనిచేస్తున్నారు. దీని అర్థం, సాధ్యమయ్యే అన్ని కనెక్షన్‌లలో నాలుగో వంతు కనెక్షన్‌లను ఏర్పాటు చేయడం సాధ్యపడదు.

ఇంకా DC++ NATను బైపాస్ చేయగలదుఇప్పటికే ఉన్న కనెక్షన్‌లను ఉపయోగించి AS и BS క్లయింట్-క్లయింట్ ప్రత్యక్ష కనెక్షన్‌ను ఏర్పాటు చేయడానికి, అయినప్పటికీ A и B నిష్క్రియాత్మక మోడ్‌లో ఉన్నాయి.

మూలం: www.habr.com