dhcp6cを使ってDHCPv6 PDにより取得したPrefixをloopback interfaceに設定できない
OCN IPv6を某所のホスティングサーバで使う際に、PrefixをLAN側インタフェースに割り当てるのが気持ち悪かったので、Prefix Delegation Interfaceをloopbackにしてみた。loopbackはlo1をあらかじめ作成しておいた。
ところが、mpdを起動するとdhcp6cを起動する際に以下のエラーメッセージが出力されて、dhcp6cが終了してしまう。
Jul 12 14:40:52 labo dhcp6c[93268]: get_default_ifid: link layer address is too short (lo1)
dhcp6cのソースコードを見ると、エラーになっているのはconfig.cの以下の部分。sdl->sdl_alen < 6が真になってる。確かにloopbackにMACアドレスは存在しないから正しいんだけど、loopbackにはPrefixを設定できないのか。LAN側のインタフェースにPrefixを設定すると、うっかりRAを送出すると近所迷惑だし、なんだか気持ち悪いしで、できれば避けたいんだけどなぁ。
#ifdef __KAME__ if (ifa->ifa_addr->sa_family != AF_LINK) continue; sdl = (struct sockaddr_dl *)ifa->ifa_addr; if (sdl->sdl_alen < 6) { dprintf(LOG_NOTICE, FNAME, "link layer address is too short (%s)", pif->ifname); goto fail; } memset(pif->ifid, 0, sizeof(pif->ifid)); cp = (char *)(sdl->sdl_data + sdl->sdl_nlen); #endif