Mudanças entre as edições de "RCO2-lab-pppoe"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 18: Linha 18:
 
= Roteiro =
 
= Roteiro =
  
Hoje será criada uma infraestrutura inspirada em uma rede de acesso em um prédio comercial. O prédio possui cabeamento para rede Ethernet, com pontos nos escritórios e salas comerciais. O serviço de acesso é opcional e deve ser contratado, de forma que apenas os clientes cadastrados possam acessar a rede. Para implantar tal estrutura foi escolhido usar PPPoE com um concentrador de acesso, como mostrado na ilustração abaixo:
+
Hoje será criada uma infraestrutura inspirada em uma rede de acesso ADSL. Ela é composta de um AC (concentrador de acesso), um roteador ADSL, e uma rede local com computadores do assinante do serviço, como mostrado na ilustração abaixo:
  
[[imagem:Lab-pppoe1.png|600px]]
+
[[imagem:Lab-pppoe-novo.png|400px]]
  
  
O concentrador de acesso (AC) deve operar também como roteador e NAT. Assim os computadores nas redes de acesso poderão acessar a Internet, mas ficarão mascarados pelo AC. Note que devido ao uso do NAT os computadores em uma rede de acesso poderão acessar a rede externa, mas o contrário não será possível.
+
O roteador ADSL deve operar também como tradutor NAT. Assim os computadores nas redes de acesso poderão acessar a Internet, mas ficarão mascarados pelo roteador ADSL. Note que devido ao uso do NAT os computadores poderão acessar a rede externa, mas o contrário não será possível.
  
  
 
Para criar o enlace PPPoE serão usados os softwares pppd e pppoe dentro do Netkit.
 
Para criar o enlace PPPoE serão usados os softwares pppd e pppoe dentro do Netkit.
  
{{collapse top | Configuração para o Netkit}}
 
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
ac[type]=gateway
+
global[compact]=True
 +
global[mem]=24
 +
 
 
pc1[type]=generic
 
pc1[type]=generic
 
pc2[type]=generic
 
pc2[type]=generic
pc3[type]=generic
+
rotadsl[type]=gateway
pc4[type]=generic
+
ac[type]=pppoe
 +
internet[type]=generic
 +
 
 +
ac[pppoe]=rco2:interface=eth1:users=(usuario1,senha1):range=172.18.1.1,172.18.1.10:ip=172.18.1.20
  
ac[eth0]=uplink:ip=10.0.0.1/30
+
ac[eth1]=linkadsl
ac[eth1]=rede-interna
+
ac[eth0]=externo:ip=192.168.1.1/24
ac[default_route]=10.0.0.2
+
ac[default_gateway]=192.168.1.254
 +
ac[nat]=eth0
  
pc1[eth0]=rede-interna
+
internet[eth0]=externo:ip=192.168.1.254/24
pc2[eth0]=rede-interna
+
internet[route]=10.0.0.0/24:gareway=192.168.1.1
pc3[eth0]=rede-interna
+
 
pc4[eth0]=rede-interna
+
rotadsl[eth0]=linkadsl:mode=pppoe:pppoe_user=usuario1:pppoe_password=senha1:pppoe_ac=rco2
 +
rotadsl[eth1]=lan:ip=10.0.0.254/24
 +
rotadsl[nat]=ppp0
 +
 
 +
pc1[eth0]=lan:ip=10.0.0.1/24
 +
pc1[default_gateway]=10.0.0.254
 +
pc2[eth0]=lan:ip=10.0.0.2/24
 +
pc2[default_gateway]=10.0.0.254
 
</syntaxhighlight>
 
</syntaxhighlight>
{{collapse bottom}}
+
''Configuração para o Netkit''
 +
 
 +
 
 +
# Copie a configuração acima para um arquivo chamado ''adsl.conf''. Em seguida inicie o ''gnome-netkit'', e carregue esse arquivo. Depois inicie a rede.
 +
# Verifique se foi ativada a interface ''ppp0'' em ''rotadsl'' (que faz o papel de roteador ADSL): <syntaxhighlight lang=bash>
 +
ifconfig ppp0
 +
</syntaxhighlight>
 +
# Teste a comunicação entre ambos PCs e ''internet'': <syntaxhighlight lang=bash>
 +
ping 192.168.1.254
 +
</syntaxhighlight>
 +
# Mantendo o ping em ação em ambos PCs, ative o wireshark em ''ac'', capturando na interface ''eth1''. Observe os pacotes capturados, dando especial atenção aos encapsulamentos na camada de enlace. Veja que o enlace PPP envolve quadros PPP encapsulados em quadros PPPoE, que por sua vez estão encapsulados em quadros Ethernet.
 +
