హోస్ట్ రూట్లను తాకకుండా పేరు స్థలాల్లో VPN రూటింగ్ పరీక్షించండి
మూడు అనుకరణ పాత్రలు, మూడు వేరుచేసిన సందర్భాలు మరియు ప్రతి లింకుకు ఒక veth. హోస్ట్ను తాకే ముందు పేరు స్థల ప్రయోగశాలను హోస్ట్ రూట్ ప్రయోగశాలతో పోల్చండి.
రెండు ప్రయోగశాలలు ఒకే VPN టోపోలజీని నమూనా చేయగలవు మరియు పూర్తిగా భిన్నమైన మార్గాల్లో విఫలమవుతాయి: ఒకటి నెట్వర్క్ పేరు స్థలాల్లో నివసిస్తుంది, మరొకటి హోస్ట్ యొక్క స్వంత రూట్లపై. పేరు స్థల సంస్కరణ ప్రతి ఇంటర్ఫేస్, రూట్ మరియు సాకెట్ను మీరు తొలగించగల సందర్భంలో ఉంచుతుంది, అయితే హోస్ట్ సంస్కరణ వేగంగా ప్రారంభమై వెనుక స్థితిని విడిచిపెడుతుంది. ఆ మిగిలిన స్థితి కారణంగానే ఒక నెల తర్వాత రెండవ ప్రయోగశాలను పునరావృతం చేయడం కష్టం. మొదట శుభ్రపరచడాన్ని పోల్చండి, ఎందుకంటే ప్రయోగాన్ని రెండుసార్లు చేయగలరా అని అది నిర్ణయిస్తుంది.
అదే ప్రయోగశాలను నిర్మించే రెండు మార్గాలు, ఎప్పుడు ఏది గెలుస్తుంది
హోస్ట్ రూట్ ప్రయోగశాలలో మీరు పని చేస్తున్న మెషీన్కు ఒక టన్నెల్ ఇంటర్ఫేస్ మరియు రూట్లను జోడిస్తారు, కాబట్టి ప్రయోగం మీ shell, ప్యాకేజీ మేనేజర్ మరియు ప్రతి ఇతర కనెక్షన్తో విధిని పంచుకుంటుంది. పేరు స్థల ప్రయోగశాలలో ప్రతి పాత్ర ఇంటర్ఫేస్లు, చిరునామాలు, రూట్లు మరియు సాకెట్ల యొక్క తన స్వంత స్టాక్ను పొందుతుంది, పేరు స్థలాన్ని తొలగించడం అన్నింటినీ తీసివేస్తుంది. ఏ నమూనా ఎక్కువ సరైనది కాదు, ఎందుకంటే అవి వేర్వేరు ప్రశ్నలకు సమాధానం ఇస్తాయి. అంశం రూటింగ్ మరియు ఫార్వర్డింగ్ అయితే పేరు స్థలాలను ఎంచుకోండి, అంశం ఒక డెస్క్టాప్ క్లయింట్ ఎలా సమన్వయమవుతుంది అయితే హోస్ట్ ప్రయోగశాలను ఎంచుకోండి.
| Aspect | Namespace lab | Host-route lab |
|---|---|---|
| Isolation | Full stack per role | Shares the host stack |
| Cleanup | Delete named namespaces | Manual route and rule removal |
| Realism | Strong for routing | Needed for GUI clients |
రెండింటినీ కలపడం సాధారణ తప్పు: హోస్ట్ క్లయింట్కు వ్యతిరేకంగా మాత్రమే పరీక్షించిన పేరు స్థల ప్రయోగశాల రెండు ఏర్పాట్ల గురించి ఏదీ నిరూపించదు. మొదటి లింక్ సృష్టించే ముందు మీరు ఏ ప్రశ్న అడుగుతున్నారో నిర్ణయించుకోండి.
ప్రతి పాత్రకు ఒక సందర్భం, ఉద్దేశపూర్వకంగా అనుసంధానించబడింది
ప్రతి పాత్రకు ఒక పేరు స్థలాన్ని సృష్టించి, ప్రతి veth జంట యొక్క ప్రతి చివరను దానిని కలిగి ఉన్న సందర్భంలోకి తరలించండి. మొదటి నాలుగు ఆదేశాలు ఆకారాన్ని చూడటానికి సరిపోతాయి:
ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns clientప్రయోగశాలకు హోస్ట్లో ఏదీతోనూ అతివ్యాప్తి చెందని పరిధులను ఇవ్వండి, ప్రారంభించే ముందు ఏ పేరు స్థలం ఏ చిరునామాను కలిగి ఉందో రాయండి. పని చేసే ప్రయోగశాలకు రెండు వేర్వేరు మార్గాలు అవసరం: VPN ముగింపు బిందువు తన జతను చేరుకోవడానికి బాహ్య మార్గం, మరియు రక్షించబడుతున్న వనరు కోసం తిరిగి వచ్చే మార్గం. వాటిని రెండు నిర్ణయాలుగా నమూనా చేయండి, ఎందుకంటే బయటకు వెళ్లే సగం మాత్రమే నిర్మించే ప్రయోగశాల చేతులు కలపడం పరీక్షలో ఉత్తీర్ణమై అప్లికేషన్ పరీక్షలో విఫలమవుతుంది.
ఫార్వర్డింగ్ పాత్రే ప్రయోగశాలలు ఆసక్తికరంగా మారే స్థలం
ఒక పాత్ర ఫార్వర్డ్ చేయాలి, అంటే ఆ పేరు స్థలం లోపల ఫార్వర్డింగ్ను ప్రారంభించి డిజైన్కు అవసరమైన నియమాన్ని జోడించడం. ఫార్వర్డింగ్ స్థితి ప్రతి పేరు స్థలానికి విడిగా ఉంటుంది, కాబట్టి హోస్ట్ సెట్టింగ్ ప్రయోగశాలకు అసంబద్ధం మరియు ప్రయోగశాల సెట్టింగ్ బయటకు కారదు, నెట్వర్క్ పేరు స్థలాల గురించిన పత్రాలు వివరించినట్లు. ఒక ఇంటర్ఫేస్ మరియు దాని బాహ్య సాకెట్ వేర్వేరు పేరు స్థలాలలో నివసించగలవని WireGuard పత్రీకరిస్తుంది, ఇది ఉపయోగకరమైన ఉపాయం మరియు మిమ్మల్ని మీరు గందరగోళానికి గురిచేసే అద్భుతమైన మార్గం. ఒక ఇంటర్ఫేస్ను తరలించడం కనెక్షన్ యొక్క ప్రతి భాగాన్ని ఒకే విధంగా తరలిస్తుందని ఊహించకండి.
పరీక్ష ప్యాకెట్ తర్వాత ఫార్వర్డింగ్ కౌంటర్ను తనిఖీ చేయండి, ఎందుకంటే ఎప్పుడూ సరిపోలని నియమం మరియు ప్యాకెట్ను వదిలేసిన నియమం రూట్ పట్టికలో ఒకేలా కనిపిస్తాయి. కౌంటర్లు మాత్రమే వాటిని వేరు చేస్తాయి.
ఒక ప్రాథమిక రేఖను నమోదు చేయండి, తర్వాత ఒక రూట్ను విరగ్గొట్టండి
ఏమి ఉందో నమోదు చేయడం ద్వారా ప్రారంభించండి, ప్రతి పంక్తి పక్కన సందర్భాన్ని రాయండి. పేరు స్థలాలను చదవండి, తర్వాత పరీక్ష గమ్యం వాటిలో ఒకదాని లోపల తీసుకునే రూట్ను, తర్వాత దానిని మోసే లింక్పై కౌంటర్లను:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gమూడవ ఆదేశం ప్రజలు దాటవేసేది, మరియు సాక్ష్యం అక్కడే నివసిస్తుంది: విసిరినవి మరియు లోపాల కౌంటర్లు ప్యాకెట్ ఫార్వర్డింగ్ పాత్రను చేరిందా అని చెబుతాయి. మార్పు తర్వాత అదే మూడు దృశ్యాలను నమోదు చేయండి, మరియు సాక్ష్యం మీ జ్ఞాపకం కాక diff అవ్వనివ్వండి. తర్వాత సరిగ్గా ఒకదాన్ని విరగ్గొట్టండి, రూట్ను తొలగించి లేదా ఫార్వర్డింగ్ మార్గంలో తిరస్కరణ నియమాన్ని జోడించి, మీరు అంచనా వేసిన లక్షణాన్ని నిర్ధారించండి: సమాధానం లేకుండా పూర్తయిన చేతులు కలపడం, లేదా టైమ్అవుట్కు బదులు పేరు పరిష్కారంలో వైఫల్యం. విజయాన్ని మాత్రమే చూపించే ప్రయోగశాల చాలా తక్కువ నేర్పుతుంది.
శుభ్రపరచడమే తదుపరి పరుగును పునరావృత్తియోగ్యం చేస్తుంది
శుభ్రపరచడాన్ని మీరు పేరు పెట్టిన వనరులకే పరిమితం చేయండి, ఎందుకంటే పూర్తి ఫైర్వాల్ రీసెట్ లేదా హోస్ట్ రూట్ తొలగింపు పునరుత్పత్తి కాదు, అది రెండవ సంఘటన. టోపోలజీ, ఖచ్చితమైన ఆదేశాలు మరియు మీరు ఆశించిన పరిశీలనలను సేవ్ చేయండి, తదుపరి పరుగు మునుపటి స్థితి ఏ సందర్భంలో ఉందో ఊహించకుండా అదే వైఫల్యాన్ని పునరుత్పత్తి చేస్తుంది. ఆ రికార్డు లేకుండా ప్రయోగశాల ఒక కథ, ప్రక్రియ కాదు.
ప్రయోగశాల కోసం స్థానికంగా ఉత్పత్తి చేసిన ప్రవేశ వివరాలను ఉపయోగించండి, మరియు ఉత్పత్తి ఖాతాలను పంచుకున్న ఉదాహరణల నుండి దూరంగా ఉంచండి. తర్వాత ప్రతి పేరు స్థలాన్ని తొలగించి హోస్ట్ వీక్షణ మారలేదని నిర్ధారించండి, ఈ నమూనాను ఎంచుకోవడానికి మొత్తం కారణం అదే. శుభ్రంగా తొలగించలేని ప్రయోగశాల అదనపు దశలతో కూడిన హోస్ట్ మార్పు.