ఒకే Piపై hostapd మరియు OpenVPN: డిఫాల్ట్ మార్గం ఎవరిది?
hostapd మరియు OpenVPN క్లయింట్ ఒకే Piని పంచుకోగలవు, వంతెన తన సొంత డిఫాల్ట్ మార్గాన్ని ఉంచుకుంటే మరియు సొరంగం తన సర్వర్కు మార్గాన్ని ఉంచుకుంటే. ఆదేశాలు మరియు రోల్బ్యాక్.
ఫోన్లు యాక్సెస్ పాయింట్కు కలుస్తాయి, చిరునామా పొందుతాయి, ఆ తర్వాత సొరంగం పైకి వచ్చిన వెంటనే ఏదీ చేరుకోలేవు. ఆ స్థితిలో hostapd సాధారణంగా ఆరోగ్యంగా ఉంటుంది, OpenVPN కూడా అలాగే; విరిగేది డిఫాల్ట్ మార్గం, అది వంతెనపై ఎప్పుడూ లేకపోవచ్చు లేదా VPN సర్వర్కే మార్గాన్ని వదలకుండా సొరంగం దాన్ని భర్తీ చేసి ఉండవచ్చు. ఈ మార్గదర్శిని ఆ మార్గాన్ని దాని స్థానానికి తిరిగి పెట్టి, ఫలితాన్ని Pi నుండి కాకుండా క్లయింట్ నుండి నిరూపిస్తుంది. ప్రతి అడుగు తిరిగి మార్చగలదు, ఇక్కడ ఏదీ సొరంగం కాన్ఫిగరేషన్ను మార్చదు, దాని లోపల ఏ ట్రాఫిక్ కావాలో తెలిసే వరకు.
ఏదైనా సవరించే ముందు ఇంటర్ఫేస్లను జాబితా చేయండి
సుపరిచిత లేఅవుట్ వైర్లెస్ రేడియో మరియు వైర్డ్ పోర్ట్ను br0 లోపల పెడుతుంది, వంతెనకు వ్యతిరేకంగా hostapd ప్రారంభిస్తుంది, dnsmasq నుండి లీజులను పంచుతుంది, అదే సమయంలో OpenVPN క్లయింట్ tun0 సృష్టిస్తుంది. అప్పుడు మూడు వేర్వేరు అవసరాలు ఒకటిగా కనిపిస్తాయి: యాక్సెస్ పాయింట్ క్లయింట్లకు వారి గేట్వేగా Pi కావాలి, Piకు తన సర్వర్ను చేరుకోవడానికి ఇంటర్నెట్కు మార్గం కావాలి, వంతెనకు ఆ క్లయింట్లు ఉపయోగించగల గేట్వే చిరునామా కావాలి.
మార్చే ముందు ప్రస్తుత స్థితిని చదవండి, ఎందుకంటే ఈ నాలుగు ఆదేశాలు ఇంటర్ఫేస్ సమస్యను రూటింగ్ సమస్య నుండి వేరు చేస్తాయి.
ip -br addr
ip route show
ip link show master br0
bridge link show
br0 కు చిరునామా ఉన్నా డిఫాల్ట్ మార్గం లేకపోతే, క్లయింట్లు Pi వరకు చేరుతాయి, దాని ఆవల ఏదీ చేరుకోలేవు. సొరంగం క్రింద ఉన్నప్పుడు డిఫాల్ట్ మార్గం tun0 వైపు చూపితే, Piకు పనిచేసే మార్గమే లేదు, క్లయింట్ లక్షణం సరిగ్గా అలాగే కనిపిస్తుంది. రెండు సందర్భాలు ఫోన్ నుండి ఒకేలా కనిపిస్తాయి, అందుకే రూట్ పట్టికను నేరుగా చదవాలి.
వంతెనకు దానికి చెందిన డిఫాల్ట్ మార్గాన్ని ఇవ్వండి
Raspberry Pi OS తరచుగా వంతెనను డిఫాల్ట్ మార్గం లేకుండా వదిలివేస్తుంది, ఇంటర్ఫేస్ ఫైల్ రాసిన తర్వాత వంతెన ఏర్పడి ఉంటే. బ్లాక్ /etc/dhcpcd.conf లో ఉండాలి, అది Piని కాదు, పై రౌటర్ను పేర్కొనాలి.
interface br0
static ip_address=192.168.50.2/24
static routers=192.168.50.1
static domain_name_servers=192.168.50.1
ఆ ఉదాహరణలో 192.168.50.1 ఉన్న రౌటర్, 192.168.50.2 అదే సబ్నెట్లో Pi యొక్క వంతెన చిరునామా, కాబట్టి సంఖ్యలను కాపీ చేయకుండా మీ సొంత ప్రణాళికను పెట్టండి. వంతెన సభ్యులు కూడా రౌటర్లను అడగకూడదు, లేకపోతే Piకు పోటీ పడే డిఫాల్ట్లు మిగులుతాయి, వాటి విజేత మెట్రిక్ మరియు సమయంపై ఆధారపడుతుంది, ఉద్దేశ్యంపై కాదు.
systemctl restart dhcpcd తర్వాత ip route show default br0 ను ఒకసారి చూపాలి, వైర్డ్ పోర్ట్ నుండి నకలు ఉండకూడదు. పట్టికను కాదు, శోధనను నిర్ధారించండి, ఎందుకంటే పాత ఎంట్రీ గెలిచిన ఎంట్రీ పక్కన కూర్చోవచ్చు: ip -4 route get 203.0.113.10 br0 ను పేర్కొనాలి. ఆ చిరునామా TEST-NET-3 డాక్యుమెంటేషన్ పరిధి నుండి వస్తుంది, కాబట్టి ఇది చదివేటప్పుడు నిజమైన సర్వర్తో ఢీకొట్టలేదు.
సొరంగం తన సొంత సర్వర్కు మార్గాన్ని దొంగిలించకుండా ఆపండి
redirect-gateway ను అంగీకరించే OpenVPN క్లయింట్ డిఫాల్ట్ మార్గాన్ని తీసుకుని దాన్ని సొరంగంలోకి పంపుతుంది. ప్రతి యాక్సెస్ పాయింట్ క్లయింట్ VPN ఉపయోగించాల్సినప్పుడు ఇది సరైనది, కొన్ని గమ్యస్థానాలు మాత్రమే ఉపయోగించాల్సినప్పుడు తప్పు. ఏదేమైనా, Pi యొక్క సర్వర్తో తన సొంత కనెక్షన్ అది ఇంకా నిర్మిస్తున్న సొరంగం లోపల ప్రయాణించకూడదు. OpenVPN డిఫాల్ట్ను మళ్లించేటప్పుడు అసలు గేట్వే ద్వారా దూరానికి హోస్ట్ మార్గాన్ని జోడిస్తుంది, అదే రవాణాను సజీవంగా ఉంచే ప్రవర్తన; ఆ మార్గం లేకపోతే, సొరంగం స్థిరపడగానే కూలిపోతుంది.
కనెక్ట్ కావడానికి ముందు మరియు తర్వాత ఆ రవాణా మార్గాన్ని త్వరగా పోల్చడం ఆ పది సెకన్లకు తగినది. ip -4 route get 203.0.113.10 రెండు స్థితులలో అండర్లే పరికరాన్ని పేర్కొనాలి, మారేది మెట్రిక్ మాత్రమే. సొరంగం పైకి వచ్చిన తర్వాత అది tun0 ను పేర్కొంటే, హోస్ట్ మార్గం ఎప్పుడూ ఇన్స్టాల్ కాలేదు, తదుపరి తిరిగి కనెక్ట్ విఫలమవుతుంది.
ఎంచుకున్న ప్రిఫిక్స్లు మాత్రమే సొరంగాన్ని దాటాల్సి ఉన్నప్పుడు, route-nopull ఉపయోగించి కావాల్సిన మార్గాలను చేతితో జోడించండి, లేదా సర్వర్ నుండి ఇరుకైన సెట్ను పంపండి. ఆ రూపకల్పనలో వంతెన డిఫాల్ట్ మార్గాన్ని ఉంచుకుంటుంది, DNS తదుపరి నిర్ణయం అవుతుంది: dnsmasq ను ఇంటి రిజాల్వర్కు ఫార్వర్డ్ చేయడం అక్కడ నిజంగా నివసించే పేర్లకు మాత్రమే అర్థవంతం.
ఫార్వర్డింగ్ మరియు NAT గురించి నిర్ణయించండి
పూర్తి సొరంగానికి Piపై ఫార్వర్డింగ్ ప్రారంభించబడాలి మరియు యాక్సెస్ పాయింట్ సబ్నెట్ను రూట్ చేయడానికి సిద్ధంగా ఉన్న ఆవలి వైపు గేట్వే కావాలి. అన్నింటికంటే ముందు ఫార్వర్డింగ్ను తనిఖీ చేయండి, ఎందుకంటే సున్నా ప్రతి మార్గ మార్పును అప్రస్తుతం చేస్తుంది.
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADE
NAT నియమం అనేది సర్వర్ యాక్సెస్ పాయింట్ ప్రిఫిక్స్ను అంగీకరించనప్పుడు పనిచేసే చిన్నదారి, కానీ దాని ధర ఏమిటంటే ఆవలి వైపు లాగ్లలో ప్రతి క్లయింట్ Pi యొక్క సొరంగ చిరునామాగా కనిపిస్తుంది. NAT లేకుండా ప్రిఫిక్స్ను రూట్ చేయడం చిరునామాలను కనిపించేలా ఉంచుతుంది మరియు ఇంటి వైపు 192.168.50.0/24 కోసం తిరిగి వచ్చే మార్గంపై ఆధారపడుతుంది.
ఫైర్వాల్ నియమాల పక్కన ఎంపికను రాయండి, ఎందుకంటే రూపకల్పనలో కనిపించని NAT నియమం ఆరు నెలల తర్వాత వివరించలేనిదవుతుంది. IPv6 ను అదే నిర్ణయంలో ఉంచండి; విరిగిన IPv6 మార్గం పక్కన పనిచేసే IPv4 మార్గం బ్రౌజర్లో ఇప్పటికీ సగం విరిగినట్లే చదవబడుతుంది.
క్లయింట్ నుండి ధృవీకరించి, తర్వాత శుభ్రంగా రోల్బ్యాక్ చేయండి
యాక్సెస్ పాయింట్పై ఉన్న ఫోన్ లేదా ల్యాప్టాప్ నుండి ఈ క్రమంలో పరీక్షించండి: dnsmasq నుండి లీజు, వంతెన చిరునామాకు ping, తర్వాత సొరంగం ఆవలి వైపు గమ్యస్థానం. ప్రతి అడుగు ఒక పొరను వేరు చేస్తుంది, ఒకే పనికిరాని వైఫల్యాన్ని సృష్టించడం బదులు.
ip -4 route get 203.0.113.10
ping -c 3 -I br0 203.0.113.10
తర్వాత Piకు ఇంకా తన సొంత బయటకు వెళ్లే మార్గం ఉందని నిర్ధారించండి: ip route get 203.0.113.10 అండర్లే పరికరాన్ని పేర్కొనాలి, సర్వర్ ICMP ను అనుమతిస్తే ping -c 3 -I br0 203.0.113.10 సమాధానం ఇవ్వాలి. మొదటి రెండు క్లయింట్ అడుగులు దాటి మూడవది విఫలమైతే, దోషం ఫార్వర్డింగ్ లేదా NAT లో ఉంది. రెండవ అడుగు విఫలమైతే, వంతెన లేదా DHCP ఇంకా అసంపూర్ణం.
రోల్బ్యాక్ అంటే ఒక ఫైల్ సవరణ మరియు రెండు ఆదేశాలు: బ్లాక్ను తీసివేయండి, dhcpcd ను తిరిగి ప్రారంభించండి, డిఫాల్ట్ మార్గాన్ని స్పష్టంగా ip route replace default via 192.168.50.1 dev br0 తో భర్తీ చేయండి. నిర్వహణ విండో మూసివేయడానికి ముందు ఇది చేయండి, తర్వాత కాదు, ఎందుకంటే డిఫాల్ట్ మార్గాన్ని కోల్పోయిన Pi దాన్ని సరిచేయడానికి మీరు ఉపయోగించే నెట్వర్క్ నుండి చేరుకోలేరు.