Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an ipv6 tunnel that refuses to work until traffic goes outbound. if I turn the device on and ping in, I get no response until the second I start to ping out. if I then walk away for a few hours and try to ping in again, I'll get no response.

I'm using Debian Lenny and Hurricane Electric for my tunnel. I'm not even sure where to begin debugging this behavior because it's so unusual. I've used both of the Debian configs from and the configs from and a variety of tweaks in between, but I still cannot get the device to persistently accept inbound traffic. there's no ip6tables, but I do have a variety of iptable rules. has anyone else experienced this kind of issue? what could I possibly do to debug or solve this?

edit: there's no NAT involved and it's all IPv4 Cisco infrastructure. I dont think there's any IPv6 between me, the switches and the router.

share|improve this question
up vote 1 down vote accepted

The real answer is given in the SixXS FAQ:

See that article for the full explanation.

share|improve this answer
I eventually fixed this problem by using 'metric 1' on the interface up. however, I'm having issues with my server providing ipv6 to my laptop, so I'll play with this and see what happens. if you're interested, there's 2 questions related to it on serverfault, just check my profile. – neoice Nov 17 '10 at 17:09

Without knowing more about your network design, I'm assuming your tunnel endpoint is on a device on your LAN, behind your internet router. I'm also assuming that device gets access to the internet via NATting on the router.

The likely cause of your inbound problem is the NAT table on the router. The router doesn't know how to route inbound v6 (protocol 41) traffic to the tunnel endpoint device. As soon as you send v6 traffic outbound through the tunnel an entry in the NAT table is created. This entry allows the router to also send inbound traffic back to the tunnel endpoint.

After a while without traffic, the router expires the entry and flushes it from its NAT table, therefore no inbound traffic is able to reach your tunnel endpoint any more.

How you solve this depends on your router's abilities.

  1. Either make a forwarding rule on your router, that forwards incoming 'protocol 41' traffic towards the tunnel endpoint device on your LAN. Most consumer routers can't do this.
  2. or make sure there is enough outbound traffic to trigger the router to never expire the NAT table entry. This can be accomplished by setting a cronjob to ping6 an outside server every 5 minutes.

An example for solution 2: Put the following in your crontab

# Ping6 every 5 minutes to keep NAT open
*/5 * * * * ping6 -c1 -q 2>&1  >/dev/null
share|improve this answer
I dont think there should be any NAT involved. I'm on a static IP, plugged into a switch in a datacenter. from the switch, it goes to a Cisco router and then off onto the web. I'd already considered a ping cronjob, but I prefer solutions to dirty hacks :/ – neoice Oct 18 '09 at 4:37
so I've been using this workaround for almost a month, although its not a real solution. hopefully someone else will stumble across this and solve it. – neoice Nov 13 '09 at 11:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.