NMSTATE Uma ferramenta de configuração de rede declarativa para Linux
- 1509
- 7
- Howard Fritsch
O ecossistema Linux fornece inúmeras maneiras de configurar redes, incluindo o popular gerente de rede e ferramentas de linha de comando, como NMCLI e NMTUI GUI Utility. Este guia apresenta mais uma ferramenta de configuração de rede conhecida como Nmstate
Nmstate é um gerente de rede declarativo para configurar a rede em hosts Linux. É uma biblioteca que fornece uma ferramenta de linha de comando que gerencia configurações de rede host. Ele gerencia redes de hospedagem através de uma API declarativa para o norte. No momento em que escreveu este guia, o Gerente da rede Daemon é o único provedor suportado por Nmstate.
Neste guia, olhamos para alguns dos usos de exemplo do Nmstate ferramenta. Para este guia, demonstraremos isso usando Fedora Linux.
Abordagens imperativas versus declaração
O gerenciamento de rede pode adotar duas abordagens - Imperativo e declarativo. No imperativo Abordagem, você define explicitamente o estado de rede de uma interface executando comandos no terminal. O foco está no 'como'.
Por exemplo, para derrubar uma rede usando a abordagem imperativa, execute o comando:
$ sudo ifconfig enp0s3
Por outro lado, o declarativo A abordagem usa um Yaml arquivo para aplicar as alterações a uma configuração. A maioria das ferramentas de orquestração de DevOps, como Kubernetes Use esta abordagem para implantar aplicativos de pods usando um Yaml arquivo.
Esta abordagem fornece o que é comumente chamado de infraestrutura como código (IAC) nos círculos do DevOps. Isso aprimora a automação da configuração de rede no host e fornece uma maneira rápida e mais confiável de fazer várias alterações em uma interface de rede com erros mínimos.
Agora, vamos mudar de marcha e ver como você pode usar o Nmstate Ferramenta de configuração para configurar suas interfaces de rede no Linux.
Etapa 1: Instale a ferramenta de configuração de rede nmstate
Vamos fazer a bola rolando instalando o Nmstate. Primeiro, verifique a disponibilidade do pacote de Fedora Repositórios da seguinte forma:
$ sudo dnf Search nmstate
Da saída, podemos ver que o gerente de rede está disponível nos repositórios oficiais.
Verifique o pacote nmstateEm seguida, instale Nmstate do seguinte modo. Isso funciona Fedora 31 e versões posteriores.
$ sudo dnf install nmstate
O comando instala o Nmstate API de gerente de rede ao lado de outras dependências do Python.
Instale o nmstate no fedoraDepois que a instalação estiver concluída, verifique o nmstate o pacote está instalado da seguinte forma.
$ rpm -qi nmstateVerifique o pacote nmstate
Para Linux baseado em RHEL, ative o repositório de CORP primeiro.
$ sudo dnf copr ativar nmstate/nmstate
Em seguida, instale Nmstate do seguinte modo.
$ sudo dnf install nmstate
Confira instruções adicionais sobre como instalar o nmstate a partir da fonte.
Uma vez instalado, você pode verificar a versão de Nmstate instalado da seguinte forma.
$ nmstatectl versão 1.0.2
Usando a ferramenta de configuração nmstate no Linux
Com Nmstate Instalado, vamos descer para os Gritty-Gritties de como você pode aproveitar ao máximo a API do Gerenciador de Rede.
Para visualizar a configuração de rede atual da sua interface de rede, execute o seguinte comando. Aqui está a configuração do seu ENP0S3 interface.
$ nmstatectl show enp0s3Mostrar configuração de interface de rede
A saída é dividida em 4 seções distintas:
- DNS-Resolver: Esta seção contém a configuração do servidor de nomes para a interface específica.
- Rota-barras: Isso estipula as regras de roteamento.
- rotas: Isso inclui rotas dinâmicas e estáticas.
- Interfaces: Esta seção especifica as configurações IPv4 e IPv6.
Mudança de configuração de rede no Linux
Você pode usar o Nmstate Ferramenta de configuração para configurar seus hosts para o estado desejado usando modos interativos ou baseados em arquivo.
- Interativo: Isso edita uma interface de rede usando o nmstatectl Editar comando. Este comando abre um editor de texto definido pela variável do ambiente do editor. Depois que as alterações são salvas, o NMState aplica a nova configuração imediatamente, a menos que os erros de sintaxe tenham sido detectados.
- Baseado em arquivo: No modo baseado em arquivo, a configuração da interface é aplicada usando um arquivo YAML ou JSON usando o nmstatectl Aplicar comando.
Vamos agora sujar as mãos e verificar como você pode modificar a configuração de rede usando Nmstate.
Nosso Fedora O sistema possui duas interfaces de rede ativa com a seguinte configuração:
$ ip -br -4 a
Saída de amostra
LO Desconhecido 127.0.0.1/8 ENP0S3 UP 192.168.2.104/24 ENP0S8 UP 192.168.2.103/24
Exemplo de modo de configuração interativa
Usaremos o modo interativo para alterar o MTU (Unidade de transmissão máxima) do ENP0S3 interface de rede. Por padrão, isso está definido como 1500 como mostrado.
$ ifconfigVerifique a rede MTU no Linux
Vamos mudar isso para 4000. Faremos isso usando o nmstatectl Editar comando da seguinte forma.
$ sudo nmstatectl editar ENP0S3
Isso abre a configuração em um editor de texto. Para o nosso caso, ele abre em vim editor. Em seguida, role até baixo e localize o MTU parâmetro. Vamos mudar o valor para 4000, Assim como iríamos editar um arquivo em vim. Então vamos salvar as mudanças.
Alterar a rede MTU no LinuxAo salvar e sair do arquivo, você verá alguma saída mexida no terminal como Nmstate salva as mudanças. Nenhuma intervenção é necessária, então, apenas fique parado.
Vamos agora confirmar que a mudança foi feita.
$ ifconfig
Da saída do terminal, podemos ver que mudamos com sucesso o MTU para 4000 do padrão 1500 valor.
Verifique a rede MTU no LinuxExemplo de modo de configuração baseado em arquivo
Vamos agora modificar a configuração usando o modo baseado em arquivo. Neste exemplo, vamos desativar IPv6 para o ENP0S8 interface de rede. O primeiro passo é criar um arquivo YAML que especificará o estado desejado do ENP0S8 interface de rede.
$ sudo nmstatectl show enp0s8> enp0s8.ymlCrie arquivo YAML de rede
Em seguida, vamos editar o Yaml arquivo como segue.
$ sudo vim enp0s8.yml
Role para baixo até a seção IPv6. Para desativar o IPv6, defina o parâmetro ativado como false e exclua as linhas que foram atingidas.
Desative Ipv6 no LinuxSalve a configuração e aplique o novo estado usando o arquivo YAML da seguinte forma.
$ sudo nmstatectl Aplicar ENP0S8.yml
Agora execute o comando mostrado para verificar se o IPv6 foi desativado. A saída exibida mostra que o IPv6 para o ENP0S8 A interface de rede está em branco, implicando que desativamos com sucesso o IPv6 na interface.
$ ip -br aConfirme IPv6 desativado no Linux
Aplicando mudanças de rede temporariamente
Outra funcionalidade realmente útil que Nmstate O fornecimento é a capacidade de configurar temporariamente um estado de rede desejado. Depois de ficar satisfeito com a configuração, você pode prosseguir e tornar as alterações permanentes. Caso contrário, as alterações feitas voltarão às configurações iniciais assim que o tempo limite expirar. O tempo limite padrão é de 60 segundos.
Para demonstrar isso, definiremos temporariamente um IP estático no ENP0S3 interface e desativar DHCP. Mais uma vez, acesse o arquivo usando um editor de texto.
$ sudo vim enp0s3.yml
Role até o IPv4 seção. Especifique o IP estático - no nosso caso 192.168.2.150 e exclua as linhas que foram atingidas. Além disso, certifique -se de definir o DHCP parâmetro para falso.
Defina IP estático no LinuxSalve o arquivo e cometer temporariamente as alterações da seguinte forma.
$ sudo nmstatectl Aplicar-Não-Compromit-Timeout 20 ENP0S3.yml
O --sem compromisso
a opção aplica temporariamente as alterações por um período definido pelo --tempo esgotado
opção que, neste exemplo, é de 20 segundos.
Para verificar a aplicação temporal das alterações, verificaremos a configuração IP em um intervalo de tempo de 20 segundos.
$ ip -br a
A partir da saída, você pode ver que a configuração IP da interface reverteu para o DHCP após o intervalo de tempo de 20 segundos. O endereço IP voltou para 192.168.2.104 do IP estaticamente configurado anteriormente que foi 192.168.2.150.
Verifique a interface da redeÉ certo que o Nmstate A ferramenta é uma ferramenta conveniente para configurar suas interfaces de rede. É uma ferramenta declarativa que aplica o estado de configuração desejado da interface de um host usando a API de NetworkManager.
O estado é facilmente definido usando o interativo abordar ou usar o baseado em arquivo método que usa um pré-configurado Yaml arquivo. Isso aprimora a automação de tarefas de configuração e redução de erros durante a configuração.
- « 7 maneiras de acelerar o navegador Firefox no Linux Desktop
- Melhores alternativas do Skype para o Linux Desktop »