Fanya kanuni ya ip idumu baada ya kuunganisha tena na systemd-networkd
Kanuni ya ip iliyoongezwa kutoka kwenye shell hupotea kwenye tukio lijalo la kiungo. Tangaza kanuni, jedwali lake na njia zake katika systemd-networkd ili sera iundwe upya.
Ongeza kanuni ya sera kwa ip rule na inafanya kazi hadi kiungo kiondoke; wakati huo haipo kabisa. Hakuna kitu kilichoshindwa kwa sauti: hali ya kernel ilibadilika, na hakuna mmiliki wa usanidi aliyejua kwamba kanuni ilipaswa kuwepo. Hiyo ndiyo tofauti yote kati ya kanuni inayodumu na isiyodumu. Kwenye mwenyeji mwenye systemd-networkd, suluhisho ni kuipa kanuni mmiliki, si kukimbiza amri tena baada ya kila kuunganisha tena.
Kanuni inapatikana tu ikiwa mtu anamiliki
Sera ya uelekezaji ya kernel ni hali, si usanidi. Inaishi katika mfumo unaoendesha, na kitu chochote kinachobomoa kiolesura inachotegemea kinaweza kuichukua. Amri ya shell hubadilisha hali hiyo na haiachi rekodi yoyote ya nia.
Wasimamizi wa mtandao hufanya kazi kinyume: wanasoma usanidi, wanautumia na wanautumia tena wakati tukio la kiungo linapobatilisha hali iliyotangulia. Kanuni iliyotangazwa katika usanidi wao huundwa upya, ilhali kanuni iliyoongezwa kando yao ni kitu cha kigeni kisicho na mmiliki.
Tofauti hiyo ina jina katika networkd, na inafaa kuisoma kabla ya kuwezesha kitu chochote. Kanuni za kigeni huondolewa kwa chaguo-msingi katika matoleo ya hivi karibuni, jambo linalowashangaza wale waliotarajia maingizo yao ya mkono yabaki.
Soma toleo kabla ya kuamini mpangilio
Tabia ya umiliki inadhibitiwa na mpangilio katika networkd.conf, na mpangilio huo haupo katika matoleo ya zamani ya systemd. Angalia toleo lililosakinishwa kabla ya kubuni kuzunguka, kwa sababu mwenyeji wa zamani hufanya tofauti na nyaraka unazosoma.
Thamani mbili ni muhimu. Moja huamua kama kanuni ambazo hazikutangazwa katika usanidi wa networkd huondolewa, na nyingine hufanya hivyo kwa njia. Zote zinahusu umiliki na si maudhui ya sera, na zote kwa chaguo-msingi huchagua tabia kali zaidi katika matoleo ya sasa. Kuzizima kwa jumla huweka kila kanuni ya kigeni hai, jambo ambalo ni uamuzi mpana zaidi kuliko kutangaza sera moja ya VPN inayokusudiwa.
systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null
grep hiyo inakuambia kilichowekwa kienyeji na kilicho chaguo-msingi la msambazaji. Kutokuwepo pia ni taarifa, kwa sababu kunamaanisha kwamba chaguo-msingi lililokusanywa linatumika. Andika chaguo-msingi katika madokezo yako ili mtu ajaye asilazimike kuigundua tena.
Tangaza kanuni na jedwali inaloonyesha
Kanuni katika faili ya .network hutaja jedwali, na jina hufanya hivyo tu. Haiundi njia zilizo ndani ya jedwali hilo na haikagui kama zina maana. Kutangaza kanuni bila njia huzalisha sera inayolinganisha trafiki kisha kuiacha.
Tangaza njia katika faili hiyo hiyo, ziwe na hatua zinazofuata zinazofikika na jedwali sahihi. Weka kipaumbele katika kanuni iliyotangazwa ili itue mahali unapotarajia katika orodha iliyopangwa. Kanuni inayofikia jedwali lisilofaa mapema kuliko ilivyokusudiwa hubadilisha trafiki zaidi kuliko huduma uliyokusudia kurekebisha. Soma kipande kilicho hapa chini kama umbo na si kama faili kamili, kwa sababu umiliki wa kiolesura na sehemu iliyobaki ya muunganisho bado lazima viwepo.
[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
Kisha pakia upya na soma hali ya kernel badala ya faili. Usanidi uliochanganuliwa kwa usafi unaweza bado kuzalisha kanuni ambayo hukukusudia, na mitazamo miwili hukubaliana tu wakati tangazo lilikuwa kamili.
Chagua mmiliki mmoja kwa kiolesura
Wasimamizi wawili kwenye handaki moja huzalisha ugomvi unaoonekana kama hitilafu kwa wote wawili. Kuagiza usanidi uliopo wa wg-quick ndani ya networkd ni uhamishaji na si nyongeza, na kuendesha wote hukuacha kiolesura na kanuni zake chini ya wamiliki wawili.
Fanya uhamishaji kwa mara moja: simamisha kitengo cha zamani, kizime, tangaza kiolesura na njia zake katika networkd, kisha pakia upya. Angalia kwamba kitengo cha zamani hakiwezi kurudi wakati wa kuwasha. Kitengo kilichobaki kinachojishughulisha tena baada ya kuwasha upya huandika juu ya hali uliyotangaza hivi punde. Weka faili ya usanidi ya zamani hadi mpya idumu kupitia kuunganisha tena, kisha istaafishe.
Umiliki wa alama unastahili uangalifu sawa: ikiwa kanuni inalingana na alama ya firewall, kitu lazima kiweke alama hiyo. Kanuni inayorejelea alama ambayo hakuna anayeikaa ni usanidi mfu unaoonekana kama wa kukusudia.
Fanya mazoezi ya matukio ya mzunguko wa maisha
Usanidi una thamani kadri tabia yake inavyokuwa katika matukio. Shusha kiungo, pandisha, anzisha tena huduma na uhuisha anwani. Baada ya kila moja, soma orodha ya kanuni na yaliyomo kwenye jedwali.
sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd
Matokeo yanayokusudiwa ni sera hiyo hiyo yenye mmiliki kuundwa upya na hali iliyopitwa na wakati kustaafishwa, jambo ambalo ni la kudumu zaidi kuliko kuongeza tena kanuni ya shell baada ya kila kuunganisha tena. Weka mstari mmoja katika rekodi ya mabadiliko unaotaja faili inayomiliki kanuni na toleo linaloitegemeza. Ndipo mhandisi ajaye anaweza kuipata sera bila kuchunguza historia ya shell. Kanuni ambayo hakuna anayeimiliki ni kanuni itakayopotea tena.