WireGuard ఆగిపోతుంది: MTU పరిమితా లేక మిస్ అయిన ఫార్వర్డ్ నియమమా?
సర్వర్ ఆవల ఏదీ పనిచేయకపోవడం ఫార్వర్డింగ్ లేక రిటర్న్ మార్గ సమస్య. చిన్న అభ్యర్థనలు నడిచి పెద్దవి ఆగిపోవడం ప్యాకెట్ పరిమాణపు లక్షణం.
WireGuard తప్పుగా ప్రవర్తించగానే MTU తగ్గించడం అలవాటు, ఆ అలవాటు మరో లోపాన్ని దాచుతుంది. ఫార్వర్డ్ చేయని గేట్వే, పెద్ద ప్యాకెట్లను మోయని మార్గం వేరు చేయగల నమూనాలను సృష్టిస్తాయి: ఒకటి రెండు దిక్కుల్లోనూ ప్రతి పరిమాణంలోనూ విఫలమవుతుంది, మరొకటి చిన్న అభ్యర్థనల్లో బతికి పెద్దవాటిలో చనిపోతుంది. ఏ సంఖ్యను మార్చే ముందు మీకు ఏ ఆకారం ఉందో నిర్ణయించండి. పరీక్ష చవకైనది మరియు సాధ్యమైన కారణాలలో సగాన్ని తొలగిస్తుంది.
రెండు వైఫల్యాలు, రెండు వేర్వేరు ఆకారాలు
ఫార్వర్డింగ్ సమస్య సర్వర్ తర్వాత వెంటనే కనిపిస్తుంది. హ్యాండ్షేక్ విజయవంతమవుతుంది, టన్నెల్ చిరునామా సమాధానం ఇస్తుంది, గేట్వే వెనుక ఏదీ చిన్న అభ్యర్థనతోనూ చేరుకోలేము. ప్యాకెట్ సర్వర్కు చేరి ముందుకు పంపబడలేదు, లేదా ప్రత్యుత్తరానికి తిరిగి వెళ్లే మార్గం లేదు.
పరిమాణ సమస్య ఒక హద్దు పైన మాత్రమే కనిపిస్తుంది. DNS, TCP హ్యాండ్షేక్, చిన్న API కాల్ పనిచేస్తాయి, కానీ ఫైల్ డౌన్లోడ్ లేదా పెద్ద ప్రత్యుత్తరం వేలాడుతుంది. సరిపోయిన ప్యాకెట్లు ఒక చివర నుండి మరో చివర వరకు ప్రయాణించాయి, సరిపోనివి ఎక్కడో ఉపయోగకరమైన నివేదిక లేకుండా పడవేయబడ్డాయి.
ఆ వివరణలు వేర్వేరు వ్యక్తులను, వేర్వేరు కాన్ఫిగరేషన్ ఫైళ్లను సూచిస్తాయి, అందుకే ఊహ కంటే ఆకారాన్ని కొలవడం విలువైనది. గేట్వేకు ఒకే ping వాటిని వేరు చేయలేదు.
ఏదైనా చిన్నగా చేసే ముందు ఫార్వర్డింగ్ తీసివేయండి
గేట్వేను కాదు, గేట్వే ఆవల లక్ష్యాన్ని పరీక్షించండి. సర్వర్ టన్నెల్ చిరునామాకు ping ఇంటర్ఫేస్ పనిచేస్తోందని, టన్నెల్ ముగించే యంత్రానికి చేరుతున్నారని మాత్రమే నిరూపిస్తుంది. విస్తృత నెట్వర్క్ ట్రాఫిక్ ఆ యంత్రంలో IP ఫార్వర్డింగ్ ప్రారంభించబడి ఉండటం మరియు ఫార్వర్డ్ అయిన ప్రవాహాన్ని అనుమతించే ఫైర్వాల్పై ఆధారపడి ఉంటుంది. రెండూ నిజమైతేనే, ఒకటి అబద్ధమైతే అదే నిశ్శబ్దం ఏర్పడుతుంది.
రిటర్న్ రూటింగ్ కూడా అంతే ముఖ్యం. గమ్యస్థాన నెట్వర్క్కు క్లయింట్ టన్నెల్ చిరునామాను చేరుకునే విధానం తెలియకపోతే, అభ్యర్థన వస్తుంది, ప్రత్యుత్తరం మాయమవుతుంది, క్లయింట్ పడవేయబడిన ఫార్వర్డ్లా కనిపించే సమయ ముగింపును నివేదిస్తుంది.
డిజైన్ చిరునామా అనువాదాన్ని ఉపయోగించే చోట, అనువాద నియమం ఆ రిటర్న్ మార్గంలో భాగం. MTU సమస్యను వెంబడిస్తూ దాన్ని తీసివేయడం పనిచేస్తున్న డిజైన్ను పగిలినదిగా మారుస్తుంది, కాబట్టి సవరించే ముందు ఉన్న నియమాలను చదవండి.
బ్రేక్ ఎక్కడ మొదలవుతుందో కొలవండి
మొదట ఫార్వర్డింగ్ స్థితి, ఫిల్టర్ నియమాలను చదవండి. ఇవి చదవడం మాత్రమే చేసే తనిఖీలు, చవకైన ప్రశ్నకు సమాధానం ఇస్తాయి:
sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
ip route get 10.30.0.9
తర్వాత క్లయింట్ నుండి గేట్వే ఆవల హోస్ట్ వైపు, don’t-fragment బిట్తో పరిమాణాలను పరీక్షించండి:
ping -M do -s 1200 10.30.0.9
ping -M do -s 1400 10.30.0.9
మొదటి పరీక్ష పనిచేసి రెండోది శకలీకరణ లోపంతో విఫలమైతే, మార్గం తన వాడగలిగే పరిమాణాన్ని చెబుతోంది. రెండూ పనిచేయకపోతే, మీరు ఫార్వర్డింగ్ లేదా రూటింగ్ను చూస్తున్నారు, MTU మార్చవలసిన చరం కాదు.
| Observation | Points toward | Where to look |
|---|---|---|
| Nothing beyond the gateway works | Forwarding or return route | Forwarding flag, filter rules, routing table |
| Small works, large stalls | Packet size on the path | Tunnel MTU and the link underneath |
| Only names fail | DNS resolution | The resolver configured for the tunnel |
| Works sometimes | Multiple paths or state expiry | Flow selection and NAT state |
మీరు నిరూపించిన పొరను సరిచేయండి
ఫార్వర్డింగ్ లోపమైతే, సరిదిద్దడం ఒక ఫార్వర్డింగ్ నియమం లేదా మార్గం, డిజైన్ అనుమతించినంత కుదించి చెప్పబడుతుంది. పరిమాణం లోపమైతే, సరిదిద్దడం ఈ నిర్దిష్ట మార్గంలో ఎన్క్యాప్సులేషన్ను పరిగణించే MTU, అది అవసరమైన ఇంటర్ఫేస్పై వర్తిస్తుంది, నౌకలోని ప్రతి అడాప్టర్పై కాదు.
ఏదైనా సరే, తర్వాత అదే గమ్యస్థానానికి అదే పనిని పునరావృతం చేయండి. అసలు పెద్ద బదిలీ ఇప్పుడు పూర్తయితే, మార్పు విఫలమవుతున్న పొరను పరిష్కరించింది. చిన్న పరీక్ష మాత్రమే మెరుగుపడితే, మీరు లక్షణానికి చికిత్స చేశారు, నిజమైన హద్దు ఇంకా అక్కడే ఉంది.
మార్పు ముందు మీరు చూసిన ఆకారాన్ని రాయండి. సరిదిద్దడం పక్కన నమోదైన ఆ ఒక్క వరుసే, ఎప్పుడూ సమస్య కాని MTUను తగ్గించకుండా తదుపరి వ్యక్తిని ఆపుతుంది.