#* Observe os campos dos quadros PPP: em que eles diferem dos quadros PPP de enlaces feitos com portas seriais ?
 +
#* Observe os campos dos quadros PPPoE: o que eles significam ?
 +
#* Por fim, confira os endereços MAC dos quadros Ethernet: a que equipamentos eles correspondem ?
 +
# Encerre o enlace PPPoE em ''rotadsl'' usando este comando: <syntaxhighlight lang=bash>
 +
killall pppd
 +
</syntaxhighlight>
 +
# Encerre o wireshark. Em seguida reinicie-o em ''ac'', com captura na interface ''eth1''.
 +
# Reinicie o enlace PPPoE em ''rotadsl'' usando este comando: <syntaxhighlight lang=bash>
 +
pppd call adsl
 +
</syntaxhighlight>
 +
# No wireshark clique no botão para recarregar (ou tecle CTRL R), e observe os pacotes capturados. veja os primeiros quadros PPPoE e compare-os com a [[RCO2-2013-1#Estabelecimento_de_sess.C3.B5es_PPPoE|descrição na wiki]]. O que se pode concluir sobre esses quadros iniciais ?
 +
 
 +
{{collapse top | Versão manual do experimento}}
 +
A ativação dos enlaces PPPoE foi realizada de forma automática pelo Netkit, porém pode-se fazer isso manualmente. A diferença está na manipulação de arquivos e programas do Linux usados para criar esses enlaces. Quem gosta de descer o nível, ou de saber como de fato são configurados esses softwares, pode repetir o experimento fazendo a configuração manual.
  
1. Defina um computador para ser AC, o qual deve ter duas interfaces de rede ethernet. Uma das interfaces deverá ser do tipo uplink, o que no Netkit faz com ela se conecte à rede real (externa ao Netkit). Assim, essa interface uplink dará acesso ao laboratório, e deve ser definida assim:
 
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
pc1[eth0]=uplink:ip=10.0.0.1/30
+
global[compact]=True
 +
global[mem]=24
 +
 
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
rotadsl[type]=gateway
 +
ac[type]=gateway
 +
internet[type]=generic
 +
 
 +
ac[eth1]=linkadsl
 +
ac[eth0]=externo:ip=192.168.1.1/24
 +
ac[default_gateway]=192.168.1.254
 +
 
 +
internet[eth0]=externo:ip=192.168.1.254/24
 +
internet[route]=10.0.0.0/24:gateway=192.168.1.1
 +
 
 +
rotadsl[eth0]=linkadsl
 +
rotadsl[eth1]=lan:ip=10.0.0.254/24
 +
rotadsl[nat]=ppp0
 +
 
 +
pc1[eth0]=lan:ip=10.0.0.1/24
 +
pc1[default_gateway]=10.0.0.254
 +
pc2[eth0]=lan:ip=10.0.0.2/24
 +
pc2[default_gateway]=10.0.0.254
 
</syntaxhighlight>
 
</syntaxhighlight>
  
A outra interface desse computador (eth1) será usada para estabelecer os enlaces PPPoE com os clientes.
+
Os seguintes passos devem ser feitos antes do experimento:
  
2. Monte a rede mostrada na ilustração 2, porém não configure endereços IP nas interfaces ethernet dos computadores.
+
1. No ''ac'', a interface ''eth1'' será usada para os enlaces PPPoE, e a interface ''eth0'' dará acesso à rede externa. A máquina virtual ''internet'' representa a Internet ;-)
  
 
3. No AC crie o arquivo /etc/ppp/pppoe-server-options com o seguinte conteúdo:
 
3. No AC crie o arquivo /etc/ppp/pppoe-server-options com o seguinte conteúdo:
Linha 74: Linha 132:
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
 
usuario1 * senha1
 
usuario1 * senha1
usuario2 * senha2
 
...
 
usuarioN * senhaN
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
5. Crie o arquivo /etc/ppp/faixa-ip no AC com o seguinte conteúdo:
 
5. Crie o arquivo /etc/ppp/faixa-ip no AC com o seguinte conteúdo:
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
172.18.10.10-50
+
172.18.1.1-10
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
6. Ative o servidor PPPoE no AC:
 
6. Ative o servidor PPPoE no AC:
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
pppoe-server -C RCO2 -L 172.18.10.175 -p /etc/ppp/faixa-ip -I eth1
+
pppoe-server -C rco2 -L 172.18.1.20 -p /etc/ppp/faixa-ip -I eth1
 
</syntaxhighlight>
 
</syntaxhighlight>
  
