mDNS WireGuard పై: peer సమాధానం ఇచ్చే ముందు మూడు ద్వారాలు
Avahi కి అనువైన ఇంటర్ఫేస్, సమూహానికి మార్గం మరియు గమ్యాన్ని కలిగి ఉన్న peer అవసరం. మూడు ద్వారాలు, మూడు వేర్వేరు తనిఖీలు మరియు ఎలాంటి విస్తరణ లేదు.
WireGuard పరికరంలో multicast జెండాను సెట్ చేయడం ఇంటర్ఫేస్ ను ఆవిష్కరణ సాఫ్ట్వేర్ కు అనువుగా చేస్తుంది, జెండా చేసేది అంతే. ఇది సమూహ ప్యాకెట్ ఎక్కడికి వెళ్లాలో ప్రోటోకాల్ కు చెప్పదు, అనేక peer ఉన్న పరికరంలో ఒకే స్పష్టమైన సమాధానం ఉండదు. నడుస్తున్న డీమన్ మరియు కనుగొనబడిన సేవ మధ్య మూడు వేర్వేరు ద్వారాలు ఉన్నాయి.
వాటిని క్రమంగా పరీక్షించండి, ఒకటి దాటడం తర్వాతి గురించి ఏమీ చెప్పదు.
మొదటి ద్వారం: జెండా మరియు డీమన్ విధానం
Linux WireGuard పరికరం ARP లేని పాయింట్-టు-పాయింట్ లింక్ గా సృష్టించబడుతుంది, డిఫాల్ట్ గా multicast జెండాను కలిగి ఉండదు. జెండాను జోడించడం పరికరాన్ని నిర్వహించే ఏదైనా చేసే స్థానిక ఇంటర్ఫేస్ మార్పు. Avahi దీనిపై తన స్వంత ప్రపంచ దృష్టికోణాన్ని కలిగి ఉంది, దాని డిఫాల్ట్ విధానం పాయింట్-టు-పాయింట్ ఇంటర్ఫేస్ లను పూర్తిగా దాటవేస్తుంది. కాబట్టి ఒక ప్యాకెట్ కదలకముందే రెండు స్వతంత్ర అర్హత పరీక్షలు వర్తిస్తాయి.
అందువల్ల డీమన్ కు స్పష్టమైన నిర్ణయం అవసరం, నడుస్తున్న ప్రక్రియ మాత్రమే కాదు. దాని నమోదిత నియంత్రణలలో allow-interfaces, deny-interfaces మరియు allow-point-to-point ఉన్నాయి, చివరిది ప్రజలు దాటవేసే సెట్టింగ్.
క్రింది తనిఖీలు లింక్ జెండాలు, multicast మార్గం మరియు డీమన్ కాన్ఫిగరేషన్ పార్స్ అవుతుందో లేదో నివేదిస్తాయి:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
విజయవంతంగా ప్రారంభమైన డీమన్ మీకు ముఖ్యమైన ఇంటర్ఫేస్ లో సాకెట్లను తెరిచి ఉండాలని లేదు. సేవ స్థితిని కవరేజీకి సమానం అని ఊహించకుండా దాని ప్రభావవంతమైన కాన్ఫిగరేషన్ ను చదవండి.
రెండవ ద్వారం: సమూహానికి మార్గం
రెండవ ద్వారం సాధారణ రూటింగ్. 224.0.0.251 కు పంపిన ప్యాకెట్ మిగతా అన్నింటిలా ఫార్వార్డింగ్ పట్టికను అనుసరిస్తుంది, పట్టిక దానిని భౌతిక LAN ఇంటర్ఫేస్ ద్వారా బయటకు పంపితే ఏ WireGuard కాన్ఫిగరేషన్ దానిని మార్చదు. మొదట మార్గాన్ని సరిచేయండి, మిగిలిన దర్యాప్తు చిన్నదవుతుంది. ఏ peer కీని తాకే ముందు కెర్నల్ సమూహ చిరునామా గురించి ఏమి నివేదిస్తుందో చూడండి.
| Observation | Gate it belongs to | What it does not prove |
|---|---|---|
Multicast flag present on wg0 | Interface eligibility | The daemon will use the interface |
Route to the group via wg0 | Forwarding | Any peer will receive it |
| Destination inside a peer's allowed list | Peer selection | That peer's network will answer |
నిర్దిష్ట మార్గం లేకపోతే, కెర్నల్ లింక్ యొక్క స్వంత multicast నిర్వహణకు తిరిగి వెళ్తుంది, అందుకే డిఫాల్ట్ చదునైన LAN లో సరిగ్గా కనిపిస్తుంది మరియు అదే సమూహ ట్రాఫిక్ సొరంగం ద్వారా బయటకు వెళ్ళాల్సిన క్షణంలో తప్పుగా కనిపిస్తుంది. వైఫల్యం పంపేవారి వైపు నుండి నిశ్శబ్దంగా ఉంటుంది: ప్రశ్న ఎక్కడికో వెళ్తుంది, సమాధానం ఎప్పటికీ రాదు.
మూడవ ద్వారం: WireGuard ప్రతి ప్యాకెట్కు ఒక peer ను ఎంచుకుంటుంది
WireGuard అనుమతించిన చిరునామా సమితుల్లో గమ్యాన్ని వెతికి బయటకు వెళ్లే peer ను ఎంచుకుంటుంది, Linux ట్రాన్స్మిట్ మార్గం ఆ అన్వేషణను ప్రతి ప్యాకెట్ కు ఒకసారి చేస్తుంది. ఫలితం ఒకటే, ప్యాకెట్ ఆ peer కోసం గుప్తీకరించబడుతుంది. అదే సమూహ ప్రిఫిక్స్ అనేక peer ల అనుమతించిన జాబితాల్లో కనిపించడం సభ్యత్వాన్ని లేదా ప్రతిరూపాన్ని సృష్టించదు; ఇది వాటిలో ఒకదానితో ముగిసే అస్పష్ట అన్వేషణను సృష్టిస్తుంది.
రెండు చివరల డెడికేటెడ్ లింక్ లో ఇది మీకు కావలసినదే, ఎందుకంటే ఉద్దేశపూర్వకంగా తీసుకువెళ్లే సమూహ ట్రాఫిక్ కు ఒకే ఉద్దేశిత గ్రహీత ఉంటాడు. ఐదు peer ల ఇంటర్ఫేస్ లో ఇది పరిమితి, లక్షణం కాదు, సరిదిద్దడం ఏ ఒక్క peer కాన్ఫిగరేషన్ లో కాదు, రూపకల్పనలో ఉండాలి.
విస్తరణ రూపకల్పనకు స్పష్టమైన రిలే, వేర్వేరు లింక్ లు లేదా పూర్తిగా భిన్నమైన ఆవిష్కరణ విధానం అవసరం. ప్రతి క్లయింట్ గేట్వేను పింగ్ చేయగలడు కాబట్టి రెండు-చివరల రెసిపీని బహు-క్లయింట్ పరిష్కారంగా ప్రచురించడం — ఇలాగే ఇది తప్పుగా అమలు చేయబడుతుంది.
లోపలికి వచ్చే దిశ వేరే విధంగా తనిఖీ చేయబడుతుంది: స్వీకరించిన ప్యాకెట్ మూలం ధృవీకరించబడిన peer యొక్క అనుమతించిన జాబితాలో ఉండాలి. అక్కడ multicast గమ్యాన్ని జోడించడం పంపినవారి నిజమైన మూల యాజమాన్యాన్ని భర్తీ చేయదు.
ప్రతిబింబం ఒక సరిహద్దు, వంతెన కాదు
Avahi యొక్క ప్రతిబింబకం తాను ఎంచుకున్న ఇంటర్ఫేస్ ల మధ్య mDNS సందేశాలను అనువర్తన స్థాయిలో పునరుత్పత్తి చేస్తుంది. ఇది నెట్వర్క్ ల మధ్య ఆవిష్కరణ సరిహద్దు, ఈథర్నెట్ వంతెన కాదు మరియు సాధారణ multicast రౌటర్ కాదు. ఒకే నెట్వర్క్ లకు అనుసంధానించిన రెండు ప్రతిబింబకాలు పునరావృత ప్రకటనల లూప్ ను సులభంగా సృష్టిస్తాయి.
ప్రతిబింబం సేవా పేర్లు మరియు వాటి మెటాడేటాను మరొక నెట్వర్క్ కు కూడా అప్పగిస్తుంది, ఇది రూటింగ్ నిర్ణయం అంతే గోప్యతా నిర్ణయం. ఎంచుకున్న ఇంటర్ఫేస్ లను పరిమితం చేయండి, ఇన్స్టాల్ చేసిన సంస్కరణ మద్దతు ఇచ్చే చోట సేవా ఫిల్టర్లను ఉపయోగించండి, అధికారం ఉన్న వినియోగదారుకు అవసరమైన ప్రకటనలు మాత్రమే సరిహద్దును దాటేలా.
ఆవిష్కరణ మరియు ఉపయోగం వేర్వేరు ఫలితాలుగా ఉంటాయి. క్లయింట్ ఉన్న చోటి నుండి ప్రకటించిన చిరునామా చేరుకోలేని సేవ లేదా దాని యాక్సెస్ విధానం పోర్టును తిరస్కరించే సేవ ప్రకటనను క్లయింట్ చూడవచ్చు. ప్రకటన కనిపించిన తర్వాత సేవా కనెక్షన్ ను నిర్ధారించండి, అనువర్తనం స్థిరమైన DNS పేరు లేదా స్పష్టమైన సర్వర్ చిరునామాను మద్దతు ఇస్తే లింక్-స్థానిక ఆవిష్కరణను విస్తరించడం కంటే దానికే ప్రాధాన్యం ఇవ్వండి. క్రిప్టోకీ రూటింగ్ వివరణ ఇవన్నీ ఆధారపడిన గమ్యాధారిత peer ఎంపికను కవర్ చేస్తుంది.