hilink@network:~$HiLink

ip ...|loc ...|hora 17:54:48

voltar para scripts
Mikrotik

Configuração Rapida Mikrotik

Descrição

Gerador interativo de scripts MikroTik (.rsc) para provisionar roteadores RouterOS.

Um único arquivo Python (gerar_config.py), sem dependências pip — só biblioteca padrão.

Funciona no Linux e no Windows (console UTF-8, cores ANSI e fallback ASCII).

Pode ser empacotado em .exe com PyInstaller; grava config.txt e out/ ao lado do executável.

O wizard começa pela empresa e deriva nomes de pool, profile e servidor PPPoE.

Usa o nome da empresa nos comment de firewall e NAT para identificar a configuração.

Suporta alvo RouterOS v6, v7 ou ambos na mesma execução.

WAN em DHCP, IP estático ou PPPoE client, com interfaces informadas pelo operador.

Configura PPPoE Server com pool CGNAT (sugestão RFC 6598: 100.64.0.0/24).

Gera NAT, firewall básico e interface-lists fixas WAN / LAN (não pergunta).

Cria usuário administrativo opcional; admin de fábrica permanece admin se não for alterado.

RADIUS opcional (RFC 2865) e backup opcional no final do script.

Validação de IPs, CGNAT, nomes e senhas antes de emitir o .rsc.

Salva as respostas em config.txt para reutilizar em outras RBs.

Modo --non-interactive gera a partir de um config existente, sem perguntas.

Ideal para ISPs e técnicos que padronizam várias MikroTik com o mesmo perfil.

Saída em out/config-automaticav6.rsc e/ou out/config-automaticav7.rsc.

Uso típico: python3 gerar_config.py ou py gerar_config.py no Windows.

Versao
v1.0.0
Compatibilidade
Router OS v6,v7
Detalhes tecnicos

dadasdas## Detalhes técnicos

Runtime: Python 3.10+, stdlib (argparse, ipaddress, pathlib, re, ctypes no Win).

CLI: --config, --out, --non-interactive, --no-save; defaults relativos a app_root().

app_root(): pasta do .py ou, se sys.frozen (PyInstaller), pasta do sys.executable.

Console: reconfigura UTF-8 (errors=replace); no Windows habilita Virtual Terminal (ANSI).

UI: glyphs Unicode com fallback ASCII se o encoding do stdout não comportar os símbolos.

load_config / save_config: key=value, # comentários; leitura com utf-8-sig (BOM Notepad).

Validação: IPv4 com 4 octetos, CGNAT em 100.64.0.0/10, ranges de pool, nomes RouterOS seguros.

Slug da empresa: letras/números/-_; base de pool-*, ppp-*, pppoe-* e comments.

Geração: blocos cleanup, WAN, PPPoE server, NAT, firewall, user, RADIUS; escape de aspas no .rsc.

v6 vs v7: diferenças de sintaxe (ex.: interface-list) tratadas em generate_rsc(cfg, version).

write_outputs: cria out/ (mkdir parents) e escreve um .rsc por versão pedida.

Factory: default_admin_name=admin fixo; não inventa interfaces, credenciais WAN nem listas.

Testes: python3 -m unittest test_gerar_config (fixture, CLI, BOM, app_root, glyphs).

PyInstaller sugerido: --onefile --console --name gerar_config; pause no fim do .exe (NO_PAUSE=1).

Sem GUI; fluxo 100% terminal (wizard ou config file).