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