# IPv6 Autoconfig Doesn't

## NeddySeagoon

Hi team,

I'm taking part in my ISPs IPv6 trial :)

They have given me a /64, that gets attached to ppp0 and a /48 that dibbler splits up into four /56 for my various router interfaces.

So far so good.  My router to the outside world works.  I can ping6 google, my Hetzner server and even its KVMs.

ssh -6 works too. 

I also run radvd to advertise the router.  Just on one interface for testing, so far.

Hosts on this interface get a route but never create their own global address.  

radvdump on my test host (not the router) shows

```
# radvdump

#

# radvd configuration generated by radvdump 2.11

# based on Router Advertisement from fe80::5054:ff:fe2b:f13e

# received by interface eth0

#

interface eth0

{

   AdvSendAdvert on;

   # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump

   AdvManagedFlag off;

   AdvOtherConfigFlag off;

   AdvReachableTime 0;

   AdvRetransTimer 0;

   AdvCurHopLimit 64;

   AdvDefaultLifetime 900;

   AdvHomeAgentFlag off;

   AdvDefaultPreference medium;

   AdvLinkMTU 1280;

   AdvSourceLLAddress on;

   prefix 2a02:8010:c002:300::/56

   {

      AdvValidLifetime 86400;

      AdvPreferredLifetime 14400;

      AdvOnLink on;

      AdvAutonomous on;

      AdvRouterAddr off;

   }; # End of prefix definition

}; # End of interface definition
```

The prefix is set manually in /etc/radvd.conf which seems rather fragile, after running 

```
dibbler-client run
```

to see what whas assigned where.

Anyway, I get autoconfigured routes but not addresses, as below

```
NeddySeagoon_Static ~ # ip -6 addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::2e0:4cff:fe69:1509/64 scope link 

       valid_lft forever preferred_lft forever

NeddySeagoon_Static ~ # ip -6 route show

2a02:8010:c002:300::/56 dev eth0  proto kernel  metric 256  expires 86271sec mtu 1280 pref medium

fe80::/64 dev eth0  proto kernel  metric 256  mtu 1280 pref medium

ff00::/8 dev eth0  metric 256  mtu 1280 pref medium

default via fe80::5054:ff:fe2b:f13e dev eth0  proto ra  metric 1024  expires 771sec mtu 1280 hoplimit 64 pref medium

NeddySeagoon_Static ~ # 
```

There is no IPv6 firewall (yet)

If I manually add IPv6 addresses to the router interface and test host, it all works, but I shouldn't need to do that.

If I configure radvd to advertise my /64 I get routes and addresses autoconfigured.

Google is not being my friend this time.

----------

## UberLord

Did dibbler also assign addresses and routes on the server?

A shame you're not using dhcpcd on the server instead of dibbler  :Wink: 

You could setup radvd to advertise exisiting prefixes on the interface rather than hardcoding.

Are you using dhcpcd on the client at all?

----------

## NeddySeagoon

UberLord,

Fancy seeing you here :)

The server seems to have routes but no addresses.

```
router ~ # ip -6 addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::5054:ff:feb7:f501/64 scope link 

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::5054:ff:fe2b:f13e/64 scope link 

       valid_lft forever preferred_lft forever

4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::5054:ff:fead:25ea/64 scope link 

       valid_lft forever preferred_lft forever

5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::5054:ff:feab:b141/64 scope link 

       valid_lft forever preferred_lft forever

10: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qlen 3

    inet6 2a02:8011:d007:2::f/64 scope global mngtmpaddr dynamic 

       valid_lft 17853sec preferred_lft 1653sec

    inet6 fe80::f/10 scope link 

       valid_lft forever preferred_lft forever

router ~ # ip -6 route show

2a02:8010:c002:200::/56 dev eth0  metric 1024  pref medium

2a02:8010:c002:300::/56 dev eth1  metric 1024  pref medium

2a02:8010:c002:400::/56 dev eth2  metric 1024  pref medium

2a02:8010:c002:500::/56 dev eth3  metric 1024  pref medium

2a02:8011:d007:2::/64 dev ppp0  proto kernel  metric 256  expires 17844sec pref medium

fe80::/64 dev eth0  proto kernel  metric 256  pref medium

fe80::/64 dev eth2  proto kernel  metric 256  pref medium

fe80::/64 dev eth3  proto kernel  metric 256  pref medium

fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 pref medium

fe80::/10 dev ppp0  metric 1  pref medium

fe80::/10 dev ppp0  proto kernel  metric 256  pref medium

ff00::/8 dev eth0  metric 256  pref medium

ff00::/8 dev eth2  metric 256  pref medium

ff00::/8 dev eth3  metric 256  pref medium

ff00::/8 dev ppp0  metric 256  pref medium

ff00::/8 dev eth1  metric 256  mtu 1500 pref medium

default via fe80::230:88ff:fe16:ec4f dev ppp0  proto ra  metric 1024  expires 1044sec hoplimit 64 pref medium
```

