IPv6 stops working after reboot

I have an issue on a few servers where IPv6 stops working after a reboot. I can ping anything within the same subnet but anything outside of that it gives me host unreachable. I believe that it is not routing for some reason, but I am not sure why.

I have tried adding a default Ipv6 route for Eth3 but nothing seems to work.

Any help will be greatly appreciated.

If you need any other info that what is below let me know!

Thank you!

uname -a
Linux server-1 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux

route -A inet6
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
fdba:4f49:f31a:1000::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1001::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1002::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1003::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1004::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1006::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:1007::/64                    ::                                      U     256    0        0 eth3    
fdba:4f49:f31a:8000::/64                    fdba:4f49:f31a:9000::25                 UG    1024   0        0 eth1    
fdba:4f49:f31a:9000::/64                    fdba:4f49:f31a:8000::25                 UG    1024   0        0 eth2    
fe80::/64                                   ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth1    
fe80::/64                                   ::                                      U     256    0        0 eth2    
fe80::/64                                   ::                                      U     256    0        0 eth3    
fe80::/64                                   ::                                      U     256    0        0 eth5    
fe80::/64                                   ::                                      U     256    0        0 eth6    
::/0                                        ::                                      U     256    1        0 eth1    
::/0                                        ::                                      U     256    1        0 eth2    
::1/128                                     ::                                      U     0      22       1 lo      
fdba:4f49:f31a:1000::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1000::25/128                 ::                                      U     0      47       1 lo      
fdba:4f49:f31a:1001::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1001::25/128                 ::                                      U     0      47       1 lo      
fdba:4f49:f31a:1002::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1002::25/128                 ::                                      U     0      878       1 lo      
fdba:4f49:f31a:1003::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1003::25/128                 ::                                      U     0      155       1 lo      
fdba:4f49:f31a:1004::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1004::25/128                 ::                                      U     0      46       1 lo      
fdba:4f49:f31a:1006::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1006::25/128                 ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1007::/128                   ::                                      U     0      0        1 lo      
fdba:4f49:f31a:1007::25/128                 ::                                      U     0      47       1 lo      
fe80::/128                                  ::                                      U     0      0        1 lo      
fe80::/128                                  ::                                      U     0      0        1 lo      
fe80::/128                                  ::                                      U     0      0        1 lo      
fe80::/128                                  ::                                      U     0      0        1 lo      
fe80::215:17ff:fedc:4d4e/128                ::                                      U     0      0        1 lo      
fe80::215:17ff:fedc:4d4f/128                ::                                      U     0      0        1 lo      
fe80::226:b9ff:fe41:dd31/128                ::                                      U     0      0        1 lo      
fe80::226:b9ff:fe41:dd37/128                ::                                      U     0      558       1 lo      
ff00::/8                                    ::                                      U     256    0        0 eth0    
ff00::/8                                    ::                                      U     256    0        0 eth1    
ff00::/8                                    ::                                      U     256    0        0 eth2    
ff00::/8                                    ::                                      U     256    0        0 eth3    
ff00::/8                                    ::                                      U     256    0        0 eth5    
ff00::/8                                    ::                                      U     256    0        0 eth6

First, which release of SUSE are you using?

2nd, glad to hear you’re using/trying IPv6. :slight_smile:

3rd, you say it quits working after a reboot. Can you paste a routing table of what it looks when it IS working, say from a working device on the same link? What you pasted above looks like not working to me because I don’t see anything except local scope addresses, nothing global… and you’ll need a global scope address to get to anything not on the same link.

4th, how are your computers supposed getting their IPv6 addresses – static, RADVD, DHCP6?

SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 0

3rd, you say it quits working after a reboot. Can you paste a routing table of what it looks when it IS working, say from a working device on the same link? What you pasted above looks like not working to me because I don’t see anything except local scope addresses, nothing global… and you’ll need a global scope address to get to anything not on the same link.

