Ruteregelen les pakkemerket, ikkje conntrack
Policeruting les pakkemerket; conntrack lagrar ein annan verdi med lengre levetid. Å kopiere mellom dei er eit steg nokon må skrive.
Fire kontrollar skil ein merkeregel som verkar, frå ei rute som verkar: kva merke regelen les, om pakken framleis ber det ved oppslaget, om eit tilkoplingsmerke vart gjenoppretta på seinare pakkar, og om om maska og prioriteten til den samsvarande regelen lèt han utløyse. Ein teljar som aukar, provar berre at ein eller annan regel samsvara med noko. Han seier ingenting om kva pakken bar då kjernen valde vegen sin.
Dei to merka lever på ulike stader og renn ut etter ulike tidsplanar.
To merke, to levetider
Eit pakkemerke høyrer til ein skb, reiser med han gjennom krokane og vert brukt opp av fwmark-veljaren i policeruting. Eit tilkoplingsmerke høyrer til conntrack-oppføringa, held fram gjennom pakkane i den flyten og er usynleg for ruteregelen til noko kopierer det tilbake. Å lagre eit pakkemerke i tilkoplingsa er ei lagring; å gjenopprette det er ei eiga handling. Ingen av dei skjer implisitt.
Difor kan eit regelsett sjå konsistent ut medan rutningsavgjerda ser null: verdien vart lagra, og ingen ting gjenoppretta han.
Å kopiere mellom dei er eit steg du skriv
Dei to viktige utsegnene går i motsette retningar: den eine lagrar merket til pakken i tilkoplingsa, den andre lastar merket til tilkoplingsa på pakken. Kva du treng, kjem an på når klassifiseringa skjer i høve til flyten. Eit design kan trengje berre pakkemerket, og å leggje til conntrack-merking fordi ein mellombels løysing brukte begge, er måten ein enkel politikk får ein annan feilmodus.
ct mark set meta mark meta mark set ct mark
Skriv ned retninga ved sida av regelen, for ho er ikkje openber frå syntaksen ved fyrste augekast. Den fyrste lina lagrar, den andre gjenopprettar, og ingen av dei føreset den andre.
Klassifiser før oppslaget som brukar det
Lokalt generert trafikk og trafikk som vert vidaresend frå eit LAN, går gjennom ulike krokar og når rutningsavgjerder på ulike tidspunkt. Ein utregel som verkar for ruterens eigne tilkoplingar, provar ikkje at pakken til ein vidaresend klient vart merkt før oppslaget. Set klassifiseringa der oppslaget som brukar henne, enno ikkje har skjedd, og kontroller om seinare reglar i same kjeda skriv over verdien. Rekkjefølgja i ei kjeda er ein del av konfigurasjonen, ikkje ein implementasjonsdetalj.
Varig tilkoplingstilstand treng òg ein tydeleg plan. Om berre den fyrste pakken i ein flyt vert klassifisert, treng seinare pakkar å få det lagra merket gjenoppretta, elles tek dei den umerka vegen. Det er skilnaden mellom eit merke som skildrar ei tilkopling og eit som skildrar ein pakke.
Still ruta eit merka spørsmål
ip route get 10.77.0.10 mark 0x2
Gransk reglane og tabellen, og spør deretter ruta med merket inkludert, i tillegg til kjelda eller det inngåande grensesnittet når dei påverkar politikken. Eit vanleg umerka oppslag svarar på eit anna spørsmål og vil gjerne rapportere vegen du ikkje ville. Kontroller maska og prioriteten til regelen så vel som verdien, og stadfest at den valde tabellen inneheld ei brukbar rute.
Ein teljar som aukar, er prov for at ein eller annan regel samsvara med ein eller annan pakke. Det er ikkje prov for at den endelege pakken bar det tiltenkte merket på rett avgjerdspunkt.
Les merket, retninga, tidspunktet og maska. Fire kontrollar, og ruta sluttar å vere eit mysterium.