One idea of IPv6 was a hierachical routing, therefore only less routing entries are needed in routers.
There are some issues in current Linux kernels:
Client can setup a default route like prefix "::/0", they also learn such route on autoconfiguration e.g. using radvd on the link like following example shows:
# ip -6 route show | grep ^default default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires ¬ 29sec mtu 1500 advmss 1440 |
Current mainstream Linux kernel (at least <= 2.4.17) don't support default routes. You can set them up, but the route lookup fails when a packet should be forwarded (normal intention of a router).
Therefore at this time "default routing" can be setup using the currently only global address prefix "2000::/3".
The USAGI project already supports this in their extension with a hack.
Note: take care about default routing without address filtering on edge routers. Otherwise unwanted multicast or site-local traffic leave the edge.