Is é marcáil tráchta ó aon cgroup amháin an chuid éasca. Caithfidh trí chinneadh ar leith teacht le chéile sula n-éalóidh aon fheidhmchlár amháin tríd an gcomhéadan fisiceach agus gach rud eile ag fanacht sa tollán: cé acu socket a bhaineann leis an eisceacht, cé acu cuardach ródaithe a spreagann an mharcáil, agus cé acu seoladh foinse a iompraíonn an paicéad nuair a éalaíonn sé. Déanann an chuid is mó de na hiarrachtaí teipthe an chéad cheann i gceart, an dara ceann go leath, agus ní fhéachann siad riamh ar an tríú ceann.

Trí chinneadh, ní ceann amháin

Freagraíonn an rangú cé atá díolmhaithe. Freagraíonn an ródú cá dtéann an paicéad marcáilte ina ionad. Freagraíonn roghnú na foinse cad a fheicfidh an taobh i bhfad i gcéin agus cá gcaithfidh an freagra filleadh.

Teipeann siad seo go neamhspleách. Is féidir paicéad a rangú, a athródú chuig an gcomhéadan fisiceach agus fós seoladh príobháideach a iompar nach féidir le haon ródaire suas an tsreafa é a thabhairt ar ais, rud a chruthaíonn teorainn ama a fhéachann go beacht cosúil le blocáil balla dóiteáin. Ní thugann aon rud sa chéim rangaithe rabhadh duit faoi sin. Ní thugann aon rud sa chéim ródaithe ach an oiread.

Tá tábhacht leis an ord freisin. Tarlaíonn an rangú nuair a ghintear an paicéad, tarlaíonn an ródú ina dhiaidh sin, agus tarlaíonn an t-aistriú ag an bpointe éalaithe.

Mura féidir leat a ainmniú cé acu de na trí chéim atá briste, ní ag dífhabhtú atá tú, ach ag atheagrú rialacha agus ag súil.

Déan meaitseáil le cgroup a bheidh ann amárach fós

Is féidir le nftables ballraíocht socket i cgroup v2 a thástáil, rud atá fíor-úsáideach mar leanann sé an phróiseas seachas an ceann scríbe. Is é an t-aithneoir an tsáinn. Is minic a chónaíonn feidhmchlár deisce a sheoltar ó roghchlár i scope neamhbhuan a athraíonn a ainm ar an gcéad seoladh eile.

nft list ruleset
systemctl status session.slice 2>/dev/null
cat /proc/self/cgroup

Má chóipeáiltear ainm scope ó sheisiún amháin agus má chrua-chódaítear é, cruthaítear riail a oibríonn inniu agus a stopann go ciúin ag meaitseáil amárach. Cuir an feidhmchlár i gcomhthéacs forghníomhaithe atá d'aon ghnó seasmhach ina ionad, mar shampla scope nó unit tiomnaithe atá faoi do smacht, agus déan meaitseáil leis sin. Ansin maireann an riail trí atosú agus trí nuashonruithe pacáiste. Tagann sí chomh maith le bheith ina rud ar féidir le comhghleacaí réasúnaíocht a dhéanamh air gan stair do sheisiún.

Bí beacht freisin faoin meicníocht atá á húsáid agat. Is rudaí difriúla iad rangú net_cls i cgroup v1 agus meaitseáil socket i cgroup v2, agus ní dhéanann réimse ar a bhfuil ainm cosúil sa doiciméadú iad a bheith idirmhalartach.

Is slabhra de chineál route a spreagann an dara cuardach

Maidir le trácht a ghintear go háitiúil, cinneann cineál an tslabhra an dtarlóidh aon rud tar éis an mharcáil a shocrú. Is féidir le slabhra eisithe de chineál filter paicéad a mharcáil agus leanfaidh an t-eithne ag úsáid an róid a roghnaigh sé cheana. Is é slabhra de chineál route an mheicníocht a iarrann cuardach nua.

table inet bypass {
  chain mark {
    type route hook output priority mangle; policy accept;
    socket cgroupv2 level 2 "app.slice" meta mark set 0x1 comment "app bypass"
  }
}
ip rule add fwmark 0x1 lookup 200
ip route add default via 203.0.113.1 dev wlan0 table 200

Ansin teastaíonn riail beartais a sheolann chuig tábla é ón marcáil, agus caithfidh an tábla sin a bheith iomlán: ród réamhshocraithe, aon chinn scríbe áitiúla a theastaíonn fós ón bhfeidhmchlár, agus geata suas an tsreafa a fhreagraíonn i ndáiríre.

Roghnaigh luach na marcála d'aon ghnó. Úsáideann WireGuard a fwmark féin le haghaidh tráchta iompair sheachtraigh, agus is féidir le tuirlingt ar an uimhir chéanna de thaisme cur isteach ar eisceacht ródaithe an tolláin féin ar bhealaí atá pianmhar le diagnóisiú.

Ní leanann an seoladh foinse an ród

Coimeádann socket a roghnaigh seoladh foinse don chonair tolláin cheana an seoladh sin tar éis an athródaithe. Ní athscríobhann aon rud san athrú ródaithe é, agus is é sin an fáth a n-éalaíonn an paicéad ón gcomhéadan fisiceach le foinse phríobháideach nach féidir leis an líonra suas an tsreafa a thabhairt ar ais.

Is é an siomptóm infheicthe feidhmchlár a bhíonn cosúil le sonraí a sheoladh agus nach bhfaigheann freagra riamh, agus log balla dóiteáin nach dtaispeánann aon rud mar nár tháinig an paicéad ar ais riamh.

Is é an ceartú cúng riail aistrithe foinse atá teoranta do mharcáil an fheidhmchláir sin agus dá fhíor-chomhéadan eisithe, comhtháite leis an NAT atá ann cheana seachas é a athsholáthar:

table inet bypass {
  chain postrouting {
    type nat hook postrouting priority srcnat; policy accept;
    meta mark 0x1 oifname "wlan0" masquerade
  }
}

Aistrigh an eisceacht agus faic eile. Ceartaíonn riail masquerade uilíoch an siomptóm agus scriosann sí do chumas a rá cé acu trácht a ghlac cé acu conair. Déan meaitseáil ar an marcáil, ar an bhfíor-chomhéadan eisithe agus, más féidir leat, ar sheoladh an fheidhmchláir féin. Is furasta rialacha leathana a scríobh agus beagnach dodhéanta iad a iniúchadh níos déanaí.

Cad a éalaíonn ón eisceacht fós

Is féidir le réiteach ainmneacha teacht ó phróiseas resolver ar leith i cgroup eile, mar sin ní dhéanann rangú socket an bhrabhsálaí rangú ar a chuid fiosrúchán. Má fhanann fiosrúcháin an resolver sa tollán agus an nasc ag éalú amach as, is féidir le freagraí split-horizon gan a bheith ag teacht leis an gconair. Cruthaíonn an mhíréir sin teipeanna a fhéachann cosúil le fabhtanna DNS agus nach ea.

Faigheann próisis linbh an cgroup le hoidhreacht i bhformhór na gcóireanna, ach ní fhaigheann cúntóir a bhogann é féin isteach ina scope féin. Seiceáil seachas glacadh leis, go háirithe d'aon rud a athfhorghníomhaíonn é féin.

Ar deireadh, socraigh cad ba cheart tarlú nuair a bhíonn an tollán síos. Is dearcadh slándála difriúil eisceacht a éiríonn go ciúin ina seachbhóthar iomlán ná ceann a theipeann go dúnta, agus ní hé ach ceann acu siúd a bhí i gceist agat.

Ailt ghaolmhara