Here is a working Routing table, the interfaces are not the exact same but the routing is.

Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
fdba:4f49:f31a:3000::/64                    ::                                      U     256    0        0 eth1    
fdba:4f49:f31a:3001::/64                    ::                                      U     256    0        0 eth1    
fdba:4f49:f31a:3002::/64                    ::                                      U     256    0        0 eth1    
fdba:4f49:f31a:3003::/64                    ::                                      U     256    3336       0 eth1    
fdba:4f49:f31a:3004::/64                    ::                                      U     256    0        0 eth1    
fe80::/64                                   ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth1    
fe80::/64                                   ::                                      U     256    0        0 eth3    
::/0                                        fe80::223:4ff:fe81:52b3                 UGDA  1024   109       0 eth1    
::1/128                                     ::                                      U     0      4        1 lo      
fdba:4f49:f31a:3000::25/128                 ::                                      U     0      0        1 lo      
fdba:4f49:f31a:3001::25/128                 ::                                      U     0      0        1 lo      
fdba:4f49:f31a:3002::25/128                 ::                                      U     0      0        1 lo      
fdba:4f49:f31a:3003::25/128                 ::                                      U     0      0        1 lo      
fdba:4f49:f31a:3003:226:b9ff:fe45:5861/128  ::                                      U     0      6        1 lo      
fdba:4f49:f31a:3004::25/128                 ::                                      U     0      0        1 lo      
fe80::226:b9ff:fe45:585f/128                ::                                      U     0      0        1 lo      
fe80::226:b9ff:fe45:5861/128                ::                                      U     0      955       1 lo      
fe80::226:b9ff:fe45:5865/128                ::                                      U     0      0        1 lo      
ff00::/8                                    ::                                      U     256    0        0 eth0    
ff00::/8                                    ::                                      U     256    0        0 eth1    
ff00::/8                                    ::                                      U     256    0        0 eth3    

I have tried adding this route:
::/0 fe80::223:4ff:fe81:52b3 UGDA 1024 109 0 eth1

In my non working servers, but it dose not make a difference.

4th, how are your computers supposed getting their IPv6 addresses – static, RADVD, DHCP6?

They are all static.

Here is an Ifconfig of the interface with all my IPv6:

eth3      Link encap:Ethernet  HWaddr 00:26:B9:41:DD:37  
          inet addr:10.32.0.22  Bcast:10.32.127.255  Mask:255.255.128.0
          inet6 addr: fe80::226:b9ff:fe41:dd37/64 Scope:Link
          inet6 addr: fdba:4f49:f31a:1002::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1001::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1000::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1007::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1006::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1004::25/64 Scope:Global
          inet6 addr: fdba:4f49:f31a:1003::25/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:80 errors:0 dropped:0 overruns:0 frame:0
          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6356 (6.2 Kb)  TX bytes:6566 (6.4 Kb)
          Interrupt:42 Memory:dc000000-dc012700 

Yes, your issue is almost definitely the route not taking. (not that you didn’t know that). Not sure how you’re adding the route, but have you tried this?

Add this to /etc/sysconfig/network/routes

default fe80::223:4ff:fe81:52b3 - eth0

replace “eth0” with whatever interface is appropriate on the other box (eth3 I think you said?)

I usually use RADVD to configure addresses and default routes on my networks but I switched to a static config to test this and it worked.

My working static config for the /etc/sysconfig/network/routes file looks like this, specifying the link-local address and interface that the router is on.

default fe80::20c:29ff:fe48:d7be - eth0

I’m curious though, the route flags on your working computer’s default route show UGDA, noting the D flag in particular which indicates that it learned that route dynamically rather than statically. So, it looks to me like you do have IP6 routing advertisement on your link but your problem box isn’t picking it up. Since your problem box appears to also be routing for several other networks (the UG flagged routes) I’m guessing you have IP FORWARDING enabled on the problem box and IPv6 boxes with IP FORWARDING enabled typically ignore router advertisements.

In short, I’m guessing your non-working box is a router and that the working box isn’t. If that’s what you intend, great, but just pointing it out in case it helps something click with you. Either way, configuring the route statically ought to do the trick, just a matter of getting that done.

I don’t have a SLES11 box but /etc/sysconfig/network/routes shouldn’t be that different across releases, let me know if the above works for you.

They are actually all at the same point in a network on different segments. So if they were all able to grab the dynamic routes that would be the best scenario.

How do I go about making them pick up the routing updates pushed out from my juniper boxes?

Check for and disable IP FORWARDING, using “yast lan” for example and the routing tab.

If it’s ALREADY disabled… hmm… let me know.

Yes, It is already disabled.

If you’re still having issues, maybe paste your routes file from the non-working box? Thanks.

That is what I currently have, I have tried all different addresses for the default route.

 vim /etc/sysconfig/network/routes

