====== CPPPoE Mikrotik mais CGNat ====== ---- **Tem interesse em aprender mais sobre Mikrotik do início ao fim? Acesse esse [[https://go.hotmart.com/G90230814C?dp=1 | link]] e conheça o Curso de MIKROTIK PROFISSIONAL com Leonardo Rosa.** ---- **Está precisando de equipamentos Mikrotik para o seu provedor? Acesse esse [[https://amzn.to/4bBdIkV | link Amazon]] e conheça a CCR2004-1G-12S+2XS.** ---- Configurar as regras de firewall. Todo o passo a passo é via cli, nada foi feito via gráfico. 8-) /ip firewall filter add action=accept chain=input connection-state=established,related src-address-list=redes_com_acesso_total add action=drop chain=forward dst-port=21,22,23,80,443,5060,5431,8089,8090,8091,8291,8092,8080,5432,5100 log=yes log-prefix=DROP out-interface=all-ppp protocol=tcp src-address-list=!redes_com_acesso_total add action=drop chain=forward dst-port=53 log-prefix=D-DNS out-interface=all-ppp protocol=udp Criar a interface LoopBack para usar com o OSPF ou para vincular no radius, se preferir pode usar a WAN. /interface bridge add name=LoopBack0 Colocar os comentários das interfaces para facilitar a identificação das redes. /interface ethernet set [ find default-name=ether1 ] comment="COMENTARIO" set [ find default-name=ether2 ] comment="COMENTARIO" set [ find default-name=ether3 ] comment="COMENTARIO" set [ find default-name=ether4 ] comment="COMENTARIO" set [ find default-name=ether5 ] comment="COMENTARIO" set [ find default-name=ether6 ] comment="COMENTARIO" set [ find default-name=ether7 ] comment="COMENTARIO" set [ find default-name=ether8 ] comment="COMENTARIO" set [ find default-name=ether9 ] comment="COMENTARIO" set [ find default-name=ether10 ] comment="COMENTARIO" Configurar os IPs públicos da WAN (Porta que saí para a internet). /ip address add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no add address=IP_Valido interface=WAN disabled=no Criar vlans para gerenciar os equipamentos que estarão atrás do concentrador, apenas para redes de rádio ou algum caso específico. /interface vlan add vlan-id= name=Vlan-Gerencia_LOCAL interface=ether2 add vlan-id= name=Vlan-Gerencia_LOCAL interface=ether3 add vlan-id= name=Vlan-Gerencia_LOCALinterface=ether4 add vlan-id= name=Vlan-Gerencia_LOCAL interface=ether5 add vlan-id= name=Vlan-Gerencia_LOCAL interface=ether6 add vlan-id= name=Vlan-Gerencia_LOCAL interface=ether7 Criar address list para facilitar administração do firewall. /ip firewall address-list add address=REDE_VOIP list=redes_sem_nat add address=REDE_GERENCIA list=redes_sem_nat add address=RADIUS_SERVER list=redes_com_acesso_total add address=DNS1 list=dns_01 add address=DNS2 list=dns_02 add address=IP_GATEWAY list=redes_sem_nat add address=IP_GATEWAY list=redes_com_acesso_total Criar a regra de nAT para acesso ao NTP Server, caso necessário. /ip firewall nat add action=src-nat chain=srcnat dst-address=NTP_SERVER out-interface=ether1 src-address=IP_WAN to-addresses=IP_PUBLICO Fazer as configurações para autenticar via Radius. /radius add address=RADIUS_SERVER secret="SENHA_RADIUS" service=ppp src-address=IP_WAN /radius incoming set accept=yes port=3779 Modificar o Profile PPP padrão de acordo com as configurações acima. /ppp profile set number=0 dns-server=DNS1,DNS2 local-address=IP_LOOPBACK only-one=yes queue-type=default remote-address=POOL_FTTH /ppp aaa set interim-update=5m use-radius=yes Modificar os tipos de fila para a banda do cliente ficar correta e otimiza o processamento do concentrador. /queue type set 0 pfifo-limit=60 set 9 pfifo-limit=60 Configurar o OSPF, caso não use rota default. /routing ospf instance set [ find default=yes ] redistribute-connected=as-type-2 redistribute-static=as-type-2 router-id=IP_LOOPBACK Configurar o SNMP, caso o concentrador seja monitorado por um servidor. /snmp community set [ find default=yes ] addresses=IP_SERVIDOR_SNMP name=COMMUNITY add addresses=IP_SERVIDOR_SNMP name=public /snmp set contact="CONTATO" enabled=yes location="CPPPoE_LOCAL" trap-generators="" trap-version=2 Configurar o modo de encaminhamento e resposta dos IPs que estão atrás do concentrador. /ip settings set rp-filter=strict tcp-syncookies=yes Criar os servidores PPPoE para cada interface onde os clientes vão autenticar. /interface pppoe-server server add authentication=pap,chap disabled=no interface=INTERFACE_PPPOE max-mru=1480 max-mtu=1480 mrru=1600 one-session-per-host=yes service-name=PPPoE_SERVER_NAME Criar os Pools de IP, caso sejam gerenciados pelo concentrador. Um Pool para navegação e um para suspenso por débito. /ip pool add name=POOL_FTTH ranges=RANGE_CGNAT add name=POOL_DEBITO ranges=RANGE_DEBITO Configurar os serviços para ser acessando apenas da rede de gerência. /ip service set telnet disabled=yes set ftp disabled=yes set ssh disabled=yes set winbox address=IP_DE_GERENCIA set www address=IP_DE_GERENCIA set api disabled=yes set api-ssl disabled=yes Configurar os serviços que serão permitidos ou gerenciados pelo concentrador. /ip firewall service-port set ftp disabled=yes set tftp disabled=yes set irc disabled=yes set h323 disabled=yes set sip disabled=yes set pptp disabled=no set udplite disabled=yes set dccp disabled=yes set sctp disabled=yes Ativar uPNP para direcionamentos automáticos. /ip upnp set enabled=yes Configurar o time zone e ativa o NTP client. /system clock set time-zone-name=America/Sao_Paulo /system ntp client set enabled=yes primary-ntp=NTP_SERVER Definir o nome do concentrador. /system identity set name=CPPPPoE_NAME Desativar o servidor de teste de velocidade. /tool bandwidth-server set enabled=no Permitir monitoramento local, opcional, apenas para a rede de gerência. /tool graphing interface add allow-address=IP_DE_GERENCIA Criar as blackholes para evitar loop de roteamento e deixar sumarizado os anúncios do OSPF. /ip route add dst-address=FAIXA_VALIDA type=blackhole add dst-address=FAIXA_CGNAT type=blackhole ---- ===== Criando o CGNat ===== Para criar as regras de CGNat vamos usar um script que pode ser encontrado no site do fabricante. É necessário colar o quadro todo no terminal do equipamento de uma só fez. **O terminal não deve ser fechado.** :global sqrt do={ :for i from=0 to=$1 do={ :if (i * i > $1) do={ :return ($i - 1) } } } :global addNatRules do={ /ip firewall nat add chain=srcnat action=jump jump-target=CGNat \ src-address="$($srcStart)-$($srcStart + $count - 1)" :local x [$sqrt $count] :local y $x :if ($x * $x = $count) do={ :set y ($x + 1) } :for i from=0 to=$x do={ /ip firewall nat add chain=CGNat action=jump jump-target="CGNat-$($i)" \ src-address="$($srcStart + ($x * $i))-$($srcStart + ($x * ($i + 1) - 1))" } :for i from=0 to=($count - 1) do={ :local prange "$($portStart + ($i * $portsPerAddr))-$($portStart + (($i + 1) * $portsPerAddr) - 1)" /ip firewall nat add chain="CGNat-$($i / $x)" action=src-nat protocol=tcp src-address=($srcStart + $i) \ to-address=$toAddr to-ports=$prange /ip firewall nat add chain="CGNat-$($i / $x)" action=src-nat protocol=udp src-address=($srcStart + $i) \ to-address=$toAddr to-ports=$prange } } Após executar o script acima, e sem fechar o terminal, deve ser executado o script abaixo mudando a faixa 100.64.140.x para a faixa que deseja utilizar. $addNatRules count=32 srcStart=100.64.140.0 toAddr=IP_VALIDO_01 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.32 toAddr=IP_VALIDO_02 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.64 toAddr=IP_VALIDO_03 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.96 toAddr=IP_VALIDO_04 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.128 toAddr=IP_VALIDO_05 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.160 toAddr=IP_VALIDO_06 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.192 toAddr=IP_VALIDO_07 portStart=1000 portsPerAddr=2000 $addNatRules count=32 srcStart=100.64.140.224 toAddr=IP_VALIDO_08 portStart=1000 portsPerAddr=2000 Após rodar o comando acima executar os comandos abaixo, para que as respectivas faixas tenha comunicação com a internet via ICMP. **Obs.: Colocar as regras abaixo entre o "jump" e a primeira regra de CGNat de cada faixa.** /ip firewall nat add action=src-nat chain=srcnat src-address=100.64.140.0/27 to-addresses=IP_VALIDO_01 add action=src-nat chain=srcnat src-address=100.64.140.32/27 to-addresses=IP_VALIDO_02 add action=src-nat chain=srcnat src-address=100.64.140.64/27 to-addresses=IP_VALIDO_03 add action=src-nat chain=srcnat src-address=100.64.140.96/27 to-addresses=IP_VALIDO_04 add action=src-nat chain=srcnat src-address=100.64.140.128/27 to-addresses=IP_VALIDO_05 add action=src-nat chain=srcnat src-address=100.64.140.160/27 to-addresses=IP_VALIDO_06 add action=src-nat chain=srcnat src-address=100.64.140.192/27 to-addresses=IP_VALIDO_07 add action=src-nat chain=srcnat src-address=100.64.140.224/27 to-addresses=IP_VALIDO_08 ---- **Tem interesse em aprender mais sobre Mikrotik do início ao fim? Acesse esse [[https://go.hotmart.com/G90230814C?dp=1 | link]] e conheça o Curso de MIKROTIK PROFISSIONAL com Leonardo Rosa.** ----