له ip rule سره د پالیسۍ قاعده اضافه کړئ، هغه تر هغه پورې کار کوي چې لینک ورک شي؛ په هغه شېبه کې هغه یوازې نشته۔ هېڅ شی په زوره ناکام نه شو: د کرنل حالت بدل شو، او هیڅ د ترتیباتو مالک نه پوهېده چې قاعده باید وي۔ د پاتې کېدونکې او نه پاتې کېدونکې قاعدې ترمنځ ټول توپیر همدا دی۔ په یوه هوسټ کې چې systemd-networkd لري، حل دا دی چې قاعدې ته مالک ورکړئ، نه دا چې له هر بیا نښلولو وروسته امر بیا وچلوئ۔

قاعده یوازې هغه وخت شته چې څوک یې مالک وي

د کرنل د لارښوونې پالیسي حالت دی، نه ترتیبات۔ هغه په روان سیستم کې ژوند کوي، او هر هغه څه چې هغه انټرفېس ونړوي چې هغه پرې تکیه ده، کولای شي هغه له ځان سره یوسي۔ په شیل کې امر هغه حالت بدلوي او د نیت هېڅ ثبت نه پرېږدي۔

د شبکې مدیران په برعکس ډول کار کوي: ترتیبات لولي، تطبیقوي، او کله چې د لینک پېښه پخوانی حالت باطل کړي، بیا تطبیقوي۔ هغه قاعده چې د دوی په ترتیباتو کې اعلان شوې وي بیا جوړېږي، خو هغه قاعده چې د دوی ترڅنګ اضافه شي، بې مالکه بهرنۍ شی دی۔

دې توپیر په networkd کې نوم لري، او د هر څه فعالولو دمخه یې لوستل ارزښت لري۔ په نویو نسخو کې بهرنۍ قاعدې په ډیفالټ ډول لرې کېږي، چې هغه خلک حیرانوي چې تمه یې درلوده لاسي ننوتنې به یې پاتې شي۔

د یوې ترتیبې پر باور کولو دمخه نسخه ولولئ

د مالکیت چلند په networkd.conf کې د یوې ترتیبې په واسطه کنټرولېږي، او هغه ترتیبه په زړو systemd نسخو کې نشته۔ د هغې شاوخوا د ډیزاین کولو دمخه نصب شوې نسخه وګورئ، ځکه زوړ هوسټ د هغه اسنادو څخه توپیر لري چې تاسو یې لولئ۔

دوه ارزښتونه مهم دي۔ یو ټاکي چې آیا هغه قاعدې لرې کېږي چې د networkd په ترتیباتو کې نه دي اعلان شوې، او بل د لارو لپاره همدغه کوي۔ دواړه د پالیسۍ د منځپانګې نه، بلکې د مالکیت په اړه دي، او دواړه په اوسنیو نسخو کې په ډیفالټ ډول سخت چلند غوره کوي۔ د دوی نړیوال بندول هره بهرنۍ قاعده ژوندې ساتي، چې د یوې غوښتل شوې VPN پالیسۍ اعلانولو څخه ډېر پراخه پرېکړه ده۔

systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null

هغه grep تاسو ته وایي چې په سیمه ییز ډول څه ټاکل شوي او د پلورونکي ډیفالټ څه دی۔ نه شتون هم معلومات دي، ځکه معنا یې دا ده چې کمپایل شوی ډیفالټ پلي کېږي۔ ډیفالټ په خپلو یادښتونو کې ولیکئ، تر څو بل کس یې بیا کشف کولو ته اړ نه شي۔

قاعده او هغه جدول چې هغه ته اشاره کوي اعلان کړئ

په .network فایل کې قاعده یو جدول نوموي، او نوم یوازې همدا کوي۔ هغه د هغه جدول دننه لارې نه جوړوي او نه ګوري چې مانا لري که نه۔ قاعده پرته له لارو اعلانول داسې پالیسي جوړوي چې ترافیک سره سمون خوري او بیا یې غورځوي۔

