Правилото за рутирање ја чита ознаката на пакетот, не conntrack
Рутирањето по политика ја чита ознаката на пакетот; conntrack чува друга вредност со подолг живот. Копирањето меѓу нив е чекор што некој мора да го напише.
Четири проверки раздвојуваат исправно правило за ознака од исправна рута: која ознака ја чита правилото, дали пакетот сè уште ја носи при пребарувањето, дали ознаката на врската е вратена на подоцнежните пакети и дали маската и приоритетот на соодветното правило му дозволуваат да се активира. Бројачот што расте докажува само дека некое правило се совпаднало со нешто. Тој не кажува ништо за тоа што го носел пакетот кога јадрото го избирало неговиот пат.
Двете ознаки живеат на различни места и истекуваат по различен распоред.
Две ознаки, два животи
Ознаката на пакетот припаѓа на еден skb, патува со него низ куките и ја троши fwmark-избирачот на рутирањето по политика. Ознаката на врската припаѓа на записот во conntrack, опстојува низ пакетите на тој тек и е невидлива за правилото за рутирање додека нешто не ја копира назад. Зачувувањето на ознаката на пакетот во врската е зачувување; враќањето е одделно дејство. Ниту едно не се случува само по себе.
Затоа збирот правила може да изгледа доследно додека одлуката за рута гледа нула: вредноста била зачувана и ништо не ја вратило.
Копирањето меѓу нив е чекор што го пишувате вие
Двете важни наредби одат во спротивни насоки: едната ја зачувува ознаката на пакетот во врската, другата ја вчитува ознаката на врската на пакетот. Која ви е потребна зависи од тоа кога се случува класификацијата во однос на текот. Еден дизајн може да бара само ознака на пакетот, а додавањето означување преку conntrack затоа што некое заобиколно решение користело и двете е начинот на кој една едноставна политика добива втор режим на откажување.
ct mark set meta mark meta mark set ct mark
Запишете ја насоката до правилото, бидејќи таа не е очигледна од синтаксата на прв поглед. Првиот ред зачувува, вториот враќа и ниту еден не го подразбира другиот.
Класифицирајте пред пребарувањето што го троши
Локално генерираниот сообраќај и сообраќајот проследен од LAN поминуваат низ различни куки и до одлуките за рута стигнуваат во различни моменти. Излезно правило што работи за сопствените врски на рутерот не докажува дека пакетот на проследениот клиент бил означен пред неговото пребарување. Поставете ја класификацијата таму каде што пребарувањето што ја троши сè уште не се случило, и проверете дали подоцнежните правила во истиот синџир ја препишуваат вредноста. Редоследот во синџирот е дел од конфигурацијата, а не детал од имплементацијата.
Трајноста на состојбата на врската бара јасен план. Ако се класифицира само првиот пакет на текот, подоцнежните пакети бараат враќање на зачуваната ознака, инаку ќе тргнат по патеката без ознака. Тоа е разликата помеѓу ознака што опишува врска и ознака што опишува пакет.
Прашајте ја рутата со означено прашање
ip route get 10.77.0.10 mark 0x2
Прегледајте ги правилата и табелата, потоа прашајте ја рутата со вклучена ознака, плус изворот или влезниот интерфејс кога тие влијаат на политиката. Обичното пребарување без ознака одговара на друго прашање и со задоволство ќе ви го пријави патот што не сте го сакале. Проверете ја маската и приоритетот на правилото, како и неговата вредност, и потврдете дека избраната табела содржи употреблива рута.
Бројачот што расте е доказ дека некое правило се совпаднало со некој пакет. Тоа не е доказ дека конечниот пакет ја носел саканата ознака на вистинското место на одлука.
Прочитајте ја ознаката, насоката, времето и маската. Четири проверки и рутата престанува да биде мистерија.