The test host, attached to the servers eth1, has a static IP for IPv4 and no dhcpcd at all.   Its net file reads

```
modules="iproute2"

config_eth0="192.168.100.20/24 brd 192.168.100.255"

# VM Router

routes_eth0="default via 192.168.100.253"
```

I was expecting IPv6 to justwork ... I suppose that was a bit naieve. 

That means what it says about a VM.  router is a KVM running on a Gen 7 HP Microserver. Both run hardened Gentoo.

The physical network interfaces on the Microserver are donated to bridges to get to the router.

There is a hardware bug in the four port NIC card that prevents PCI passthrough from working. 

The bridge does not get a global IPv6 address either but that doesn't seem to matter.

I'll look into having radvd to advertise exisiting prefixes, I didn't know it could do that.

I'm not adverse dhcpcd in place of dibbler.  That will be your dhcpcd I suppose?  :)

-- edit --

Now my head hurts.  My netbook has just spent several days updating and rebuilding with USE=ipv6 set.

At reboot, it just works with IPv6 on the same subnet as my main system.

```
bluebottle linux-4.2.0-gentoo-r1 # ip -6 addr show dev eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 2a02:8010:c002:31e:24f:3f49:62ea:2855/56 scope global noprefixroute dynamic 

       valid_lft 86264sec preferred_lft 14264sec

    inet6 fe80::42bb:c6ae:6dbe:7c85/64 scope link 

       valid_lft forever preferred_lft forever

bluebottle linux-4.2.0-gentoo-r1 # ip -6 route show dev eth0

2a02:8010:c002:300::/56  proto kernel  metric 202  mtu 1280 pref medium

fe80::/64  proto kernel  metric 256  pref medium

ff00::/8  metric 256  pref medium

default via fe80::5054:ff:fe2b:f13e  metric 202  mtu 1280 pref medium
```

That confirms the router end is ok.

----------

## UberLord

OK. My suggestion is to use dhcpcd instead on dibbler on the server and set it up for DHCP PD instead.

dhcpcd will delegate addresses to each interface you want to apply the prefix delegation to.

I'm sure that dibbler can do it to, and this is your problem, but I don't support dibbler  :Wink: 

----------

## UberLord

 *NeddySeagoon wrote:*   

> I was expecting IPv6 to justwork ... I suppose that was a bit naieve.

 

The good news is that dhcpcd does "Just Work".

OK, you *do* have to say "I want to request a Prefix Delegation" but that's all the extra config normally required.

The default setup on my NetBSD router also advertises addresses on each interface - the only setup requires is saying you want to advertise on which interfaces.

----------

## NP_complete

UberLord,

... and all of you guys who got dhcpcd to do prefix delegation, CAN YOU PLEASE POST YOUR DHCPCD.CONF?  I was just about to create a separate topic on this.  Sorry for possibly stealing the discussion and many thx!  It's an IPv6 Fest now!  :Smile: 

----------

## NeddySeagoon

UberLord,

Thats a job for tomorrow night.  

As an aside running 