7. Em cada computador das redes de acesso deve-se criar o arquivo /etc/ppp/peers/rco2 com este conteúdo:
+
7. Em ''rotadsl'' deve-se criar o arquivo /etc/ppp/peers/rco2 com este conteúdo:
  
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452 -C IER"
+
pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452 -C rco2"
 
noipdefault
 
noipdefault
 
usepeerdns
 
usepeerdns
Linha 104: Linha 159:
 
mtu 1492
 
mtu 1492
 
noaccomp
 
noaccomp
user usuarioX
+
user usuario1
 
default-asyncmap
 
default-asyncmap
 
</syntaxhighlight>
 
</syntaxhighlight>
  
8. Crie nesses computadores o arquivo /etc/ppp/chap-secrets com este conteúdo (substitua usuarioX e senhaX de acordo com o que foi adicionado no chap-secrets no AC):
+
8. Crie em ''rotadsl'' o arquivo /etc/ppp/chap-secrets com este conteúdo:
  
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
usuarioX *
+
usuario1 * senha1
senhaX
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
9. Execute o tcpdump, e ative o monitoramento na interface eth0.
+
9. Execute em ''ac'' o ''wireshark'' pelo Netkit (menu Wireshark), e ative o monitoramento na interface eth1.
  
10. Ative o enlace PPPoE, executando:
+
10. Em ''rotadsl'' ative o enlace PPPoE, executando:
  
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
Linha 123: Linha 177:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
11. Observe se foi criada a interface ppp0. Confira o IP que ela está usando, o tipo de encapsulamento e a MTU. Confira também as interfaces ppp no AC, observando as mesmas informações.
+
11. Agora você pode seguir os passos do roteiro original ...
 
+
{{collapse bottom}}
12. Veja no tcpdump o tráfego que foi criado durante o estabelecimento do enlace. Qual a sequência de quadros PPPoE trocada entre AC e computador ?
 
 
 
13. Tente usar a rede a partir do computador. Primeiro faça ping no AC, e em seguida tente acessar a rede externa.
 
 
 
