కార్యాలయ LAN లో VPN క్లయింట్ ప్రతి ప్రత్యుత్తరాన్ని ఎందుకు కోల్పోతుంది
కార్యాలయ LAN లో మరియు అదే ఉపజాలంలోని టన్నెల్లో ఉన్న ల్యాప్టాప్ తప్పు ఇంటర్ఫేస్ నుండి ప్రత్యుత్తరం ఇస్తుంది. వదులుగా ఉన్న రివర్స్-పాత్ ఫిల్టరింగ్ ఈ నిశ్శబ్దాన్ని వివరిస్తుంది.
ఒక ల్యాప్టాప్ ఈథర్నెట్ ద్వారా కార్యాలయం /24 లో కూర్చొని ఉంది మరియు అదే /24 లో నివసించే OpenVPN సర్వర్కు కూడా చేరుతుంది. సహోద్యోగి టన్నెల్ చిరునామాకు పింగ్ చేస్తారు; అభ్యర్థన స్పష్టంగా చేరుతుంది, ఏదీ తిరిగి రాదు. టన్నెల్ లాగ్ శుభ్రంగా ఉంది మరియు బ్రౌజింగ్ ఇంకా పనిచేస్తుంది, కాబట్టి టన్నెల్ తప్పు అనుమానితుడు. స్వీకరించే యంత్రంలో IPv4 మూల ధృవీకరణ ప్యాకెట్ను ఏదైనా చదవకముందే విసిరివేస్తుంది.
ఏదైనా ప్యాకెట్ను చదవకముందే విసిరివేత జరుగుతుంది
మూల ధృవీకరణ వచ్చే ప్రతి ప్యాకెట్ గురించి ఒక ప్రశ్న అడుగుతుంది: ఈ హోస్ట్ ఆ మూలానికి ప్రత్యుత్తరం ఇస్తే, ప్రత్యుత్తరం ప్యాకెట్ ఇప్పుడు వచ్చిన ఇంటర్ఫేస్ ద్వారానే బయటకు వెళ్తుందా? సమాధానం కాదు అయితే, కెర్నల్ ప్యాకెట్ వచ్చిన వెంటనే విసిరివేస్తుంది. ఏ సాకెట్ గానీ ఏ ఫార్వార్డింగ్ మార్గం గానీ దాన్ని ఎప్పుడూ చూడవు, అందుకే టన్నెల్పై తీసుకున్న క్యాప్చర్ యాప్లికేషన్ ఎప్పుడూ పొందని అభ్యర్థనను ఇంకా నమోదు చేస్తుంది.
ఇక్కడ క్లయింట్ తన టన్నెల్పై 10.66.0.9 కలిగి ఉంది, OpenVPN సర్వర్ కార్యాలయ ఉపసర్గ లోపల 192.168.80.10 నుండి ప్రత్యుత్తరం ఇస్తుంది. 192.168.80.25 లోని సహోద్యోగి టన్నెల్ చిరునామాకు పింగ్ చేస్తారు, కాబట్టి అభ్యర్థన LAN ను దాటుతుంది, సర్వర్ దాన్ని టన్నెల్లోకి పంపుతుంది, అది కార్యాలయ మూల చిరునామాను మోస్తూ క్లయింట్ టన్నెల్ ఇంటర్ఫేస్కు చేరుతుంది. ఆ యంత్రం రూటింగ్ పట్టికలో కార్యాలయ ఉపసర్గ ఈథర్నెట్ పరికరానికి చెందుతుంది, టన్నెల్కు కాదు. ధృవీకరణ రాక ఇంటర్ఫేస్ను మార్గంతో పోల్చి, అసమానతను కనుగొని ప్యాకెట్ను విసిరివేస్తుంది, కాబట్టి రెండు చివరలు ఆరోగ్యకరమైన టన్నెల్ నివేదించినప్పుడు సహోద్యోగి పూర్తి నష్టాన్ని చూస్తారు.
అద్దం దిశకు కూడా అదే ఆకారం: క్లయింట్ కార్యాలయం వైపు ప్రారంభించినప్పుడు, అదే కారణంతో కార్యాలయ వైపు ప్రత్యుత్తరాలు విసిరివేయబడవచ్చు. ఒక దిశలో మాత్రమే ధృవీకరించిన సవరణ సాధారణంగా రెండవ టికెట్గా తిరిగి వస్తుంది.
ఏ sysctl ను తాకకముందే అమలులో ఉన్న మోడ్ను నిరూపించండి
పంపిణీ డిఫాల్ట్ను నమ్మకుండా అసలు విలువలను చదవండి, ఎందుకంటే ప్రతి ఇంటర్ఫేస్ సెట్టింగ్ నిర్ణయంలో సగం మాత్రమే. అమలులో ఉన్న మోడ్ ఇంటర్ఫేస్ విలువ మరియు all విలువలో పెద్దది, కాబట్టి all ఒకటి ఉన్నంత కాలం టన్నెల్ ఇంటర్ఫేస్పై సున్నా ఏమీ అర్థం కాదు. కఠిన మోడ్ నిర్ణయం రూటింగ్ నిర్ణయం, కాబట్టి కెర్నల్ చేసే శోధనను చేసి దాని సమాధానాన్ని ప్యాకెట్ నిజంగా వచ్చిన ఇంటర్ఫేస్తో పోల్చండి.
tcpdump -ni tun0 icmp and host 192.168.80.25
ip route get 192.168.80.25
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.tun0.rp_filter
తర్వాత లోపాల కౌంటర్ను చూస్తూ పింగ్ను పునరావృతం చేయండి. క్యాప్చర్ ఇప్పటికే చూపుతున్న అభ్యర్థన పక్కన పెరుగుతున్న సంఖ్య ఈ విసిరివేత సంతకం, పోయిన మార్గం యొక్కది కాదు. అక్కడ ఉన్నప్పుడు అంగారక ప్యాకెట్ లాగింగ్ ఆన్ చేయండి, కెర్నల్ తిరస్కరించిన మూలాన్ని మరియు ఇంటర్ఫేస్ను పేర్కొనేలా. కలిసి అవి సాంకేతికత, అగ్నిగోడ మరియు పోయిన iroute లను వివరణల నుండి తొలగిస్తాయి.
ఏదైనా మార్చకముందే ఆధార రేఖను రాయండి: రెండు విలువలు, శోధన ఎంచుకున్న పరికరం, మరియు మీరు గమనించిన కౌంటర్. మార్పు మీరు అనుకున్నట్లు జరిగిందా అని తర్వాత చెప్పేది ఆ నమోదే.
ప్రతి rp_filter మోడ్ నిజంగా ఏమి అంగీకరిస్తుంది
కెర్నల్ ప్రతి ఇంటర్ఫేస్కు మూడు విలువలను చూపుతుంది, అవి ఒక నియమం యొక్క మూడు ఛాయలు కావు. సున్నా తనిఖీని నిలిపివేస్తుంది. ఒకటి కఠినమైనది మరియు మూలం రాక ఇంటర్ఫేస్ ద్వారా తిరిగి మార్గం చేయబడాలని కోరుతుంది. రెండు వదులుగా ఉంది మరియు పట్టికలో మూలానికి ఏదో మార్గం ఉండాలని మాత్రమే కోరుతుంది, అది ఎక్కడ సూచించినా.
| Value | Name | Accepts | Still rejects |
|---|---|---|---|
| 0 | off | any source at all | nothing on this check |
| 1 | strict | a source routed back out the arrival interface | a source whose route points elsewhere |
| 2 | loose | a source with any route in the table | a source with no route at all |
ఇక్కడ ముఖ్యమైన వరుస వదులుగా ఉన్నది, మరియు అది ఇంకా తిరస్కరించేది. మీ పట్టికలో ఎక్కడైనా మార్గం చేయగల నకిలీ మూలం దాటిపోతుంది, ఏ మార్గం లేని మూలం ఇంకా తిరస్కరించబడుతుంది. ల్యాప్టాప్లో ఇది సన్నని రాయితీ; ఇతరుల ట్రాఫిక్ను అందించే రౌటర్లో అది విశాలం. మోడ్ హోస్ట్కు చెందుతుంది, కాబట్టి అదే సంఖ్య రెండు చోట్ల వేరే బరువు మోస్తుంది.
ఈ టోపోలజీకి ఏ వరుస కావాలి అనేది అలవాటు నుండి కాదు, పట్టిక నుండి వస్తుంది. ప్యాకెట్ చట్టబద్ధం మరియు దాని మూలం మార్గం చేయగలది, కాబట్టి వదులుగా ఉన్నది అంగీకరిస్తుంది, కఠినమైనది కాదు. ఈ కేసులో ఏదీ సున్నా కోరదు, సున్నా ఎంచుకుంటే ఇక్కడ ఏమీ ఖర్చు లేని తనిఖీ తొలగిపోతుంది.
అస్పష్టతను తొలగించే అతి చిన్న మార్పును ఎంచుకోండి
వదులుగా ఉన్న మోడ్ సరిపోయే అతి చిన్న మార్పు, అది హానిలేని స్విచ్ కాదు, కఠినత్వంలో నిజమైన తగ్గుదల. టోపోలజీ అనుమతించినప్పుడల్లా మంచి ఎంపిక ఉంటుంది: అతివ్యాప్తిని తొలగించండి, అస్పష్టత మాయమవుతుంది.
కార్యాలయ ఉపసర్గ ఈథర్నెట్ ద్వారా మాత్రమే అవసరమైన చోట, ప్రొఫైల్ లాగే మార్గాల నుండి దాన్ని తీసివేయండి, చిరునామా ఒకే మార్గం ద్వారా చేరగలదు. రెండు మార్గాలు నిజంగా కలిసి ఉండాల్సి వచ్చినప్పుడు, ప్రతి ఇంటర్ఫేస్పై ధృవీకరణను వదులు చేయడం బదులు విధాన నియమంతో మూలాన్ని మరియు పరికరాన్ని పిన్ చేయండి. ఇది యంత్రంలోని మిగతా అన్నింటికీ కఠిన ఫిల్టరింగ్ను ఉంచుతుంది మరియు మినహాయింపును తర్వాతి ఇంజనీర్ వెతికే చోట నమోదు చేస్తుంది.
మీరు ఏ మార్గాన్ని ఎంచుకున్నా, దాన్ని ప్రత్యక్ష ఆదేశంలో కాదు, sysctl drop-in లో నమోదు చేయండి. all మరియు default కీలను కలిసి సెట్ చేయండి, తిరిగి కనెక్ట్ కావడం కఠిన మోడ్ను నిశ్శబ్దంగా పునరుద్ధరించలేకుండా.
# /etc/sysctl.d/99-rp-filter.conf
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
sysctl --system
వదులుగా ఉన్న మోడ్ ఏమి వదులుకుంటుంది, ఎక్కడ
వదులుగా ఉన్న మోడ్ ఏ మార్గం చేరుకోలేని మూలాన్ని ఇంకా తిరస్కరిస్తుంది, అనుకోకుండా మార్గం చేయగల నకిలీ మూలాన్ని తిరస్కరించడం ఆపేస్తుంది. ల్యాప్టాప్లో ఇది సన్నని రాయితీ. తనకు సొంతం కాని ట్రాఫిక్ను అందించే పరికరంలో అదే ఎంపిక చాలా విశాలం. అందుకే అదే సెట్టింగ్ ఎక్కడ నడుస్తుందనే దానిపై ఆధారపడి రెండు చాలా భిన్నమైన అర్థాలను మోస్తుంది.
ఇతరుల కోసం ట్రాఫిక్ అందించే హోస్ట్లో తనిఖీని పూర్తిగా ఆపడం తప్పించుకోవాల్సిన ఏకైక సవరణ. సున్నా వదులుగా ఉన్న మోడ్ జాగ్రత్తగా ఉంచే ధృవీకరణను విసిరివేస్తుంది. హోస్ట్ ఇతరుల కోసం అందిస్తే, బదులుగా మునుపటి విభాగంలోని విధాన నియమ ఎంపికను సమర్థించండి.
రెండు ఇంటర్ఫేస్లు, అతివ్యాప్తి చెందే ఉపసర్గ మరియు ఇప్పుడు విజయవంతమయ్యే ఖచ్చితమైన పరీక్షను పేర్కొనే గమనికను వదిలి వెళ్లండి. ఫిల్టరింగ్ సర్దుబాటు చేయబడిందని చెప్పే వరుస కంటే ఇది తర్వాతి ఇంజనీర్కు ఎక్కువ ఉపయోగం.