Como usar a CLI (cgnatsh)#
cgnatsh é o shell de administração, no estilo VyOS/Juniper. É o shell de login do usuário operador e substitui o bash.
Modos#
| Modo | Prompt | Uso |
|---|---|---|
| Operacional | usuario@host> |
show, ping, traceroute, monitor, request, license, restart... |
| Configuração | usuario@host# |
set, delete, compare, commit, rollback... (entre com configure) |
Recursos de edição: Tab completa, ? lista opções com ajuda, abreviações (sh int), histórico (setas), shell abre o bash do Debian (só admin). Dentro de configure, comandos operacionais usam o prefixo run (ex.: run show cgnat stats).
Fluxo de configuração#
configure
set ... # altera o CANDIDATO (nada muda no servidor ainda)
delete ...
compare # diferença entre o candidato e o que está rodando
commit # aplica
commit-confirm 10 # aplica e volta sozinho em 10 min se você não rodar "confirm"
confirm # mantém a configuração
rollback [id] # volta para um commit anterior
discard # descarta o candidato
exit
Os commits ficam em /var/lib/cgnatsh/ e show commits lista o histórico.
Sempre commit-confirm por SSH
Mexer em interfaces, rotas, firewall ou SSH pode cortar seu acesso. Com commit-confirm, mesmo que a sessão caia, o servidor volta à configuração anterior.
Onde cada área é gravada#
| Área | Fonte | Aplicação |
|---|---|---|
interfaces ethernet/bridge/bonding |
/etc/network/interfaces |
ip/ethtool na hora + arquivo |
firewall |
nft (tabela inet cgnatsh), /etc/cgnatsh/firewall.nft |
validado com nft -c, carga atômica |
system (host-name, sysctl, DNS, NTP, SSH, usuários, tuning) |
arquivos do Debian | hostnamectl, sysctl, chronyc... |
routing static-route |
/etc/cgnatsh/routes |
ip route + reaplicação no boot |
cgnat (pools, políticas, proteções, timeouts) |
API do cgnatd | POST/DELETE na API |
cgnat dataplane |
/etc/cgnat/cgnatd.env |
arquivo; vale após restart cgnatd |
Papéis#
| Papel | Pode | Não pode |
|---|---|---|
admin (grupo cgnatsh) |
tudo | — |
read-only (grupo cgnatsh-ro) |
show, ping/traceroute limitados, monitor bandwidth, trocar a própria senha |
configure, shell, restart, reboot, monitor traffic... |
set system login user maria role read-only
set system login user joao role admin
commit
run change password maria
O sistema não deixa ficar sem administrador ativo nem rebaixar/remover o próprio usuário da sessão.
Ver a configuração#
show configuration # só o que você definiu
show configuration all # tudo, inclusive o automático (marcado com "# auto")
show configuration commands # em formato de comandos set
load merge <arquivo.set> # aplica um arquivo de comandos ao candidato
Referências desta wiki#
- Comandos operacionais: todos os comandos
show/request/...desta versão, com ajuda e perfil. - Árvore de configuração: todos os caminhos
set.