అనేక ఇంటర్నెట్ ఛానెల్లను ఒకటిగా కలపడం సాధ్యమేనా? ఈ అంశం చుట్టూ చాలా అపోహలు మరియు అపోహలు ఉన్నాయి; అనుభవజ్ఞులైన నెట్వర్క్ ఇంజనీర్లకు కూడా ఇది సాధ్యమని తరచుగా తెలియదు. చాలా సందర్భాలలో, లింక్ అగ్రిగేషన్ను NAT స్థాయిలో లేదా ఫెయిల్ఓవర్లో బ్యాలెన్సింగ్ అని తప్పుగా పిలుస్తారు. కానీ నిజమైన సమ్మషన్ అనుమతిస్తుంది అన్ని ఇంటర్నెట్ ఛానెల్లలో ఒకే TCP కనెక్షన్ని ఒకేసారి ప్రారంభించండి, ఉదాహరణకు, వీడియో ప్రసారం తద్వారా ఏదైనా ఇంటర్నెట్ ఛానెల్లకు అంతరాయం కలిగితే, ప్రసారానికి అంతరాయం కలగదు.
వీడియో ప్రసారాల కోసం ఖరీదైన వాణిజ్య పరిష్కారాలు ఉన్నాయి, కానీ అలాంటి పరికరాలకు చాలా కిలోబక్స్ ఖర్చవుతుంది. కథనం ఉచిత, ఓపెన్-సోర్స్ OpenMPTCPRouter ప్యాకేజీని ఎలా కాన్ఫిగర్ చేయాలో వివరిస్తుంది మరియు ఛానెల్ సమ్మింగ్ గురించి ప్రముఖ అపోహలను సూచిస్తుంది.
ఛానెల్ సమ్మింగ్ గురించి అపోహలు
బహుళ-WAN ఫంక్షన్కు మద్దతు ఇచ్చే అనేక హోమ్ రౌటర్లు ఉన్నాయి. కొన్నిసార్లు తయారీదారులు ఈ ఛానెల్ని సమ్మింగ్ అని పిలుస్తారు, ఇది పూర్తిగా నిజం కాదు. అనేక నెట్వర్కర్లు అదనంగా నమ్ముతారు
IP కనెక్షన్ స్థాయిలో బ్యాలెన్సింగ్
ఒకే సమయంలో అనేక ఇంటర్నెట్ ఛానెల్లను ఉపయోగించుకోవడానికి ఇది అత్యంత సరసమైన మరియు జనాదరణ పొందిన మార్గం. సరళత కోసం, మీరు ముగ్గురు ఇంటర్నెట్ ప్రొవైడర్లను కలిగి ఉన్నారని ఊహించుకుందాం, ప్రతి ఒక్కరూ వారి నెట్వర్క్ నుండి మీకు నిజమైన IP చిరునామాను ఇస్తారు. ఈ ప్రొవైడర్లందరూ మల్టీ-WAN ఫంక్షన్కు మద్దతిచ్చే రూటర్కి కనెక్ట్ చేయబడి ఉన్నారు. ఇది mwan3 ప్యాకేజీ, mikrotik, ubiquiti లేదా ఏదైనా ఇతర గృహ రూటర్తో OpenWRT కావచ్చు, ఎందుకంటే అటువంటి ఎంపిక అసాధారణం కాదు.
పరిస్థితిని అనుకరించడానికి, ప్రొవైడర్లు మాకు ఈ క్రింది చిరునామాలను అందించారని ఊహించండి:
WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33
అంటే, రిమోట్ సర్వర్కి కనెక్ట్ చేయడం example.com ప్రతి ప్రొవైడర్ల ద్వారా, రిమోట్ సర్వర్ మూడు స్వతంత్ర సోర్స్ IP క్లయింట్లను చూస్తుంది. బ్యాలెన్సింగ్ మిమ్మల్ని ఛానెల్ల అంతటా లోడ్ని విభజించడానికి మరియు వాటిలో మూడింటిని ఏకకాలంలో ఉపయోగించడానికి అనుమతిస్తుంది. సరళత కోసం, మేము అన్ని ఛానెల్ల మధ్య సమానంగా లోడ్ను విభజించామని ఊహించుకుందాం. ఫలితంగా, క్లయింట్ మూడు చిత్రాలతో సైట్ను తెరిచినప్పుడు, అతను ప్రతి చిత్రాన్ని ప్రత్యేక ప్రొవైడర్ ద్వారా డౌన్లోడ్ చేస్తాడు. సైట్ వైపు ఇది మూడు వేర్వేరు IPల నుండి కనెక్షన్ల వలె కనిపిస్తుంది.
కనెక్షన్ స్థాయిలో బ్యాలెన్స్ చేస్తున్నప్పుడు, ప్రతి TCP కనెక్షన్ ప్రత్యేక ప్రొవైడర్ ద్వారా వెళుతుంది.
ఈ బ్యాలెన్సింగ్ మోడ్ తరచుగా వినియోగదారులకు సమస్యలను కలిగిస్తుంది. ఉదాహరణకు, చాలా సైట్లు క్లయింట్ యొక్క IP చిరునామాకు కుక్కీలు మరియు టోకెన్లను ఖచ్చితంగా బంధిస్తాయి మరియు అది అకస్మాత్తుగా మారితే, అభ్యర్థన తిరస్కరించబడుతుంది లేదా క్లయింట్ సైట్ నుండి లాగ్ అవుట్ చేయబడతారు. ఇది తరచుగా క్లయింట్-బ్యాంక్ సిస్టమ్లు మరియు ఇతర సైట్లలో కఠినమైన వినియోగదారు సెషన్ నియమాలతో పునరుత్పత్తి చేయబడుతుంది. ఇక్కడ ఒక సాధారణ ఉదాహరణ ఉదాహరణ: VK.comలోని మ్యూజిక్ ఫైల్లు చెల్లుబాటు అయ్యే సెషన్ కీతో మాత్రమే అందుబాటులో ఉంటాయి, ఇది IPతో ముడిపడి ఉంటుంది మరియు అటువంటి బ్యాలెన్సింగ్ను ఉపయోగించే క్లయింట్లు తరచుగా ఆడియోను ప్లే చేయరు ఎందుకంటే అభ్యర్థన ప్రొవైడర్ ద్వారా వెళ్ళలేదు. సెషన్ టై చేయబడింది.
టొరెంట్లను డౌన్లోడ్ చేస్తున్నప్పుడు, కనెక్షన్ స్థాయి బ్యాలెన్సింగ్ అన్ని ఛానెల్ల బ్యాండ్విడ్త్ను సంగ్రహిస్తుంది
ఈ బ్యాలెన్సింగ్ బహుళ కనెక్షన్లను ఉపయోగిస్తున్నప్పుడు ఇంటర్నెట్ ఛానెల్ యొక్క వేగం యొక్క సమ్మషన్ను పొందడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, ముగ్గురు ప్రొవైడర్లలో ప్రతి ఒక్కరికి 100 మెగాబిట్ల వేగం ఉంటే, టొరెంట్లను డౌన్లోడ్ చేసేటప్పుడు మనకు 300 మెగాబిట్లు లభిస్తాయి. ఎందుకంటే ఒక టొరెంట్ అనేక కనెక్షన్లను తెరుస్తుంది, అవి అన్ని ప్రొవైడర్ల మధ్య పంపిణీ చేయబడతాయి మరియు చివరికి మొత్తం ఛానెల్ని ఉపయోగించుకుంటాయి.
ఒకే TCP కనెక్షన్ ఎల్లప్పుడూ ఒకే ప్రొవైడర్ ద్వారా మాత్రమే వెళ్తుందని అర్థం చేసుకోవడం ముఖ్యం. అంటే, మేము HTTP ద్వారా ఒక పెద్ద ఫైల్ను డౌన్లోడ్ చేస్తే, ఈ కనెక్షన్ ప్రొవైడర్లలో ఒకరి ద్వారా చేయబడుతుంది మరియు ఈ ప్రొవైడర్తో కనెక్షన్ విచ్ఛిన్నమైతే, డౌన్లోడ్ కూడా విచ్ఛిన్నమవుతుంది.
ఒక కనెక్షన్ ఎల్లప్పుడూ ఒక ఇంటర్నెట్ ఛానెల్ని మాత్రమే ఉపయోగిస్తుంది
ఇది వీడియో ప్రసారాలకు కూడా వర్తిస్తుంది. మీరు స్ట్రీమింగ్ వీడియోను ఒకరకమైన షరతులతో కూడిన ట్విచ్కి ప్రసారం చేస్తుంటే, IP కనెక్షన్ల స్థాయిలో బ్యాలెన్సింగ్ చేయడం వలన ఎటువంటి ప్రత్యేక ప్రయోజనాన్ని అందించదు, ఎందుకంటే వీడియో స్ట్రీమ్ ఒక IP కనెక్షన్లో ప్రసారం చేయబడుతుంది. ఈ సందర్భంలో, WAN 3 ప్రొవైడర్ ప్యాకెట్ నష్టం లేదా తగ్గిన వేగం వంటి కమ్యూనికేషన్తో సమస్యలను కలిగి ఉంటే, మీరు తక్షణమే మరొక ప్రొవైడర్కు మారలేరు. ప్రసారాన్ని ఆపివేసి, మళ్లీ కనెక్ట్ చేయాల్సి ఉంటుంది.
నిజమైన ఛానెల్ సమ్మింగ్
రియల్ ఛానెల్ సమ్మింగ్ అన్ని ప్రొవైడర్ల ద్వారా షరతులతో కూడిన ట్విచ్కి ఒక కనెక్షన్ని ఒకేసారి అమలు చేయడం సాధ్యపడుతుంది, ఆ విధంగా ప్రొవైడర్లలో ఎవరైనా విచ్ఛిన్నమైతే, కనెక్షన్కు అంతరాయం కలగదు. ఇది ఇప్పటికీ సరైన పరిష్కారం లేని ఆశ్చర్యకరంగా క్లిష్టమైన సమస్య. ఇది సాధ్యమేనని చాలా మందికి తెలియదు!
మునుపటి దృష్టాంతాల నుండి, షరతులతో కూడిన ట్విచ్ సర్వర్ మా నుండి వీడియో స్ట్రీమ్ను ఒకే ఒక సోర్స్ IP చిరునామా నుండి స్వీకరించగలదని మేము గుర్తుంచుకుంటాము, అంటే ఏ ప్రొవైడర్లు పడిపోయారు మరియు ఏవి పని చేస్తున్నారనే దానితో సంబంధం లేకుండా ఇది మాకు ఎల్లప్పుడూ స్థిరంగా ఉండాలి. దీన్ని సాధించడానికి, మా కనెక్షన్లన్నింటినీ రద్దు చేసి, వాటిని ఒకదానితో ఒకటి కలపడానికి మాకు సమ్మింగ్ సర్వర్ అవసరం.
సమ్మింగ్ సర్వర్ అన్ని ఛానెల్లను ఒక సొరంగంగా కలుపుతుంది. అన్ని కనెక్షన్లు సమ్మింగ్ సర్వర్ చిరునామా నుండి ఉద్భవించాయి
ఈ పథకంలో, అందరు ప్రొవైడర్లు ఉపయోగించబడతారు మరియు వాటిలో దేనినైనా నిలిపివేయడం వలన ట్విచ్ సర్వర్తో కమ్యూనికేషన్ కోల్పోదు. ముఖ్యంగా, ఇది ఒక ప్రత్యేక VPN సొరంగం, దీని కింద ఒకేసారి అనేక ఇంటర్నెట్ ఛానెల్లు ఉన్నాయి. అటువంటి పథకం యొక్క ప్రధాన పని అత్యధిక నాణ్యత గల కమ్యూనికేషన్ ఛానెల్ను పొందడం. ప్రొవైడర్లలో ఒకరికి సమస్యలు, ప్యాకెట్ల నష్టం, పెరిగిన జాప్యాలు మొదలైతే, ఇది కమ్యూనికేషన్ నాణ్యతను ఏ విధంగానూ ప్రభావితం చేయకూడదు, ఎందుకంటే లోడ్ స్వయంచాలకంగా అందుబాటులో ఉన్న ఇతర, మెరుగైన ఛానెల్లపై పంపిణీ చేయబడుతుంది.
వాణిజ్య పరిష్కారాలు
ఈ సమస్య చాలా కాలంగా ప్రత్యక్ష ఈవెంట్లను ప్రసారం చేసే మరియు అధిక-నాణ్యత ఇంటర్నెట్కు ప్రాప్యత లేని వారిని ఇబ్బంది పెడుతోంది. అటువంటి పనుల కోసం, అనేక వాణిజ్య పరిష్కారాలు ఉన్నాయి, ఉదాహరణకు, టెరాడెక్ సంస్థ USB మోడెమ్ల ప్యాక్లను చొప్పించే అటువంటి భయంకరమైన రౌటర్లను తయారు చేస్తుంది:
ఛానెల్ సమ్మింగ్ ఫంక్షన్తో వీడియో ప్రసారాల కోసం రూటర్
ఇటువంటి పరికరాలు సాధారణంగా HDMI లేదా SDI ద్వారా వీడియో సిగ్నల్లను సంగ్రహించే అంతర్నిర్మిత సామర్థ్యాన్ని కలిగి ఉంటాయి. రూటర్తో పాటు, ఛానెల్ సమ్మింగ్ సర్వీస్కు సబ్స్క్రిప్షన్ విక్రయించబడింది, అలాగే వీడియో స్ట్రీమ్ను ప్రాసెస్ చేయడం, ట్రాన్స్కోడ్ చేయడం మరియు దానిని మరింత ప్రసారం చేయడం. అటువంటి పరికరాల ధర మోడెమ్ల సెట్తో పాటు సేవకు ప్రత్యేక సభ్యత్వంతో $2k నుండి ప్రారంభమవుతుంది.
కొన్నిసార్లు ఇది చాలా భయానకంగా కనిపిస్తుంది:
OpenMPTCPRouterని సెటప్ చేస్తోంది
ప్రోటోకాల్
OpenMPTCPRouter ఎలా పని చేస్తుంది
సంగ్రహించే సర్వర్ని సెటప్ చేస్తోంది
సమ్మింగ్ సర్వర్ ఇంటర్నెట్లో ఉంది మరియు క్లయింట్ రూటర్ యొక్క అన్ని ఛానెల్ల నుండి కనెక్షన్లను ఒకదానితో ఒకటిగా నిలిపివేస్తుంది. OpenMPTCPRouter ద్వారా ఇంటర్నెట్ని యాక్సెస్ చేస్తున్నప్పుడు ఈ సర్వర్ యొక్క IP చిరునామా బాహ్య చిరునామాగా ఉంటుంది.
ఈ పని కోసం మేము డెబియన్ 10లో VPS సర్వర్ని ఉపయోగిస్తాము.
సమ్మింగ్ సర్వర్ కోసం అవసరాలు:
- OpenVZ వర్చువలైజేషన్లో MPTCP పని చేయదు
- మీ స్వంత Linux కెర్నల్ను ఇన్స్టాల్ చేయడం సాధ్యమవుతుంది
ఒక ఆదేశాన్ని అమలు చేయడం ద్వారా సర్వర్ అమలు చేయబడుతుంది. స్క్రిప్ట్ mptcp మద్దతుతో మరియు అవసరమైన అన్ని ప్యాకేజీలతో కెర్నల్ను ఇన్స్టాల్ చేస్తుంది. ఉబుంటు మరియు డెబియన్ కోసం ఇన్స్టాలేషన్ స్క్రిప్ట్లు అందుబాటులో ఉన్నాయి.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
విజయవంతమైన సర్వర్ ఇన్స్టాలేషన్ ఫలితం.
మేము పాస్వర్డ్లను సేవ్ చేస్తాము, క్లయింట్ రూటర్ను కాన్ఫిగర్ చేయడానికి మరియు రీబూట్ చేయడానికి మాకు అవి అవసరం. ఇన్స్టాలేషన్ తర్వాత, SSH పోర్ట్ 65222లో అందుబాటులో ఉంటుందని గుర్తుంచుకోవడం ముఖ్యం. రీబూట్ చేసిన తర్వాత, మనం కొత్త కెర్నల్తో బూట్ చేసామని నిర్ధారించుకోవాలి.
uname -a
Linux test-server.local 4.19.67-mptcp
మేము సంస్కరణ సంఖ్యకు ప్రక్కన ఉన్న శాసనం mptcpని చూస్తాము, అంటే కెర్నల్ సరిగ్గా ఇన్స్టాల్ చేయబడింది.
క్లయింట్ రూటర్ని సెటప్ చేస్తోంది
ఆఫ్
Openmptcprouter యొక్క ఈ భాగం OpenWRTపై ఆధారపడి ఉంటుంది, LuCIని ఇంటర్ఫేస్గా ఉపయోగిస్తుంది, ఇది ఎప్పుడైనా OpenWRTని ఎదుర్కొన్న ఎవరికైనా సుపరిచితం. పంపిణీ బరువు 50MB!
టెస్ట్ బెంచ్గా, నేను వివిధ ఆపరేటర్లతో కూడిన రాస్ప్బెర్రీ పై మరియు అనేక USB మోడెమ్లను ఉపయోగిస్తాను: MTS మరియు Megafon. SD కార్డ్కి చిత్రాన్ని ఎలా వ్రాయాలో నేను మీకు చెప్పనవసరం లేదు.
ప్రారంభంలో, రాస్ప్బెర్రీ పైలోని ఈథర్నెట్ పోర్ట్ స్థిరమైన IP చిరునామాతో లాన్గా కాన్ఫిగర్ చేయబడింది 192.168.100.1. డెస్క్పై వైర్లతో ఫిడ్లింగ్ను నివారించడానికి, నేను రాస్ప్బెర్రీ పైని వైఫై యాక్సెస్ పాయింట్కి కనెక్ట్ చేసాను మరియు కంప్యూటర్ యొక్క వైఫై అడాప్టర్ను స్టాటిక్ అడ్రస్కి సెట్ చేసాను 192.168.100.2. DHCP సర్వర్ డిఫాల్ట్గా ప్రారంభించబడలేదు, కాబట్టి మీరు తప్పనిసరిగా స్టాటిక్ చిరునామాలను ఉపయోగించాలి.
ఇప్పుడు మీరు వెబ్ ఇంటర్ఫేస్లోకి లాగిన్ చేయవచ్చు
మీరు మొదటి సారి లాగిన్ అయినప్పుడు, సిస్టమ్ మిమ్మల్ని రూట్ పాస్వర్డ్ను సెట్ చేయమని అడుగుతుంది; SSH అదే పాస్వర్డ్తో అందుబాటులో ఉంటుంది.
LAN సెట్టింగ్లలో, మీరు కోరుకున్న సబ్నెట్ను సెట్ చేయవచ్చు మరియు DHCP సర్వర్ను ప్రారంభించవచ్చు.
నేను ప్రత్యేక DHCP సర్వర్తో USB ఈథర్నెట్ ఇంటర్ఫేస్లుగా నిర్వచించబడిన మోడెమ్లను ఉపయోగిస్తాను, కాబట్టి దీనికి ఇన్స్టాలేషన్ అవసరం
తదుపరి మీరు WAN ఇంటర్ఫేస్లను కాన్ఫిగర్ చేయాలి. ప్రారంభంలో, సిస్టమ్ WAN1 మరియు WAN2 అనే రెండు వర్చువల్ ఇంటర్ఫేస్లను సృష్టించింది. వారికి భౌతిక పరికరాన్ని కేటాయించాలి, నా విషయంలో ఇవి USB మోడెమ్ ఇంటర్ఫేస్ల పేర్లు.
ఇంటర్ఫేస్ పేర్లతో గందరగోళాన్ని నివారించడానికి, SSH ద్వారా కనెక్ట్ చేస్తున్నప్పుడు dmesg సందేశాలను చూడాలని నేను సిఫార్సు చేస్తున్నాను.
నా మోడెమ్లు స్వయంగా రౌటర్లుగా పనిచేస్తాయి మరియు వాటికి DHCP సర్వర్ ఉన్నందున, నేను వాటి అంతర్గత నెట్వర్క్ పరిధుల సెట్టింగ్లను మార్చవలసి వచ్చింది మరియు DHCP సర్వర్ను నిలిపివేయవలసి వచ్చింది, ఎందుకంటే మొదట్లో రెండు మోడెమ్లు ఒకే నెట్వర్క్ నుండి చిరునామాలను జారీ చేస్తాయి మరియు ఇది సంఘర్షణకు కారణమవుతుంది.
OpenMPTCPRouterకి WAN ఇంటర్ఫేస్ చిరునామాలు స్థిరంగా ఉండటం అవసరం, కాబట్టి మేము మోడెమ్ల కోసం సబ్నెట్లతో ముందుకు వచ్చి వాటిని సిస్టమ్ → openmptcprouter → ఇంటర్ఫేస్ సెట్టింగ్ల మెనులో కాన్ఫిగర్ చేస్తాము. ఇక్కడ మీరు సమ్మింగ్ సర్వర్ యొక్క ఇన్స్టాలేషన్ సమయంలో పొందిన IP చిరునామా మరియు సర్వర్ కీని పేర్కొనాలి.
సెటప్ విజయవంతమైతే, స్థితి పేజీలో ఇలాంటి చిత్రం కనిపిస్తుంది. రూటర్ సమ్మింగ్ సర్వర్ను చేరుకోగలిగిందని మరియు రెండు ఛానెల్లు సాధారణంగా పని చేస్తున్నాయని చూడవచ్చు.
డిఫాల్ట్ మోడ్ shadowsocks + mptcp. ఇది అన్ని కనెక్షన్లను దానిలోనే చుట్టే ప్రాక్సీ. ఇది మొదట TCPని మాత్రమే ప్రాసెస్ చేయడానికి కాన్ఫిగర్ చేయబడింది, అయితే UDP కూడా ప్రారంభించబడుతుంది.
స్థితి పేజీలో లోపాలు లేకుంటే, సెటప్ పూర్తయినట్లు పరిగణించవచ్చు.
కొంతమంది ప్రొవైడర్లతో, ట్రాఫిక్ మార్గంలో mptcp ఫ్లాగ్ కత్తిరించబడినప్పుడు పరిస్థితి తలెత్తవచ్చు, అప్పుడు క్రింది లోపం కనిపిస్తుంది:
ఈ సందర్భంలో, మీరు MPTCPని ఉపయోగించకుండా వేరే ఆపరేటింగ్ మోడ్ని ఉపయోగించవచ్చు, దీని గురించి మరింత
తీర్మానం
OpenMPTCPRouter ప్రాజెక్ట్ చాలా ఆసక్తికరంగా మరియు ముఖ్యమైనది, ఎందుకంటే ఇది ఛానెల్ సమ్మింగ్ సమస్యకు ఏకైక బహిరంగ సమగ్ర పరిష్కారం. మిగతావన్నీ గట్టిగా మూసివేయబడతాయి మరియు యాజమాన్యం లేదా సాధారణ వ్యక్తి అర్థం చేసుకోలేని ప్రత్యేక మాడ్యూల్స్. ప్రస్తుత అభివృద్ధి దశలో, ప్రాజెక్ట్ ఇప్పటికీ చాలా ముడిగా ఉంది, డాక్యుమెంటేషన్ చాలా పేలవంగా ఉంది, చాలా విషయాలు వివరించబడలేదు. కానీ అదే సమయంలో ఇది ఇప్పటికీ పనిచేస్తుంది. ఇది అభివృద్ధి చెందుతూనే ఉంటుందని నేను ఆశిస్తున్నాను మరియు బాక్స్ వెలుపల ఛానెల్లను సరిగ్గా కలపగలిగే గృహ రౌటర్లను మేము పొందుతాము.
Instagramలో మా డెవలపర్ని అనుసరించండి
మూలం: www.habr.com