====== 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.**
----