14. Após entender como funcionam os enlaces PPPoE, vamos implantar uma infraestrutura ADSL no laboratório. Para isso serão necessários um DSLAM e modems/roteadores ADSL. Usando o equipamento fornecido pelo professor, planeje e implante essa rede (dica: ver o [[Projeto_Integrador_-_2011.1#Acesso_aDSL|projeto integrador de 2011-1 do Técnico em Telecomunicações]])
 

Edição atual tal como às 15h04min de 10 de julho de 2013

Objetivo

Criar uma infraestrutura de acesso baseada em ADSL e PPPoE

Introdução

PPPoE (PPP over Ethernet) é um protocolo criado para encapsular quadros PPP dentro de quadros Ethernet. Seu uso mais comum ocorre em redes de acesso aDSL, em que se cria uma infraestrutura como mostrado na ilustração abaixo.

Pppoe architecture.gif


Em enlaces PPPoE há dois tipos de equipamentos:

  • Host: o computador ou equipamento que inicia o enlace.
  • Concentrador (AC): o equipamento que recebe pedidos de estabelecimento de enlace

Com PPPoE podem-se criar redes de acesso baseada em tecnologia de rede local Ethernet, porém com autenticação, controle de uso de banda e contabilização de equipamentos de usuários. Essa foi uma motivação para a criação desse protocolo para uso por ISP (Internet Service Providers, ou Provedores de Acesso Internet).

Roteiro

Hoje será criada uma infraestrutura inspirada em uma rede de acesso ADSL. Ela é composta de um AC (concentrador de acesso), um roteador ADSL, e uma rede local com computadores do assinante do serviço, como mostrado na ilustração abaixo:

Lab-pppoe-novo.png


O roteador ADSL deve operar também como tradutor NAT. Assim os computadores nas redes de acesso poderão acessar a Internet, mas ficarão mascarados pelo roteador ADSL. Note que devido ao uso do NAT os computadores poderão acessar a rede externa, mas o contrário não será possível.


Para criar o enlace PPPoE serão usados os softwares pppd e pppoe dentro do Netkit.

global[compact]=True
global[mem]=24

pc1[type]=generic
pc2[type]=generic
rotadsl[type]=gateway
ac[type]=pppoe
internet[type]=generic

ac[pppoe]=rco2:interface=eth1:users=(usuario1,senha1):range=172.18.1.1,172.18.1.10:ip=172.18.1.20

ac[eth1]=linkadsl
ac[eth0]=externo:ip=192.168.1.1/24
ac[default_gateway]=192.168.1.254
ac[nat]=eth0

internet[eth0]=externo:ip=192.168.1.254/24
internet[route]=10.0.0.0/24:gareway=192.168.1.1

rotadsl[eth0]=linkadsl:mode=pppoe:pppoe_user=usuario1:pppoe_password=senha1:pppoe_ac=rco2
rotadsl[eth1]=lan:ip=10.0.0.254/24
rotadsl[nat]=ppp0

pc1[eth0]=lan:ip=10.0.0.1/24
pc1[default_gateway]=10.0.0.254
pc2[eth0]=lan:ip=10.0.0.2/24
pc2[default_gateway]=10.0.0.254

Configuração para o Netkit


  1. Copie a configuração acima para um arquivo chamado adsl.conf. Em seguida inicie o gnome-netkit, e carregue esse arquivo. Depois inicie a rede.
  2. Verifique se foi ativada a interface ppp0 em rotadsl (que faz o papel de roteador ADSL):
    ifconfig ppp0
    
  3. Teste a comunicação entre ambos PCs e internet:
    ping 192.168.1.254
    
  4. Mantendo o ping em ação em ambos PCs, ative o wireshark em ac, capturando na interface eth1. Observe os pacotes capturados, dando especial atenção aos encapsulamentos na camada de enlace. Veja que o enlace PPP envolve quadros PPP encapsulados em quadros PPPoE, que por sua vez estão encapsulados em quadros Ethernet.
    • Observe os campos dos quadros PPP: em que eles diferem dos quadros PPP de enlaces feitos com portas seriais ?
    • Observe os campos dos quadros PPPoE: o que eles significam ?
    • Por fim, confira os endereços MAC dos quadros Ethernet: a que equipamentos eles correspondem ?
  5. Encerre o enlace PPPoE em rotadsl usando este comando:
    killall pppd
    
  6. Encerre o wireshark. Em seguida reinicie-o em ac, com captura na interface eth1.
  7. Reinicie o enlace PPPoE em rotadsl usando este comando:
    pppd call adsl
    
  8. No wireshark clique no botão para recarregar (ou tecle CTRL R), e observe os pacotes capturados. veja os primeiros quadros PPPoE e compare-os com a descrição na wiki. O que se pode concluir sobre esses quadros iniciais ?
Versão manual do experimento

A ativação dos enlaces PPPoE foi realizada de forma automática pelo Netkit, porém pode-se fazer isso manualmente. A diferença está na manipulação de arquivos e programas do Linux usados para criar esses enlaces. Quem gosta de descer o nível, ou de saber como de fato são configurados esses softwares, pode repetir o experimento fazendo a configuração manual.

global[compact]=True
global[mem]=24

pc1[type]=generic
pc2[type]=generic
rotadsl[type]=gateway
ac[type]=gateway
internet[type]=generic

ac[eth1]=linkadsl
ac[eth0]=externo:ip=192.168.1.1/24
ac[default_gateway]=192.168.1.254

internet[eth0]=externo:ip=192.168.1.254/24
internet[route]=10.0.0.0/24:gateway=192.168.1.1

rotadsl[eth0]=linkadsl
rotadsl[eth1]=lan:ip=10.0.0.254/24
rotadsl[nat]=ppp0

pc1[eth0]=lan:ip=10.0.0.1/24
pc1[default_gateway]=10.0.0.254
pc2[eth0]=lan:ip=10.0.0.2/24
pc2[default_gateway]=10.0.0.254

Os seguintes passos devem ser feitos antes do experimento:

1. No ac, a interface eth1 será usada para os enlaces PPPoE, e a interface eth0 dará acesso à rede externa. A máquina virtual internet representa a Internet ;-)

3. No AC crie o arquivo /etc/ppp/pppoe-server-options com o seguinte conteúdo:

require-chap
noauth
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 200.135.37.65
netmask 255.255.255.0
noipdefault
debug
kdebug 4

4. Crie no AC o arquivo /etc/ppp/chap-secrets com o seguinte conteúdo:

usuario1 * senha1

5. Crie o arquivo /etc/ppp/faixa-ip no AC com o seguinte conteúdo:

172.18.1.1-10

6. Ative o servidor PPPoE no AC:

pppoe-server -C rco2 -L 172.18.1.20 -p /etc/ppp/faixa-ip -I eth1

7. Em rotadsl deve-se criar o arquivo /etc/ppp/peers/rco2 com este conteúdo:

pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452 -C rco2"
noipdefault
usepeerdns
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist
mtu 1492
noaccomp
user usuario1
default-asyncmap

8. Crie em rotadsl o arquivo /etc/ppp/chap-secrets com este conteúdo:

usuario1 * senha1

9. Execute em ac o wireshark pelo Netkit (menu Wireshark), e ative o monitoramento na interface eth1.

10. Em rotadsl ative o enlace PPPoE, executando:

pppd call rco2

11. Agora você pode seguir os passos do roteiro original ...