Dual wan com iproute2 + iptables não funciona. Uma luz por favor

1. Dual wan com iproute2 + iptables não funciona. Uma luz por favor

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 12/12/2015 - 20:52h

Boa noite,
já não sei mais o que fazer em relação a esse problema, espero que me deem uma luz.
Tenho 2 links de internet, sendo que um deles ficará disponível para 1 host e o restante da lan para o segundo. Consegui fazer as marcações de saída normalmente, mas o problema é que na minha rede tem serviços que são acessados externamente via DNAT e a minha própria LAN não consegue conectar aos serviços do servidor que está o firewall. Em resumo, preciso que além de meus clientes usarem os links adequados para navegar, preciso que o meu firewall e minha rede seja acessada externamente. Li que a solução seria marcar as conexões via CONNMARK, mas quem disse que funciona? Eis as regras:


# IPROUTE2


# Limpar Cache Tabelas de Roteamento Avançadas
ip route flush table $NAME1
ip route flush table $NAME2
ip route flush cache

# Apagar gateway default
ip route del default

# TABLE NET1
ip route add $REDE_NET1 dev $IF_NET1 src $IP_NET1 table $NAME1
ip route add default via $GW_NET1 table $NAME1
ip rule add from $IP_NET1 table $NAME1
ip rule add to $IP_NET1 table $NAME1
ip rule add fwmark 2 table $NAME1

# TABLE NET2
ip route add $REDE_NET2 dev $IF_NET2 src $IP_NET2 table $NAME2
ip route add default via $GW_NET2 table $NAME2
ip rule add from $IP_NET2 table $NAME2
ip rule add to $IP_NET2 table $NAME2
ip rule add fwmark 3 table $NAME2

# Adicionando rota padrão
ip route add default scope global nexthop via $GW_NET2 dev $IF_NET2 weight 1 nexthop via $GW_NET1 dev $IF_NET1 weight 1

ip route flush cache


# IPTABLES


iptables -t mangle -A PREROUTING -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i $IFWAN1 -m state --state NEW -j CONNMARK --set-mar 0x2
iptables -t mangle -A PREROUTING -i $IFWAN2 -m state --state NEW -j CONNMARK --set-mar 0x3
iptables -t mangle -A PREROUTING -m connmark --mark 0x2 -j MARK --set-mark 0x2
iptables -t mangle -A PREROUTING -m connmark --mark 0x3 -j MARK --set-mark 0x3

iptables -t mangle -A PREROUTING -i $IFLAN -m state --state NEW -m condition --condition net2_up \
-s $IPSRVWIN -j CONNMARK --set-mark 3
iptables -t mangle -A PREROUTING -i $IFLAN -m state --state NEW -m condition --condition net1_up ! \
-s $IPSRVWIN -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -i $IFLAN -m state --state NEW -m condition --condition net1_down -j CONNMARK --set-mark 3
iptables -t mangle -A PREROUTING -i $IFLAN -m state --state NEW -m condition --condition net2_down -j CONNMARK --set-mark 2

iptables -t mangle -A PREROUTING -m state --state NEW -m connmark ! --mark 0x0 -j CONNMARK --save-mark



Já tentei diversas configurações e nada dá certo. Do jeito que está agora, não consigo nem fazer com que meus clientes internos naveguem, apenas quando utilizo as marcações simples, ex:


iptables -t mangle -A PREROUTING -i $IFLAN -s $IPSRVWIN -j MARK --set-mark 3
iptables -t mangle -A PREROUTING -i $IFLAN ! -s $IPSRVWIN-j MARK --set-mark 2


Mas dessa forma não consigo acessar meu firewall e nem os clientes externos acessam.
Agradeço a ajuda!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts