[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dhcpv6 + pppoe



Oi Paulino,
 
O accept_ra 2 faz com que a interface se autoconfigure por slaac e receba o defaut gateway.
 
O forwarding é a mesma coisa que em V4, quando ativado, permite o encaminhamento de pacote entre as interfaces.
 
Nas ativaçoes que fiz, precisei setar para 1, vou testar com 0 como o seu, mas acredito que não seja o problema. Acredito que quando voce implementar, vai precisar setar em 1 também.
 
A nomeclatura terei de testar outro dia, estou remoto em um servidor em produção.
 
Realmente uns 3 anos atras, na versão jessie, consegui fazer funcionar de primeira.  Depois parou de funcionar.
 
Desses links “domésticos” a única que está entregando /56 é a velox.
 
A net entrega /64 mas se voce requisitar um segundo /64 para uma segunda lan, funciona.
 
A vivo fibra empresarial entrega /60 estático, e voce precisa solicitar a operadora para adicionar rota para o ip da sua wan.
 
A vivo dsl pppoe também entrega /64 e acredito que também entregue um segundo prefixo.
 
Apenas essa dificuldade em fazer funcionar, na jessie funcionava, na stretch parou, achei que tinham consertado na buster.
 
 
 
 
Sent: Thursday, July 11, 2019 4:39 PM
Cc: dup
Subject: Re: dhcpv6 + pppoe
 
Ola,
Não recordo exatamente o motivo de ter incluído essas duas linhas no arquivo /etc/ppp/ipv6-up.d/0001adslstart
sysctl -w net.ipv6.conf.ppp0.accept_ra=2
sysctl -w net.ipv6.conf.ppp0.forwarding=0
 
Na interface LAN, ambos estão iguais a 1.
 
Detalhe importante, o kernel nesse host e o 2.6.26-2-686 (Não mexa em coisa que esta funcionando).  Existe uma diferença no comportamento dos parâmetros de ipv6 nos kernel atuais.
 
Pode desativar essa nomenclatura das interfaces e usar o original do kernel.
no /etc/default/grub, na linha:
GRUB_CMDLINE_LINUX="nomodeset i915.modeset=0 net.ifnames=0 biosdevname=0 consoleblank=0"
 
Inclua os  parâmetros net.ifnames=0 e biosdevname=0
e rode o update-grub, no próximo boot, as interfaces terão os nomes ethX, então terá que alterar no interfaces.
E, precisa carregar os modulos de rede em um sequencia pré definida, ou as ethX ficarão mudando fisicamente de "placa'.
Coloque os modulos das placas em /etc/modules,  placas (chip) que usam o mesmo modulo serão nomeados conforme a sequencia do slot PCI (enumeração do próprio barramento PCI).
 
 
Tenho aqui um ambiente com três links de Internet, então, tem várias configurações que foram feitas para impedir que um link entre em conflito com outro. No ipv4 isso não acontecia, mas com o ipv6 percebi que a rota padrão as vezes mudava para um host que não tem saída ipv6, e outras coisas estranhas.
 
 
Paulino.
 
On Thu, Jul 11, 2019 at 4:01 PM Suporte - Informatica Digital <suporte@informaticadigital.com.br> wrote:
Oi Paulino, obrigado pelo retorno.
 
Está configurado exatamente igual, a pppoe pegou ip válido por slaac, consigo pingar fora normalmente.
 
No wide-dhcp6-client, seu arquivo de configuração está igual o meu, apenas comentei o dns porque uso o bind.
 
Testei com o mesmo comando que voce e tive o resultado abaixo.
 
Usando a operadora net, que é dhcp, funciona perfeitamente, tenho em produção a mais de 1 ano.
 
Desconfio que seja algum bug da pppoe com a nova nomeclatura das interfaces, porque em um teste, coloquei no arquivo de configuraçao da pppoe o parametro : ipv6cp-use-persistent
e ao executar pon dsl-provider, recebi o seguinte erro:
“could not obtain hardware for eth0”
 
A interface eth0 nao existe, a ppp deveria estar buscando enp3s0
 
Testei de todas as formas que possa imaginar, a interface ppp0 simplesmente descarta a resposta da operadora.
 
 
root@SRV01:~# dhcp6c -c /etc/wide-dhcpv6/dhcp6c.conf2 -dDf ppp0
Jul/11/2019 15:27:18: get_duid: extracted an existing DUID from /var/lib/dhcpv6/dhcp6c_duid: 00:01:00:01:23:61:14:5d:18:03:73:eb:87:b9
Jul/11/2019 15:27:18: cfdebug_print: <3>[interface] (9)
Jul/11/2019 15:27:18: cfdebug_print: <5>[ppp0] (4)
Jul/11/2019 15:27:18: cfdebug_print: <3>begin of closure [{] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[request] (7)
Jul/11/2019 15:27:18: cfdebug_print: <3>[domain-name-servers] (19)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[request] (7)
Jul/11/2019 15:27:18: cfdebug_print: <3>[domain-name] (11)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[send] (4)
Jul/11/2019 15:27:18: cfdebug_print: <3>[ia-pd] (5)
Jul/11/2019 15:27:18: cfdebug_print: <3>[0] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of closure [}] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[id-assoc] (8)
Jul/11/2019 15:27:18: cfdebug_print: <15>[pd] (2)
Jul/11/2019 15:27:18: cfdebug_print: <15>begin of closure [{] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[prefix-interface] (16)
Jul/11/2019 15:27:18: cfdebug_print: <5>[eno1] (4)
Jul/11/2019 15:27:18: cfdebug_print: <3>begin of closure [{] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[sla-id] (6)
Jul/11/2019 15:27:18: cfdebug_print: <3>[0] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[sla-len] (7)
Jul/11/2019 15:27:18: cfdebug_print: <3>[0] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of closure [}] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of closure [}] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>[id-assoc] (8)
Jul/11/2019 15:27:18: cfdebug_print: <15>[na] (2)
Jul/11/2019 15:27:18: cfdebug_print: <15>[0] (1)
Jul/11/2019 15:27:18: cfdebug_print: <15>begin of closure [{] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of closure [}] (1)
Jul/11/2019 15:27:18: cfdebug_print: <3>end of sentence [;] (1)
Jul/11/2019 15:27:18: configure_pool: called
Jul/11/2019 15:27:18: configure_commit: some IA configuration defined but not used
Jul/11/2019 15:27:18: clear_poolconf: called
Jul/11/2019 15:27:18: dhcp6_reset_timer: reset a timer on ppp0, state=INIT, timeo=0, retrans=830
Jul/11/2019 15:27:18: client6_send: a new XID (9a48b) is generated
Jul/11/2019 15:27:18: copy_option: set client ID (len 14)
Jul/11/2019 15:27:18: copy_option: set elapsed time (len 2)
Jul/11/2019 15:27:18: copy_option: set option request (len 4)
Jul/11/2019 15:27:18: copyout_option: set IA_PD
Jul/11/2019 15:27:18: client6_send: send solicit to ff02::1:2%ppp0
Jul/11/2019 15:27:18: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=0, retrans=1025
Jul/11/2019 15:27:19: copy_option: set client ID (len 14)
Jul/11/2019 15:27:19: copy_option: set elapsed time (len 2)
Jul/11/2019 15:27:19: copy_option: set option request (len 4)
Jul/11/2019 15:27:19: copyout_option: set IA_PD
Jul/11/2019 15:27:19: client6_send: send solicit to ff02::1:2%ppp0
Jul/11/2019 15:27:19: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=1, retrans=2007
Jul/11/2019 15:27:21: copy_option: set client ID (len 14)
Jul/11/2019 15:27:21: copy_option: set elapsed time (len 2)
Jul/11/2019 15:27:21: copy_option: set option request (len 4)
Jul/11/2019 15:27:21: copyout_option: set IA_PD
Jul/11/2019 15:27:21: client6_send: send solicit to ff02::1:2%ppp0
Jul/11/2019 15:27:21: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=2, retrans=3879
Jul/11/2019 15:27:25: copy_option: set client ID (len 14)
Jul/11/2019 15:27:25: copy_option: set elapsed time (len 2)
Jul/11/2019 15:27:25: copy_option: set option request (len 4)
Jul/11/2019 15:27:25: copyout_option: set IA_PD
Jul/11/2019 15:27:25: client6_send: send solicit to ff02::1:2%ppp0
Jul/11/2019 15:27:25: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=3, retrans=7694
^C
 
 
 
 
 
Sent: Thursday, July 11, 2019 2:03 PM
Cc: dup
Subject: Re: dhcpv6 + pppoe
 
Ola,
Tenho pouca experiência com isso, mas, vamos lá.
Pelo ip do DNS, a operadora parece ser a Vivo.
Para receber a delegação ipv6, precisa user o wide-dhcpv6-client.
As operadoras, ao contrário da recomendação estão distribuindo um prefixo /64 (recomendado e um /56 ou /48).
Primeira coisa a fazer e configurar o pppd (pppoe) para usar o ipv6. +ipv6 na config do peer, como exemplo a conf. que estou usando (não copie e cole).
### /etc/ppp/peer/provedor
user u@net
plugin rp-pppoe.so
eth1
noipdefault
#defaultroute
nodefaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
noauth
persist
maxfail 0
mtu 1492
noaccomp
default-asyncmap
noproxyarp
+ipv6
###
 
E o dhcp6c.conf
### /etc/wide-dhcpv6/dhcp6c.conf
interface ppp0 // interface onde esta a WAN
{
#  information-only;
  request domain-name-servers;
  request domain-name;
  send ia-pd 0;
#  send ia-na 0;

# script "/etc/wide-dhcpv6/dhcp6c-script";
};
id-assoc pd {
        prefix-interface eth0.6 { // interface da LAN
           sla-id 0;
           sla-len 0;
        };
};
id-assoc na 0 {
};
###
Faça  o teste usando o seguinte comando, rodara em primeiro plano e mostrara o que esta ocorrendo:
dhcp6c -c /etc/wide-dhcpv6/dhcp6c.conf -dDf ppp0
Meus testes pararam aqui, não cheguei a colocar essa delegação ipv6 de fato na rede.
 
Pode ser que ainda existam alguma configuração necessária, do qual não lembro mais dos detalhes.
O que eu lembro e que configurar uma rede local ipv6 da muito trabalho, e tem informações conflitantes, e muitas coisas parecem ainda não funcionar em todos os sistemas operacionais.
 
Paulino.
 
 
 
 
On Thu, Jul 11, 2019 at 1:22 PM Suporte - Informatica Digital <suporte@informaticadigital.com.br> wrote:
Boa tarde amigos,
 
Alguém conseguiu fazer funcionar a delegação de prefixo ipv6 com link pppoe?  Onde consigo ajuda?
 
Testei com 3 dhcp6-client diferentes, ambos os clients dão timeout, como se a operadora não respondesse, porém com o tcpdump enxergo a resposta com o prefixo.
 
Segue o que aparece nos logs:
 
O client da timeout porque não recebe a resposta, fica eternamente tentando:
Jul 11 12:43:01 SRV01 dhcp6c[26503]: dhcp6_reset_timer: reset a timer on ppp0, state=INIT, timeo=0, retrans=120
Jul 11 12:43:01 SRV01 dhcp6c[26503]: client6_send: send solicit to ff02::1:2%ppp0
Jul 11 12:43:01 SRV01 dhcp6c[26503]: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=0, retrans=1010
Jul 11 12:43:02 SRV01 dhcp6c[26503]: client6_send: send solicit to ff02::1:2%ppp0
Jul 11 12:43:02 SRV01 dhcp6c[26503]: dhcp6_reset_timer: reset a timer on ppp0, state=SOLICIT, timeo=1, retrans=1936
 
Porém, com o tcpdump, enxergo a respsota chegando:
12:43:08.108417 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 129) fe80::e681:84ff:fe09:7001.dhcpv6-server > fe80::dcdb:9fcc:48c4:d6cf.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=ab450f (server-ID hwaddr type 1 e48184097001) (client-ID hwaddr/time type 1 time 593564765 180373eb87b9) (rapid-commit) (IA_PD IAID:1 T1:21600 T2:34560 (IA_PD-prefix 2804:7f1:e00a:3bc::/64 pltime:43200 vltime:43200)) (DNS-server 2804:7f4:2002:1005::98 2804:7f4:2002:1005::99))
 
 
Como se o pacote fosse descartado pelo ip6tables, porém limpei as regras e setei tudo como accept, e nada.
 
O problema só ocorre com link pppoe, com link dhcp (net virtua) funciona perfeitamente.
 
Agradeço se alguém puder ajudar.
 
 
 


--
Paulino Kenji Sato


--
Paulino Kenji Sato

Reply to: