KAME DHCPv6におけるアドレス割当機能の実装

KAME DHCPv6における
アドレス割当機能の実装
miyu(B3)@SING
親:yasu
今期のタームプロジェクト
アドレス割当
 Stateful Auto-configrationについて

– Stateless Auto-configrationとの違い

DHCPv6
– KAME DHCPv6に追加実装
Stateless Auto-configration

RA
– Router Advertisementに流れるネットワーク
アドレスを使用
– 自らのMACアドレスとあわせることで一意の
アドレスとなる
RAを使う利点・欠点

利点
– Plug & Play
– ルータは各ホストのアドレス割当を知る必要
がない

欠点
– 全てのRAを全てのホストが受信する
• セグメントごとにしかprefixをわけられない
• アドレスを配るホストを制限できない
– Option Lengthが短すぎるため、他のパラメー
タを入れられない
Stateful auto-configrationの必要性
Stateless configrationだけでは解決でき
ない状況が存在
 IPv6でも、管理者側がアドレスを配布、制
限、管理できるシステムが必要

→Stateful Auto-configrationは必要である
Stateless auto-configtation
gateway
全てのホストにに同じネットワークアドレス
Stateful auto-configtation
gateway
さらにもう一つ
アドレスをとれる
ホスト
Host群A
アドレスを
あげないホスト群
Host群B
Host群C
DHCPv6

IETF DHC wgで議論が活発化
– Vienna IETFで実験

Internet-draftが発行(ietf-dhcpv6-28)

開発状況
– Linux:すでにdraftの条件を満たしたものが配布されて
いる
– FreeBSD:KAME Projectで配布 KAME DHCPに
• Prefix Delegation、DNSサーバ探知のみ 追加実装
設計要件

Draftの仕様を可能な限り満たすこと
– メッセージ交換
– パケットフォーマット
– オプション、オプションフィールド

既存のアドレス配布システムとの共存
– アドレスはRAで受信、DHCPv6はDNSサー
バ探知で、という使い方もある
設計・実装
KAME DHCPv6に追加機能として実装
 使用できるモジュールはそのまま、必要な
機能だけを追加

– 必要なオプションを解決するする機能
– アドレスを割り当てる機能
– MACアドレスとバインドする機能
実装環境
Free BSD
 C言語
 KAME FreeBSD Snap Shot

サーバ起動時
dhcp6s.
conf
読
み
込
み
・
解
決
オプションを
解決
hwaddr_list
に格納
check_hwaddr
address_list
に格納
IA Address
Option
がある場合
hwaddr_listと
クライアントの
MACアドレスを比較
NO
getaddr_withaddr
クライアント
サーバ
Request message
Request
を生成
Message
with IA
Address
Option
IA Address
Optionを生成
YES
getaddr_with_hwaddr
アドレスをリース hwaddr_listに従って
オプションフィールド アドレスをオプション
に追加
フィールドにいれる
Reply
Message
dhcp6.
lease
リースリストに記述
write_leaselist
Reply messageを
生成
with IA
Address
Option
オプションから
アドレスを
読込
デモ
今後の課題
ハードウェアアドレスとのバインディング
 Release Message,タイムアウトに対応さ
せる
 リレーエージェントへの対応
 leaseデータベースの持ち方

Stateful Auto-configrationの利点を生かした実装をさらに行う