ఒకే Linux యంత్రంలో రెండు VPN: ఫలితాలను కలపకుండా ప్రతి ఒక్కటి విడిగా పరీక్షించండి
రెండు ఆకుపచ్చ చిహ్నాలు పోలిక కాదు. ప్రతి సొరంగాన్ని దాని స్వంత నామస్థలంలో ఉంచండి, ముందుగా అంచనాను రాయండి, ఫలితాన్ని నమ్మే ముందు మార్గాన్ని నిరూపించండి.
రెండు ఆకుపచ్చ కనెక్షన్ చిహ్నాలు పోలికలా కనిపిస్తాయి, సాధారణంగా అవి యాదృచ్ఛికం మాత్రమే. పరీక్ష అభ్యర్థన రెండు సొరంగాలలో ఏదైనా ఒకటి ఉపయోగించగలిగితే, ఫలితం ఉత్తమ సందర్భంలో వాటిలో ఒకదానిని వివరిస్తుంది, చెత్త సందర్భంలో ఏదీ వివరించదు. ప్రతి పరిశీలనకు నెట్వర్క్ సందర్భం, ఉద్దేశించిన గమ్యం మరియు పరీక్ష ప్రారంభం కాకముందే రాసిన అంచనాను ఇవ్వండి. మీరే నిర్వహించే Linux యంత్రంలో, పేరు పొందిన నెట్వర్క్ నామస్థలాలే ఆ వేర్పాటును కొనడానికి చౌకైన మార్గం.
రెండు ఆకుపచ్చ దీపాలు పోలిక కాదు
నామస్థలం రూటింగ్ పట్టికలు, ఇంటర్ఫేస్లు మరియు నెట్వర్క్ స్టాక్ స్థితిని వేరు చేస్తుంది, కాబట్టి ఒకదాని లోపల ప్రారంభమైన అభ్యర్థన మరొకదాని సొరంగాన్ని నిశ్శబ్దంగా అప్పు తీసుకోలేదు. అది వేరు చేయనిది ప్రాసెసర్, భౌతిక ఎగువ లింక్ లేదా హోస్ట్పై నడుస్తున్న పేరు పరిష్కార సేవ. ఈ చివరి సందులోనే ఈ పరీక్షలలో చాలావరకు ఎవరూ గమనించకుండా విఫలమవుతాయి. నామస్థలాన్ని విడిచి హోస్ట్ పరిష్కర్తను అడిగే శోధన పరీక్షలో ఉన్న సొరంగంతో ఎటువంటి సంబంధం లేని సమాధానాన్ని తిరిగి ఇస్తుంది.
ఈ విధానం ముందే సిద్ధం చేయబడి ఆమోదించబడిన రెండు పరీక్షా నామస్థలాలు, పనిచేసే బాహ్య కనెక్టివిటీ మరియు మద్దతు ఉన్న క్లయింట్లను ఊహిస్తుంది. ఇది ఏదీ సృష్టించదు, ఏదీ నమోదు చేయదు, ఏ కాన్ఫిగరేషన్ను భర్తీ చేయదు. క్లయింట్కు పూర్తి డెస్క్టాప్ సెషన్ అవసరమైనప్పుడు లేదా దాని వెలుపల నడపడానికి నిరాకరించినప్పుడు ప్రత్యేక వర్చువల్ యంత్రాలే నిజాయితీ ఎంపిక.
మొదటి పరుగుకు ముందే అంచనాను స్థిరపరచండి
ప్రతి సందర్భానికి విజయం ఎలా ఉంటుందో నిర్ణయించండి: పరిష్కర్త, సేవ పేరు, ఆశించిన చిరునామా మరియు సొరంగం పడిపోయినప్పుడు అవసరమైన ప్రవర్తన. ఆ ప్రణాళికా విలువలను వాటి స్వంత నిలువు వరుసలో ఉంచండి, ఎందుకంటే ప్రణాళికను మరియు పరిశీలనను కలిపే రికార్డు సమయ ముద్రతో కూడిన కల్పితం. క్రింది తనిఖీ జాబితాయే రికార్డుకు అవసరమైన రూపం, మరియు మొదటి కనెక్షన్కు ముందు ప్రతి వరుస నింపగలిగి ఉండాలి.
| Tunnel | Owner | Client interface inside the namespace | Proof command | Required on disconnect |
|---|---|---|---|---|
| vpn-a | the identity that owns profile A, recorded by name | its own tun device, never the host's | ip -n vpn-a -4 route get 10.55.10.20 | traffic stops; no host-side fallback |
| vpn-b | a separate owner, even when both run on one box | its own tun device in its own namespace | ip -n vpn-b -4 route get 10.55.20.20 | verified separately, never inferred from A |
పరిష్కర్త వైరింగ్కు ఆ రికార్డులో దాని సొంత వరుస అవసరం, ఎందుకంటే అబద్ధం చెప్పే అవకాశం ఎక్కువ ఉన్న క్షేత్రం అదే. నామస్థలానికి కట్టుబడిన ఫైళ్లు, ఉదాహరణకు /etc/netns/vpn-a/resolv.conf ఆదేశం నామస్థలం లోపల నడిచినప్పుడు వాటి సాధారణ మార్గాలలో కనిపిస్తాయి, అని iproute2 యొక్క నామస్థల సూచన వివరిస్తుంది, కానీ పేరు సేవా మార్పు కాన్ఫిగరేషన్ మరియు అది ప్రారంభించే ఏదైనా స్థానిక పరిష్కర్త ఇప్పటికీ శోధనను హోస్ట్ వైపు తిరిగి లాగగలవు.
ఒక సమయంలో ఒక సొరంగం, మరొకటి డిస్కనెక్ట్
B క్రింద ఉండగా A ను దాని ప్రస్తుత యజమాని ద్వారా కనెక్ట్ చేయండి, తర్వాత పరిపాలన సందర్భం నుండి విధానం, మార్గాలు మరియు ఎంచుకున్న మార్గాన్ని పరిశీలించండి. క్రింది ఆదేశాలలో మూడు స్థితిని చదువుతాయి; చివరిది మాత్రమే పేరు సేవను సంప్రదిస్తుంది, ఏదీ అప్లికేషన్ అభ్యర్థనను పంపదు.
sudo ip -n vpn-a -4 rule show
sudo ip -n vpn-a -4 route show table all
sudo ip -n vpn-a -4 route get 10.55.10.20
sudo ip netns exec vpn-a getent ahostsv4 svc-a.lab.internalమార్గ శోధన గమ్యం గురించి ఊహాత్మక ప్రశ్నకు సమాధానం ఇస్తుంది, కాబట్టి సేవ ట్రాఫిక్ను అంగీకరిస్తుందని చూపలేదు. ఈ రెండు రకాల సాక్ష్యాలను వేర్వేరు నిలువు వరుసలలో ఉంచండి, ఎందుకంటే తిరస్కరించిన కనెక్షన్ పక్కన ఆరోగ్యకరమైన మార్గం నిజమైన మరియు సాధారణ ఫలితం. తర్వాత నిజమైన అప్లికేషన్తో ఒక హానిచేయని అధీకృత అభ్యర్థనను పంపండి, అది A సందర్భంలో దాని సాధారణ ప్రత్యేక హక్కులు లేని వినియోగదారుగా ప్రారంభమవుతుంది, ధృవపత్ర ధృవీకరణ మరియు అప్లికేషన్ ప్రామాణీకరణ అక్షతంగా, మరియు సేవ చూసిన మూల చిరునామాతో పాటు ఫలితాన్ని నమోదు చేయండి. A ను దాని యజమాని ద్వారా డిస్కనెక్ట్ చేసి B కోసం మొత్తం ఆధార రేఖను పునరావృతం చేయండి, మీరు చేసే ఏదైనా కాన్ఫిగరేషన్ మార్పును గుర్తిస్తూ, లేకపోతే రెండు ఆధార రేఖలు పోల్చదగినవి కావు.
రెండూ పైన, తర్వాత ఒక సమయంలో ఒకటి క్రింద
స్థిర స్థితి సులభమైన భాగం. రెండు సొరంగాలు కనెక్ట్ అయి ఉన్నప్పుడు ప్రతి సందర్భం యొక్క శోధన మరియు అప్లికేషన్ అభ్యర్థనను పునరావృతం చేయండి, తర్వాత ఒక సొరంగాన్ని విచ్ఛిన్నం చేసి మరొకటి తనిఖీ చేయండి. కనెక్షన్ క్రమమే ప్రశ్న అయినప్పుడు వ్యతిరేక క్రమంలో మళ్లీ కనెక్ట్ అవ్వండి.
sudo ip netns exec vpn-a tcpdump -ni any port 443 -c 5
sudo ip netns exec vpn-b getent ahostsv4 svc-b.lab.internal
sudo ip -n vpn-b -4 route get 10.55.20.20క్యాప్చర్ అప్లికేషన్ ఫలితం పరిష్కరించలేని వివాదాలను పరిష్కరిస్తుంది: అభ్యర్థన మీరు ఆశించిన ఇంటర్ఫేస్ ద్వారా బయటకు వెళ్లిందా లేదా పూర్తిగా వేరే దాని ద్వారా అని చూపిస్తుంది. ప్రతి మార్పిడికి యజమాని చర్య, సమయ ముద్ర, మార్గ ఫలితం, పేరు ఫలితం మరియు అప్లికేషన్ ఫలితాన్ని నమోదు చేయండి. తర్వాత ప్రభావిత నామస్థలం లోపల సురక్షితంగా మూసివేయడం అవసరాన్ని తనిఖీ చేయండి, ఎందుకంటే వేరుచేయడం కిల్ స్విచ్ కాదు. నామస్థలం రెండు సొరంగాలను వేరుగా ఉంచుతుంది; దాని ప్రొఫైల్ ట్రాఫిక్ ఆగాలని చెప్పినప్పుడు అది ఏదీ ట్రాఫిక్ మోయకుండా ఆపదు.
ఈ రికార్డు ఏమి చెప్పగలదు మరియు ఏమి చెప్పలేదు
ఒక ఉత్తీర్ణత ఈ ఏర్పాటుకు, ఈ హోస్ట్పై, ఆ సమయంలో ఆ పరిశీలనలను నిరూపిస్తుంది. ఒకే డెస్క్టాప్ రూటింగ్ పట్టికను పంచుకునే ఇద్దరు క్లయింట్ల గురించి అది ఏమీ చెప్పదు, రెండు సొరంగాలు భారం మోస్తున్నప్పుడు పోటీ సామర్థ్యం గురించి కూడా ఏమీ చెప్పదు. అవి వేర్వేరు పరీక్షలు ఉన్న వేర్వేరు ప్రశ్నలు, మరియు పోలిక ప్రతి వరుసకు జోడించిన సందర్భం అంతవరకే మంచిది.
వైఫల్యాలను రికార్డులో విజయాల పక్కన ఉంచండి, ఆ సమయంలో ఏ సొరంగం పైన ఉందో గుర్తించి. కొలత సమయంలోని స్థితిని దాచే శుభ్రమైన పేజీ దానిని చూపే అందని పేజీ కంటే చెడ్డది. రికార్డును తర్వాత మళ్లీ ఉపయోగించగలిగేలా చేసేది సందర్భం, స్కోరు కాదు.
ఒక యంత్రంపై రెండు సొరంగాలను నిజాయితీగా పోల్చవచ్చు, కానీ మీరు నిజంగా నియంత్రించిన సందర్భాల సంఖ్యలో మాత్రమే. దానికి మించినది పక్కన ఆకుపచ్చ చిహ్నం ఉన్న కోరిక మాత్రమే.