ఫెయిలోవర్ పరీక్ష: స్థాపించిన TCP స్ట్రీమ్ నిలిచి ఉంటుందా?
బ్యాకప్ ఎగ్జిట్ ప్రతి కొత్త కనెక్షన్ను అంగీకరించి, ఇప్పటికే నడుస్తున్న బదిలీని విచ్ఛిన్నం చేయగలదు. రెండు ఫలితాలను పరీక్షించండి, ఫెయిల్బ్యాక్ కేసును ప్రణాళికలో ఉంచండి.
«బ్యాకప్ పనిచేస్తుంది» అనే వాక్యంలో రెండు ఫలితాలు దాగి ఉన్నాయి. కొత్త అభ్యర్థన విజయవంతమవుతుంది, అది పునరుద్ధరణ. ఇప్పటికే నడుస్తున్న బదిలీ కొనసాగుతుంది, అది నిరంతరత. ఇవి వేర్వేరు వాగ్దానాలు, మరియు చాలా ఫెయిలోవర్ డిజైన్లు మొదటిది ఇస్తాయి, రెండవది నిశ్శబ్దంగా సమయం ముగిసి ముగుస్తుంది. ఏది అవసరమో యంత్రాంగం ఎంచుకునే ముందు నిర్ణయించండి, రెండింటినీ వేరు చేయగలిగేలా పరీక్ష రాయండి.
ఒకే విజయంలా కనిపించే రెండు ఫలితాలు
10.90.0.42 లోని క్లయింట్కు 198.51.100.20:443 తో కనెక్షన్ ఉందని ఊహించండి. ప్రాథమిక ఎగ్జిట్ దాన్ని ఒక పబ్లిక్ చిరునామా మరియు పోర్టుగా మారుస్తుంది, బ్యాకప్ ఎగ్జిట్ మరొకటిగా. క్లయింట్ లోపలి చిరునామా ఎప్పటికీ మారదు, అందుకే కనెక్షన్ నిలిచి ఉంటుందని ప్రజలు ఆశిస్తారు.
సర్వర్ లోపలి చిరునామాను చూడదు. అది అనువదించిన ముగింపు బిందువును చూస్తుంది, ఆ బిందువు మార్పు తర్వాత భిన్నంగా ఉంటుంది.
అందువల్ల పాత స్ట్రీమ్ సమయం ముగిసి ముగుస్తుంది, అదే సేవకు కొత్త కనెక్షన్ వెంటనే పనిచేస్తుంది. రెండు పరిశీలనలు ఒకేసారి నిజం.
ఎగ్జిట్ మారినప్పుడు సర్వర్ ఏమి చూస్తుంది
TCP కనెక్షన్ దాని నాలుగు భాగాలతో గుర్తించబడుతుంది, మూల చిరునామా లేదా పోర్టును మార్చడం స్వీకరించే హోస్ట్కు వేరే కనెక్షన్ను సృష్టిస్తుంది. సర్వర్కు తెలియని కనెక్షన్పై కొత్త మూలం నుండి వచ్చే ప్యాకెట్లు విస్మరించబడతాయి లేదా రీసెట్తో సమాధానం ఇవ్వబడతాయి. VPN క్లయింట్ చిరునామాలో ఆ మార్పు అంతటా సంబంధాన్ని కాపాడేది ఏదీ లేదు.
స్థితి కలిగిన ఫెయిలోవర్ దీన్ని నివారించడానికే ఉంది, మరియు ఇది ఫార్వార్డింగ్ పరికరాల మధ్య అనువాద స్థితి మరియు కనెక్షన్ స్థితిని మార్పిడి చేయడం ద్వారా పనిచేస్తుంది. ఇది జత లక్షణం, టన్నెల్ లక్షణం కాదు, ఊహించకుండా రూపకల్పన చేసి పరీక్షించాలి.
ఎవరికైనా నిరంతరత వాగ్దానం చేయడానికి ముందు జత నిజంగా స్థితిని ఉంచుతుందో లేదో తనిఖీ చేయండి. క్రింది ఆదేశాలు రెండు వైపుల ప్రస్తుత స్థితిని చూపుతాయి.
conntrack -L -d 198.51.100.20 2>/dev/null | head
ss -tin dst 198.51.100.20
tcpdump -ni any host 198.51.100.20 -c 10అదే పబ్లిక్ చిరునామా ఎందుకు సరిపోదు
రెండు మార్గాల్లో ఒక పబ్లిక్ చిరునామా ఉంచడం మంచి ప్రారంభం, ఎందుకంటే అప్పుడు సర్వర్ అదే మూల ముగింపు బిందువును చూస్తుంది. కానీ అది మాత్రమే సరిపోదు. ఫార్వార్డింగ్ పరికరానికి ఇంకా అనువాద స్థితి, ఫైర్వాల్ స్థితి మరియు ఉపయోగించగల తిరిగి వెళ్లే మార్గం అవసరం, అవి మార్పు తర్వాత ట్రాఫిక్ మోసే పరికరంలోనే ఉండాలి.
RFC 3022 చిరునామా అనువాదాన్ని వివరిస్తుంది, అనువదించే పరికరాల మధ్య స్థితి మార్పిడిని బ్యాకప్ డిజైన్లో భాగంగా పరిగణిస్తుంది. తేలియాడే చిరునామా లేదా నకలు చేసిన ప్రొఫైల్ కాన్ఫిగరేషన్ను కదిలిస్తుంది, స్థితిని కదల్చదు.
అందుకే బ్యాకప్ ద్వారా మాత్రమే ping చేసే పరీక్ష చాలా తక్కువ నిరూపిస్తుంది. ping కి కోల్పోవడానికి కనెక్షన్ స్థితి లేదు.
అవసరం ఎంత బలంగా ఉందో నిర్ణయించండి
వైఫల్యం తర్వాత వినియోగదారులు తిరిగి కనెక్ట్ కాగలిగితే, డిజైన్ పునరుద్ధరణ డిజైన్ మరియు అంగీకార పరీక్ష కొత్త అభ్యర్థన. ఫైల్ బదిలీ నిలిచి ఉండాలంటే, డిజైన్కు స్థితి సమకాలీకరణ మరియు మరింత జాగ్రత్తగా పరీక్ష అవసరం. దూర సెషన్ నిలిచి ఉండాలంటే, అవసరం ఇంకా బలంగా ఉంటుంది, నెట్వర్క్ స్థాయికి బదులు అప్లికేషన్ స్థాయి యంత్రాంగం అవసరం కావచ్చు.
అవసరాన్ని కొలవగల ఫలితంతో వాక్యంగా రాయండి, ఉదాహరణకు అప్లోడ్ తిరిగి ప్రారంభం కాకుండా పూర్తవుతుంది లేదా ఆపరేటర్ ఒక నిమిషంలో తిరిగి కనెక్ట్ అవుతారు. తర్వాత దాన్ని తృప్తిపరిచే చవకైన యంత్రాంగాన్ని ఎంచుకోండి, అది తరచుగా పునరుద్ధరణ డిజైన్.
ప్రాథమిక మార్గం తిరిగి వచ్చినప్పుడు ఏమి జరుగుతుందో స్పష్టంగా చెప్పండి, ఎందుకంటే స్వయంచాలక ఫెయిల్బ్యాక్ బ్యాకప్లో ఇప్పుడే కోలుకున్న కనెక్షన్ను తెగతెంపులు చేయగలదు. ఆ కేసు పరీక్షా ప్రణాళికకు చెందుతుంది, పాదసూచికకు కాదు.
పాత స్ట్రీమ్ మరియు కొత్త అభ్యర్థనను తనిఖీ చేయండి
ప్రాథమిక మార్గం ద్వారా హానికరం కాని దీర్ఘ బదిలీ ప్రారంభించి, తర్వాత అదే సేవకు వేరే కొత్త అభ్యర్థన పంపండి. అప్లికేషన్ సందర్భం, గమనించిన ఎగ్జిట్ చిరునామా మరియు సమయాన్ని నమోదు చేయండి. ఆమోదించిన విధంగా ప్రాథమికాన్ని విచ్ఛిన్నం చేసి, బ్యాకప్ ద్వారా కొత్త అభ్యర్థన పంపుతూ అసలు బదిలీని గమనిస్తూ ఉండండి.
మూడు విలువలు నివేదించండి: పాత స్ట్రీమ్ కొనసాగిందా, రీసెట్ అయిందా లేదా సమయం ముగిసిందా; కొత్త ఆపరేషన్ మొదటిసారి ఎప్పుడు పనిచేసింది; ఫెయిల్బ్యాక్ ఏదైనా తెగతెంపులు చేసిందా. ఆ మూడు పంక్తులే అంగీకార నమోదు.
ss -tin dst 198.51.100.20
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' https://198.51.100.20/
tcpdump -ni any port 443 -c 20పని భారం డేటాను రాస్తే, సమయం ముగిసిన తర్వాత అనిశ్చిత ఆపరేషన్ను గుడ్డిగా పునరావృతం చేయవద్దు. సమాధానం పోయే ముందే రాత చేరి ఉండవచ్చు. అప్లికేషన్ను ఫలితం అడగండి, లేదా ఆపరేషన్ ఐడెంపోటెంట్ ఉన్న చోట మాత్రమే మళ్లీ ప్రయత్నించండి. తర్వాత అంగీకార ప్రకటనను మూడు భాగాలుగా రాయండి: కొత్త ఆపరేషన్లు ఎగ్జిట్ విధానం కింద కోలుకుంటాయి, ఉన్న స్ట్రీమ్లకు నమోదిత అంతరాయ ప్రవర్తన ఉంది, అప్లికేషన్ సురక్షితంగా కొనసాగుతుంది. ఆ ప్రకటన పరీక్షించదగినది, డిజైన్ ఏమి వాగ్దానం చేయదో దానిపై అది నిజాయితీగా ఉంది.