Os pacotes OAM são perdidos na pilha IP do kernel do Linux

3

Gostaria de ter sua sugestão / comentário sobre um problema específico que estou enfrentando agora. Esse problema é observado no espelhamento de porta configurado no mesmo host, enquanto o espelhamento de porta no final remoto está funcionando bem.

Descrição da configuração:

O pacote OAM no UDP é enviado e recebido por dois segmentos, um para cada. O pacote OAM é enviado para a extremidade remota através de ethernet, enquanto durante a travessia deste pacote OAM na pilha IP, um gancho OUTPUT é aplicado (como mostrado abaixo), que clonará o pacote OAM de saída para finalidade de espelhamento.

iptables  -t mangle -A OUTPUT -d 172.25.62.55/32 -p udp -m udp --dport 16 --port 33  -j oam_mirror --ip 172.25.62.38 --cid 33

Na regra acima, 172.25.62.55 é o IP remoto e 172.25.62.38 é o IP do host local.

Minha depuração e observação:

Eu posso verificar se o pacote OAM é clonado e deixado na pilha (usando ip_send_check(iph); dst->output(nskb); ) para alcançar a extremidade de recebimento (clonado pkt src IP = 172.25.62.38, dst IP = 172.25.62.38 ) corretamente, mas esse pacote OAM clonado não está recebendo no encadeamento de recebimento no mesmo host.

Eu acho que a minha observação após a depuração deste cenário é que o pacote OAM não é roteado para entrega IP local e perdeu o pacote após o gancho oam_mirror. É muito difícil depurar este pacote na pilha IP no sistema restritivo.

Estou preso aqui e incapaz de ir a qualquer lugar a partir de agora, alguém pode por favor sugerir-me, como proceder mais longe daqui. Seria muito útil se você fornecer alguma solução para esse problema específico.

Por favor, sinta-se à vontade para perguntar se você precisa de mais informações sobre isso.

    
por saurav 22.08.2017 / 09:11

0 respostas

Tags