Jak to chápu já, ikdyž je mi jasné, že v porovnání s ostatníma toho ohledně síařiny chápu ještě dost málo :-)
V Simple queue, nebo i QT, máme možnost zadat pouze packet mark. Teoreticky by tedy stačilo pouze omarkovat pakety, ne connection. Myslím si ale, že důvod proč se to dělá, je NAT většinou na odchozím interface - masquarading.
"Normální" komunikace (zapněte si třeba Ethereal) vypadá takto:
PC1: 10.0.0.10
PC2: 10.0.0.20
PC1 to PC2:
dotaz: src 10.0.0.10 dst 10.0.0.20
reply: src 10.0.0.20 dst 10.0.0.10
Jenže když jdeme třeba ven do Internetu, myslím že to bude takto:
PC1: 10.0.0.10
server v Internetu: 81.82.83.84
dotaz: src 10.0.0.10 dst 81.82.83.84 (server někde v Internetu)
router masquarading: src 80.80.80.80 (naše veřejná IP) dst 81.82.83.84
reply: src 81.82.83.84 dst 80.80.80.80
router: src 81.82.83.84 dst 10.0.0.10
Prostě když je tam NAT, tak ten venkovní server neví nic o 10.0.0.10. Proto si myslím, že musí být povolen connection tracking a následně se nejprve musí markovat connections - prostě je to pro nás helper, kdy nám router pozná, které pakety patří k danému spojení. Následně tedy až na základě connection marku můžeme provést packet mark ...
Tak nějak to tedy chápu já, můžu se mýlit :-) Ale tak nějak začínám chápat, proč nám pan Klíma jako jednu z variant nabízel, že možná by bylo vhodné na hlavním routeru nedělat NAT (aby právě tyto věci byly jednodušší) a NAT dělat na nějakém předřazeném stroji .... (do této varianty jsme zatím nešli).
Ještě k těm chainům - ikyž se dívám na flow diagram jak dlouho chci, zatím stejně přesně nechápu, ve kterém chainu by měl co člověk markovat. Vidím příklady na p2p manglování ve forwardu - když jsem to tak měl na jednom uzlu, tak to markovalo download i upload, když to bylo na centrálním routeru, tak upload ukazoval pořád 0. Tak jsem to dal do preroutingu a začalo to jet.
Můj skromný názor je, že by se většina měla dělat v preroutingu, protože to je chain, kam se leze nejdříve, a na co se zdržovat :-) Pouze v případě, že bych chtěl něco manglovat až třeba po NATu, tak bych si asi našel jiný chain, nebo tak nějak, nevím :-)
zdar,
-pekr-