Marcar pacotes entre máquinas (cliente e roteador)?

2

Posso marcar um pacote na cadeia OUTPUT do cliente e adicionar uma política iproute no roteador para rotea-los por meio de um gateway específico? Isso que eu tentei fazer, mas não está funcionando.

Desvio de tabelas do meu cliente:

Chain OUTPUT (policy ACCEPT 13884 packets, 2327K bytes)
 pkts bytes target     prot opt in     out     source               destination         
13917 2330K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MARK set 0x2

Chain POSTROUTING (policy ACCEPT 13889 packets, 2328K bytes)
 pkts bytes target     prot opt in     out     source               destination         
13889 2328K LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x2 LOG flags 0 level 4
Corrente de ENTRADA da tabela

iptables mangle da tabela no roteador:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x2 LOG flags 0 level 4
 2074  196K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
   88 14890 ACCEPT     all  --  ethint *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           

Após alguns instantes e envio de pacotes de teste (pings de um cliente conectado ao roteador via Wi-Fi, enviados para um host fora da intranet), o contador LOG no roteador permanece igual a zero.

Perguntas

  • O que aconteceu com meus pacotes?
  • Onde meus pacotes perdem suas marcas?
por pylover 21.09.2013 / 19:18

1 resposta

2

Uma marca em um pacote é um valor armazenado em uma estrutura de dados do kernel. Ele segue o pacote enquanto o kernel o está processando. Não faz parte do pacote em si. Não é enviado pela rede. Você não pode definir uma marca em um host e lê-lo em outro host.

O que fazer depende do que você está tentando alcançar. Se você puder, faça a filtragem e a confusão no mesmo host. Se você tiver que fazer o mangling no roteador, você pode conseguir que o aplicativo inclua algo no pacote que você pode filtrar.

Às vezes, você não será capaz de escapar da filtragem do cliente (por exemplo, se depender de fatores externos, como o usuário que enviou o pacote) e do processamento do roteador (por exemplo, se precisar redirecionar o roteador) pacotes para um endereço que o roteador não direciona). Nesse caso, há uma maneira genérica de “marcar” um pacote IP: atribua ao seu cliente vários endereços IP , mangle os pacotes no cliente para use diferentes endereços IP de saída com base nas condições que você está usando para a marcação, e execute o mangling adicional no roteador com base no endereço IP do cliente.

    
por 22.09.2013 / 03:01