linux-ppp.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* IPv6 with pppd
@ 2019-06-26 11:30 Levente
  2019-06-26 12:45 ` James Carlson
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Levente @ 2019-06-26 11:30 UTC (permalink / raw)
  To: linux-ppp

Dear maintainer,


I am struggling with IPv6 over PPP on Linux. The situation is that I
have a 3G modem, when I plug it in to the USB on my Debian box,
everything works as expected, I have IPv6 address from the provider,
and I am happy. But how?

This is the relevant log:

Jun 14 12:37:03 mercury pppd[3282]: Serial connection established.
Jun 14 12:37:03 mercury pppd[3282]: using channel 2
Jun 14 12:37:03 mercury pppd[3282]: Using interface ppp0
Jun 14 12:37:03 mercury pppd[3282]: Connect: ppp0 <--> /dev/ttyUSB3
Jun 14 12:37:04 mercury pppd[3282]: sent [LCP ConfReq id=0x1 <asyncmap
0x0> <magic 0xa2034878> <pcomp> <accomp>]
Jun 14 12:37:04 mercury pppd[3282]: rcvd [LCP ConfReq id=0x3 <asyncmap
0x0> <auth chap MD5> <magic 0xc700eac2> <pcomp> <accomp>]
Jun 14 12:37:04 mercury pppd[3282]: No auth is possible
Jun 14 12:37:04 mercury pppd[3282]: sent [LCP ConfRej id=0x3 <auth chap MD5>]
Jun 14 12:37:04 mercury pppd[3282]: rcvd [LCP ConfAck id=0x1 <asyncmap
0x0> <magic 0xa2034878> <pcomp> <accomp>]
Jun 14 12:37:04 mercury pppd[3282]: rcvd [LCP ConfReq id=0x4 <asyncmap
0x0> <magic 0xc700eac2> <pcomp> <accomp>]
Jun 14 12:37:04 mercury pppd[3282]: sent [LCP ConfAck id=0x4 <asyncmap
0x0> <magic 0xc700eac2> <pcomp> <accomp>]
Jun 14 12:37:04 mercury pppd[3282]: sent [LCP EchoReq id=0x0 magic=0xa2034878]
Jun 14 12:37:04 mercury pppd[3282]: sent [IPCP ConfReq id=0x1 <addr
0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 14 12:37:04 mercury pppd[3282]: sent [IPV6CP ConfReq id=0x1 <addr
fe80::3d17:0512:2b44:658b>]
Jun 14 12:37:04 mercury pppd[3282]: rcvd [LCP DiscReq id=0x5 magic=0xc700eac2]
Jun 14 12:37:04 mercury pppd[3282]: rcvd [LCP EchoRep id=0x0
magic=0xc700eac2 a2 03 48 78]
Jun 14 12:37:05 mercury pppd[3282]: rcvd [IPV6CP ConfNak id=0x1 <addr
fe80::330e:c05c:0d76:f234>]
Jun 14 12:37:05 mercury pppd[3282]: sent [IPV6CP ConfReq id=0x2]
Jun 14 12:37:06 mercury pppd[3282]: rcvd [IPV6CP ConfNak id=0x1 <addr
fe80::fc17:3ad2:5917:3248>]
Jun 14 12:37:07 mercury pppd[3282]: sent [IPCP ConfReq id=0x1 <addr
0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 14 12:37:08 mercury pppd[3282]: rcvd [IPV6CP ConfReq id=0x0 <addr
fe80::2c26:30b4:e65c:5b4a>]
Jun 14 12:37:08 mercury pppd[3282]: sent [IPV6CP ConfAck id=0x0 <addr
fe80::2c26:30b4:e65c:5b4a>]
Jun 14 12:37:08 mercury pppd[3282]: rcvd [IPV6CP ConfNak id=0x2 <addr
fe80::303e:582f:ea95:aa10>]
Jun 14 12:37:08 mercury pppd[3282]: sent [IPV6CP ConfReq id=0x3 <addr
fe80::303e:582f:ea95:aa10>]
Jun 14 12:37:08 mercury pppd[3282]: rcvd [IPV6CP ConfAck id=0x3 <addr
fe80::303e:582f:ea95:aa10>]
Jun 14 12:37:08 mercury pppd[3282]: local  LL address fe80::303e:582f:ea95:aa10
Jun 14 12:37:08 mercury pppd[3282]: remote LL address fe80::2c26:30b4:e65c:5b4a
Jun 14 12:37:08 mercury pppd[3282]: Script /etc/ppp/ipv6-up started (pid 3298)
Jun 14 12:37:08 mercury pppd[3282]: Script /etc/ppp/ipv6-up finished
(pid 3298), status = 0x0

After seeing the interface, I have the global scope address like this:

lev@mercury:~$ /sbin/ifconfig ppp0
ppp0: flagsC05<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet6 2a00:1110:135:4594:303e:582f:ea95:aa10  prefixlen 64
scopeid 0x0<global>
        inet6 fe80::303e:582f:ea95:aa10  prefixlen 10  scopeid 0x20<link>
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 73  bytes 14234 (13.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 95  bytes 10012 (9.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Please note that in the logs, I can't see that global scope address,
and I don't know how the IPv6CP assigns this address to the interface.
How is this done?

And when I plug the same modem to an OpenWRT box, I don't get the
global scope address, only the link-local address. Is this some PPP
specific problem, or there might be some IPv6 autoconfiguration magic
happening in the background? I don't think so, because that address
corresponds to a statically allocated address of the provider.

lev@mercury:~$ host 2a00:1110:135:4594:303e:582f:ea95:aa10
0.1.a.a.5.9.a.e.f.2.8.5.e.3.0.3.4.9.5.4.5.3.1.0.0.1.1.1.0.0.a.2.ip6.arpa
domain name pointer
2A00111001354594303E582FEA95AA10.mobile.pool.telekom.hu.

Could you help me out what is going on here, and why can't I get a
global scope address on the OpenWRT? I'm sure it is an OpenWRT issue,
but need help tracing it.


Thanks,
Levente

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: IPv6 with pppd
  2019-06-26 11:30 IPv6 with pppd Levente
@ 2019-06-26 12:45 ` James Carlson
  2019-06-26 14:43 ` Levente
  2019-06-26 15:28 ` Michael Richardson
  2 siblings, 0 replies; 4+ messages in thread
