我的组织目前有两个可用的活动IPv6范围,我们正在从一个切换到另一个。 我希望让它们同时工作,但似乎Linux不支持IPv6的策略路由。 我们的基于Linux的路由器在Debian Lenny上运行2.6.26-2-686。
这是我想要做的:
# ip -6 rule add from 2001:388:7094:4080::/58 lookup oldv6 (策略使用表oldv6路由旧的v6范围)
# ip -6 route add throw 2001:388:7094:4080::/58 table oldv6 (回到本地路由的主要路由表)
# ip -6 route add default via 2001:388:7094:1::1 dev eth1 (否则使用'旧'默认路由器)
但是,第二行不起作用: RTNETLINK answers: No such device
阅读了可用的文档后,似乎Linux不支持IPv6的实际策略路由([ 2 ] – 请参见第9.2节,[ 3 ]), 只有在添加表时才会伪造 。 当然,作为Linux,这些文档已经超过五年没有更新,所以我想知道是否有人有任何辉煌的见解 – 有没有我错过的参数或文件? 有一个2007年的线索表明它不起作用,但我会热衷于听取其他意见。
根据实验,答案似乎是“是的,在Linux上支持IPv6策略路由”。 我还不确定上述线路为什么失败,但现在我已经破解了它。