لارې په هماغه فایل کې اعلان کړئ، د رسېدونکو راتلونکو ټوپونو او سم جدول سره۔ په اعلان شوې قاعده کې لومړیتوب وساتئ، تر څو په ترتیب شوې لړلیک کې هغه ځای کې ځای پرځای شي چې تاسو تمه لرئ۔ هغه قاعده چې غلط جدول ته تر ټاکلي وخت دمخه ورسیږي، د هغې خدمت څخه ډېر ترافیک بدلوي چې تاسو یې سمول غوښتل۔ لاندې ټوټه د بشپړ فایل نه، بلکې د یوې بڼې په توګه ولولئ، ځکه د انټرفېس مالکیت او د نښلونې پاتې برخه باید لا هم وي۔

[RoutingPolicyRule]
Family=ipv4
IPProtocol=tcp
SourcePort=443
Table=100
Priority=1000

[Route]
Destination=10.80.0.0/24
Gateway=10.80.0.1
Table=100

بیا بیا پورته کړئ او د فایل پرځای د کرنل حالت ولولئ۔ هغه ترتیبه چې پاکه تحلیل شوې، لا هم کولای شي داسې قاعده جوړه کړي چې تاسو یې نیت نه درلود، او دواړه لیدونه یوازې هغه وخت سره سمون خوري چې اعلان بشپړ و۔

د انټرفېس لپاره یو مالک وټاکئ

دوه مدیران په یوه تونل داسې شخړه جوړوي چې په دواړو کې د باګ په څېر ښکاري۔ د موجود wg-quick ترتیباتو networkd ته واردول اضافه کول نه، بلکې لېږد دی، او د دواړو چلول انټرفېس او قاعدې یې د دوو مالکانو تر لاس لاندې پرېږدي۔

لېږد په یوه پړاو کې وکړئ: زړه یونټ ودروئ، غیر فعال یې کړئ، په networkd کې انټرفېس او لارې یې اعلان کړئ، بیا بیا پورته کړئ۔ وګورئ چې زوړ یونټ د بوت په وخت کې بېرته نه شي راتلای۔ پاتې یونټ چې له بیا پیل وروسته بیا فعال شي، هغه حالت چې همدا اوس اعلان کړی و پرې لیکي۔ زړه ترتیباتي فایل وساتئ تر هغه چې نوی یو بیا نښلول وزغمي، بیا یې تقاعد کړئ۔

د نښې مالکیت هم هماغه پاملرنې ته اړ دی: که قاعده د اوروژنې نښې سره سمون وخوري، یو څه باید هغه نښه وټاکي۔ هغه قاعده چې داسې نښې ته اشاره کوي چې هیڅوک یې نه ټاکي، مړه ترتیبه ده چې ارادي ښکاري۔

د ژوند دوران پېښې تمرین کړئ

ترتیبه هومره ښه ده چې د پېښو په اوږدو کې یې چلند وي۔ لینک ښکته کړئ، پورته یې کړئ، خدمت بیا پیل کړئ او پته نوی کړئ۔ له هر یوه وروسته د قاعدو لړلیک او د جدول منځپانګه ولولئ۔

sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd

غوښتل شوې پایله دا ده چې هماغه مالک لرونکې پالیسي بیا جوړه شي او زوړ حالت تقاعد شي، چې له هر بیا نښلولو وروسته د شیل قاعدې بیا اضافه کولو څخه ډېر دوام لري۔ په بدلون ثبت کې یوه کرښه وساتئ چې د قاعدې مالک فایل او هغه نسخه ونوموي چې ملاتړ یې کوي۔ بیا راتلونکی انجینر کولای شي پالیسي پرته له شیل تاریخ لټولو ومومي۔ هغه قاعده چې هیڅوک یې مالک نه دی، هغه قاعده ده چې بیا به ورکه شي۔

اړوندې مقالې