Nos dias de hoje grande parte dos ISPs utilizam o protocolo PPP para prover conexão aos seus usuários, criando assim uma interface virtual entre o CPE (cliente PPPoE) e o concentrador.
Muito comum inicialmente nas redes xDSL, atualmente vem sendo implementado em larga escala nas redes Wireless, FTTx, Ethernet, e outras variações.
O PPPoE ganhou popularidade pela ampla gama de compatibilidade entre fabricantes, fácil administração, segurança, e principalmente integração com sistemas de RADIUS.
Troca de Mensagens PPPoE
Veja como funciona a troca de mensagens entre o Cliente e o Servidor/Concentrador PPPoE.
-
PADI: PPPoE Active Discovery InitializationCliente envia um PADI frame em broadcast (ff:ff:ff:ff:ff:ff) em busca de um servidor.
-
PADO: PPPoE Active Discovery OfferServidor responde em unicast com um PADO frame dizendo que é um servidor.
-
PADR: PPPoE Active Discovery RequestCliente envia um PADR frame em unicast para o servidor escolhido.
-
PADS: PPPoE Active Discovery Session confirmationServidor encaminha em unicast um frame contendo todas as informações da sessão.
-
PPP DataCom o túnel estabelecido ocorre a troca de informações.
-
PADT: PPPoE Active Discovery TerminateCaso seja solicitado o fim da sessão, um PADT frame é enviado.
Agora vamos ao exemplo, onde utilizaremos:
-
Concentrador: Roteador Cisco, IOS 15.0(1)M
-
Cliente: TP-Link TL-WR740N e Roteador Cisco, 15.4(1)T
Topologia
Configuração do Concentrador PPPoE
-
BBAG
Crie um BBAG (BroadBand Access Group) para as conexões PPPoE. Ex: “brain0” .
PPPoE-Server01(config)#bba-group pppoe brain0
Informe um “virtual-template” que pode ser qualquer número entre 1-4095.
PPPoE-Server01(config-bba-group)#virtual-template 1
-
Virtual Template
A seguir deve-se criar um perfil onde serão definidas todas a opções relacionadas aos peers.
PPPoE-Server01(config)#interface virtual-template 1
Defina o IP local do perfil onde os peers farão a conexão. Seguindo o critério de boas práticas a escolha deve ser feita por utilizar uma interface de Loopback utilizando o comando ip unnumbered loopback “X”, pois esta interface sempre estará UP/UP, porém não faremos uso desse recurso no exemplo.
PPPoE-Server01(config-if)#ip address 10.10.10.1 255.255.255.0
Crie o Pool de endereços que será entregue aos peers. Ex: “pppoe”.
PPPoE-Server01(config-if)#peer default ip address pool pppoe
Informe o DNS que será repassado aos peers.
PPPoE-Server01(config-if)#ppp ipcp dns 172.16.16.1 172.16.16.2
Escolha o protocolo de autenticação, que pode variar entre (PAP, CHAP, MS-CHAP, EAP). Aqui usaremos CHAP.
PPPoE-Server01(config-if)#ppp authentication chap callin
Especifique o tamanho máximo dos pacotes (MTU), com um valor mínimo de 64 bytes podendo chegar até 64K bytes em alguns hardwares.
PPPoE-Server01(config-if)#mtu 1492
-
Pool
Configure o pool de endereços já apontado acima.
PPPoE-Server01(config)#ip local pool pppoe 10.10.10.100 10.10.10.200
-
Interface Física
Configure a interface que receberá as conexões (dial-in).
PPPoE-Server01(config)#interface FastEthernet0/0
Coloque uma descrição, somente para fins de documentação.
PPPoE-Server01(config-if)#description Clientes
Remover qualquer endereço de ip da interface.
PPPoE-Server01(config-if)#no ip address
Aponte o BBAG criado no início da configuração.
PPPoE-Server01(config-if)#pppoe enable group brain0
-
Usuário de autenticação.
Crie um usuário e senha que ficarão armazenados na base local do roteador.
PPPoE-Server01(config)#username arthur password c1sc0
Configuração Cliente PPPoE (TP-LINK)
Após acessar o dispositivo cliente devemos navegar através barra lateral esquerda até Rede > WAN, e configurar conforme o exemplo.
-
Wan Connection Type: PPPoE
-
Username: arthur
-
Password: c1sc0
Na aba avançado deve-se garantir que o MTU é o mesmo definido na configuração do servidor, lembre-se de salvar e que cada topologia deve ser análisada individualmente.
Basta mandar conectar.
Configuração Cliente PPPoE (Cisco)
Script de configuração para roteadores Cisco.
interface FastEthernet0/0
no ip address
pppoe enable group global
pppoe-client dial-pool-number 1interface Dialer1
mtu 1492
ip address negotiated
encapsulation ppp
dialer pool 1
ppp chap hostname arthur
ppp chap password 0 c1sc0
Para acompanhar a negociação PPPoE, podemos habilitar o comando debug pppoe events no concentrador. Também podemos usar o comando show pppoe all para ver os clientes conectados e o status.
Concentrador#debug pppoe events
*Jun 8 14:42:36.016: PPPoE 0: I PADI R:aabb.cc00.0310 L:ffff.ffff.ffff Et0/0
*Jun 8 14:42:36.016: Service tag: NULL Tag
*Jun 8 14:42:36.016: PPPoE 0: O PADO, R:aabb.cc00.0200 L:aabb.cc00.0310 Et0/0
*Jun 8 14:42:36.016: Service tag: NULL Tag
*Jun 8 14:42:38.107: PPPoE 0: I PADR R:aabb.cc00.0310 L:aabb.cc00.0200 Et0/0
*Jun 8 14:42:38.107: Service tag: NULL Tag
*Jun 8 14:42:38.107: PPPoE : encap string prepared
*Jun 8 14:42:38.107: [5]PPPoE 5: Access IE handle allocated
*Jun 8 14:42:38.107: [5]PPPoE 5: AAA unique ID 11 allocated
*Jun 8 14:42:38.107: [5]PPPoE 5: No AAA accounting method list
*Jun 8 14:42:38.107: [5]PPPoE 5: Service request sent to SSS
*Jun 8 14:42:38.107: [5]PPPoE 5: Created, Service: None R:aabb.cc00.0200 L:aabb.cc00.0310 Et0/0
*Jun 8 14:42:38.108: [5]PPPoE 5: State NAS_PORT_POLICY_INQUIRY Event SSS MORE KEYS
*Jun 8 14:42:38.113: [5]PPPoE 5: data path set to PPP
*Jun 8 14:42:38.113: [5]PPPoE 5: Segment (SSS class): PROVISION
*Jun 8 14:42:38.113: [5]PPPoE 5: State PROVISION_PPP Event SSM PROVISIONED
*Jun 8 14:42:38.113: [5]PPPoE 5: O PADS R:aabb.cc00.0310 L:aabb.cc00.0200 Et0/0
*Jun 8 14:42:38.159: [5]PPPoE 5: State LCP_NEGOTIATION Event SSS CONNECT LOCAL
*Jun 8 14:42:38.170: [5]PPPoE 5: Segment (SSS class): UPDATED
*Jun 8 14:42:38.170: [5]PPPoE 5: Segment (SSS class): BOUND
*Jun 8 14:42:38.170: [5]PPPoE 5: data path set to Virtual Acess
*Jun 8 14:42:38.170: [5]PPPoE 5: State LCP_NEGOTIATION Event SSM UPDATED
*Jun 8 14:42:38.181: [5]PPPoE 5: State PTA_BINDING Event STATIC BIND RESPONSE
Concentrador#
*Jun 8 14:42:38.181: [5]PPPoE 5: Connected PTA
*Jun 8 14:42:38.183: PPPoE : ipfib_encapstr prepared
Concentrador#
Concentrador#
Concentrador#show ppp all
Interface/ID OPEN+ Nego* Fail- Stage Peer Address Peer Name
———— ——————— ——– ————— ——————–
Vi1.1 LCP+ CHAP+ IPCP+ LocalT 10.10.10.101 arthur
Concentrador#
Mais informações sobre PPPoE aqui.
Obrigado e até a próxima.