DHCPv6-PDで付けられるアドレス

投稿日:

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。

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です