我在网络上使用 ISC dhcp 服务器版本 4.1 进行 DHCPv6 前缀委派。当服务器将前缀分配给客户端时,服务器不会为该前缀创建到请求该前缀的客户端的路由。以下是pfSense 的功能请求这描述了我想要完成的任务。除了定制和重建 isc-dhcp(这是我正在考虑的一个选项)之外,我还无法确定一种自动创建这些路由的方法。
我还考虑编写一个脚本(可能是 cron 作业)来解析租约文件并创建路由。该文件也不包含足够的信息来创建路由;它缺少分配给前缀的链路本地地址或 mac 地址。这是租约文件的摘录。IA-PD 的前 3 个字节和后 3 个字节似乎是请求者的 mac 地址以八进制编码的最后三个字节。
ia-pd "\236\250\366'\000\001\000\001\031[D\275\010\000'\366\250\236" {
cltt 1 2013/06/24 18:32:37;
iaprefix 4001:1234:5678:dff0::/60 {
binding state active;
preferred-life 7200;
max-life 604800;
ends 1 2013/07/01 18:32:37;
}
}
是否有可接受的方法从前缀委托请求创建路由?或者,是否有其他方法获取租约的链路本地地址?
其他参考:
答案1
事实证明,对于“API 是否提供了足够的信息来工作?”这个问题,从 ISC DHCP 4.3.1 开始,答案是“不”。但是,我刚刚花了大量时间整理了一个补丁集来扩展服务器,以提供(刚好)足够的信息来添加和删除路由。我的更改可在https://github.com/mpalmer/isc-dhcp,在client-address-data-expression
分支中。其中有一个脚本contrib
演示了如何使用它。
答案2
您提到您正在使用 dhcpd 进行前缀委派,因此它显然在某种 *ix 盒上运行,通常不充当路由器。通常的设置是让客户端运行 OSPFv3 或其他路由协议。它将接收前缀委派,为其连接的接口分配适当的链接前缀,然后将这些路由通告给网络中的其他路由器。如果出于某种原因,您在 Linux/BSD 机器上运行路由并且不想或不能移动它,那么我建议运行 Quagga1将适当的路由插入到服务器的路由表中。