【CCNP ENARSI】 DHCPとIPv6アドレス
個人的な学習メモです。試験の範囲を網羅しているわけではないので注意してください。
網羅的に学習したい場合は、参考資料欄の情報を確認してください。
DHCP
基本
メッセージ | 用途 |
DHCPDISCOVER | 利用可能なサーバーを見つける為の、クライアントによるブロードキャスト。UDP ポート 67 を使用。 |
DHCPOFFER | サーバーからクライアントへの DHCPDISCOVER に対する応答。構成パラメータの内容を含む。UDP ポート 68 を使用 |
DHCPREQUEST | クライアントからサーバーへの、次の何れかのメッセージ。(a) 提供されたパラメータをあるサーバーから要求し、暗黙的にその他すべてのサーバーからの申し出を断る。(b) 例えばシステムリブート後に、前に割当てられていたアドレスの正当性を確認する。(c) ある特定のネットワークアドレスのリースを延長する。 |
DHCPACK | 決定したネットワークアドレスを含む構成パラメータを持つ、サーバーからクライアントへのメッセージ |
DHCPNAK | クライアントのネットワークアドレスの考えが間違っている事(例 クライアントが新しいサブネットに移動した)、またはクライアントのリースが期限切れである事を示す為に、サーバーからクライアントへ。 |
DHCPDECLINE | ネットワークアドレスが既に利用されている事を示す為に、クライアントからサーバーへ。 |
DHCPRELEASE | ネットワークアドレスを放棄し残りのリースをキャンセルする為に、クライアントからサーバーへ。 |
DHCPINFORM | ローカルの構成パラメータを問合せる為だけにクライアントからサーバーへ。クライアントは既に他からネットワークアドレスを設定されている。 |
設定例
構成
ネットワーク:192.168.1.0/24
DHCPサーバ: 192.168.1.5
DHCP割当範囲:192.168.1.100 - 192.168.1.250
DHCP除外IP: 192.168.1.1 - 192.168.1.10
デフォルトGW:192.168.1.1
DNSサーバ:10.1.1.1、10.2.2.2
Cisco機器での設定コマンド
DHCPサーバ
DHCPServer#conf t DHCPServer(config)#! DHCPサービスを有効にする DHCPServer(config)# service dhcp DHCPServer(config)#! DHCP除外アドレス設定 DHCPServer(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.10 DHCPServer(config)#! DHCPプール設定 DHCPServer(config)#ip dhcp pool POOL DHCPServer(dhcp-config)#! ネットワークの設定 DHCPServer(dhcp-config)#network 192.168.1.0 255.255.255.0 DHCPServer(dhcp-config)#! デフォルトGWの設定 DHCPServer(dhcp-config)#default-router 192.168.1.1 DHCPServer(dhcp-config)#! DNSサーバ設定 DHCPServer(dhcp-config)#dns-server 10.1.1.1 10.2.2.2
DHCPクライアント設定
DHCPClient#conf t DHCPClient(config)#! ethernet 0/0にDHCPでIPアドレスを割当て DHCPClient(config)#int ethernet 0/0 DHCPClient(config-if)#ip address dhcp
DHCPリレーエージェント
DHCPサーバとDHCPクライアントが別ネットワークの場合には、DHCPクライアントからのDHCPパケットがDHCPサーバまで届かない。
DHCPパケット(DHCP DISCOVER)がブロードキャストで送信されるため、ルータを超えて通信ができないためである。
このような場合は、間にいるルータでDHCPパケットをDHCPサーバへ転送する設定(DHCPリレーエージェント設定)が必要になる。
DHCPリレーエージェントの設定はDHCPクライアントからのパケットが届くルータのインターフェースで設定する。
DHCPRelay#conf t DHCPRelay(config)# DHCPRelay(config)#! ethernet 0/0 にてDHCPクライアントからの通信を受信する場合の例 DHCPRelay(config)#int ethernet 0/0 DHCPRelay(config-if)#! helper-addressの値にDHCPサーバのIPアドレスを指定する DHCPRelay(config-if)#ip helper-address 192.168.1.5
この設定をすると、Ethernet0/0で受信したDHCPパケットをDHCPサーバのIPへ転送するようになる。
※ルータとDHCPサーバ簡の通信はブロードキャストではなくユニキャスト通信となる。
設定確認&トラブルシューティングコマンド
コマンド | 出力内容 |
show ip dhcp pool | DHCP アドレス プール情報を表示 |
show ip dhcp binding | 個々の IP アドレス割り当てのバインディング情報および割り当てられたサブネットが表示される( IP アドレスとMACアドレスの対応情報やリースの有効期限など) |
show ip dhcp conflict | DHCPサーバにより検出したIPアドレス競合を表示 |
debug ip dhcp server events | アドレス割り当てやデータベース更新などの DHCP サーバのイベントを出力 |
clear ip dhcp binding | DHCP サーバ データベースから特定のプールからの自動アドレス バインディングまたはオブジェクトをクリア。 clear ip dhcp [ pool pool-name ] binding { * | address } |
clear ip dhcp conflict | DHCP サーバ データベースから特定のプールからの 1 つ以上のアドレスの競合をクリア。 clear ip dhcp [ pool pool-name ] conflict { * | address } |
clear ip dhcp subnet | 指定されている DHCP プールまたは pool-name が指定されていない場合のすべての DHCP プールから、現在リースされているすべてのサブネットをクリア clear ip dhcp [ pool pool-name ] subnet { * | address } |
IPv6
IPv6についてのアレコレについては、プロフェッショナルIPv6という書籍(無料版あり)が詳しいです。
以下ではIPv6の基本とCCNP試験に関連しそうなコマンドなどを中心にまとめてます。
基本
IPv6アドレスの種類
アドレスの種類 | 説明 |
---|---|
ユニキャストアドレス | 1対1で通信を行う際に使用するアドレス |
マルチキャストアドレス | 特定のグループに対して送信する際に使用するアドレス |
エニーキャストアドレス | 複数の機器に同じアドレスを割当て、ネットワーク的に最も近いところと通信する際に使用するアドレス |
ユニキャストの種類
種類 | 説明 |
---|---|
グローバルユニキャストアドレス | インターネット上で一意なアドレス。IPv4のグローバルIPに相当 |
リンクローカルユニキャストアドレス | 同じサブネット上での通信が可能なアドレス |
ユニークローカルユニキャストアドレス | 企業などのローカルで使用されるアドレス。IPv4のプライベートIPに相当 |
サイトローカルユニキャストアドレス | 特定のサイト内でのみ利用できるアドレス(現在は使用されない) |
IPv6アドレスの割当て
グローバルユニキャスト
アドレス範囲 | 説明 |
---|---|
2001::16 | インターネット用のIPv6アドレス |
2002::/16 | 6to4用のアドレス |
2003::/16 ~ 3FFD::/16 | 未割当て |
リンクローカルユニキャスト
アドレス範囲 | 説明 |
---|---|
FE80::/10 | 最初の10ビットが 1111111010で始まる |
ユニークローカルユニキャスト
アドレス範囲 | 説明 |
---|---|
FC70::/7(FD00::/8) | 最初の7ビットが 1111110で始まるが、8ビット目の 0は未使用なので 1が入り実際使用されているのはFD00::/8となる |
マルチキャスト
アドレス範囲 | 説明 |
---|---|
FF00::/8 | 最初の8ビットが 11111111で始まる。続く8ビットのうち前半の4ビットがフラグ、後半の4ビットがスコープになる |
FF02::1 | すべてのノードを表す |
FF02::2 | すべてのルータを表す |
FF02::5 | すべてのOSPFが動作しているルータを表す |
FF02::6 | すべてのOSPF DR・BDRを表す |
FF02::1:FFxx:xxxx | 要請ノードマルチキャストアドレス(IPv6アドレスのMACアドレス解決に使用される) |
IPv6アドレス割当て
静的IP設定
手動設定
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int ethernet 0/0 R1(config-if)# R1(config-if)#ipv6 address 2001:db8:a:a::1/64 R1(config-if)#no shut
手動IP設定(EUI-64)
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int ethernet 0/0 R1(config-if)# R1(config-if)#ipv6 address 2001:db8:a:a::/64 eui-64 R1(config-if)#no shut
手動IP設定(link-local)
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int ethernet 0/0 R1(config-if)#! リンクローカル(FE80::/10)で始まるアドレスを指定。それ以外を指定するとエラー R1(config-if)#ipv6 address <リンクローカルアドレス> link-local R1(config-if)#no shut
動的IP設定
- IPv6 SLAAC(Stateless Address Auto Configuration)
- ステートレス DHCPv6
- ステートフル DHCPv6
IPv6 SLAAC
以下のICMPv6が使用される。
名前 | タイプ | 説明 |
---|---|---|
RS(Router Solicitation) | Type133 | ルータにプレフィックス情報やデフォルトゲートウェイの情報を要請する。 宛先IPはFF02::2 |
RA(Router Advertisement) | Type134 | 自身に設定されているプレフィックス情報、デフォルトゲートウェイ情報を広告する。 |
以下ではR1がRA(Router Advertisement)を送信する側の設定、R2がRS(Router Solicitation)を送信する側の設定。
R1--------------------------------------- Switch#conf t Switch(config)#ipv6 unicast-routing Switch(config)#int e0/0 Switch(config-if)#ipv6 address 2001:db8:1:1::1/64 Switch(config-if)#no shut R2--------------------------------------- R2#conf t R2(config)#int ethernet 0/0 R2(config-if)# R2(config-if)#ipv6 address autoconfig R2(config-if)#no shut
R1側では、以下の設定が必要。
- ipv6 unicast-routing の設定がされていること(以下の設定例では設定済みの想定のため省略してます)
- インターフェースで適切なIPv6アドレスが有効になっていること(プレフィックス /64で設定されている)
- RAが抑制されていないこと(インターフェースで ipv6 nd ra suppress all コマンドが設定されていないこと)
ステートレス DHCPv6
R1でDHCPv6サーバの設定。R2はDHCPv6クライアント。 ※R1のe0/0へのIPv6アドレスは設定済み
R1--------------------------------------- ※DHCPv6プールを作成 R1#conf t R1(config)#ipv6 dhcp pool DHCPv6POOL R1(config-dhcpv6)#dns-server 2001:db8:2:2::1 R1(config-dhcpv6)#domain-name cisco.com ※インターフェースでDHCPv6プールを指定 ※ステートレスDHCPv6では、インターフェースでOフラグをONにする設定が必要 R1(config-dhcpv6)#int e0/0 R1(config-if)#ipv6 dhcp server DHCPv6POOL R1(config-if)#ipv6 nd other-config-flag R1(config-if)#end R2--------------------------------------- R2#conf t R2(config)#int ethernet 0/0 R2(config-if)# R2(config-if)#ipv6 address autoconfig R2(config-if)#no shut ※DHCPから情報を取得できている R2#sh ipv6 dhcp interface Ethernet0/0 is in client mode Prefix State is IDLE (2) Information refresh timer expires in 23:55:59 Address State is IDLE List of known servers: Reachable via address: FE80::A8BB:CCFF:FE00:4000 DUID: 00030001AABBCC004000 Preference: 0 Configuration parameters: DNS server: 2001:DB8:2:2::1 Domain name: cisco.com Information refresh time: 0 Prefix Rapid-Commit: disabled Address Rapid-Commit: disabled
ステートフル DHCPv6
R1でDHCPv6サーバの設定。R2はDHCPv6クライアント。 ※R1のe0/0へのIPv6アドレスは設定済み
R1--------------------------------------- ※ステートフルDHCPv6では、Pool設定で割当てるIPのプレフィックスを設定する R1#conf t R1(config)#ipv6 dhcp pool DHCPv6POOL R1(config-dhcpv6)#address prefix 2001:db8:1:1::/64 R1(config-dhcpv6)#dns-server 2001:db8:2:2::1 R1(config-dhcpv6)#domain-name cisco.com ※ステートフルDHCPv6ではインターフェースで、MフラグとOフラグをONにする設定が必要 R1(config-dhcpv6)#int e0/0 R1(config-if)#ipv6 dhcp server DHCPv6POOL R1(config-if)#ipv6 nd managed-config-flag R1(config-if)#ipv6 nd other-config-flag R1(config-if)#end R2--------------------------------------- R2#conf t R2(config)# int e0/0 R2(config-if)#ipv6 address dhcp R2(config-if)#ipv6 enable R2#sh ipv6 int bri Ethernet0/0 [up/up] FE80::A8BB:CCFF:FE00:5000 2001:DB8:1:1:C8B2:4DCD:7CD8:1DD R2#sh ipv6 dhcp interface Ethernet0/0 is in client mode Prefix State is IDLE Address State is OPEN Renew for address will be sent in 11:52:02 List of known servers: Reachable via address: FE80::A8BB:CCFF:FE00:4000 DUID: 00030001AABBCC004000 Preference: 0 Configuration parameters: IA NA: IA ID 0x00070001, T1 43200, T2 69120 Address: 2001:DB8:1:1:C8B2:4DCD:7CD8:1DD/128 preferred lifetime 86400, valid lifetime 172800 expires at Sep 16 2024 02:28 AM (172322 seconds) DNS server: 2001:DB8:2:2::1 Domain name: cisco.com Information refresh time: 0 Prefix Rapid-Commit: disabled Address Rapid-Commit: disabled
動的IP設定で使用されるフラグ
ICMPv6のRA(Router Advertisement)に含まれるフラグにより3種類の動的IP設定のどれが使用されるか決まる。
フラグの種類
フラグ | 説明 |
---|---|
Managedフラグ | IPv6アドレスの割当てを制御。デフォルトはM=0。 RAルータのインターフェースコンフィグモードで、ipv6 nd managed-config-flag を指定すると M=1になる。 |
Otherフラグ | DHCPサーバから(DNSサーバなどの)オプション情報を提供するかを制御。デフォルトはO=0。 DHCPサーバからオプション情報を提供する場合は、RAルータの飲ファーフェースコンフィグレーションモードで、ipv6 nd other-config-flag を指定すると O=1になる。 |
動的IP割当の方式によるフラグの違い
動的IP割当方式 | MフラグとOフラグの設定 |
---|---|
SLAAC | M = 0、 O = 0。デフォルトはこれ |
Stateless DHCP | M = 0、 O = 1。このパターンが多い。 |
Statefull DHCP | M = 1、 O = 1。あまり利用されていない。 |
DHCPv6 リレーエージェント
DHCPv6クライアントからのパケットを受信するインターフェースで以下のコマンドを設定。 DHCPv6サーバのアドレスは 2001:db8:1:2::10。
R1#conf t R1(config)# int e0/0 R1(config-if)#ipv6 address 2001:db8:1:1::1/64 R1(config-if)#ipv6 nd managed-config-flag R1(config-if)#ipv6 nd other-config-flag R1(config-if)#ipv6 dhcp relay destination 2001:db8:1:2::10
参考資料
書籍
動画
コンフィギュレーション ガイド
IPv6 コンフィギュレーション ガイド、Cisco IOS Release 15.1S - DHCP for IPv6 の実装 [Cisco IOS 15.1S] - Cisco