wide-dhcpv6のDHCPV6-PDでLAN側のインターフェースに付けられるアドレスが自動設定のアドレスで扱いにくいので、今まではaliasで prefix::1というアドレスをつけていたのだけど、ここのパッチを参考にprefix::1をDHCPv6-PDでつけるようにしてみた。(不等号の向きが逆の気がする。。。)
diff -uNr wide-dhcpv6-20080615_orig/prefixconf.c wide-dhcpv6-20080615/prefixconf.c
--- wide-dhcpv6-20080615_orig/prefixconf.c 2007-03-21 18:52:55.000000000 +0900
+++ wide-dhcpv6-20080615/prefixconf.c 2011-10-12 17:33:50.000000000 +0900
@@ -483,8 +483,10 @@
/* configure the corresponding address */
ifpfx->ifaddr = ifpfx->paddr;
- for (i = 15; i >= pconf->ifid_len / 8; i--)
- ifpfx->ifaddr.sin6_addr.s6_addr[i] = pconf->ifid[i];
+ i = 15;
+ ifpfx->ifaddr.sin6_addr.s6_addr[i--] = 1;
+ for (; i >= 8; i--)
+ ifpfx->ifaddr.sin6_addr.s6_addr[i] = 0;
if (pd_ifaddrconf(IFADDRCONF_ADD, ifpfx))
goto bad;
ここはあまり深いことを考えずに、ifidでは無く0000:0000:0000:0001をつけるようにfor文を修正。
再起動して割り振られたアドレスをifconfigで見て prefix::1 になっていてOK。