ننوتل شوی WireGuard: مینځنی ټوپ نشي کولی خپل پورټ ته ځواب ووايي
کله چې مینځنی ټوپ هر څه یو تونل ته لیږي، د هغې د ننوتونکي خدمت ځوابونه غلط لاره اخلي. د انټرفېس پر سرچینې-پورټ قاعده دا سمه کوي.
درې WireGuard ټوپونه دې ته ورته شبکې ته رسیږي چې عامه پته نلري، او بیا مینځنی ماشین په هغه پورټ ځواب ورکول بندوي چې باید پرې اورېدلی وای. بل تونل لا هم کار کوي، لرې کوربه لا هم ځواب ورکوي، او یوازې مینځنی سرور پخپله له بهر خاموش شوی دی. دا یوځای والا ګډوډونکی دی ځکه چې خپله رامنځته شوی: مینځنی ټوپ خپلې روتینګ جدول ته غاړه ږدي، او جدول د هغې ځوابونه غلط لوري ته لیږي.
یو زنځیر چې تر هغې کار کوي چې د مینځني بکس سره خبرې وکړې
یو بېلګه ییز زنځیر واخلئ: کلاېنټ A د UDP 500 له لارې سرور B ته رسیږي، او B د UDP 500 له لارې سرور C ته وړاندې ځي. C یوازې د خپل یوازیني ملګري له پتې څخه ټرافیک مني، چې دا یې پاڼه جوړوي او د هغې چلند ساده ساتي. B پاڼه نه ده، او د دې خرابۍ هر څه زړه راښکونکي همدلته پېښیږي.
دا توپیر مهم دی ځکه چې پاڼې او مینځني رولونه مخالف لورو ته ځان وهي. پاڼه کولی شي پرته له کومې پایلې هر څه یو تونل ته ولیږي، ځکه چې بل څه پرې تکیه نه کوي. مینځنی ټوپ په یو وخت کې هم د کلاېنټونو لپاره پای ټکی دی او هم د لرې اړخ په لور کلاېنټ، او دا دوه کارونه بېل روتینګ غواړي.
ولې ځواب له تونل څخه وځي
پر B، C ته مخامخ انټرفېس د اړوند ډیفالټ لارې سره یوځای AllowedIPs = 0.0.0.0/0 لري. نو هره هغه بسته چې B جوړوي هغه تونل ته ځي، پرته له دې چې یو څه ډېر ځانګړی لومړیتوب واخلي.
له A څخه B ته رسېدلې بسته رسیږي او منل کیږي، ځکه چې B هدف دی او سیمه ییز سپارل لومړی کیږي. ځواب یوه بشپړه نوې سیمه ییزه جوړه شوې بسته ده چې د A عامې پتې ته نښه شوې، او هغه هدف د تونل ډیفالټ لارې سره سمون لري. C یې ترلاسه کوي، د هغې پتې مالک نه دی، او غورځوي یې.
نښه د فایر وال ستونزې یا د کیلي ناسمونې په څېر لوستل کیږي، او دلته دواړه سم نه دي. پر تونل د C په لور نیول ښیي چې ځوابونه غلط لوري ته ځي. همغه یو کتنه له هرې اندازې کانفیګریشن لوستلو ډېر وخت ژغوري، نو مخکې له دې چې کیلي بدلول پیل کړې، دا ولیکئ. هر څوک چې نیول نه وي لیدلي به فکر کوي چې تونل پخپله مات دی.
تنگه سمون: د سرچینې پورټ سره سمون لرونکي تګلارې قواعد
له B د اورېدونکي ساکټ څخه ځوابونه د سرچینې پورټ 500 سره وځي. یوه تګلاره قاعدې کولی شي ورسره سمون ولري او هغه بستې بیرته عادي جدول ته ولیږي:
ip rule add sport 500 table main priority 100
ip rule add sport 8080 table main priority 101
تګلارې قواعد د لومړیتوب په ترتیب کې کتل کیږي، او اصلي جدول په 32766 کې دی، نو په 100 کې قاعده د تونل له ډیفالټ لارې مخکې پوښتل کیږي. د هر هغه پورټ لپاره یو ننوتل ورزیات کړئ چې باید له بهر څخه د لاسرسي وړ پاتې شي او نور څه نه، تر څو لیږدول شوی ټرافیک هغه تونل ته دوام ورکړ چې د هغې لپاره جوړ شوی و.
د دې چال حد وپېژنئ. sport ټاکونکی سیمه ییزه جوړه شوو بستو سره سمون لري، چې په دقیق ډول د ځواب قضیه پوښي او په قصداً ډول هغه ټرافیک نه پوښي چې B یوازې د بل چا لپاره لیږدوي. د B شاته مېلمه شوې خدمت لا هم خپل ځواب ته اړتیا لري، او د برعکس ادعا کول داسې سمون راولي چې د لومړي خدمت لپاره کار کوي او د دویم لپاره ناکامه کیږي.
قاعدې ته مالک ورکړئ
په پرومپټ کې ټایپ شوې قاعده بل ځل چې انټرفېس بیا جوړ شي ورک کیږي. په WireGuard ترتیب کې یې هغه ځای کېږدئ چې انټرفېس جوړ او لرې کیږي:
PostUp = ip rule add sport 500 table main priority 100
PostDown = ip rule del sport 500 table main priority 100
که انټرفېس د NetworkManager، د ویش هک یا د کانټینر د ننوتلو نقطې ملکیت وي، دا جوړه هغه مالک ته اړه لري نه په لاس سمون شوې فایل ته. له بیا نښلولو وروسته اغېزمن قواعد وګورئ، نه یوازې له لومړي پیل وروسته، ځکه لومړی پیل هغه قضیه ده چې تل کار کوي.
بدیلونه په رښتیا سره پرتله کړئ
د سرچینې-پورټ قاعده د وتلو څلورو لارو څخه یوه ده، او له هغو تر ټولو تنګه ده. دا ګټه لري چې د تونل تګلارې ته هیڅ نه رسېږي، ځکه نو ډېری وخت له وروستیو بدلونو ژوندی پاتې کیږي. تنګ سمونونه هم په لوړ غږ ناکامه کیږي کله چې تطبیقېدل بند شي، په داسې حال کې چې پراخ استثنا تر هغه دلیل له منځه تللو ډېر وروسته هم په خاموشۍ کار کوي. دوه کاله وروسته کله چې د بکس مالک بل څوک وي، دا توپیر له ښکلا څخه ډېر ارزښت لري.
| Approach | What it costs | Where it breaks |
|---|---|---|
| Source-port policy rule | One rule per exposed port | Anything B forwards rather than originates |
| Destination exception route | A route pinned to specific client addresses | Clients whose address changes |
| Stop full-tunnelling on B | Loses the catch-all path toward C | Designs that depend on it |
| Split into two tunnels | More interfaces and more policy | Nothing, at the cost of complexity |
له دواړو پایو څخه تایید کړئ کله چې مو غوره کړ. له A څخه، د B پورټ ته اړیکه پیل کړئ او یو څه وخت یې بوخت وساتئ. پر B، کرنل ته ووایاست چې د ip route get <address-of-A> sport 500 په څېر یو څه سره د ځواب لاره توجیه کړي، او تایید کړئ چې دا تونل نه بلکه WAN انټرفېس نوموي. له هغې وروسته، وګورئ چې د C شاته یو څه لا هم د زنځیر له لارې ځواب ورکوي، چې ثابتوي استثنا تنګه پاتې شوه نه دا چې اړخ لار شوه. په پای کې، پورټونه په ډیزاین یادښتونو کې ولیکئ، که نه نو بل چلونکی به دا په بل خدمت کې بیا ومومي.