Usando o cgroup match na cadeia PREROUTING no iptables

1

Eu já uso o cgroup net_cls (classificador de rede) de /sys/fs/cgroup/net_cls in POSTROUTING chain. Quando tento usá-lo de PREROUTING , recebo o seguinte erro:

[2514253.432875] x_tables: ip_tables: cgroup match: used from hooks REROUTING, but only valid from INPUT/OUTPUT/POSTROUTING

Você sabe por que não podemos usar a correspondência do cgroup para PREROUTING ? Existe alguma solução alternativa?

    
por user2118100 04.01.2018 / 02:25

1 resposta

3

Todos os pacotes de entrada de interfaces de rede externas passam pela cadeia PREROUTING antes de serem associados a qualquer processo (afinal, eles podem ser encaminhados e nunca tocar em nenhum processo). Então você não pode associar nenhuma informação cgroup com esses pacotes.

Somente quando um pacote passa pela cadeia INPUT (será lido por algum processo), ou a cadeia OUTPUT (foi escrita por algum processo), ou a cadeia POSTROUTING depois de vir da cadeia OUTPUT é possível associar qualquer cgroup de informações com ele.

Como você não incluiu nenhuma informação sobre o problema real que está tentando resolver (o que sugere isso é um XY-Problem ), não posso sugerir nenhuma solução alternativa (ou solução adequada).

    
por 04.01.2018 / 09:57