Discussion:
IPv6 link local address generation for P2P interfaces
(too old to reply)
Martin Husemann
2008-07-16 22:45:21 UTC
Permalink
Maybe a naive question: the magic that generates link local addresses for
IPv6 interfaces does not seem to care about POINTOPOINT interfaces,
so it creates strange setups like this:

inet6 fe80::a00:20ff:fe99:fc91%pppoe1 -> prefixlen 64 scopeid 0xb
or
inet6 fe80::a00:20ff:fe99:fc91%gre0 -> prefixlen 64 scopeid 0x9

Should it check IFF_POINTOPOINT, generate a destination address too and
adjust prefixlen?

I'm trying to understand the setup of pppoe(4) for IPv6. The ipcp6 negotiation
uses the first link local address, including it's destination address if not
unspecified as initial suggestion for the negotiation, which does not make
a lot sense to me in the default setup.

Martin

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Greg Troxel
2008-07-17 00:42:30 UTC
Permalink
Maybe a naive question: the magic that generates link local addresses for
IPv6 interfaces does not seem to care about POINTOPOINT interfaces,
so it creates strange setups like this:

inet6 fe80::a00:20ff:fe99:fc91%pppoe1 -> prefixlen 64 scopeid 0xb
or
inet6 fe80::a00:20ff:fe99:fc91%gre0 -> prefixlen 64 scopeid 0x9

Should it check IFF_POINTOPOINT, generate a destination address too and
adjust prefixlen?

I don't think it should be making up a destination address. besides not
thinking the specs say that, how would it ensure that the address was
known by the far side? When I had a ppp link to work, I had link local
addresses on each end and ran RIPng. Each side sent multicast and
discovered the other, and then forwarded datagrams via the others link
local address, IIRC.

Why do you think prefixlen should be other than 64?

I'm trying to understand the setup of pppoe(4) for IPv6. The ipcp6
negotiation uses the first link local address, including it's
destination address if not unspecified as initial suggestion for the
negotiation, which does not make a lot sense to me in the default
setup.

I would say that it should suggest the local link-local address for the
local side, and not suggest an address for the far side. But I'm not at
all sure.

Is this special for pppoe, or does all ppp with v6 do this?

When I did ppp, all it took was +ipv6 or something like that in the
configs on both sides and it came up with working link-local addresses,
and then RIPng on both sides, and the attached ethernets on both systems
were routed to each other.

Do you have a provider that will do IPv6 over pppoe?


--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Martin Husemann
2008-07-17 07:15:48 UTC
Permalink
Post by Greg Troxel
When I did ppp, all it took was +ipv6 or something like that in the
configs on both sides and it came up with working link-local addresses,
and then RIPng on both sides, and the attached ethernets on both systems
were routed to each other.
As I said my question might have been naive - never played with IPv6
before. What you describe is exactly what happens here, the missing point
is that I did not run RIPng yet.

The interfaces come up like this:

pppoe1: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
inet X.X.X.X -> Y.Y.Y.Y netmask 0xff000000
inet6 fe80::a00:20ff:fe99:fc91%pppoe1 -> prefixlen 64 scopeid 0xb

The first confusing point is that this gives no hint wether IPCP6 succeeded
or not (it did, I checked via the debug log); with a INET6 enabled kernel all
pppoe interface look like this, even those to providers that do not support
v6.

Will /etc/rc.d automatically run RIPng for me if I configure ip6mode to router?
Post by Greg Troxel
Do you have a provider that will do IPv6 over pppoe?
Yes.

Thanks,

Martin

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
i***@netbsd.org
2008-07-17 10:28:15 UTC
Permalink
Hi,

I'm using in my script /etc/rc.d/$provider :

EIF=sip2
PIF=pppoe1

case $1 in
start)

ifconfig ${EIF} up
ifconfig ${PIF} create

pppoectl -v -e ${EIF} ${PIF}
pppoectl -v ${PIF} \
myauthproto=pap \
myauthname="some-id" \
myauthsecret="some-secret" \
hisauthproto=none query-dns=3 \
max-auth-failure=0

ifconfig ${PIF} up
route add -inet6 my:pre:fix:: ::1 -prefixlen 48 -reject
route add -inet6 3ffe:: ::1 -prefixlen 16 -reject
route add -inet6 default fe80::2 -iface -ifp ${PIF}
# ifconfig ${PIF} 0.0.0.0 0.0.0.1 link1 up
# route add default 0.0.0.1
;;


There's no need to really know the ppp's real destination address
unless you want to ping it for a test; all that's needed is to
force the packet going out it, and not use your own side's address.

Don't forget the -reject route for your own /48, else you're susceptible
to (voluntary or involuntary) amplification attacks. (Your local network
routes will override that, as they're more specific.)

I reject the 6bone range because when it was shut down, some AAAA entries
persisted and let to black holes, resulting in looong timeouts. Maybe I
should remove that line in a few years ;-)

Regards
-is

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Greg Troxel
2008-07-17 13:04:47 UTC
Permalink
Post by Martin Husemann
Post by Greg Troxel
When I did ppp, all it took was +ipv6 or something like that in the
configs on both sides and it came up with working link-local addresses,
and then RIPng on both sides, and the attached ethernets on both systems
were routed to each other.
As I said my question might have been naive - never played with IPv6
before. What you describe is exactly what happens here, the missing point
is that I did not run RIPng yet.
Maybe, but I'm not convinced.
Post by Martin Husemann
pppoe1: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
inet X.X.X.X -> Y.Y.Y.Y netmask 0xff000000
inet6 fe80::a00:20ff:fe99:fc91%pppoe1 -> prefixlen 64 scopeid 0xb
The first confusing point is that this gives no hint wether IPCP6 succeeded
or not (it did, I checked via the debug log); with a INET6 enabled kernel all
pppoe interface look like this, even those to providers that do not support
v6.
that sounds ok
Post by Martin Husemann
Will /etc/rc.d automatically run RIPng for me if I configure ip6mode to router?
I don't think so.
Post by Martin Husemann
Post by Greg Troxel
Do you have a provider that will do IPv6 over pppoe?
Yes.
The missing step here is that they should be providing you with a global
address somehow, and really a /48. Did they convey that to you out of
band? Or is that supposed to be in some PPP options? Have you
configured it? Did they say they want to run RIPng with you? See is@'s
mail - I suspect that's closer to what you want.

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Martin Husemann
2008-07-17 15:34:29 UTC
Permalink
Post by Greg Troxel
The missing step here is that they should be providing you with a global
address somehow, and really a /48.
They did (a /48), but I was unable to connect the pieces - now things are
starting to become clear for me. The link local addresses certainly are
elegant, but confusing if you try to bring over old habbits from IPv4.

Thanks,

Martin

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Matthias Scheler
2008-07-17 21:53:40 UTC
Permalink
Post by Martin Husemann
Should it check IFF_POINTOPOINT, generate a destination address too and
adjust prefixlen?
You can just set one. That's what I used in "/etc/ifconfig.pppoe0" in
the past:

inet6 2001:8b0:114:2::1 fe80::2 prefixlen 128

"defaultroute6" was set to "fe80::2 -iface -ifp pppoe0" in "/etc/
rc.conf".

Kind regards
--
Matthias Scheler http://zhadum.org.uk/



--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...