Ychwanegwch reol polisi gydag ip rule ac mae'n gweithio nes bod y cyswllt yn diflannu, ac ar y pwynt hwnnw mae'n syml wedi mynd. Ni fethodd dim yn uchel: newidiodd cyflwr y cnewyllyn, ac ni wyddai unrhyw berchennog ffurfweddu fod y rheol i fod i fodoli. Dyna'r holl wahaniaeth rhwng rheol sy'n goroesi a rheol nad yw'n goroesi. Ar weinydd systemd-networkd, y cywiriad yw rhoi perchennog i'r rheol yn hytrach na rhedeg y gorchymyn eto ar ôl pob ailgysylltu.

Nid yw rheol yn bodoli ond os oes rhywun yn berchen arni

Mae polisi llwybro'r cnewyllyn yn gyflwr yn hytrach na ffurfweddiad. Mae'n byw yn y system sy'n rhedeg, a gall unrhyw beth sy'n rhwygo'r rhyngwyneb y mae'n dibynnu arno fynd ag ef gyda hi. Mae gorchymyn grallgell yn newid y cyflwr hwnnw ac yn gadael dim cofnod o fwriad.

Mae rheolwyr rhwydwaith yn gweithio'r ffordd arall: maent yn darllen ffurfweddiad, yn ei gymhwyso, ac yn ei gymhwyso eto pan fo digwyddiad cyswllt yn diddymu'r cyflwr blaenorol. Mae rheol a ddatganwyd yn eu ffurfweddiad yn cael ei hail-greu, tra bo rheol a ychwanegwyd wrth eu hymyl yn wrthrych estron heb berchennog.

Mae gan y gwahaniaeth hwnnw enw yn networkd, ac mae'n werth ei ddarllen cyn galluogi unrhyw beth. Bydd rheolau estron yn cael eu dileu yn ddiofyn ar fersiynau diweddar, sy'n synnu pobl a oedd yn disgwyl i'w cofnodion llaw barhau.

Darllenwch y fersiwn cyn ymddiried mewn gosodiad

Mae'r ymddygiad perchnogaeth yn cael ei reoli gan osodiad yn networkd.conf, ac nid yw'r gosodiad hwnnw'n bodoli mewn rhyddhau hŷn o systemd. Gwiriwch y fersiwn sydd wedi'i osod cyn cynllunio o'i amgylch, oherwydd mae gweinydd hŷn yn ymddwyn yn wahanol i'r ddogfennaeth rydych yn ei darllen.

Mae dau werth yn bwysig. Mae un yn penderfynu a yw rheolau nad ydynt wedi'u datgan yn ffurfweddiad networkd yn cael eu dileu, ac mae'r llall yn gwneud yr un peth ar gyfer llwybrau. Mae'r ddau yn ymwneud â pherchnogaeth yn hytrach nag â chynnwys polisi, ac mae'r ddau yn ddiofyn yn defnyddio'r ymddygiad mwy llym ar ryddhau cyfredol. Mae eu diffodd yn fyd-eang yn cadw pob rheol estron yn fyw, sy'n benderfyniad llawer ehangach na datgan un polisi VPN a fwriadwyd.

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

Mae'r grep hwnnw'n dweud wrthych beth sydd wedi'i osod yn lleol a beth yw diofyn y gwneuthurwr. Mae absenoldeb hefyd yn wybodaeth, oherwydd mae'n golygu bod y diofyn a gyflawnwyd yn berthnasol. Ysgrifennwch y diofyn yn eich nodiadau fel na fydd y person nesaf yn ei ailddarganfod.

Datganwch y rheol a'r tabl y mae'n cyfeirio ato

Mae rheol mewn ffeil .network yn enwi tabl, a dyna'r cyfan y mae enw yn ei wneud. Nid yw'n creu'r llwybrau y tu mewn i'r tabl hwnnw, ac nid yw'n gwirio eu bod yn gwneud synnwyr. Mae datgan y rheol heb y llwybrau yn cynhyrchu polisi sy'n paru traffig ac yna'n ei ollwng.

Datganwch y llwybrau yn yr un ffeil, gyda neidiau nesaf y gellir eu cyrraedd a'r tabl cywir. Cadwch y blaenoriaeth yn y rheol a ddatganwyd fel ei bod yn glanio lle rydych yn disgwyl yn y rhestr drefnus. Mae rheol sy'n cyrraedd y tabl anghywir yn gynt na'r bwriad yn newid mwy o draffig na'r gwasanaeth roeddech am ei drwsio. Darllenwch y darn isod fel siâp yn hytrach nag fel ffeil gyflawn, oherwydd mae perchnogaeth y rhyngwyneb a gweddill y cysylltiad yn dal i fod yn rhaid bod yn bresennol.

[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

Yna ail-lwythwch a darllenwch gyflwr y cnewyllyn yn hytrach na'r ffeil. Gall ffurfweddiad a broseswyd yn lân o hyd gynhyrchu rheol na fwriadwyd gennych, ac mae'r ddau olygfa yn cytuno dim ond pan oedd y datganiad yn gyflawn.

Dewiswch un perchennog i'r rhyngwyneb

Dau reolwr ar un twnnel yn cynhyrchu gwrthdaro sy'n edrych fel nam yn y ddau. Mae mewnforio gosodiad wg-quick sy'n bodoli eisoes i networkd yn ymfudiad yn hytrach nag yn ychwanegiad, ac mae rhedeg y ddau yn gadael y rhyngwyneb a'i reolau o dan ddau berchennog.

Gwnewch yr ymfudiad mewn un tro: stopiwch yr uned hen, analluogwch hi, datganwch y rhyngwyneb a'i lwybrau yn networkd, yna ail-lwythwch. Gwiriwch na all yr uned hen ddod yn ôl wrth gychwyn. Mae uned sydd dros ben ac sy'n ailaensefydlu ar ôl ailgychwyn yn trosysgrifo'r cyflwr rydych newydd ei ddatgan. Cadwch y ffeil ffurfweddu hen nes bod yr un newydd wedi goroesi ailgysylltiad, yna ei hymddeol.

Mae perchnogaeth marc yn haeddu'r un gofal: os yw rheol yn paru marc mur tân, rhaid i rywbeth osod y marc hwnnw. Mae rheol sy'n cyfeirio at farc nad oes neb yn ei osod yn ffurfweddiad marw sy'n edrych yn fwriadol.

Ymarferwch ddigwyddiadau'r cylch bywyd

Nid yw ffurfweddiad yn well na'i ymddygiad ar draws digwyddiadau. Tynnwch y cyswllt i lawr, codwch ef, ailgychwynnwch y gwasanaeth, ac adnewyddwch y cyfeiriad. Ar ôl pob un, darllenwch y rhestr reolau a chynnwys y tabl.

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

Y canlyniad a fwriadwyd yw'r un polisi â pherchennog yn cael ei ail-greu a'r cyflwr darfodedig yn cael ei ymddeol, sy'n fwy gwydn na hychwanegu rheol grallgell eto ar ôl pob ailgysylltu. Cadwch un llinell yng nghofnod y newid yn enwi'r ffeil sy'n berchen ar y rheol a'r fersiwn sy'n ei chefnogi. Yna gall y peiriannydd nesaf ddod o hyd i'r polisi heb chwilio hanes grallgell. Mae rheol nad oes neb yn berchen arni yn rheol a gollir eto.

Erthyglau cysylltiedig