我的组织目前有两个可用的活动 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 线程表明它不起作用但我很想听到其他的说法。
答案1
根据实验,答案似乎是“是的,Linux 支持 IPv6 策略路由”。我仍然不确定为什么上述几行会失败,但目前我已经解决了这个问题。