PPPoE – Cisco IOS

O PPP over Ethernet (RFC 2516) é uma especificação que  permite a conexão de hosts à Rede do Provedor para acesso a Internet, providenciando conexões ponto-a-ponto, utilizando a Pilha do protocolo PPP sobre o protocolo Ethernet.

O protocolo PPP trabalha com a tecnologia Ethernet (nesses cenários) para ligar a placa de rede dos usuários ao modem.  Desta forma é possível agregarmos a autenticação para a conexão e aquisição de um endereço IP fixo ou dinâmico à máquina do usuário.

Modems DSL são essencialmente simples Bridges Ethernet para conexão com Multiplexadores de Acesso (DSLAMs) da Operadora, oferecendo um túnel PPP sobre Ethernet.

PPPoE em Roteadores Cisco

Existem diversas maneiras para a configuração em Roteadores Cisco como Clientes PPPoE. No exemplo abaixo efetuaremos a configuração básica do Roteador R1 como Cliente PPPoE e R2 como um Servidor PPPoE para autenticação utilizando PAP e fornecimento de endereços por DHCP para laboratório.

Configuração Roteador Cisco PPPoE Client

R1:
interface FastEthernet0/0
 no ip address
  pppoe enable
!Ativando o service PPPoE na interface
 pppoe-client dial-pool-number 1
! Vinculando a Interface ao dialer pool 1
!
interface Dialer0
! Criando a Interface Dialer0
ip address dhcp
!Forçando a negociação de endereço IP via DHCP
ip mtu 1492
! O protocolo PPP adiciona 8 bytes ao frame ethernet, 
! nesse caso configuraremos o MTU como 1492 ( MTU  default é 1500) 
encapsulation ppp
!Configurando o encapsulamento PPP
 dialer pool 1
! Criando a dialer pool 1 
 ppp pap sent-username DIEGO password 0 CISCO
! Configurando o usuário DIEGO e senha CISCO quando solicitado autenticação PPP
!
ip route 0.0.0.0 0.0.0.0 dialer 0
!Configurando a rota default para a interface Dialer 0

Configuração Roteador Cisco PPPoE Server

username DIEGO password 0 CISCO
!
ip dhcp excluded-address 192.168.1.1
!Criando a exclusão do endereço 192.168.1.1 do escopo DHCP 
!
ip dhcp pool CLIENTE_A
   network 192.168.1.0 255.255.255.0
! Criando o escopo DHCP CLIENTE_A  para a rede 192.168.1.0/24
!
interface FastEthernet0/0
 no ip address
  pppoe enable
!Ativando o Serviço PPPoE na Interface FastEthernet 0/0
!
bba-group pppoe global
!Criando a Interface PPPoE
 virtual-template 1
! Vinculando a interface virtual-template 1 
!
interface Virtual-Template1
 ip address 192.168.1.1 255.255.255.0
 ppp authentication pap
! Habilitando o service de autenticação PAP na interface Virtual-Template 1
!

Comandos Show e Debug

R1#show pppoe  session
1 client session
Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State
SID  LocMAC                                      VA-st
N/A      8  c403.1538.0000  Fa0/0                  Di0  Vi1        N/A
c400.1538.0000                              UP

! O commando show pppoe session mostrará as conexões PPPoE ativas 
!no Roteador incluindo o endereço MAC da outra ponta.
R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down
Virtual-Access1            unassigned      YES unset  up                    up
Dialer0                    192.168.1.13    YES DHCP   up                    up
! Endereço IP negociado (aprendido) por DHCP

R1#debug pppoe packets
*Mar  1 01:08:22.491: pppoe_send_padi:
FF FF FF FF FF FF C4 00 15 38 00 00 88 63 11 09
00 00 00 0C 01 01 00 00 01 03 00 04 64 AA FF AC …
*Mar  1 01:08:22.535: PPPoE 0: I PADO  R:c403.1538.0000 L:c400.1538.0000 Fa0/0
C4 00 15 38 00 00 C4 03 15 38 00 00 88 63 11 07
00 00 00 29 01 01 00 00 01 03 00 04 64 AA FF …
*Mar  1 01:08:24.539: OUT PADR from PPPoE Session
C4 03 15 38 00 00 C4 00 15 38 00 00 88 63 11 19
00 00 00 29 01 01 00 00 01 03 00 04 64 AA FF AC …
*Mar  1 01:08:24.659: PPPoE 8: I PADS  R:c403.1538.0000 L:c400.1538.0000 Fa0/0
C4 00 15 38 00 00 C4 03 15 38 00 00 88 63 11 65
00 08 00 29 01 01 00 00 01 03 00 04 64 AA FF AC …
*Mar  1 01:08:24.663: ;">%DIALER-6-BIND: Interface Vi1 bound to profile Di0
*Mar  1 01:08:24.671: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up

O Debug acima é bastante interessante para entendermos as mensagens de negociação PPPoE .

Durante iniciação da negociação PPPoE, o host encaminha uma mensagem PADI (PPPoE Active Discovery Initiation )em Broadcast, quando o Servidor PPPoE ou Concentrador de acesso recebe essa mensagem, ela é respondida com uma mensagem PADO (The PPPoE Active Discovery Offer) contendo informações do Servidor.

Muito similiar as solicitações DHCP, o host poderá receber mais de uma mensagem PADO ( de diversos concentradores). O host responde na sequência com uma mensagem PADR (PPPoE Active Discovery Request  ) em unicast para o Servidor PPPoE  escolhido. Se a mensagem PADR for valida, é encaminhada para o host uma mensagem PADS (PPPoE Active Discovery Session-confirmation) para iniciar a sessão PPP.

Obs: Se  desejado  o fim da sessão PPP é gerado uma mensagem PADT (PPPoE Active Discovery Terminate).

 Referências

http://tools.ietf.org/html/rfc2516
http://babarata.blogspot.com/2010/03/inicio.html
http://fengnet.com/book/VPNs%20Illustrated%20Tunnels%20%20VPNsand%20IPsec/ch04lev1sec3.html
http://packetlife.net/blog/2009/apr/20/configuring-pppoe/

Um grande abraço a todos!

Leave a Reply

Your email address will not be published. Required fields are marked *