Buenas @hostjunior
Faz assim, digita lá no terminal e posta aqui devolta o resultado desses 2 comandos:
Código :/ip firewall nat print /ip firewall mangle print
NAT
Flags: X - disabled, I - invalid, D - dynamic
0 X ;;; place hotspot rules here
chain=unused-hs-chain action=passthrough
1 X ;;; MANUTENCAO
chain=dstnat action=dst-nat to-addresses=192.168.0.1 to-ports=80 protocol=tcp
src-address-list=!redireciona dst-port=80
2 chain=dstnat action=accept protocol=tcp dst-address=64.4.0.0/16
3 chain=dstnat action=accept protocol=tcp dst-address=65.54.0.0/16
4 X ;;; masquerade hotspot network
chain=srcnat action=masquerade to-addresses=0.0.0.0 src-address=10.5.50.0/24
5 ;;; Mascarede LINK
chain=srcnat action=masquerade out-interface=pppoe-out1
6 ;;; REGRA DO THUNDER CACHE
chain=dstnat action=dst-nat to-addresses=192.168.200.1 to-ports=22 protocol=tcp dst-port=60006
7 chain=dstnat action=dst-nat to-addresses=192.168.200.1 to-ports=82 protocol=tcp dst-port=82
Para analisar com precisão preciso do resultado do comando
Código :/ip firewall mangle print
Pois na screen faltam muitos dados.
Mas posso adiantar que vai ter que mudar bastante aparentemente as tuas regras de mangle para fazer o que você quer. Alias, não sei como fazer balanceamento considerando "IP PAR ou IMPAR". Da pra fazer um PCC baseado somente no src-address, cada cliente vai sair sempre pelo mesmo link, mas não sei dizer qual IP vai pra qual link, pois não sei qual é o calculo que o PCC faz. Ele faz um hash entre varias informações do cabeçalho TCP e esse hash faz a divisão por um denominador especificado (que no seu caso pode ser 5) e retorna o resto da divisão. Com um valor 5 no PCC vc pode dar peso 2 para o link de 4MB e peso 3 para o link de 6MB. Fica uma divisão boa.
Por exemplo, usando só src-address, isso quer dizer mais ou menos que a cada 5 clientes, 2 vão cair no link de 4MB e 3 no link de 6MB.
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; Regra Thunder Cache
chain=prerouting action=mark-routing new-routing-mark=Thunder_Router passthrough=no protocol=tcp
src-address-list=Clientes_Thunder dst-address-list=!No_Cache in-interface=!ether4-Thundercache dst-port=80
1 ;;; Regra 2 Thunder Cache
chain=prerouting action=mark-connection new-connection-mark=Thunder_Out passthrough=no protocol=tcp
in-interface=ether4-Thundercache dst-port=80
2 ;;; Regra 3 Thunder Cache
chain=prerouting action=mark-routing new-routing-mark=Thunder_Router passthrough=no protocol=tcp
in-interface=!ether4-Thundercache src-port=80 connection-mark=Thunder_Out
3 ;;; Thundercache Cache full 10M
chain=postrouting action=mark-packet new-packet-mark=Thunder_Packets_10M passthrough=no
dst-address=192.168.0.0/24 dscp=18
4 ;;; Thundercache Cache full 450K Corporativo
chain=postrouting action=mark-packet new-packet-mark=Thunder_Packets_450K_C passthrough=no
dst-address-list=Cliente_450K_C dscp=18
5 ;;; Thundercache Cache full 512K
chain=postrouting action=mark-packet new-packet-mark=Thunder_Packets_512K passthrough=no
dst-address-list=Cliente_512K dscp=18
6 ;;; Thundercache Cache full 680K
chain=postrouting action=mark-packet new-packet-mark=Thunder_Packets_680K passthrough=no
dst-address-list=Cliente_680K dscp=18
7 ;;; Thundercache Cache full 359K Residencial
chain=postrouting action=mark-packet new-packet-mark=Thunder_Packets_359K_R passthrough=no
dst-address-list=Cliente_359K_R dscp=18
8 chain=output action=mark-packet new-packet-mark=medidorF passthrough=no connection-mark=medidorC
9 ;;; MARCA O PARA O LINK DE 6M
chain=prerouting action=mark-routing new-routing-mark=LINK DE 6M passthrough=no src-address-list=LINK DE 6M
10 ;;; MARCA O PARA O LINK DE 4M
chain=prerouting action=mark-routing new-routing-mark=LINK DE 4M passthrough=no src-address-list=LINK DE 4M
Vai dando enter que vai aparecendo o resto.
@hostjunior, agora entendi que você usa umas address-list para se basear em qual link vai cair cada cliente.
O problema é que a requisição de navegação HTTP (porta 80) que vai para o ThunderCache, não vai ser roteado para nenhum link, e a conexão do Thunder até o destino original solicitado pelo cliente, vai vir como uma solicitação do próprio Thunder. Não tem como você saber o IP original do cliente que originalmente fez aquela requisição para rotear ele para um link ou para outro.
O Thunder tem como você configurar uma rede em específico para uma certa rota? No Squid, por exemplo, eu posso configurar varias ACL para endereços específicos, tipo uma ACL para a rede 10.0.0.0/24, e eu posso configurar um endereço de saída específico para essa ACL. Se no Thunder você tem algo parecido, criar duas redes de entrada no Thunder, tipo 192.168.200.0/30 e 192.168.168.200.4/30, e configura duas tabelas de roteamento, uma com nome "Thunder_Router_1" e outra "Thunder_Router_2". Quando uma requisição for para o Thunder que vier da address-list do link de 6MB, você manda para a rota Thunder_Router_1, quando vier da address list do link de 4MB, você manda para a rota Thunder_Router_2. Isso feito, você pode fazer routing-mark no IP do Thunder da rede 192.168.200.0/30 para o gateway do link de 6MB, e o que vier da rede do Thunder em 192.168.200.4/30 para o gateway do link de 4MB.
Para facilitar sua vida, adiciona uma regra de masquerade para a interface pppoe-out2, que você não tem ainda. Pois requisições que vierem da rede do Thunder, estarão fora da subrede 10.0.50.0/24, e então você não vai ter resposta se requisições dele forem roteadas para o link da interface pppoe-out2, pois não tem regra de masquerade que se aplica.
Além disso, no seu caso, você tem as duas ultimas regras marcando rotas, porém, a resposta de cada requisição, vão passar pelo mangle sem marcação nenhuma, e se você não tiver rota na tabela main (tabela sem marcação) para a mesma interface pela qual você mandou sair o trafego, vai dar problema. Você pode tanto marcar o trafego que ta entrando pela interface para ser roteado pela mesma tabela de roteamento referente a ela, ou marcar a conexão (connection-mark) e fazer marcação de rotas baseado nessas connection-mark.
olha já tá mascarede. agora o o amigo aqui acima pediu para mim desativa default rout, desativei o do pppoe2 que é o link de 4M ai deu esse problema de pegar do link só https quando eu ativo fica ok só que fico sem acesso ao thundercache.
Você tem duas regras de masquerade, são elas:
Código :4 X ;;; masquerade hotspot network chain=srcnat action=masquerade to-addresses=0.0.0.0 src-address=10.5.50.0/24 5 ;;; Mascarede LINK chain=srcnat action=masquerade out-interface=pppoe-out1
Ou seja, você faz mascaramento do trafego que vem da rede 10.5.50.0/24 indo em direção a QUALQUER outra rede.
E você tem mascaramento de qualquer trafego que o forward o leve em direção a interface pppoe-out1.
Agora imagina que você quer que o Thunder possa acessar internet atraves do link que sai na interface pppoe-out2????
O Thunder não faz parte da rede 10.5.50.0/24, portanto não vai entrar no masquerade da primeira regra, e como você roteou ele para sair pela interface pppoe-out2, ele também não vai entrar no masquerade da segunda regra.
Isso quer dizer que o seu Thunder, do jeito que está, é impossibilidado de acessar internet através do link que sai pelo pppoe-out2.
A questão de desabilitar o "Add Default Route" eu sou a favor, pois as rotas padrão adicionadas automaticamente são criadas dinamicamente através do IP local do túnel (que você não vai conseguir usar em regras, pois é dinamico) e não fazem parte de nenhuma tabela nomeada (fazem parte da tabela main). Ficam meio inúteis para o balanceamento.
O seu Thunder, quando você tira a opção "Add Default Route" para de funcionar, pois não tem uma rota padrão na tabela main (tabela sem nome nenhum em Routing Mark). Pois o trafego que vem do Thunder, não vai ser marcado com nenhuma routing-mark ao passar pelo mangle, sendo assim ficando sem acesso a internet.
Basta você adicionar uma rota padrão sem nome que ele vai ter acesso.
Mas se você ler novamente o que escrevi nos posts anteriores, considerando que o Thunder tenha configuração para IP de saida baseado em IP/Rede de entrada, você pode balancear no Mikrotik a saida dele tb.
Bom dia @hostjunior
Cara, você consegue entender o que eu escrevo? Porque não adianta eu escrever as soluções se você não entende elas e não consegue desenvolver/aplicar elas.
Suas ultimas respostas foram bem breves e com pouco conteudo, sem aplicar praticamente nada do que eu indiquei e relatando novamente os mesmos problemas. Se a solução é aplicada só em pequenas partes, não se resolve quase nada.
Tipo, não tem problema nenhum você dizer que "não entendi isso" ou "não entendi aquilo". Cada parte que você não entender bem ou não souber como aplicar, a gente detalha ela.
Quando a gente não tem muito domínio sobre a formulação das regras, resolver um problema é demorado mesmo, dias, dependendo do caso semanas.
Você alterou alguma coisas nas suas rotas?
Resolvi o problema do acesso ao thunder.