```
# dhcpcd -6 eth0

DUID 00:01:00:01:1d:94:7f:fb:00:e0:4c:69:15:09

eth0: IAID 4c:69:15:09

eth0: soliciting an IPv6 router

eth0: Router Advertisement from fe80::5054:ff:fe2b:f13e

eth0: adding address 2a02:8010:c002:348:8334:b763:9b8e:3d86/56

eth0: adding route to 2a02:8010:c002:300::/56

eth0: adding default route via fe80::5054:ff:fe2b:f13e
```

made it work but that wiped out my static /etc/resolv.conf.

I really should think of movind my entire network to dhcpcd.  It started out with just 2 systems and sort af grew from there.

With adding IPv6 the size of /etc/hosts has just doubled.

I'll get dhcpcd running on the server, so it all works, then overhaul my network setup.

I'll post back with my IPv6 solution in case there are other readers following this thread.

Thank you for your help.

----------

## UberLord

The trick to DHCPv6 delegation is this - add noipv6rs globally, and enable it on the upstream interface.

Then setup the upstream interface to request a delegation.

If you need a normal IPv6 address via DHCPv6 setup that as well.

This very basic config. It works for me.

```

# /etc/dhcpcd.conf for basic Prefix Delegation

noipv6rs

interface ppp0

ipv6rs

ia_pd 1

```

Now launch dhcpcd like so `dhcpcd -d` and you should see everything being configured once all servers respond.

Now, there is a recent problem with DHCPv6 PD EXCLUSION which I have just fixed today, but I don't know if that's needed for you two.

----------

## UberLord

 *NeddySeagoon wrote:*   

> made it work but that wiped out my static /etc/resolv.conf.

 

Good  :Smile: 

So you have a few choices - make /etc/resolv.conf immutable and get dhcpcd errors, or stop dhcpcd from trying to update the file.

 *Quote:*   

> I really should think of movind my entire network to dhcpcd.  It started out with just 2 systems and sort af grew from there.
> 
> With adding IPv6 the size of /etc/hosts has just doubled.
> 
> I'll get dhcpcd running on the server, so it all works, then overhaul my network setup.
> ...

 

No problem  :Smile: 

----------

## NeddySeagoon

UberLord,

I've done enough for a proof of concept using dhcpcd.  Its clear that using dhcpcd for IPv6 on top of my existing mixed static/dhcpcd setup in not really the way to go.  I need to migrate my IPv4 setup to dhcpcd first, then add IPv6.

That includes faking static IPs by MAC address for all the things that need to be static, like gateways, printers and so on.

It will need to wait until the weekend.

----------

## UberLord

You know you can add noipv4 to dhcpcd.conf right? Then dhcpcd will just to ipv6 and you can keep your static ipv4 setup outside of dhcpcd.

----------

## NeddySeagoon

UberLord,

I'm using ipv6only, is that the same thing?

It almost all works but I never get a IPv6 default route out of ppp0.  I have to set that manually.

My incoming RA are

```
#

# radvd configuration generated by radvdump 2.11

# based on Router Advertisement from fe80::230:88ff:fe16:ec4f

# received by interface ppp0

#

interface ppp0

{

   AdvSendAdvert on;

   # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump

   AdvManagedFlag off;

   AdvOtherConfigFlag on;

   AdvReachableTime 0;

   AdvRetransTimer 0;

   AdvCurHopLimit 64;

   AdvDefaultLifetime 1200;

   AdvHomeAgentFlag off;

   AdvDefaultPreference medium;

   AdvLinkMTU 1492;

   prefix 2001:db8:cafe:2::/64

   {

      AdvValidLifetime 18000;

      AdvPreferredLifetime 1800;

      AdvOnLink on;

      AdvAutonomous on;

      AdvRouterAddr off;

   }; # End of prefix definition

}; # End of interface definition
```

Also, I can have eui-64 link local addresses or both eui-64 and slaac private link local addresses.

It probably doesn't really matter as both my /64 and /48 are static, so my privacy is out the window anyway.

The eui-64 link local addresses are nothing to do with dhcp as they are present even where dhcp is not installed.

Having both eui-64 and slaac private link local addresses at the router end of the network seems to break internal Router Advertisments as they don't contain a prefix. 

How do I get an automatically configured default route to the internet?

