Alternativa para Iptables para filtragem de pacotes em interfaces OVS

2

Acabei de perceber que todas as regras iptables que apliquei no meu as interfaces Vswitch abertas nunca coincidem.

Estou usando o iptables para marcar alguns pacotes e depois uso TC (tráfego controle) filtros para colocar pacotes em diferentes filas de prioridade dependendo da correspondência do Iptables. Isso funciona para todas as interfaces e mesmo para Linux Bridges (usando o módulo -m physdev).

Como posso filtrar pacotes que passam por uma interface ovs e colocá-los em diferentes filas de prioridade se eu não puder marcá-las com o iptables?

Regras (simplificadas):

iptables -w -t mangle -A POSTROUTING -m physdev --physdev-out interface-name -m ttl --ttl-lt 10 ! -p 89 -j MARK --set-mark 10

tc filter add dev interface-name parent 1:0 protocol all prio 1 handle 10 fw flowid 1:10

Então eu estou usando o HTB para as prioridades, digamos que existem duas filas 1:10 e 1:20. A regra deve enviar todo o tráfego com ttl < 10 e não OSPF para a primeira fila 1:10.

    
por edgarstack 17.10.2016 / 12:07

1 resposta

3

Esse é um problema antigo. Você terá que saber como sua distro lida com o módulo do kernel netfilter. Às vezes é carregado e o truque é criar uma regra para marcá-los e depois dividi-los. A corrente de mangá é meio complicada.

Adicione isso como sua regra de primeira marca:

iptables -t mangle -A POSTROUTING -m physdev --physdev-out interface-name -j MARK --set-mark 10

Um segundo problema é que sua distro pode não compilar e / ou carregar xt_mark kernel module. Use lsmod | grep xt_mark para verificar se está lá.

Eu também tenho problemas com OVS e iptables às vezes. Eu acho que o iptables é uma ótima ferramenta dos anos 90, mas eu sinto que é meio obsoleto esses dias. O "confira como sua distro manipula o módulo do netfilter" é muito importante para entender seu problema.

Se você quer marcar seus pacotes e o iptables não tem outro propósito, você pode usar a ferramenta OVS chamada ovs-ofctl com a opção pkt_mark .

    
por 17.10.2016 / 13:58