DHCPv6

読み:でぃーえいちしーぴーぶいろく / 英語表記:Dynamic Host Configuration Protocol for IPv6

IPv6で、サーバからアドレスやDNSサーバの情報などを機器に配る仕組み。アドレスを管理して配るステートフルな使い方と、アドレス以外の情報だけを配るステートレスな使い方がある。

イマシルちゃんの解説

IPv4では、パソコンをつなぐとDHCPサーバがIPアドレスを配ってくれたよね。
IPv6でも同じことをするのがDHCPv6なんだ。

ただIPv6には、ルータの広告をもとに機器が自分でアドレスを作る方法もあるから、
「アドレスはDHCPv6からもらう」のか「自分で作って、DNSサーバの情報だけもらう」のかを選べるんだよ!

より深い解説

定義

DHCPv6は、RFC 8415で定められた、IPv6用のDHCPである。UDPを使い、クライアントはポート546番、サーバ(とリレーエージェント)はポート547番で待ち受ける。

アドレスの決め方は3通り

方式アドレスDNSサーバなどの情報ルータ広告のフラグ
SLAACのみルータ広告のプレフィックスから自分で作るルータ広告で受け取る(RDNSS)M=0、O=0
SLAAC+ステートレスDHCPv6自分で作るDHCPv6から受け取るM=0、O=1
ステートフルDHCPv6DHCPv6サーバから割り当ててもらうDHCPv6から受け取るM=1

「ステートフル」は、サーバがどのアドレスを誰に貸したかという状態(state)を管理することを指す。

サーバの見つけ方

クライアントは、DHCPv6サーバのアドレスを知らなくてもよい。リンク上のすべてのDHCPv6サーバとリレーエージェントが参加するマルチキャストアドレスff02::1:2宛てに要求を送れば、サーバ(またはリレーエージェント)が応答する。DHCPv6サーバのアドレスは、近隣探索ではなくDHCPv6自身のやり取りで見つかる。

メッセージの流れ(ステートフルの場合)

順番メッセージ送る側
1Solicitクライアント(マルチキャスト)。「サーバはいますか」
2Advertiseサーバ。「ここにいます。このアドレスを貸せます」
3Requestクライアント。「そのアドレスをください」
4Replyサーバ。「どうぞ」

IPv4のDHCP(DISCOVER、OFFER、REQUEST、ACK)と同じく4回のやり取りである。Rapid Commitを使うと、SolicitとReplyの2回で済ませることもできる。

IPv4のDHCPとの違い

DHCP(IPv4)DHCPv6
ポート番号67(サーバ)、68(クライアント)547(サーバ)、546(クライアント)
最初の要求の送り方ブロードキャストマルチキャスト(ff02::1:2)
デフォルトゲートウェイの通知DHCPで配る配らない。ルータ広告で知る
機器の識別主にMACアドレスDUID(DHCP固有の識別子)

プレフィックス委譲(DHCPv6-PD)

DHCPv6-PDは、アドレス1つではなく、プレフィックス(/56や/60など)をまとめてルータに割り当てる仕組みである。家庭用ルータがプロバイダからプレフィックスを受け取り、家の中のネットワークに分けて使うのに使われる。

実際の試験ではここに出る!

この用語が出てくる記事

↑