dhcpcd.conf contains

```
ipv6only

noipv6rs

interface ppp0

        ipv6rs

        ia_na

        ia_pd

        gateway
```

after all the defaults.

----------

## wuzzerd

I use resolv.conf.{head,tail} files, dhcpd's resolv.conf is in the middle

resolv.conf.head

```

# put this on top

# wuzzy's favorites

nameserver 127.0.0.1

nameserver 8.8.8.8

nameserver 8.8.8.4

# from dhcpd

```

resolv.conf.tail

```

## the tail

nameserver 2001:428::1

nameserver 2001:428::2

```

----------

## NeddySeagoon

wuzzerd,

Thanks.  I've put my static IPv4 nameservers in resolv.conf.head

----------

## UberLord

For managing resolv.conf(5) the use of resolvconf is probably of better use than dhcpcd.

I supply a very useful variant which is in portage under the name of openresolv.

----------

## UberLord

 *NeddySeagoon wrote:*   

> 
> 
> I'm using ipv6only, is that the same thing?
> 
> 

 

Currently yes.

However if and when IPv8 ever comes around then no  :Wink: 

 *Quote:*   

> 
> 
> It almost all works but I never get a IPv6 default route out of ppp0.  I have to set that manually.
> 
> My incoming RA are
> ...

 

Looks fine to me.

Can you enable debugging and post the output of the RA being received when started?

If might give a clue as to why it didn't work.

Also, emailing me the tcpdump with the RA off list might be beneficial as well.

 *Quote:*   

> 
> 
> Also, I can have eui-64 link local addresses or both eui-64 and slaac private link local addresses.
> 
> It probably doesn't really matter as both my /64 and /48 are static, so my privacy is out the window anyway.
> ...

 

I have this fixed in my latest trunk.

Which address you get should affect operating - at least not in my experience.

You can disable slaac private by settings `slaac hwaddr` in dhcpcd.conf or commenting out `slaac private`.

 *Quote:*   

> 
> 
> How do I get an automatically configured default route to the internet?
> 
> dhcpcd.conf contains
> ...

 

Try removing gateway. Other than that, email me the tcpdump with the RA and post dhcpcd debug output of it starting.

----------

## NeddySeagoon

UberLord,

I can't capture ppp0 when its not up but capturing the supporting eth2 shows all the PPPOE traffic nicely, starting with the

13:18:13.035278 PPPoE PADI  message.

Do you want the text output redirected to a file or the binary output of tcpdump with the -w option?

----------

## UberLord

Hi Neddy

Binary please.

But thinking about it, my PPPoE IPv6 native router negotiates the default route over PPP itself, IPv6RA isn't used and dhcpcd doesn't grok PPP.

Once the PPP link is up, you can then start tcpdump on it. Once tcpdump is started you can then force dhcpcd to request a RA `dhcpcd -n ppp0` should be good enough.

Hopefully the binary dump can tell us where the default route is being advertised (PPP or IPv6RA) and we can proceed from there.

----------

## NeddySeagoon

UberLord,

Heres ppp0 starting, with the dump and debug options.

Challenge, response and all static IPv4 addresses have been removed.

I get enough spam and script kiddies already.

