Wednesday, September 7, 2011

IPv6 and Solaris 9

Since static IPv6 on Solaris 9 wasn't fun enough on its own, it turns out that my Solaris 9 servers start losing a lot of IPv6 packets after a reboot. The problem appears to be in.ndpd (what should be the IPv6 neighbor discovery protocol daemon, but appears primarily to be IPv6 routing instead), and syslog reports in.ndpd[PID]: [ID 302683 daemon.error] router_add_k: RTM_ADD (interface bge0): Network is unreachable RTM_ADD every 1 to 5 minutes.

The fix is to shut down IPv6 (it's not working anyway, so go ahead) and then restore IPv6; the only difference is that in.ndpd isn't running. However, just TERMinating in.ndpd isn't enough for IPv6 traffic to flow freely. Try this instead:

# kill in.ndpd

ps -ef | grep ndp

sudo kill -TERM 11292

# bring down the IPv6 interfaces

sudo ifconfig -a6

sudo ifconfig bge0:1 inet6 down unplumb

sudo ifconfig bge0 inet6 down unplumb

sudo ifconfig lo0 inet6 down unplumb

# flush IPv6 routes

sudo route flush -inet6

# verify that IPv6 is gone

sudo ifconfig -a6

netstat -nr

# restore IPv6 interfaces

sudo ifconfig lo0 inet6 plumb up

sudo ifconfig bge0 inet6 plumb up

sudo ifconfig bge0:1 inet6 plumb up your:ipv6:address::here/64

# verify interfaces

sudo ifconfig -a6

sudo ifconfig -a

# restore default IPv6 route

sudo route add -inet6 default your:ipv6:default:router::here

# verify route table

netstat -nr

I'm trying to stay off my diatribe soap box here, but I'm happy that Solaris 9 will be replaced with RHEL 6 in the coming months.

No comments:

Post a Comment