-
PCC, HotSpot e WebProxy no mesmo ROS.
Construir políticas de rotas nunca foi minha área, até porque maior parte dos meus clientes operam com link dedicado e são ASN, mas surgiu a necessidade de construir políticas de rotas para uma empresa que gerencia redes locais de hotéis usando o ROS. O cenário é relativamente simples, com dois ou 3 links, onde normalmente 1 é dedicado e os outros são dinâmicos (xDSL, Cable, etc).
A maior questão se resumia ao sistema da empresa que utiliza as ferramentas do ROS, webproxy e hotspot, para alimentar as rotinas de gerenciamento do mesmo. Pela web toda sempre as mesmas recomendações de se utilizar um equipamento/roteador distinto para o PCC e outro para webproxy e/ou hotspot. Mas a solução utilizada não permitia isso, ou seja, era necessário executar todas as configurações em apenas um ROS.
Pois bem, disponibilidade para pesquisa e leitura sempre foram minha rotina, então, mãos obra: laboratório montado fui testar as configurações e pesquisar toda documentação disponível na web.
Após alguns testes e aproximadamente 3 horas de pesquisa, solução pronta.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Montei o cenário, o qual exponho abaixo:
Endereçamento IP
Código :
/ip address
add address=172.16.10.1/24 disabled=no interface=LAN network=172.16.10.0
add address=10.1.1.2/30 disabled=no interface=ISP-3 network=10.1.1.0
O endereçamento diz respeito apenas a rede local e a WAN, onde o link é dedicado e possui endereçamento estático.
PPPoE Client
Código :
/interface pppoe-client
add add-default-route=no allow=chap,mschap1,mschap2 comment="WAN 1" dial-on-demand=no disabled=no interface=ether3 max-mru=1480 max-mtu=1480 name=ISP-1 password=12345 profile=default use-peer-dns=yes user=PPPOE-1
add add-default-route=no allow=chap,mschap1,mschap2 comment="WAN 2" dial-on-demand=no disabled=no interface=ether2 max-mru=1480 max-mtu=1480 name=ISP-2 password=12345 profile=default use-peer-dns=yes user=PPPOE-2
Os clientes PPPoE não recebem rotas do servidor, umas vez que iremos definir as mesmas através das interfaces no momento da configuração das políticas de rotas.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Em seguida as configurações do hotspot, que são simples, utilizando o setup padrão do ROS.
Código :
/ip hotspot profile
set default dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" \
smtp-server=0.0.0.0 split-user-domain=no use-radius=no
add dns-name=hotspot.vialivre.net hotspot-address=172.16.10.1 html-directory=hotspot http-proxy=0.0.0.0:0 login-by=http-chap name=hsprof1 rate-limit="" smtp-server=0.0.0.0 \
split-user-domain=no use-radius=no
/ip hotspot
add address-pool=hs-pool-3 addresses-per-mac=2 disabled=no idle-timeout=5m interface=LAN keepalive-timeout=none name=hotspot1 profile=hsprof1
/ip hotspot user profile
set default idle-timeout=none keepalive-timeout=2m name=default shared-users=1 status-autorefresh=1m transparent-proxy=no
/ip hotspot service-port
set ftp disabled=no ports=21
/ip hotspot user
add disabled=no name=admin password=12345 profile=default
Também a configuração do webproxy, o qual, da mesma forma que o hotspot, segue apenas o setup básico, uma vez que o uso do mesmo se refere apenas a geração de logs.
Código :
/ip proxy
set always-from-cache=no cache-administrator=webmaster cache-hit-dscp=4 cache-on-disk=no enabled=yes max-cache-size=none max-client-connections=600 max-fresh-time=3d \
max-server-connections=600 parent-proxy=0.0.0.0 parent-proxy-port=0 port=8080 serialize-connections=yes src-address=0.0.0.0
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Em seguida realizamos as configurações do firewall mangle, onde está o "segredo" do funcionamento do PCC com o HotSpot e o webproxy, juntos.
Código :
/ip firewall mangle
add action=accept chain=prerouting comment="Permite destino sem LB" disabled=no dst-address-list=SEM-LB
## Permite que pacotes com destino aos IPs e/ou blocos de IP, configurados em uma address list, chamada SEM-LB
## sejam encaminhados sempre pela rota padrão sem usar as políticas de rotas
add action=mark-connection chain=input comment="Marca ISPS - Entra por X sai por X" connection-state=new disabled=no in-interface=ISP-1 new-connection-mark=isp1_conn \
passthrough=yes
add action=mark-connection chain=input connection-state=new disabled=no in-interface=ISP-2 new-connection-mark=isp2_conn passthrough=yes
add action=mark-connection chain=input connection-state=new disabled=no in-interface=ISP-3 new-connection-mark=isp3_conn passthrough=yes
## Aqui as marcas de conexão são referentes a pacotes que entrem pela interface X devem ser marcados para quando
## no momento que retornarem, saiam pela mesma interface X.
add action=mark-connection chain=output comment="Previne remarcacao PCC por outro gateway" connection-state=new disabled=no new-connection-mark=isp1_conn out-interface=\
ISP-1 passthrough=yes per-connection-classifier=both-addresses:3/0
add action=mark-connection chain=output connection-state=new disabled=no new-connection-mark=isp2_conn out-interface=ISP-2 passthrough=yes per-connection-classifier=\
both-addresses:3/1
add action=mark-connection chain=output connection-state=new disabled=no new-connection-mark=isp3_conn out-interface=ISP-3 passthrough=yes per-connection-classifier=\
both-addresses:3/2
## Nas regras acima, realizamos a marcação das conexões para que as mesmas sejam balanceadas, usando o PCC, onde, no momento
## que sairem tenham os devidos "pesos" dos links distribuidos pelos vários links que possuímos.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Código :
add action=mark-connection chain=output comment="PCC para proxy" connection-state=new disabled=no dst-address=!172.16.10.0/24 new-connection-mark=isp1_conn passthrough=yes \
per-connection-classifier=both-addresses:3/0
add action=mark-connection chain=output connection-state=new disabled=no dst-address=!172.16.10.0/24 new-connection-mark=isp2_conn passthrough=yes \
per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=output connection-state=new disabled=no dst-address=!172.16.10.0/24 new-connection-mark=isp3_conn passthrough=yes \
per-connection-classifier=both-addresses:3/2
## As regras acima definem as marcas de rotas, assim como os devidos pesos do PCC, na saida do roteador, exceto, para a rede local (LAN).
add action=mark-connection chain=output comment="LB para proxy" disabled=no dst-port=80 new-connection-mark=isp1_conn passthrough=yes per-connection-classifier=\
both-addresses:3/0 protocol=tcp
add action=mark-connection chain=output disabled=no dst-port=80 new-connection-mark=isp2_conn passthrough=yes per-connection-classifier=both-addresses:3/1 protocol=tcp
add action=mark-connection chain=output disabled=no dst-port=80 new-connection-mark=isp3_conn passthrough=yes per-connection-classifier=both-addresses:3/2 protocol=tcp
add action=accept chain=prerouting disabled=no dst-port=80 in-interface=LAN protocol=tcp
## Aqui está o "grande segredo" do funcionamento do webproxy e do PCC. Se não definirmos que os pacotes saindo do roteador
## com destino a porta 80 possuem suas referidas marcas de rota e definição dos pesos do PCC, os mesmos sempre sairão pela
## rota padrão, desta forma não usufruímos das políticas de rota e consequentemente dos links que possuímos.
## Além disso uma simples regra definindo que toda entrada pela LAN com destino a porta 80 tem aceite automático.
add action=mark-routing chain=output comment="ISPx to ISPx" connection-mark=isp1_conn disabled=no new-routing-mark=to_isp1 passthrough=yes
add action=mark-routing chain=output connection-mark=isp2_conn disabled=no new-routing-mark=to_isp2 passthrough=yes
add action=mark-routing chain=output connection-mark=isp3_conn disabled=no new-routing-mark=to_isp3 passthrough=yes
## Definição das marcas de rota, para utilizarmos em nossas políticas. Através destas regras teremos nossa tabela de rotas
## FIB funcionamdo da maneira adequada.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Código :
add action=accept chain=prerouting comment="Permite LAN no PCC" disabled=no dst-address=172.16.10.0/24 in-interface=LAN
add action=mark-connection chain=prerouting comment="PCC da LAN para cada ISP" disabled=no dst-address-type=!local hotspot=auth in-interface=LAN new-connection-mark=\
isp1_conn passthrough=yes per-connection-classifier=both-addresses:3/0
add action=mark-connection chain=prerouting disabled=no dst-address-type=!local hotspot=auth in-interface=LAN new-connection-mark=isp2_conn passthrough=yes \
per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=prerouting disabled=no dst-address-type=!local hotspot=auth in-interface=LAN new-connection-mark=isp3_conn passthrough=yes \
per-connection-classifier=both-addresses:3/2
add action=mark-routing chain=prerouting comment="Rotas LAN para cada ISP" connection-mark=isp1_conn disabled=no in-interface=LAN new-routing-mark=to_isp1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=isp2_conn disabled=no in-interface=LAN new-routing-mark=to_isp2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=isp3_conn disabled=no in-interface=LAN new-routing-mark=to_isp3 passthrough=yes
## Finalmente definimos nossas marcas de conexão e rotas para a rede local, atribuindo os devidos pesos do PCC.
## Notem que o "pulo do gato" do funcionamento do hotspot, onde o mesmo exibe a tela de captura para login e senha do usuário
## está em atribuir o parâmetro "hotspot=auth".
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
O firewall nat:
Código :
/ip firewall nat
add action=redirect chain=pre-hotspot comment="Paginas de status do hotspot" disabled=no dst-address=172.16.10.1 dst-port=80 hotspot=auth protocol=tcp to-ports=64873
add action=redirect chain=dstnat comment="REDIR PROXY" disabled=no dst-port=80 in-interface=LAN protocol=tcp to-ports=8080
add action=masquerade chain=srcnat comment="MASQ ISP-1" disabled=no out-interface=ISP-1
add action=masquerade chain=srcnat comment="MASQ ISP-2" disabled=no out-interface=ISP-2
add action=masquerade chain=srcnat comment="MASQ ISP-3" disabled=no out-interface=ISP-3
O único detalhe aqui fica por conta de uma regra no canal pre-hotspot redirecionando as requisições com destino ao IP 172.16.10.1 (gateway e servidor hotspot) à tela status do hotspot.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Finalmente a configuração de políticas de rotas, usando nossa routing engine:
Código :
/ip route
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP-1 routing-mark=to_isp1 scope=30 target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP-2 routing-mark=to_isp2 scope=30 target-scope=10
add check-gateway=ping disabled=no distance=5 dst-address=0.0.0.0/0 gateway=10.1.1.1 routing-mark=to_isp3 scope=30 target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP-2 scope=30 target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP-1 scope=30 target-scope=10
add check-gateway=ping disabled=no distance=5 dst-address=0.0.0.0/0 gateway=10.1.1.1 scope=30 target-scope=10
O "grande diferencial" aqui é usar a distância administrativa para definirmos qual dos links será eleito a rota padrão. Por exemplo, não queria que o ISP-3 fosse eleito para tal, uma vez que o mesmo poderia ser o de maior latência ou de menor banda.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Enfim, é isso. As configurações estão em pleno funcionamento no meu Lab e no cliente.
Resolvi compartilhar pois é fruto de vários materiais que encontrei na web e do simples uso da lógica para desenvolver as mesmas.
Espero que antes de comentários tipo "aqui não funcionou", leiam, procurem montar seus Lab. e testem.
Dúvidas sucintas, estou pronto a respondê-las e se possível resolvê-las.
-
1 Anexo(s)
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Captura de tela com as regras em ação.
-
1 Anexo(s)
Re: PCC, HotSpot e WebProxy no mesmo ROS.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Grande Sérgio ...
Parabéns pela grande contribuição, vou colocar em testes, pois essa solução é muito bem vinda.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Blz rps?
Então... eu nunca fui muito fã de políticas de rotas de maneira dinâmica, até porque quase nunca precisei, mas quando me vi com o problema, tive que correr atrás e consegui estas configurações. Na verdade as dicas estão todas no fórum da própria Mikrotikls, lógico que em posts separados, mas só juntar tudo, botar a cabeça pra funcionar e a solução sai.
:)
Citação:
Postado originalmente por
rps67
Grande Sérgio ...
Parabéns pela grande contribuição, vou colocar em testes, pois essa solução é muito bem vinda.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Excelente tópico Sergio, com certeza irá ajudar muita gente, inclusive eu que em uma hora oportuna irei colocar em teste e em prática. Obrigado por compartilhar
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Tio aqui nao funcionou!!! kkkkk
Eeeeeeee, zoeiraa, mas tirando isso o tópico no mínimo merece 3 premiações:
- Queda de um mito
- Capacidade de criação e inovação
- Funcionalidade extrema
Parabéns
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Opa boa tarde
Belo material, este é o melhor exemplo de quando a gente pesquisando e fazendo testes na pratica a coisa rende, só não pode ter preguiça...
Valeu pelo material.
Obrigado
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Sérgio mais uma vez parabéns pelo post, não entrarei em detalhe senão vão me chamar de "Puxa" mas creio que seja o que falta no pessoal pesquisar e estudar.
Parabéns pela contribuição creio que ajudará a muitos.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Bom pelo jeito ninguém fez uso das tuas explicações... Farei hoje pela madrugada... Amanhã com certeza terei algumas dúvidas rsrs...
Posto resultado...
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Efetuei configuração conforme explicado pelo Sérgio e posso falar que funciona muito bem, só não coloquei as regras de direcionamento de proxy pois configurei numa RB750G... Minha única dúvida fica por conta de queda de algum dos links, pois aqui uso ambos os links já roteados... Sendo que se colocar para chegar o gateway por ping sempre irá responder mesmo estando sem internet... Há alguma forma de fazer isso sem ser por ping??? Obrigado.
-
Re: PCC, HotSpot e WebProxy no mesmo ROS.
Bom, o link da rota padrão pode até responder, pois é rota estática, possuindo um roteador no caminho. Agora os dos DSL, sem chances né... pois estão por interface e se cair o dsl, necas de gateway. No caso do meu exemplo.
No seu caso, sugiro a criação de um script, fazendo o teste externo à rede do fornecedor e ai sim, poderá refazer sua rota padrão. Poderá configurar esse script no netwatch.
Citação:
Postado originalmente por
peritinaicos
Efetuei configuração conforme explicado pelo Sérgio e posso falar que funciona muito bem, só não coloquei as regras de direcionamento de proxy pois configurei numa RB750G... Minha única dúvida fica por conta de queda de algum dos links, pois aqui uso ambos os links já roteados... Sendo que se colocar para chegar o gateway por ping sempre irá responder mesmo estando sem internet... Há alguma forma de fazer isso sem ser por ping??? Obrigado.