```
Oct 04 18:24:00 [pppd] Exit.

Oct 04 18:24:03 [pppd] Plugin rp-pppoe.so loaded.

Oct 04 18:24:03 [pppd] RP-PPPoE plugin version 3.8p compiled against pppd 2.4.7

Oct 04 18:24:03 [pppd] Plugin passwordfd.so loaded.

Oct 04 18:24:03 [pppd] pppd options in effect:

Oct 04 18:24:03 [pppd] debug__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] persist__# (from command line)

Oct 04 18:24:03 [pppd] linkname ppp0__# (from command line)

Oct 04 18:24:03 [pppd] maxfail 0__# (from command line)

Oct 04 18:24:03 [pppd] unit 0__# (from command line)

Oct 04 18:24:03 [pppd] dump__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] defaultmetric 4007__# (from command line)

Oct 04 18:24:03 [pppd] plugin rp-pppoe.so__# (from command line)

Oct 04 18:24:03 [pppd] plugin passwordfd.so__# (from command line)

Oct 04 18:24:03 [pppd] user With held __# (from command line)

Oct 04 18:24:03 [pppd] remotename ppp0__# (from command line)

Oct 04 18:24:03 [pppd] passwordfd xxx # [don't know how to print value]__# (from command line)

Oct 04 18:24:03 [pppd] eth2__# (from command line)

                - Last output repeated twice -

Oct 04 18:24:03 [pppd] lcp-echo-failure 3__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] lcp-echo-interval 15__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] defaultroute__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] MyStaticIP__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] +ipv6__# (from /etc/ppp/options)

Oct 04 18:24:03 [pppd] pppd 2.4.7 started by root, uid 0

Oct 04 18:24:03 [pppd] Send PPPOE Discovery V1T1 PADI session 0x0 length 12

Oct 04 18:24:03 [pppd] dst ff:ff:ff:ff:ff:ff  src 52:54:00:ad:25:ea

Oct 04 18:24:03 [pppd] [service-name] [host-uniq  20 10 00 00]

Oct 04 18:24:08 [pppd] Send PPPOE Discovery V1T1 PADI session 0x0 length 12

Oct 04 18:24:08 [pppd] dst ff:ff:ff:ff:ff:ff  src 52:54:00:ad:25:ea

Oct 04 18:24:08 [pppd] [service-name] [host-uniq  20 10 00 00]

Oct 04 18:24:08 [pppd] Recv PPPOE Discovery V1T1 PADO session 0x0 length 48

Oct 04 18:24:08 [pppd] dst 52:54:00:ad:25:ea  src a0:f3:e4:34:d8:37

Oct 04 18:24:08 [pppd] [service-name] [AC-name acc-aln1.dhv] [host-uniq  20 10 00 00] [AC-cookie  70 3c f4 52 b7 69 77 64 8a 2b 1a 92 f6 c1 56 48]

Oct 04 18:24:08 [pppd] Send PPPOE Discovery V1T1 PADR session 0x0 length 32

Oct 04 18:24:08 [pppd] dst a0:f3:e4:34:d8:37  src 52:54:00:ad:25:ea

Oct 04 18:24:08 [pppd] [service-name] [host-uniq  20 10 00 00] [AC-cookie  70 3c f4 52 b7 69 77 64 8a 2b 1a 92 f6 c1 56 48]

Oct 04 18:24:08 [pppd] Recv PPPOE Discovery V1T1 PADS session 0x3f7 length 12

Oct 04 18:24:08 [pppd] dst 52:54:00:ad:25:ea  src a0:f3:e4:34:d8:37

Oct 04 18:24:08 [pppd] [service-name] [host-uniq  20 10 00 00]

Oct 04 18:24:08 [pppd] PADS: Service-Name: ''

Oct 04 18:24:08 [pppd] PPP session is 1015

Oct 04 18:24:08 [pppd] Connected to a0:f3:e4:34:d8:37 via interface eth2

Oct 04 18:24:08 [pppd] using channel 2

Oct 04 18:24:08 [pppd] Using interface ppp0

Oct 04 18:24:08 [pppd] Connect: ppp0 <--> eth2

Oct 04 18:24:08 [pppd] sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x1e66f1b2>]

Oct 04 18:24:08 [pppd] rcvd [LCP ConfReq id=0xf <mru 1492> <auth chap MD5> <magic 0x3b3c699e>]

Oct 04 18:24:08 [pppd] sent [LCP ConfAck id=0xf <mru 1492> <auth chap MD5> <magic 0x3b3c699e>]

Oct 04 18:24:08 [pppd] rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0x1e66f1b2>]

Oct 04 18:24:08 [pppd] sent [LCP EchoReq id=0x0 magic=0x1e66f1b2]

Oct 04 18:24:08 [pppd] rcvd [CHAP Challenge ... Removed

Oct 04 18:24:08 [pppd] sent [CHAP Response ... Removed

Oct 04 18:24:08 [pppd] rcvd [LCP EchoRep id=0x0 magic=0x3b3c699e]

Oct 04 18:24:08 [pppd] rcvd [LCP ConfReq id=0x1a <mru 1492> <auth chap MD5> <magic 0x3b3c699e>]

Oct 04 18:24:08 [pppd] sent [LCP ConfReq id=0x2 <mru 1492> <magic 0xdff640f1>]

Oct 04 18:24:08 [pppd] sent [LCP ConfAck id=0x1a <mru 1492> <auth chap MD5> <magic 0x3b3c699e>]

Oct 04 18:24:08 [pppd] rcvd [LCP ConfAck id=0x2 <mru 1492> <magic 0xdff640f1>]

Oct 04 18:24:08 [pppd] sent [LCP EchoReq id=0x0 magic=0xdff640f1]

Oct 04 18:24:08 [pppd] rcvd [CHAP Challenge id= ... Removed

Oct 04 18:24:08 [pppd] sent [CHAP Response id= ... Removed

Oct 04 18:24:08 [pppd] rcvd [LCP EchoRep id=0x0 magic=0x3b3c699e]

Oct 04 18:24:09 [pppd] rcvd [CHAP Success id=0x1 "CHAP authentication success, unit 1378"]

Oct 04 18:24:09 [pppd] CHAP authentication succeeded: CHAP authentication success, unit 1378

Oct 04 18:24:09 [pppd] CHAP authentication succeeded

Oct 04 18:24:09 [pppd] peer from calling number A0:F3:E4:34:D8:37 authorized

Oct 04 18:24:09 [pppd] sent [IPCP ConfReq id=0x1 <addr >]

Oct 04 18:24:09 [pppd] sent [IPV6CP ConfReq id=0x1 <addr fe80::f5f0:a1b2:a352:32a6>]

Oct 04 18:24:09 [pppd] rcvd [IPCP ConfReq id=0xdd <addr  Removed>]

Oct 04 18:24:09 [pppd] sent [IPCP ConfAck id=0xdd <addr  Removed>]

Oct 04 18:24:09 [pppd] rcvd [IPCP ConfAck id=0x1 <addr  Removed>]

Oct 04 18:24:09 [pppd] local  IP address ...  Removed

Oct 04 18:24:09 [pppd] remote IP address ....

Oct 04 18:24:09 [pppd] Script /etc/ppp/ip-up started (pid 4148)

Oct 04 18:24:09 [pppd] rcvd [IPV6CP ConfReq id=0x5a <addr fe80::0230:88ff:fe16:ec4f>]

Oct 04 18:24:09 [pppd] sent [IPV6CP ConfAck id=0x5a <addr fe80::0230:88ff:fe16:ec4f>]

Oct 04 18:24:09 [pppd] rcvd [IPV6CP ConfAck id=0x1 <addr fe80::f5f0:a1b2:a352:32a6>]

Oct 04 18:24:09 [pppd] local  LL address fe80::f5f0:a1b2:a352:32a6

Oct 04 18:24:09 [pppd] remote LL address fe80::0230:88ff:fe16:ec4f

Oct 04 18:24:09 [pppd] Script /etc/ppp/ipv6-up started (pid 4149)

Oct 04 18:24:09 [pppd] Script /etc/ppp/ipv6-up finished (pid 4149), status = 0x1

Oct 04 18:24:11 [pppd] Script /etc/ppp/ip-up finished (pid 4148), status = 0x0

```

Check your email for the tcpdump output.

----------

## NeddySeagoon

I've narrowed it down a bit more dhcpcd is in the clear.

When the router reboots, if I restart shorewall6, which in set up to allow everything anywhere, I get a default route.

If I subsequetly restart radvd, I get valid RA eveywhere and it all just works.

Well, almost. Everything is now on the Internet on IPv6, with no firewall. 

Its a shorewall6 config issue - I neeeded to set 

```
IP_FORWARDING=On
```

 in /etc/shorewall6/shorewall6.conf.

radvd was settitg in on, then shorewall6 was setting it off.

UberLord, 

I owe you a beer.  Sorry for the noise.

----------

## UberLord

Anytime  :Smile: 

----------

