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。