tcpdump a NETKEY IPsec

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Červen 13 16:28:08 CEST 2009


On Fri, 12 Jun 2009, Jan Houstek wrote:

> Opět je tu ale anomálie na vstupu, a totiž ta, že se příchozí ESP se 
> objeví i v chainu INPUT tabulky filter, ale odchozí přes OUTPUT nejdou. 
> Skoro bych si tipnul, že to může mít stejný důvod jako ta viditelnost
> vybalených příchozích paketů v pcap.

Skoro bych řekl, že jsou to dvě různě věci a mají společné hlavně to, že 
XFRM je nějaké záhadné.

U příchozích paketů je XFRM napíchnuté po NF_INET_PRE_ROUTING (přes
dst_input()) a po NF_INET_LOCAL_IN (přes explicitní
xfrm4_policy_check(..., XFRM_POLICY_IN, ...)).  U odchozích paketů je
napíchnuté po NF_INET_LOCAL_OUT a po NF_INET_PRE_ROUTING (v obou případech
dst_output()).

To, že pcap vidí příchozí pakety jako ESP i vybalené, má tu příčinu, že
zatímco v transportním módu to XFRM posílá do NF_INET_PRE_ROUTING, tak
v tunelovém se to vrací až na netif_rx(), jako by vybalený paket zrovna
vylezl ze síťové karty.

To, že obojí proleze skrz INPUT, je zřejmě způsobené tím, že u příchozích
paketů se kdovíproč nechytne na první háček, ale až na ten druhý. Možná
začínám halucinovat, ale připadá mi, že při hledání routy se vždy použije
politika pro odchozí směr (XFRM_POLICY_OUT), což by vysvětlovalo, proč 
ten první háček u normálně nastavené politiky nezabere.

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21th century edition /




Další informace o konferenci Linux