په یو Pi کې دوه VPN ټوپونه: کومه لار کوم همکار لیږدوي
په یو Pi کې دوه ټونل پتې نیمګړتیا نه ده۔ هر هدف ته خپل لېږدوونکی، خپل ثبوت او د باندې ټوپ مړ کېدو پر مهال اعلان شوی بدیل مسیر ته اړتیا ده۔
په یو کوچني بورډ کې دوه ټونل پتې تېروتنې ته ورته ښکاري، او غبرګون یې یوه پاکول دي۔ هغه غبرګون هغه څه ماتوي چې باید سمول یې۔ دوه ټوپونه لېږدوونکی کوربه د هر اړیکې لپاره یوه پته ساتي، او هره پته بېله لار غوره کوي۔ د پوښتنې وړ پوښتنه دا ده چې کومه لار کوم هدف لپاره کوم لېږدوونکی غوره کوي، نه دا چې څو پتې شته۔
درې هدفونه چې بېل لېږدوونکي غواړي
د دوو ټوپونو زنځیر د درې طبقو هدفونو ولاړ دی، او هر یو یې بېله اړیکه لېږدوي۔ باندې همکار ته د فزیکي لینک له لارې رسېدل غواړي۔ منځني همکار ته د باندې ټونل له لارې رسېدل غواړي۔ پوښل شوي اپلیکیشن هدف ته د منځني ټونل له لارې رسېدل غواړي، چې خپل ترانسپورت یې باندې ټونل لېږدوي۔
| Destination class | View that names the carrier | Command that proves it | Symptom when the wrong carrier wins |
|---|---|---|---|
| Outer peer, 198.51.100.10 | the main table, by destination | ip route get 198.51.100.10 | the outer handshake never completes |
| Inner peer, 203.0.113.7 | the main table once the outer tunnel is up | ip route get 203.0.113.7 | the inner handshake leaves over the physical link |
| Application destination, 172.30.9.1 | the table the inner client's traffic is selected into | ip route get 172.30.9.1 from 10.8.0.2 | the exit address looks right and the traffic never crossed the outer hop |
| Parallel tunnels, one per source group | one policy per group, not the main table | ip rule show beside a marked test connection | both tunnels are up and one steals the other's traffic |
د لارې له لاسوهنې مخکې کرښې د لوستونکي ریښتینو پتو سره ډک کړئ، ځکه جدول یوازې هغه وخت ګټور دی چې مشخص وي۔ کار کوونکی زنځیر څلور کرښې یو ځای پوره کوي، او نیمګړی زنځیر معمولاً یوه له هغو ناسم لېږدوونکي سره پوره کوي۔ هماغه ناسمه کرښه د خرابۍ په توګه لوستل د لارې ستونزه په ټوله ماښام کې سمونو بدلوي۔
پتو رولونه لري، نه شمېر
لینوکس په یوه انټرفیس کې څو پتې او په یوه کوربه کې څو ټونلونه اجازه کوي، نو شمېر د سم والي په اړه څه نه وایي۔ مهمه دا ده چې کومه پته کومې اړیکې پورې اړه لري، او آیا د یو ټاکلي همکار لپاره لاره هغه اړیکه غوره کوي چې تاسو یې مطلب درلود۔ درې لیدونه له درې خواوو ځواب ورکوي، او هر ځل یې په هماغه ترتیب لوستل ارزښت لري۔
د پتو لیست ښيي چې څه شته او کومه اړیکه یې مالک ده۔ د لارو جدول د عادي هدف ترافیک لپاره د لېږدوونکي پوښتنې ځواب ورکوي۔ د پالیسۍ لید د سرچینې یا نښې له مخې غوره شوي ترافیک لپاره بیا ځواب ورکوي، چې کله دوه کلاینټونه یوه کوربه شریکوي دا نورمال ترتیب دی۔
ip -4 addr show
ip -4 route show table all
ip rule show
پته پاکول ځکه چې لیست اوږد ښکاري د لارې یوه برخه لرې کولی شي، او لاره پاکول ځکه چې اضافي ښکاري هماغه کار په ډېر آرامۍ کوي۔ دواړه تېروتنه نه جوړوي؛ همکار یوازې هغه لارې ځواب ورکول بندوي چې تاسو یې مطلب درلود، خو په بله لار ورته رسېدل کېدای شي۔ هغه اپلیکیشن چې د منځني همکار د وتلو پته راپور کوي ثبوت نه کوي چې ترافیک باندې ټونل تېر شوی، ځکه مستقیم لاسرسی هماغه کتنه ورکوي۔ هماغه تشه د کتنې او ثبوت ترمنځ د لارې په طبقه کې د لېږدوونکي د کتلو لامل ده۔
د فعالولو ترتیب ټاکلې تمه ته ماتې ورکوي
که منځنی کلاینټ په هغه پته یا لاره تکیه وي چې باندې کلاینټ یې برابروي، فعالول باید د ځنډ پرځای هماغه سرچینې ته انتظار وکړي۔ تمه تر هغې ورځې کار کوي چې باندې ټونل ورو وي، او بیا په داسې ډول ناکاميږي چې هیڅوک یې بیا جوړولی شي۔ د تکیهګانو پر بنسټ ترتیب اټکل لرې کوي او د تکیه یو ځل بیانولو پرته بل څه نه لګوي۔ د انټرفیس نومونه هم د ترتیب میکانیزم نه دي۔
کرنل د tun0 او tun1 په څېر نومونه د جوړېدو په ترتیب ورکوي، او دا ترتیب د بیا پیل یا بیا نښلېدو ترمنځ بدلېدای شي۔ کنفیګوریشن د هغې پیژندنې سره وتړئ چې وسیله یې برابروي، یا د هغه نوم سره چې په پوهه یې ورکوئ۔ هغه نوم چې تاسو غوره کوئ قرارداد دی؛ هغه نوم چې کرنل غوره کوي تصادف دی۔
د هر کلاینټ ترانسپورت د بل د اپلیکیشن لارې څخه بهر وساتئ، او د هغه څه په اړه دقیق اوسئ چې د OpenVPN 2.6 د لارې اختیارونه واقعاً ژمنه کوي۔ مستند شوی د ډیفالټ بیاځلې لارښوونې میکانیزم کلاینټ وړ ساتي چې خپل لرې همکار ته د هغې دروازې له لارې ورسیږي چې مخکې موجوده وه، او دا یوه ځانګړې تکرار حلقه پرې کوي۔ دا یو کلاینټ د بل کلاینټ لېږدوونکی نه جوړوي، نو د زنځیر پاتې برخه ستاسو ډیزاین پاتې کیږي۔ چېرې چې زنځیر ته د لارې پرځای پالیسي ته اړتیا وي، یو څرګند د سرچینې یا نښې قاعده ولیکئ او د هغه ترافیک سره یې و ازموئ چې باید سره سمون ولري۔
کله چې باندې ټوپ مړ شي څه پېښیږي
له دې مخکې چې زنځیر بشپړ وشمېرل شي، پرېکړه وکړئ کله چې باندې ټوپ ورک شي څه پېښیږي۔ د منځني کلاینټ ترانسپورت ورسره مړ کیږي، او بله ګام تخنیکي نه، د پالیسۍ پوښتنه ده: ناکامي، بیا هڅه، یا د فزیکي لینک له لارې مستقیم بیا نښلېدل۔ هماغه دریمه پایله د فکر کولو وړ ده۔ دا په خاموشۍ سره د دوو ټوپونو ډیزاین په یو ټوپ ډیزاین بدلوي په هغه شېبه کې چې کاروونکی باور لري پوښ لاهم سالمه ده۔
که دوه ټوپونه لازمي وي، منځنی کلاینټ باید د باندې له ورکېدو سره مستقیمه لار جوړولی نه شي، او د دې پوهېدو لار دا ده چې باندې ټوپ مات کړئ او وګورئ منځنی څه کوي۔ تصویب شوی بدیل مسیر قانوني ځواب دی، خو باید ولیکل شي، وازمویل شي او اعلان شي۔ هغه بدیل چې هیڅوک یې مستند نه کړی د پېښې په بیاکتنه کې د لیکې څخه توپیر نه لري۔
DNS او بله پته کورنۍ د هماغه پرېکړې برخه ده۔ په محلي ډول جوړه شوې پوښتنه د کوربه خپلې پالیسۍ پیروي کوي، نه د لېږل شوي کلاینټ، نو هغه حل کوونکی چې د لېږل شوي ترافیک لپاره کار کوي ممکن هغه نه وي چې کوربه یې پخپله کاروي۔
هره طبقه په هغه ترتیب ومنئ چې جوړه کړې یې ده
په هغه ترتیب ازموئ چې زنځیر جوړ شوی: لومړی یوازې باندې ټونل، بیا د باندې ټونل له لارې منځني کلاینټ ترانسپورت، بیا د منځني ټونل له لارې اپلیکیشن۔ هر منل باید نوې اړیکه وي، نه مخکې پرانیستل شوې پاڼه۔ بیا هره طبقه جلا مات کړئ او بیرته یې راوستل او وګورئ بله څه کوي۔
د بدیل پایله دلته تر ټولو ارزښتناکه کتنه ده، او هغه چې عامه IP پاڼه هیڅکله نه ښيي۔ د همکارانو لارې، هغه پتې چې کاروي او هغه پایله د کنفیګوریشن ترڅنګ وساتئ، ځکه خوښه لار هغه برخه نه ده چې وروسته پوښتنه ترې کیږي۔