Bættu stefnureglu við með ip rule og hún virkar þar til tengingin hverfur; á þeim tímapunkti er hún einfaldlega ekki til. Ekkert mistókst hátt: ástand kjarnans breyttist og enginn eigandi stillingar vissi að reglan ætti að vera til. Það er allur munurinn á reglu sem lifir af og reglu sem gerir það ekki. Á vél með systemd-networkd er lausnin að gefa reglunni eiganda í stað þess að keyra skipunina aftur eftir hverja endurtengingu.

Regla er aðeins til ef einhver á hana

Leiðarstefna kjarnans er ástand, ekki stilling. Hún lifir í keyrandi kerfinu, og hvað sem rífur niður tengið sem hún byggir á getur tekið hana með sér. Skelskipun breytir þessu ástandi og skilur ekkert eftir um áformið.

Netstjórar vinna öfugt: þeir lesa stillingar, beita þeim og beita þeim aftur þegar tengiviðburður gerir fyrra ástand ógilt. Regla sem er lýst í stillingum þeirra er endursköpuð, en regla sem bætt er við hlið þeirra er framandi hlutur án eiganda.

Þessi aðgreining heitir eitthvað í networkd og er þess virði að lesa hana áður en eitthvað er virkjað. Framandi reglum er eytt sjálfgefið í nýlegum útgáfum, sem kemur þeim á óvart sem bjuggust við að handvirkar færslur þeirra myndu vara.

Lestu útgáfuna áður en þú treystir stillingu

Eigandaaðferðin er stýrð með stillingu í networkd.conf og sú stilling er ekki til í eldri systemd-útgáfum. Athugaðu uppsettu útgáfuna áður en þú hannar út frá henni, því eldri vél hagar sér öðruvísi en skjölin sem þú ert að lesa.

Tvö gildi skipta máli. Annað ræður því hvort reglum sem ekki er lýst í networkd-stillingunum sé eytt, og hitt gerir það sama fyrir leiðir. Bæði snúast um eignarhald en ekki um inntak stefnunnar, og bæði velja sjálfgefið stranga hegðun í núverandi útgáfum. Að slökkva á þeim almennt heldur hverri framandi reglu lifandi, sem er mun víðtækari ákvörðun en að lýsa einni stefnu fyrir VPN.

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

Þetta grep segir þér hvað er stillt staðbundið og hvert sjálfgefið gildi framleiðandans er. Fjarvera er líka upplýsing, því hún þýðir að samþætta sjálfgefna gildið gildir. Skrifaðu sjálfgefna gildið í glósurnar þínar svo næsta manneskja þurfi ekki að uppgötva það aftur.

Lýstu reglunni og töflunni sem hún bendir á

Regla í .network-skrá nefnir töflu, og það er allt sem nafn gerir. Hún býr ekki til leiðirnar í þeirri töflu og athugar ekki hvort þær hafa merkingu. Að lýsa reglunni án leiðanna gefur stefnu sem passar við umferð og sleppir henni svo.

Lýstu leiðunum í sömu skrá, með aðgengilegum næstu hoppum og réttu töflunni. Haltu forgangnum í lýstu reglunni svo hún lendi þar sem þú býst við í röðuðum listanum. Regla sem nær rangri töflu fyrr en ætlað var breytir meiri umferð en þjónustan sem þú vildir laga. Lestu brotið hér að neðan sem lögun en ekki sem fulla skrá, því eignarhald tengisins og afgangur sambandsins verða að vera til staðar.

[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

Hladdu svo aftur og lestu ástand kjarnans í stað skrárinnar. Stilling sem var þáttuð hreint getur samt gefið reglu sem þú ætlaðir ekki, og báðar sýnir stemma aðeins þegar lýsingin var fullkomin.

Veldu einn eiganda fyrir tengið

Tveir stjórar á einni göng skapa átök sem líta út eins og villa í báðum. Að flytja fyrirliggjandi wg-quick uppsetningu inn í networkd er flutningur en ekki viðbót, og að keyra bæði skilur tengið og reglur þess eftir undir tveimur eigendum.

Gerðu flutninginn í einu: stöðvaðu gömlu eininguna, slökktu á henni, lýstu tenginu og leiðum þess í networkd og hladdu svo aftur. Athugaðu að gamla einingin geti ekki komið aftur við ræsingu. Eining sem verður eftir og virkjast aftur eftir endurræsingu skrifar yfir ástandið sem þú varst að lýsa. Haltu gömlu stillingarskránni þar til nýja hefur lifað endurtengingu af og taktu hana þá úr notkun.

Eignarhald merkisins á skilið sömu gætni: ef regla passar við eldveggsmerki verður eitthvað að setja það merki. Regla sem vísar á merki sem enginn setur er dauð stilling sem lítur út fyrir að vera viljandi.

Æfðu atburði lífsferilsins

Stilling er ekki betri en hegðun hennar yfir atburði. Taktu tengið niður, settu það upp, endurræstu þjónustuna og endurnýjaðu vistfangið. Eftir hvert þeirra skaltu lesa reglulistann og innihald töflunnar.

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

Ætlaða niðurstaðan er sama stefnan með eiganda endursköpuð og úrelt ástand tekið úr notkun, sem er varanlegra en að bæta skelreglu við aftur eftir hverja endurtengingu. Haltu einni línu í breytingaskránni sem nefnir skrána sem á regluna og útgáfuna sem styður hana. Þá getur næsti verkfræðingur fundið stefnuna án þess að leita í skelsögu. Regla sem enginn á er regla sem tapast aftur.

Tengdir greinar