Ferramentas de Usuário

Ferramentas de Site


public:tutoriais:mikrotik:mikrotik-cpppoe-cgnat

CPPPoE Mikrotik mais CGNat


Tem interesse em aprender mais sobre Mikrotik do início ao fim? Acesse esse link e conheça o Curso de MIKROTIK PROFISSIONAL com Leonardo Rosa.


Está precisando de equipamentos Mikrotik para o seu provedor? Acesse esse 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=<ID> name=Vlan<ID>-Gerencia_LOCAL interface=ether2
  add vlan-id=<ID> name=Vlan<ID>-Gerencia_LOCAL interface=ether3
  add vlan-id=<ID> name=Vlan<ID>-Gerencia_LOCALinterface=ether4
  add vlan-id=<ID> name=Vlan<ID>-Gerencia_LOCAL interface=ether5
  add vlan-id=<ID> name=Vlan<ID>-Gerencia_LOCAL interface=ether6
  add vlan-id=<ID> name=Vlan<ID>-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 link e conheça o Curso de MIKROTIK PROFISSIONAL com Leonardo Rosa.


public/tutoriais/mikrotik/mikrotik-cpppoe-cgnat.txt · Última modificação em: 2024/08/25 18:39 por 127.0.0.1