Mudanças entre as edições de "RCO2-lab-pppoe"
Linha 20: | Linha 20: | ||
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 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: | ||
− | [[imagem:Lab- | + | [[imagem:Lab-pppoe-novo.png|400px]] |
Linha 30: | Linha 30: | ||
{{collapse top | Configuração para o Netkit}} | {{collapse top | Configuração para o Netkit}} | ||
<syntaxhighlight lang=text> | <syntaxhighlight lang=text> | ||
− | + | global[compact]=True | |
+ | global[mem]=24 | ||
+ | |||
pc1[type]=generic | pc1[type]=generic | ||
pc2[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 | |
− | |||
− | pc1[eth0]= | + | 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}} | {{collapse bottom}} | ||
− | 1. | + | # Inicie a rede. Em seguida, 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. | ||
+ | |||
<syntaxhighlight lang=text> | <syntaxhighlight lang=text> | ||
− | ac[eth0]= | + | 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> | ||
− | + | 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: | 3. No AC crie o arquivo /etc/ppp/pppoe-server-options com o seguinte conteúdo: | ||
Linha 74: | Linha 131: | ||
<syntaxhighlight lang=text> | <syntaxhighlight lang=text> | ||
usuario1 * senha1 | usuario1 * senha1 | ||
− | |||
− | |||
− | |||
</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. | + | 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 | + | pppoe-server -C rco2 -L 172.18.1.20 -p /etc/ppp/faixa-ip -I eth1 |
</syntaxhighlight> | </syntaxhighlight> | ||
− | 7. Em | + | 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 | + | pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452 -C rco2" |
noipdefault | noipdefault | ||
usepeerdns | usepeerdns | ||
Linha 104: | Linha 158: | ||
mtu 1492 | mtu 1492 | ||
noaccomp | noaccomp | ||
− | user | + | user usuario1 |
default-asyncmap | default-asyncmap | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 8. Crie | + | 8. Crie em ''rotadsl'' o arquivo /etc/ppp/chap-secrets com este conteúdo: |
<syntaxhighlight lang=text> | <syntaxhighlight lang=text> | ||
− | + | usuario1 * senha1 | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | 9. Execute o ''wireshark'' pelo Netkit (menu Wireshark), e ative o monitoramento na interface eth1 | + | 9. Execute em ''ac'' o ''wireshark'' pelo Netkit (menu Wireshark), e ative o monitoramento na interface eth1. |
− | 10. | + | 10. Em ''rotadsl'' ative o enlace PPPoE, executando: |
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
Linha 122: | Linha 176: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 11. | + | 11. Agora você pode seguir os passos do roteiro original ... |
− | + | {{collapse bottom}} | |
− | |||
− | |||
− | |||
− | |||
− |
Edição das 15h00min 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.
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 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:
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.
Para criar o enlace PPPoE serão usados os softwares pppd e pppoe dentro do Netkit.
Configuração para o 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
|
- Inicie a rede. Em seguida, verifique se foi ativada a interface ppp0 em rotadsl (que faz o papel de roteador ADSL):
ifconfig ppp0
- Teste a comunicação entre ambos PCs e internet:
ping 192.168.1.254
- 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:
killall pppd
- Encerre o wireshark. Em seguida reinicie-o em ac, com captura na interface eth1.
- Reinicie o enlace PPPoE em rotadsl usando este comando:
pppd call adsl
- 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 ... |