10.64.0.0 10.32.0.1 255.255.128.0 eth3
10.96.0.0 10.32.0.1 255.255.128.0 eth3
10.65.0.0 10.33.0.1 255.255.128.0 eth3
10.97.0.0 10.33.0.1 255.255.128.0 eth3
10.66.0.0 10.34.0.1 255.255.128.0 eth3
10.98.0.0 10.34.0.1 255.255.128.0 eth3
10.68.0.0 10.36.0.1 255.255.128.0 eth3
10.100.0.0 10.36.0.1 255.255.128.0 eth3
10.70.0.0 10.38.0.1 255.255.128.0 eth3
10.67.0.0 10.35.0.1 255.255.128.0 eth3
10.71.0.0 10.39.0.1 255.255.128.0 eth3
10.10.0.102 10.100.0.101 255.255.128.0 eth1
10.14.0.10 10.14.0.1 255.255.128.0 eth1
fdba:4f49:f31a:9000::25 fdba:4f49:f31a:8000::25 64 eth2
10.12.0.10 10.12.0.1 255.255.128.0 eth2
fdba:4f49:f31a:8000::25 fdba:4f49:f31a:9000::25 64 eth1
default fdba:4f49:f31a:1003::1 - eth3

Change the default route line to:

default fe80::223:4ff:fe81:52b3 - eth3

… using the link-local address instead of the unique-local address. Might not matter, I just note that your working box is routing through the router’s fe80::223:4ff:fe81:52b3 address, not an fdba:: address, and think we should mimic that since it’s what’s working for the other box on your network.

You’ll have to sub fe80::223:4ff:fe81:52b3 with whatever fe80::/64 address is appropriate to the non-working boxe’s specific link. I think you said it’s on the same link, so I say that just in case I misunderstood.

petecory wrote:
>
> SUSE Linux Enterprise Server 11 (x86_64)
> VERSION = 11

you are welcome to hang out here (especially if you are already
getting what seems to me to be good help)

but, be advised that this is the free and open source openSUSE forums,
whereas you are using a commercial release from Novell…

they support that over on forums.novell.org

the log in ID and password you use here works there also…


DenverD
CAVEAT: http://is.gd/bpoMD [posted via NNTP w/openSUSE 10.3]

One more thing, just to get a little more “live” feedback on why the route isn’t manually taking… what happens if you enter:

ip -6 route add default via fe80::223:4ff:fe81:52b3 dev eth3

Does that work or do you get an error?

Here is a diagram of what I have setup.

All the IPv4 works just not the IPv6 on the 02 and 03.

http://grandmasvariety.net/images/testnetwork.png

It takes the route, but I am still getting unreachable. Even when I change the via address.

I think something is missing from the picture because I don’t see any SLES boxes with multiple links, all just show one link… or are you using multiple VLANs on the EDGESW’s and thus have several eth connections from each SLES box to the same physical switch but to different ports and VLANs? I’m just trying to connect the dots and know how that simple-looking network map corresponds with the (relatively) complex configuration your pasted routing tables suggest.

So, let me summarize what I’ve gathered so far, please just correct me where I’m wrong.

  1. SLES11-01: ipv6 is working, SLES11-02 and 03: ipv6 not working. Is that correct ?

  2. The box you’ve shown me, is it SLES11-02 or 03?

  3. What do you get if you “ping6 ff02::2 -I eth3” on the non-working box? This should solicit a ping response from only routers on that link and reply with their appropriate link address. If nothing replies then sub eth3 in that command with the other eth’s on the non-working box until you’ve found one that gets at least one repy. If nothing replies on any eth’s then I suspect the router itself is misconfigured and is at least partially to blame.

Ok, SO i found out that my predecessor had used static routes for each IPv6 network. Once i put the 10 static routes in things started to work.

So not the next question is how can I make these routes persistent with out having to put them in to YAST one by one? Would I add them to /etc/sysconfig/network/routes ?

Thanks for all the help Khan!

One link is to the lab environment where we are using a trunk with multiple networks (vlans) running on the same link. The other connection (which I did not put on the drawing) is to our regular network where out PCs are that we use to access them servers and run tests.

  1. SLES11-01: ipv6 is working, SLES11-02 and 03: ipv6 not working. Is that correct ?

Yes that was correct. I have since got them working.

  1. The box you’ve shown me, is it SLES11-02 or 03?

It was SLES11-02

Hey, glad you’re basically working. Yeah, I’d just add those routes to the routes file and that’ll make’em static and automatic on reboot. I’d… uh… of course test that by rebooting each box to see that all the routes come up without intervention as expected.

Hope I’ve helped at least steer you the right way a time or two, let me know if anything else. :slight_smile:

You were a ton of help!! I really appreciate it!

Sweet, glad to hear it. IPv6 is a bit of a passion of mine so I’m happy to help and I learn along the way too… like I wasn’t familiar with the unique-local addresses (fd00::/8) range you’re using until this thread. (Well, technically it’s fc00::/7

Got your private message too. Wow, your network looks pretty complex internally which can make simple things… uh… interesting.

Let me know if anything else and “Have a lot of fun…”