From: James Carlson @ 2019-06-26 12:45 UTC (permalink / raw)
  To: linux-ppp

On 06/26/19 07:30, Levente wrote:
> Dear maintainer,
> 
> 
> I am struggling with IPv6 over PPP on Linux. The situation is that I
> have a 3G modem, when I plug it in to the USB on my Debian box,
> everything works as expected, I have IPv6 address from the provider,
> and I am happy. But how?

There may be problems with this trace, possibly indicating 3G-specific
authentication issues, but if your only question is about IPv6, the
answer is very simple.  PPP doesn't negotiate global scope addresses in
IPv6.  It does link-local only.  Global scope addresses come from either
ICMPv6 Router Advertisements, DHCPV6 address assignments, or static
configuration.

> Please note that in the logs, I can't see that global scope address,
> and I don't know how the IPv6CP assigns this address to the interface.
> How is this done?

Some other protocol.  IPV6CP is not involved.

> And when I plug the same modem to an OpenWRT box, I don't get the
> global scope address, only the link-local address. Is this some PPP
> specific problem, or there might be some IPv6 autoconfiguration magic
> happening in the background? I don't think so, because that address
> corresponds to a statically allocated address of the provider.
> 
> lev@mercury:~$ host 2a00:1110:135:4594:303e:582f:ea95:aa10
> 0.1.a.a.5.9.a.e.f.2.8.5.e.3.0.3.4.9.5.4.5.3.1.0.0.1.1.1.0.0.a.2.ip6.arpa
> domain name pointer
> 2A00111001354594303E582FEA95AA10.mobile.pool.telekom.hu.
> 
> Could you help me out what is going on here, and why can't I get a
> global scope address on the OpenWRT? I'm sure it is an OpenWRT issue,
> but need help tracing it.

My guess would be that the OpenWRT box doesn't have IPv6 routing enabled
and isn't doing RAs.  That's just a guess.  I don't believe the issues
you're having here have anything to do with PPP.

