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 would like to subnet the default IPv6 route into 2 network routes. The original default route was:

default via fe80::218:74ff:fe27:9640 dev eth0  proto kernel  metric 1024

I tried adding the following 2 routes, which together should be equivalent to the default route:

ip -6 route add ::/1 dev eth0 via fe80::218:74ff:fe27:9640  
ip -6 route add 80::/1 dev eth0 via fe80::218:74ff:fe27:9640

The first command went through, but the second one generated an error:

RTNETLINK answers: File exists

Why is this happening? What's the correct way to specify 2 network routes covering everything?

share|improve this question
Isn't ::/1 shorthand for 'everything'? Why do you think the 80::/1 is necessary? – growse Dec 1 '11 at 15:41
@growse ::/0 would be everything, ::/1 is :: through 7fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff - every address where the first bit (the /1 mask) is a 0. – Shane Madden Dec 1 '11 at 19:17

80:: is 0080::/1, which isn't a valid route - try 8000::/1 instead.

share|improve this answer

The route should be 8000::/1. It's not a good idea though... All public IPv6 traffic uses 2000::/3, which will use ::/1. All ULA traffic (for example) will use the other route, but if you want that then you should create a default route (::/0) and a route for the ULA addresses (fc00::/7). Splitting on 8000::/1 does not make a lot of sense...

share|improve this answer

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.