Por: @vitorp Publicado em: 2020-06-24
PPPoE + NetworkManager
Este laboratório tem como objetivo:
- Orientar na instalação dos pacotes para funcionamento do PPPoE com NetworkManager;
- Apresentar lógica de configuração e comandos;
- Dar uma ideia geral do que pode ser feito no produto v3;
Sistema Operacional: CentOS 8.2.2004
Instalação
-
É necessário instalar um pacote com plugins do NetworkManager para PPP.
-
Para carregar este plugin é necessário dar restart no NetworkManager.
PS: Foi testado somente com restart. Talvez isso cause problemas para a atualização, podemos buscar outro formato de carregar os plugins do NM.
yum install dnf install NetworkManager-ppp
systemctl restart NetworkManager
Conceito
Em todos os modos de configuração, o NetworkManager cria um túnel PPP (Device separado) para estabelecer a conexão.
Para facilitar o entendimento, configurações e possibilitar o uso com bonds e vLans, tratamos a criação de forma separada.
É criado um túnel PPP (Device) no NM, este túnel basicamente precisa de:
- Nome da Conexão: Conexão no NM;
- Dispositivo: Nome do túnel que será criado no linux;
- Configurações DSL: Usuário, senha e Serviço;
- Configurações PPPoE: Métodos permitidos, MPPE, Compactação;
- Configuração IPv4: Desabilitado, Automático (Igual DHCP), Estático # Mesmo padrão dos demais;
- Configuração IPv6: Ignorar # Mesmo padrão dos demais;;
- Interface “Pai”: Interface de rede da máquina física que será utilizada pelo Túnel
Quando iniciado o PPPoE, ele cria um túnel no Linux (Dispositivo) e este túnel é associado à interface “Pai”. São enviados pacotes PPPoE de autenticação através da Interface Pai com as informações de “Configuração DSL” para autenticar na operadora.
Após autenticação no servidor da operadora, é definido o IP que fica no Dispositivo. O mais comum é que a configuração de IPv4 fique como automático e após autenticação, recebemos o IP da operadora. Dependendo da operadora, pode ser que seja utilizado IP Estático.
Na interface pai, vemos somente pacotes PPPoE passando. Os pacotes Ethernet (tcp, udp, icmp, etc) são vistos diretamente na interface túnel.
Configuração
A criação do túnel PPP pode ser realizada através de comandos do NM:
nmcli connection add \
type pppoe \
con-name wan-wan1 \ # Nome da conexão no NM
connection.interface-name ens19-ppp \ # Nome do túnel criado no Linux
ipv4.method auto \ # IPv4 como DHCP
ipv4.never-default False \ # Define como Gateway - Mesma coisa que as outras
ipv4.ignore-auto-dns True \ # Ignora DNS - Mesma coisa que as outras
ipv6.method ignore \ # Desativa IPv6 - Mesma coisa que as outras
pppoe.username itflexteste \ # Configura username do PPPoE/DSL
pppoe.password 0123 # Configura senha do PPPoE/DSL
pppoe.parent ens19 \ # Interface Pai/Física associada
Essa configuração é um formato padrão que funcionará na maioria dos casos. O NM já seta todos os outros parâmetros de forma automática.
Configurações que podem ser utilizadas:
Descrição | Valor NM | Comentário |
---|---|---|
DSL/PPPoE - Serviço | pppoe.service | |
MTU do túnel PPP | ppp.mtu | |
Habilitar/Desabilitar EAP | ppp.refuse-eap | True para desabilitar |
Habilitar/Desabilitar PAP | ppp.refuse-pap | True para desabilitar |
Habilitar/Desabilitar CHAP | ppp.refuse-chap | True para desabilitar |
Habilitar/Desabilitar MSCHAP | ppp.refuse-mschap | True para desabilitar |
Habilitar/Desabilitar MSCHAPv2 | ppp.refuse-mschapv2 | True para desabilitar |
Habilitar/Desabilitar Criptografia ponto a ponto MPE | ppp.require-mppe | True para habilitar |
Habilitar/Desabilitar “Requer criptografia MPPE 128 bits” | ppp.require-mppe-128 | True para habilitar |
Habilitar/Desabilitar “Especificação completa MPPE” | ppp.mppe-stateful | True para habilitar |
Habilitar/Desabilitar “Permitidos compactação de dados BSD” | ppp.nobsdcomp | True para habilitar |
Habilitar/Desabilitar “Permitidos compactação de dados deflate” | ppp.nodeflate | True para habilitar |
Habilitar/Desabilitar “Usar compactação de cabeçalho TCP” | ppp.no-vj-comp | True para habilitar |
Ideias v3
-
Podemos tratar o PPPoE como uma interface que será associada à outra. Exemplo: Será necessário criar uma ethernet, uma pppoe e dentro da pppoe selecionar a ethernet como Interface Pai.
-
Já dar as configurações padrões do PPP pro usuário conforme print:

E também adicionar uma opção de MTU do Túnel PPP.
-
Para provisionar essas confs padrões, é só utilizar conforme exemplo passado que o NM adiciona os valores padrões. Para provisionar os valores diferentes, utilizar os valores passados acima.
-
Quando associar uma PPPoE à uma outra conexão, devemos “limpar” as configurações de endereçamento dessa interface.
-
Pode ser associada à uma interface Ethernet, vLan, bond ou Bridge.
-
Endereçamento como Automático/DHCP por padrão, mas o usuário tem a possibilidade de alterar para Desabilitado ou Estático. IPv6 desabilitado/ignore.
-
Essa interface receberá IP dinâmico igual DHCP, então temos que revisar as questões de regra de firewall e SDWAN.