-- 
James Carlson         42.703N 71.076W         <carlsonj@workingcode.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: IPv6 with pppd
  2019-06-26 11:30 IPv6 with pppd Levente
  2019-06-26 12:45 ` James Carlson
@ 2019-06-26 14:43 ` Levente
  2019-06-26 15:28 ` Michael Richardson
  2 siblings, 0 replies; 4+ messages in thread
From: Levente @ 2019-06-26 14:43 UTC (permalink / raw)
  To: linux-ppp

Yes, you are right. This issue has nothing to do with pppd, it is/was
an OpenWRT misconfiguration. BTW, it works now. Thank you for your
suggestion!

Best regards,
Levente

On Wed, Jun 26, 2019 at 2:45 PM James Carlson <carlsonj@workingcode.com> wrote:
>
> On 06/26/19 07:30, Levente wrote:
> > Dear maintainer,
> >
> >
> > I am struggling with IPv6 over PPP on Linux. The situation is that I
> > have a 3G modem, when I plug it in to the USB on my Debian box,
> > everything works as expected, I have IPv6 address from the provider,
> > and I am happy. But how?
>
> There may be problems with this trace, possibly indicating 3G-specific
> authentication issues, but if your only question is about IPv6, the
> answer is very simple.  PPP doesn't negotiate global scope addresses in
> IPv6.  It does link-local only.  Global scope addresses come from either
> ICMPv6 Router Advertisements, DHCPV6 address assignments, or static
> configuration.
>
> > Please note that in the logs, I can't see that global scope address,
> > and I don't know how the IPv6CP assigns this address to the interface.
> > How is this done?
>
> Some other protocol.  IPV6CP is not involved.
>
> > And when I plug the same modem to an OpenWRT box, I don't get the
> > global scope address, only the link-local address. Is this some PPP
> > specific problem, or there might be some IPv6 autoconfiguration magic
> > happening in the background? I don't think so, because that address
> > corresponds to a statically allocated address of the provider.
> >
> > lev@mercury:~$ host 2a00:1110:135:4594:303e:582f:ea95:aa10
> > 0.1.a.a.5.9.a.e.f.2.8.5.e.3.0.3.4.9.5.4.5.3.1.0.0.1.1.1.0.0.a.2.ip6.arpa
> > domain name pointer
> > 2A00111001354594303E582FEA95AA10.mobile.pool.telekom.hu.
> >
> > Could you help me out what is going on here, and why can't I get a
> > global scope address on the OpenWRT? I'm sure it is an OpenWRT issue,
> > but need help tracing it.
>
> My guess would be that the OpenWRT box doesn't have IPv6 routing enabled
> and isn't doing RAs.  That's just a guess.  I don't believe the issues
> you're having here have anything to do with PPP.
>
> --
> James Carlson         42.703N 71.076W         <carlsonj@workingcode.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: IPv6 with pppd
  2019-06-26 11:30 IPv6 with pppd Levente
  2019-06-26 12:45 ` James Carlson
  2019-06-26 14:43 ` Levente
@ 2019-06-26 15:28 ` Michael Richardson
  2 siblings, 0 replies; 4+ messages in thread
From: Michael Richardson @ 2019-06-26 15:28 UTC (permalink / raw)
  To: linux-ppp

[-- Attachment #1: Type: text/plain, Size: 2420 bytes --]


Levente <leventelist@gmail.com> wrote:
    > I am struggling with IPv6 over PPP on Linux. The situation is that I
    > have a 3G modem, when I plug it in to the USB on my Debian box,
    > everything works as expected, I have IPv6 address from the provider,
    > and I am happy. But how?

...

    > Please note that in the logs, I can't see that global scope address,
    > and I don't know how the IPv6CP assigns this address to the interface.
    > How is this done?

IPv6CP does not.
The major difference between IPCP and IPv6CP is that it was realized that in
IPv4, the IPCP people were having to repeat all the DHCPv4 work again in
IPCP, and why not just run DHCP?

So in IPv6CP, *ALL* IPv6CP does it assign the LL address (which are either
made up randomly, or come from an IID/EUI/OUI of a physical interface).

Then, an IPv6 RS/RA occurs, which MAY assign an address (M=0), or MAY
suggest using DHCPv6 (M=1).  My experience is that many devices do both,
and one winds up with two addresses.

If DHCPv6-PD also occurs (O=1), then there is actually no reason to even
number the PPP link with a GUA, as one can just use a GUA from an downstream
interface.

In my copious spare time, I hope to write an RFC updating 7084 that provides
a way for the ISP to understand what the CPE device would like, such that the
ISP does not have to deal with all the situations of single-device-with-/64,
single-device-that-may-tether-with-/64, WAN-link-numbered+PD, or
WAN-link-unnumbered+PD.  There are scaling efficiencies for the ISP in the size of
it's access network routing table if each customer costs a single TCAM slot
rather than two, sometimes three.

    > And when I plug the same modem to an OpenWRT box, I don't get the
    > global scope address, only the link-local address. Is this some PPP
    > specific problem, or there might be some IPv6 autoconfiguration magic
    > happening in the background? I don't think so, because that address
    > corresponds to a statically allocated address of the provider.

I assume PPPoE, and modem is DSL or CableModem (not dialup).
What version of OpenWRT?  18.06 just works!

Feel free to unicast me your /etc/config/network

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-06-26 15:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-26 11:30 IPv6 with pppd Levente
2019-06-26 12:45 ` James Carlson
2019-06-26 14:43 ` Levente
2019-06-26 15:28 ` Michael Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).