DHCP認証機能

概要

本機能を用いることで、あらかじめネットワーク管理者により使用を許可された端末(登録済み端末)と許可されていない端末(未登録端末)とをネットワーク上で区別し、許可の有無によってそれぞれの端末がアクセス可能なネットワークを制御することができます。
例えば、登録済み端末には社内・社外全てのネットワークへのアクセスを可能にし、未登録端末に対しては社内の特定セグメントのみへのアクセスに制限するなど、端末毎に異なるアクセス権を設定することが可能です。

端末に許可を与えるためのしくみとして、許可する端末に対して、DHCPによって割り当てられるIPアドレスをあらかじめ予約しておく方法を用います。
IPアドレスの予約は、端末のMACアドレスをあらかじめルーターに設定しておくことで行ないます。
また、登録済み端末と未登録端末をネットワーク上で区別するために、プライマリアドレス・セカンダリアドレスのしくみを用います。端末が接続される1つの物理ネットワークを2つの論理ネットワーク(プライマリネットワークとセカンダリネットワーク)に分割し、登録済み端末にはプライマリネットワークに対応するIPアドレスを、未登録端末にはセカンダリネットワークに対応するIPアドレスを割り当てることで、登録済み端末と未登録端末を区別します。

DHCPにより割り当てられるIPアドレスで端末の認証を行う場合、未登録端末であっても固定IPアドレスを使用してプライマリアドレスを設定することで登録済み端末と同じネットワークアクセスが可能になるという問題がありますが、本機能においては、MACアドレスを用いたイーサネットレベルでのフィルタリングを併用することでこの問題を解決しています。プライマリネットワークから送信されるパケットに対しては、送信元の端末が登録済み端末かどうかを判定してパケットのフィルタリングを行うことで、未登録端末が不正にプライマリネットワークから通信することを防ぎます。

本機能は、下記の機能を組み合わせることで実現します。

イーサネットレベルでのフィルタリング
許可されたMACアドレスの通信のみを通過させます。
静的設定情報の他、DHCPの予約設定情報も指定することができます。
DHCPの予約設定情報を指定した場合にはMACアドレスだけでなくIPアドレスの一致もチェックします。
DHCP 予約限定機能
IPアドレスの割り当ては予約されたクライアントだけに限定することができます。
スコープ内に割り当て可能なIPアドレスがある状態でも、予約されたクライアント以外には割り当ては行われません。
通知機能
フィルタリングの結果について、ログの表示とメール通知を行います。
DHCP 状態表示、設定変換機能
現在の割り当て情報の一覧から予約情報への設定移行変換を簡単に行うことができます。
DHCP サーバ・DHCPリレーエージェント連携機能
DHCP サーバにて設定された DHCP スコープ情報および DHCP スコープに設定されたアドレス予約情報を、DHCP リレーエージェントに通知してフィルタリングの際に参照します。

注意事項・関連文書

プライマリネットワーク・セカンダリネットワークについては、以下の文書をご参照下さい。

  • RTシリーズのTCP/IPに関するFAQ - プライマリアドレスとセカンダリアドレス

Open in new windowhttp://www.rtpro.yamaha.co.jp/RT/FAQ/TCPIP/secondary-address.html

対応機種とファームウェアリビジョン

ヤマハ RT シリーズでは、以下の機種およびファームウェアで、DHCP 認証機能をサポートしています。

機種 ファームウエア
RTX5000 Rev.14.00.15以降
RTX820 Rev.11.03.16以降
RTX1200 Rev.10.01.20以降
RTX800 Rev.10.01.20以降

設定・操作方法

コマンド

イーサネットフィルタの設定

[書式]
ethernet filter FILTER_NUM PASS_REJECT SRC_MAC [DST_MAC [OFFSET BYTE_LIST]]
ethernet filter FILTER_NUM PASS_REJECT TYPE [SCOPE] [OFFSET BYTE_LIST]
no ethernet filter FILTER_NUM [PASS_REJECT ...]
[設定値]
  • FILTER_NUM ... 静的フィルタの番号(1..100)
  • PASS_REJECT
    • pass-log ... 一致すれば通す(ログに記録する)
    • pass-nolog ... 一致すれば通す(ログに記録しない)
    • reject-log ... 一致すれば破棄する(ログに記録する)
    • reject-nolog ... 一致すれば破棄する(ログに記録しない)
  • SRC_MAC ... 始点MACアドレス
    • xx:xx:xx:xx:xx:xx (xxは16進数、または*)
    • * (すべてのMACアドレスに対応)
  • DST_MAC ... 終点MACアドレス
    • 始点MACアドレスSRC_MACと同じ形式
    • 省略時は1つの*と同じ
  • TYPE
    • dhcp-bind ... 指定されたDHCPスコープで予約設定されているホストを対象にする
    • dhcp-not-bind ... 指定されたDHCPスコープで予約設定されていないホストを対象にする
  • SCOPE ... DHCPスコープ
    • 1..65535の整数
    • DHCPスコープのリース範囲に含まれるIPアドレス
  • OFFSET ... オフセットを表す10進数(イーサネットフレームの始点MACアドレスの直後を0とする)
  • BYTE_LIST ... バイト列
    • xx(2桁の16進数)あるいは*(任意のバイト)をカンマで区切った並び(16個以内)
[説明]
  • イーサネットフレームのフィルタを設定する。本コマンドで設定されたフィルタは、ethernet lan filterコマンドで用いられる。
  • 通常型のフィルタでは、始点MACアドレス、終点MACアドレスなどで送受信するイーサネットフレームにフィルタを適用する。
  • dhcp-bind型のフィルタでは、以下のイーサネットフレームにフィルタを適用する。対象とならないイーサネットフレームはフィルタに合致しないものとして扱う。

    以下のいずれかに該当する、IPv4パケットの場合
    • イーサネットタイプがIPv4(0x0800)
    • PPPoE環境で、イーサネットタイプがPPPoEデータフレーム
      (0x8864)、プロトコルIDがIPv4(0x0800)
    • 802.1QタグVLAN環境で、TPIDが802.1Qタグ(0x8100)、イーサネットタイプがIPv4(0x0800)
  • イーサネットフレームの始点MACアドレスと始点IPアドレスの組が、対象となるDHCPスコープで予約されているならフィルタに合致するとみなす。

    ◎イーサネットタイプが、以下のいずれかの場合
    • ARP(0x0806)
    • RARP(0x8035)
    • PPPoE制御パケット(0x8863)
    • MACレイヤ制御パケット(0x8808)
  • イーサネットフレームの始点MACアドレスが、対象となるDHCPスコープで予約されているならフィルタに合致するとみなす。
  • dhcp-not-bind型のフィルタでは、以下のイーサネットフレームにフィルタを適用する。対象とならないイーサネットフレームはフィルタに合致しないものとして扱う。

    ◎イーサネットタイプがIPv4(0x0800)である場合
    • イーサネットフレームの始点IPアドレスが、対象となるDHCPスコープのリース範囲に含まれていて、かつ、始点MACアドレスがDHCPスコープで予約されていない時にフィルタに合致するとみなす。
  • dhcp-bind、dhcp-not-bind型のフィルタで対象とするDHCPスコープは、SCOPEパラメータで指定する。SCOPEパラメータとしてはDHCPスコープ番号を指定することもできるし、DHCPスコープが定義されているサブネットに含まれるIPアドレスで指定することもできる。IPアドレスでDHCPスコープを指定する場合に、複数のDHCPスコープが該当する時には、その中で最も長いネットマスク長を持つDHCPスコープを選択する。
  • SCOPEパラメータを省略した場合には、フィルタが適用されるインタフェースで使用されるDHCPスコープがすべて対象となる。
  • dhcp-bind、dhcp-not-bind型のフィルタが DHCP リレーエージェントとして動作しているルーターに設定された場合、DHCP サーバから DHCPスコープとその DHCP スコープにおけるクライアントの予約情報を取得し、フィルタの適用時に参照する。DHCP サーバからの DHCP スコープおよび予約情報の取得は、DHCP メッセージをリレーする際、DHCP メッセージのオプション部に予約情報を書き込んで通知することにより行なわれる。
[ノート]
  • LAN分割機能を使用する場合には、ルーター内部でイーサネットタイプとして0x8100〜0x810fの値を使用しているので、それらのイーサネットフレームをフィルタして送受信できないようにすると、LAN分割機能を使用しているポートで通信できなくなるので注意が必要である。
  • dhcp-bind、dhcp-not-bind型のフィルタでは、イーサネットフレームの始点MACアドレスや始点IPアドレスを用いてフィルタの判定をするため、ethernet lan filterコマンドでは通常in方向にのみ使用することになる。out方向の場合、始点MACアドレスはルーター自身のMACアドレスになるため、DHCPの予約情報と一致することはない。
  • dhcp-bind型フィルタは、予約されているクライアントだけを通過させる、という形になるため、通常はpass等と組み合わせて使用する。一方、dhcp-not-bind型フィルタは、予約されていないクライアントを破棄する、という形になるため、通常はreject等と組み合わせて使用することになる。

インターフェイスでのイーサネットフィルタリングの設定

[書式]
ethernet IF filter DIR LIST
no ethernet IF filter DIR [LIST]
[設定値]
  • IF ... LANインターフェイス名
  • DIR
    • in ... LAN側から入ってくるパケットのフィルタリング
    • out ... LAN側に出ていくパケットのフィルタリング
  • LIST ... 空白で区切られた静的フィルタ番号の並び(100個以内)
[説明]

LAN側を通るパケットについて、ethernat filterコマンドによるパケットのフィルタを組み合わせて、通過するパケットの種類を制限する。

[ノート]

LANインターフェイス名に指定できるのは物理的なLANだけであり、VLANインタフェースは指定できない。

[初期値]
フィルタは設定されていない

DHCP アドレス割り当て動作の設定

[書式]
dhcp scope lease type SCOPE_NUM TYPE [fallback=FALLBACK_SCOPE_NUM]
no dhcp scope lease type SCOPE [TYPE ...]
[設定値]
  • SCOPE_NUM, FALLBACK_SCOPE_NUM ... スコープ番号 (1..65535)
  • TYPE ... 割り当ての動作
    • bind-priority ... 予約情報を優先して割り当てる
    • bind-only ... 予約情報だけに制限して割り当てる
[説明]
  • SCOPE_NUMで指定したDHCPスコープにおける、アドレスの割り当て方法を制御する。
  • TYPEにbind-priorityを指定した場合には、dhcp scope bindコマンドで予約されたクライアントには予約どおりのIPアドレスを、予約されていないクライアントには他のクライアントに予約されていない空きアドレスがスコープ内にある限りそれを割り当てる。
  • TYPEにbind-priorityを指定した場合には、fallbackオプションは指定できない。
  • TYPEにbind-onlyを指定した場合は、fallbackオプションでフォールバックスコープを指定しているかどうかによって動作が変わる。
  • fallbackオプションの指定が無い場合、dhcp scope bindコマンドで予約されているクライアントにのみIPアドレスを割り当て、予約されていないクライアントにはたとえスコープに空きがあってもIPアドレスを割り当てない。
  • TYPEにbind-onlyを指定し、同時にfallbackオプションでフォールバックスコープを指定している場合には、以下のような動作になる。
    • (1) クライアントが、スコープでIPアドレスを予約されている時には、予約どおりのIPアドレスを割り当てる。
    • (2) クライアントが、スコープではIPアドレスが予約されていないが、フォールバックスコープでは予約されている時には、フォールバックスコープでの予約どおりのIPアドレスを割り当てる。
    • (3) クライアントが、スコープ、フォールバックスコープのいずれでもIPアドレスを予約されていない時には、フォールバックスコープに対するdhcp scope lease typeコマンドの設定によって動作が変わる。
      • (3a) フォールバックスコープに対するdhcp scope lease typeコマンドの設定がbind-priorityになっている時には、クライアントにはフォールバックスコープに空きアドレスがある限りそれを割り当てる。
      • (3b) フォールバックスコープに対するdhcp scope lease typeコマンドの設定がbind-onlyになっている時には、クライアントにはIPアドレスは割り当てられない。
  • いずれの場合も、リース期間は各DHCPスコープの定義に従う。
[初期値]
bind-priority

DHCP 割り当て情報を元にした予約設定の生成

[書式]
dhcp convert lease to bind SCOPE_N [except] [IDX [...]]
[設定値]
  • SCOPE_N ... スコープ番号(1-65535)
  • IDX
    • 番号 ... show status dhcp summaryコマンドで表示されるインデックス番号、最大100個
    • all ... 割り当て中の情報全てを対象とする
    • 省略時はall
[説明]

現在の割り当て情報を元に予約設定を作成する。exceptキーワードを指示すると、指定した番号以外の情報が予約設定に反映される。

[ノート]

以下の変換規則でIPアドレス割り当て情報が予約設定に変換される。

IPアドレス割り当て情報の
クライアント識別種別
(show status dhcpで表示される名称)
クライアント識別情報 例 予約設定情報 例
クライアントイーサネットアドレス 00:a0:de:01:02:03 ethernet 00:a0:de:01:02:03 ※1
00:a0:de:01:02:03 ※2
クライアントID (01) 00 a0 de 01 02 03 ethernet 00:a0:de:01:02:03
(01) 00 a0 de 01 02 03 04 01 00 a0 de 01 02 03 04
(00) 31 32 33 00 31 32 33

※1:rfc2131 compliant onあるいはuse-clientidありの場合、このようなIPアドレス割り当て情報の表示はARPチェックの結果である可能性が高く、通常の割り当て時にはクライアントIDオプションが使われるため、この形式で予約設定をする。ただし、MACアドレスと異なるクライアントIDを使うホストが存在する場合はこの自動変換による予約は有効に機能しないため、そのようなホストに対する予約設定は別途、手動で行う必要がある
※2:rfc2131 compliant offあるいはuse-clientidなしの場合、chaddrフィールドを使用する。

コマンド実行時点での割り当て情報を元に予約設定を作成する。サマリ表示からこの変換コマンドの実行までに時間が経過した場合には、本コマンド実行後に意図したペアの予約が作成されていることをshow configで確認するべきである。

変換作成された予約情報を不揮発性メモリに保存するためには別途saveコマンドを実行する。

メール通知の設定(トリガーの条件にイーサネットフィルタを追加)

[書式]
mail notify NUM TEMPLATE_ID trigger backup IF_B RANGE [IF_B RANGE ...]
mail notify NUM TEMPLATE_ID trigger route ROUTE [ROUTE ...]
mail notify NUM TEMPLATE_ID trigger filter ethernet IF_F DIR [IF_F DIR [...]]
no mail notify NUM
[設定値]
  • NUM ... 設定番号(1-10)
  • TEMPLATE_ID ... メールテンプレートID(1-10)
  • IF_B ... メール通知を行うバックアップ対象のインターフェイス
    • pp ... PPバックアップ
    • lanN ... LANバックアップ
    • tunnel ... TUNNELバックアップ
  • RANGE ... インターフェイス番号および範囲指定、pp, tunnelのみ(*,xx-yy,zz etc)
  • ROUTE ... ネットマスク付きの経路
  • IF_F ... メール通知を行うフィルタの設定されたLANインターフェイス
  • DIR ... フィルタ設定の方向
    • in ... 受信方向
    • out ... 送信方向
[説明]
  • メール通知を行うトリガ動作の設定を行う。バックアップ、経路変更、およびフィルタのログ表示をトリガとして指定できる。
  • バックアップおよび経路については以下で設定されたものが対象となる。
    • PPバックアップ ... pp backupコマンド
    • LANバックアップ ... lan backupコマンド
    • TUNNELバックアップ ... tunnel backupコマンド
    • 経路に対するバックアップ ... ip routeコマンド
  • フィルタについてはログ表示されるものが対象となる。
    • イーサネットフィルタ ... pass-log, reject-logパラメータの定義
  • また、一つのテンプレートIDに所属するメール通知設定はまとめて処理される。
[ノート]

ネットワークバックアップは経路に対するバックアップなので、trigger routeを使用する。

[設定例]
mail notify 1 1 trigger backup pp * lan2 lan3 tunnel 1-10,12
mail notify 2 1 trigger route 192.168.1.0/24,172.16.0.0/16
mail notify 3 1 trigger filter ethernet lan1 in

DHCP予約アドレスの設定(IPアドレスとして'*'を指定可能とするよう拡張)

[書式]
dhcp scope bind SCOPE_NUM IP_ADDRESS [TYPE] ID
dhcp scope bind SCOPE_NUM IP_ADDRESS MAC_ADDRESS
dhcp scope bind SCOPE_NUM IP_ADDRESS ipcp
no dhcp scope bind SCOPE_NUM IP_ADDRESS [[TYPE] ID]
no dhcp scope bind SCOPE_NUM IP_ADDRESS MAC_ADDRESS
[設定値]
  • SCOPE_NUM ... スコープ番号(1..65535)
  • IP_ADDRESS ...予約するIP アドレス
    • xxx.xxx.xxx.xxx(xxxは10進数)
    • * (リースするIPアドレスを指定しない)
  • TYPE ... Client-Identifier オプションのtypeフィールドを決定する
    • 0x00(text)
    • 0x01(ethernet)
  • ID
    • typeがethernetの場合 ... MACアドレス
    • typeがtextの場合 ... 文字列
    • typeが省略された場合 ... 2桁16進数の列で先頭はtypeフィールド
  • MAC_ADDRESS ... 予約クライアントのMACアドレス
    • xx:xx:xx:xx:xx:xx (xxは16進数)
  • ipcp ... IPCPでリモート側に与えることを示すキーワード
[説明]

IPアドレスをリースするDHCPクライアントを固定的に設定する。

[ノート]

従来のコマンドリファレンスの記述より変更なし。

DHCPアドレス割り当て状態の表示("summary"キーワード追加)

[書式]
show status dhcp [summary] [SCOPE_N]
[設定値]
  • summary ... 各DHCP スコープのIP アドレス割り当て状況の概要を表示する
  • SCOPE_N ... スコープ番号(1-65535)
[説明]
  • 各 DHCP スコープのリース状況を表示する。以下の項目が表示される。
    • DHCP スコープのリース状態
    • DHCP スコープ番号
    • ネットワークアドレス
    • 割り当て中 IP アドレス
    • 割り当て中クライアント MAC アドレス
    • リース残時間
    • 予約済(未使用) IP アドレス
    • DHCP スコープの全 IP アドレス数
    • 除外 IP アドレス数
    • 割り当て中 IP アドレス数
    • 利用可能アドレス数(うち予約済 IP アドレス数)

設定例

[プライマリネットワークのみの設定例1] 特定の端末のみ外部との通信を許可

[概要]
  • 各端末はDHCPクライアントとしてDHCPサーバであるルーターからIPアドレスを得る
  • DHCPサーバでは特定の端末に対して与えるIPアドレスを予約する
  • 特定の端末以外にはIPアドレスを与えない
  • 特定の端末以外の外部への通信を遮断する
[構成図]
               172.16.1.0/24
      ┌─┐        │
 端末A│○+────+
      └─┘        │
 00:a0:de:01:02:03  │
 172.16.1.2を与える │
                    │
      ┌─┐        │
 端末B│○+────+
      └─┘        │
 00:a0:de:11:12:13  │      ┌────┐   外部ネットワークへ
 172.16.1.3を与える +───+ルーター+────→
                    │  lan1└────┘
      ┌─┐        │      DHCPサーバ
 端末C│○+────+
      └─┘        │
 00:a0:de:21:22:23  │
 172.16.1.4を与える │
                    │
      ┌─┐        │
      │×+────+
      └─┘        │
      その他
 外部へのアクセスを禁止
[設定手順]
# ethernet filter 1 pass-nolog dhcp-bind 1
# ethernet lan1 filter in 1
# dhcp service server
# dhcp scope lease type 1 bind-only
# dhcp scope 1 172.16.1.2-172.16.1.127/24
# dhcp scope bind 1 172.16.1.2 ethernet 00:a0:de:01:02:03
# dhcp scope bind 1 172.16.1.3 ethernet 00:a0:de:11:12:13
# dhcp scope bind 1 172.16.1.4 ethernet 00:a0:de:21:22:23
[解説]
  • # ethernet filter 1 pass-nolog dhcp-bind 1
    # ethernet lan1 filter in 1
    送信元MACアドレスとIPアドレスがDHCP予約設定に一致するパケットのみを通過させます。
  • # dhcp service server
    DHCPサーバとして機能させます。
  • # dhcp scope lease type 1 bind-only
    スコープ1の範囲内のIPアドレスに空きがあったとしても、予約されたクライアント以外にはIPアドレスを割り当てません。
  • # dhcp scope 1 172.16.1.2-172.16.1.127/24
    DHCPサーバとしてクライアントに与えるアドレス範囲を設定します。
  • # dhcp scope bind 1 172.16.1.2 ethernet 00:a0:de:01:02:03
    # dhcp scope bind 1 172.16.1.3 ethernet 00:a0:de:11:12:13
    # dhcp scope bind 1 172.16.1.4 ethernet 00:a0:de:21:22:23
    端末A/B/CにIPアドレスの割り当てを予約します。

[プライマリネットワークのみの設定例2] 許可されていない端末の通信を検知したらメールで通知

[概要]
  • ルーターのLAN1のフィルタリングに静的設定を行う
  • 端末A/B/C以外の端末からアクセスがあったら、mx.example.co.jp 経由でメール通知を行う
[構成図]
               172.16.1.0/24
      ┌─┐        │
 端末A│○+────+
      └─┘        │
 00:a0:de:01:02:03  │
                    │
      ┌─┐        │
 端末B│○+────+
      └─┘        │
 00:a0:de:11:12:13  │      ┌────┐   外部ネットワークへ
                    +───+ルーター+────→
                    │  lan1└+───┘
      ┌─┐        │        │
 端末C│○+────+    ──+─+──
      └─┘        │            │ mx.example.co.jp
 00:a0:de:21:22:23  │      ┌──+───┐
                    │      │メールサーバ│
      ┌─┐        │      └──────┘
      │×+────+
      └─┘        │
      その他
 外部へのアクセスを禁止
[設定手順]
# ethernet filter 1 pass-nolog 00:a0:de:01:02:03
# ethernet filter 2 pass-nolog 00:a0:de:11:12:13
# ethernet filter 3 pass-nolog 00:a0:de:21:22:23
# ethernet filter 100 reject-log *
# ethernet lan1 filter in 1 2 3 100
# mail server smtp 1 mx.example.co.jp
# mail template 1 1 From:filter@rtx1200 To:admin@example.co.jp
# mail notify 1 1 trigger filter ethernet lan1 in
[解説]
  • # ethernet filter 1 pass-nolog 00:a0:de:01:02:03
    # ethernet filter 2 pass-nolog 00:a0:de:11:12:13
    # ethernet filter 3 pass-nolog 00:a0:de:21:22:23
    端末A/B/Cからのパケットを通過させるためのフィルタ定義を設定します。
  • # ethernet filter 100 reject-log *
    メール通知用にログ出力するフィルタ定義を設定します。
  • # ethernet lan1 filter in 1 2 3 100
    LAN1から受信するパケットに対して各定義を適用します。
  • # mail server smtp 1 mx.example.co.jp
    # mail template 1 1 From:filter@rtx1200 To:admin@example.co.jp
    メール通知で使用するSMTPサーバおよびヘッダ情報を設定します。
  • # mail notify 1 1 trigger filter ethernet lan1 in
    メール通知するトリガとしてLAN1の受信方向のフィルタを設定します。

[プライマリネットワークのみの設定例3] 現在の DHCP のアドレス割り当て情報から DHCP の予約設定を作成

[概要]
  • 各端末はDHCPクライアントとしてDHCPサーバであるルーターからIPアドレスを得る
  • ある時点の割り当て情報を利用して特定の端末に与えるIPアドレスを予約する
  • 特定の端末以外にはIPアドレスを与えない
  • 特定の端末以外の外部への通信を遮断する
[構成図]
               172.16.1.0/24
      ┌─┐        │
 端末A│○+────+
      └─┘        │
 00:a0:de:01:02:03  │
 172.16.1.2を与える │
                    │
      ┌─┐        │
 端末B│○+────+
      └─┘        │
 00:a0:de:11:12:13  │      ┌────┐   外部ネットワークへ
 172.16.1.3を与える +───+ルーター+────→
                    │  lan1└────┘
      ┌─┐        │      DHCPサーバ
 端末C│○+────+
      └─┘        │
 00:a0:de:21:22:23  │
 172.16.1.4を与える │
                    │
      ┌─┐        │
      │×+────+
      └─┘        │
      その他
 外部へのアクセスを禁止
[設定手順]
# dhcp service server
# dhcp scope 1 172.16.1.2-172.16.1.127/24
# show status dhcp summary 1
DHCPスコープ番号: 1
  1:        172.16.1.2:  00:a0:de:01:02:03, hostname_A
  2:        172.16.1.3:  00:a0:de:11:12:13, hostname_B
  3:        172.16.1.4:  00:a0:de:21:22:23, hostname_C
  4:        172.16.1.5:  00:a0:de:31:32:33, hostname_D
  5:        172.16.1.6:  00:a0:de:41:42:43, hostname_E
# dhcp convert lease to bind 1 1 2 3
# dhcp scope lease type 1 bind-only
# ethernet filter 1 pass-nolog dhcp-bind 1
# ethernet lan1 filter in 1
[解説]
  • # dhcp service server
    DHCPサーバとして機能させます。
  • # dhcp scope 1 172.16.1.2-172.16.1.127/24
    DHCPサーバとしてクライアントに与えるアドレス範囲を設定します。
    この後、各端末でIPアドレスを取得するなどしてDHCPサーバがクライアントの割り当て情報を管理できるようにします。
  • # show status dhcp summary 1
    クライアントに割り当てたIPアドレス情報の概要を表示します。
    # show status dhcp summary 1
    DHCPスコープ番号: 1
      1:        172.16.1.2:  00:a0:de:01:02:03, hostname_A
      2:        172.16.1.3:  00:a0:de:11:12:13, hostname_B
      3:        172.16.1.4:  00:a0:de:21:22:23, hostname_C
      4:        172.16.1.5:  00:a0:de:31:32:33, hostname_D
      5:        172.16.1.6:  00:a0:de:41:42:43, hostname_E
    
  • # dhcp convert lease to bind 1 1 2 3
    表示1,2,3番の割り当て情報を予約設定に移行します。
    例えばこの場合、1番の割り当て情報からは
    dhcp scope bind 1 172.16.1.2 ethernet 00:a0:de:01:02:03
    のコマンドが作成されます。
    なおこのコマンドはコマンド実行時点での割り当て情報を元に予約設定を作成します。
    サマリ表示からこの変換コマンドの実行までに時間が経過した場合には、本コマンド実行後に意図したペアの予約が作成されていることを show config で確認してください。
  • # dhcp scope lease type 1 bind-only
    スコープ1の範囲内のIPアドレスに空きがあったとしても、予約されたクライアント以外にはIPアドレスを割り当てません。
  • # ethernet filter 1 pass-nolog dhcp-bind 1
    # ethernet lan1 filter in 1
    LAN1 から入ってきたパケットについて、送信元MACアドレスとIPアドレスがDHCP予約設定に一致するパケットのみを通過させます。

[セカンダリネットワークを用いた設定例1] インターネットアクセス

[概要]
  • 登録されている端末(端末1)をプライマリネットワークに配置
    • 端末1からの通信はフィルタリング無し
  • 登録されていない端末(端末2)をセカンダリネットワークに配置
    • 端末2からは社内の特定のネットワーク(192.168.100.0/24)にのみアクセス可能
    • 登録されていない端末にも必要最低限の社内アクセスを可能にする
  • 登録されていない端末(端末3)が固定IPでプライマリネットワークに接続された場合
    • 端末3からの通信をすべて遮断
  • 登録されていない端末が唯一アクセスできるネットワークとして、192.168.100.0/24 を配置
    • 例えば、ここに、メールサーバ・社内向けWebサーバを置いておけば、業務に最低限必要な情報や、システム管理者からのメッセージを受け取ることができる。
  • ルーターAは DHCP サーバとして動作
[構成図]
           (primary) 192.168.0.0/24
         (secondary) 172.16.0.0/24
                    |
    +-------+       |
    | 端末1 +-------+
    +-------+       |
00:a0:de:01:02:03   |
 primary address    |
     (DHCP)         |
                    |
    +-------+       |
    | 端末2 +-------+
    +-------+       |
00:a0:de:11:12:13   |
secondary address   |        192.168.100.0/24
     (DHCP)         |               |
                    |               |
    +-------+       |               |
    | 端末3 +-------+               | lan3
    +-------+       |               | 192.168.100.1/24
00:a0:de:21:22:23   |            +--+--------+
  192.168.0.200     +------------+ ルーターA +-----------> 外部ネットワークへ
     (固定IP)       |       lan1 +-----------+ lan2
                     (primary) 192.168.0.1/24
                   (secondary) 172.16.0.1/24
[設定手順]

(WAN側の設定は省略)

(ルーターA)

# ip lan1 address 192.168.0.1/24
# ip lan1 secondary address 172.16.0.1/24
# ip lan3 address 192.168.100.1/24
# dhcp service server
# dhcp scope 1 192.168.0.2-192.168.0.5/24
# dhcp scope 2 172.16.0.2-172.16.0.5/24
# dhcp scope bind 1 192.168.0.2 ethernet 00:a0:de:01:02:03
# dhcp scope lease type 1 bind-only fallback=2
# ip filter 1 pass-nolog 192.168.0.0/24 *
# ip lan2 secure filter out 1
# ethernet filter 1 reject-log dhcp-not-bind 192.168.0.1
# ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
# ethernet lan1 filter in 1 2
[解説]
  • # ip lan1 address 192.168.0.1/24
    # ip lan1 secondary address 172.16.0.1/24
    LAN側(lan1ポート)のプライマリアドレスとセカンダリアドレスを設定します。
  • # ip lan3 address 192.168.100.1/24
    LAN側(lan3ポート)のIPアドレスを設定します。
  • # dhcp service server
    DHCPサーバとして機能させます。
  • # dhcp scope 1 192.168.0.2-192.168.0.5/24
    # dhcp scope 2 172.16.0.2-172.16.0.5/24
    プライマリ・セカンダリネットワークに対する DHCP スコープを定義します。
    gateway パラメータを省略しているので、ゲートウェイアドレスとしてはそれぞれルーターのIPアドレスが通知されます。
  • # dhcp scope bind 1 192.168.0.2 ethernet 00:a0:de:01:02:03
    プライマリネットワークのDHCPスコープ(DHCPスコープ番号1)に、端末1のIPアドレスを予約します。
  • # dhcp scope lease type 1 bind-only fallback=2
    プライマリネットワークのDHCPスコープ(DHCPスコープ番号1)においてアドレスが予約されている端末には、予約済みのアドレスを割り当てます。
    スコープ1からのアドレス割り当てに失敗した場合、スコープ2からの割り当てを試みます。
  • # ip filter 1 pass-nolog 192.168.0.0/24 *
    # ip lan2 secure filter out 1
    プライマリネットワークからのパケットのみを外部ネットワークへ通過させます。
  • # ethernet filter 1 reject-log dhcp-not-bind 192.168.0.1
    # ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
    # ethernet lan1 filter in 1 2
    プライマリネットワークからのパケットについては、dhcp scope bind コマンドで予約されていない端末からのパケットを破棄します。
    プライマリネットワーク以外からのパケットについては全てを通過させます。
[参考]

セカンダリネットワーク(172.16.0.0/24)からプライマリネットワーク(192.168.0.0/24)へのアクセスも禁止したい場合には、IPフィルタの設定を以下のように変更します。
この場合、セカンダリネットワークからルーターAへ届く DHCP パケットをフィルタリングしないように注意が必要です。

# ip filter 1 pass-nolog 172.16.0.0/24 192.168.100.0/24 *
# ip filter 2 pass-nolog 192.168.0.0/24 *
# ip filter 3 pass-nolog 0.0.0.0 *
# ip filter 4 pass-nolog 172.16.0.0/24 172.16.0.1 *
# ip lan1 secure filter in 1 2 3 4

[セカンダリネットワークを用いた設定例2] インターネットVPN

[概要]
  • 拠点1・拠点2・センターの3地点構成
  • センター・各拠点間はインターネットVPNで接続
  • 端末の登録はセンター側のルーターで一括管理
  • 各拠点及びセンターにおいて、登録されている端末(端末A1・端末B1・端末C1)をプライマリネットワークに配置
    • 登録されている端末からの通信はフィルタリング無し
  • 各拠点及びセンターにおいて、登録されていない端末(端末A2・端末B2・端末C2)をセカンダリネットワークに配置
    • 登録されていない端末からは社内の特定のネットワーク(192.168.200.0/24)にのみアクセス可能
  • 各拠点及びセンターにおいて、登録されていない端末(端末A3・端末B3・端末C3)が固定IPでプライマリネットワークに接続された場合
    • これらの端末からの通信をすべて遮断
  • センターに、登録されていない端末が唯一アクセスできるネットワークとして、192.168.200.0/24 を配置
    • 例えば、ここに、メールサーバ・社内向けWebサーバを置いておけば、業務に最低限必要な情報や、システム管理者からのメッセージを受け取ることができる。
  • ルーターA・ルーターBーは DHCP リレーエージェントとして動作
  • ルーターCは DHCP サーバとして動作
[構成図]
(p): primary
(s): secondary
                                                (p) 192.168.0.0/24
                                                (s) 192.168.100.0/24
                                                           |
                                         +--------+        |
                                         | 端末C1 +--------+
                                         +--------+        |
                                      00:a0:de:61:62:63    |
                                       primary address     |
                                                           |
                                         +--------+        |
                                         | 端末C2 +--------+
                                         +--------+        |
                                      00:a0:de:71:72:73    |
                                      secondary address    |
         (p) 192.168.1.0/24                (DHCP)          |
         (s) 192.168.101.0/24                              |
                    |                    +--------+        |
   +--------+       |                    | 端末C3 +--------+
   | 端末A1 +-------+                    +--------+        |
   +--------+       |                 00:a0:de:81:82:83    |
00:a0:de:01:02:03   |                   192.168.0.200      |
 primary address    |                     (固定IP)         |
     (DHCP)         |                                      |
                    |                                      |
   +--------+       |                 (p) 192.168.0.1/24   |
   | 端末A2 +-------+                 (s) 192.168.100.1/24 |   192.168.200.0/24
   +--------+       |                                 lan1 |          |
00:a0:de:11:12:13   |                                 +----+------+     |
secondary address   |                      (センター) | ルーターC +-----+
     (DHCP)         |                                 +----+------+ lan3
                    |                                 lan2 |        192.168.200.1/24
   +--------+       |                                      |
   | 端末A3 +-------+                                      |
   +--------+       |          (拠点1)                /----+---\
00:a0:de:21:22:23   |            +-------------+      |        |
  192.168.1.200     +------------+ ルーターAー +------+        |
    (固定IP)        |       lan1 +-------------+ lan2 |        |
                     (p) 192.168.1.1/24               |        |
                     (s) 192.168.101.1/24             |        |
                                                      |        |
                                                      |        |
                                                      |        |
         (p) 192.168.2.0/24                           |        |
         (s) 192.168.102.0/24                         |        |
                    |                                 |        |
   +--------+       |                                 |        |
   | 端末B1 +-------+                                 |  VPN   |
   +--------+       |                                 | tunnel |
00:a0:de:31:32:33   |                                 |        |
 primary address    |                                 |        |
     (DHCP)         |                                 |        |
                    |                                 |        |
   +--------+       |                                 |        |
   | 端末B2 +-------+                                 |        |
   +--------+       |                                 |        |
00:a0:de:41:42:43   |                                 |        |
secondary address   |                                 |        |
     (DHCP)         |                                 |        |
                    |                                 |        |
   +--------+       |                                 |        |
   | 端末B3 +-------+                                 |        |
   +--------+       |         (拠点2)                 |        |
00:a0:de:51:52:53   |            +-------------+      |        |
  192.168.2.200     +------------+ ルーターBー +------+        |
    (固定IP)        |       lan1 +-------------+ lan2 |        |
                     (p) 192.168.2.1/24               \--------/
                     (s) 192.168.102.1/24
[設定手順]

(それぞれWAN側の設定は省略)

(ルーターA)

# ip lan1 address 192.168.1.1/24
# ip lan1 secondary address 192.168.101.1/24
# dhcp service relay
# dhcp relay server 192.168.0.1
# ip filter 1 pass-nolog 192.168.101.0/24 192.168.200.0/24
# ip filter 2 pass-nolog 192.168.1.0/24 *
# ip lan2 secure filter out 1 2
# ethernet filter 1 reject-log dhcp-not-bind 192.168.1.1
# ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
# ethernet lan1 filter in 1 2

(ルーターB)

# ip lan1 address 192.168.2.1/24
# ip lan1 secondary address 192.168.102.1/24
# dhcp service relay
# dhcp relay server 192.168.0.1
# ip filter 1 pass-nolog 192.168.102.0/24 192.168.200.0/24
# ip filter 2 pass-nolog 192.168.2.0/24 *
# ip lan2 secure filter out 1 2
# ethernet filter 1 reject-log dhcp-not-bind 192.168.2.1
# ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
# ethernet lan1 filter in 1 2

(ルーターC)

# ip lan1 address 192.168.0.1/24
# ip lan1 secondary address 192.168.100.1/24
# ip lan3 address 192.168.200.1/24
# dhcp service server

# dhcp scope 1 192.168.1.2-192.168.1.5/24 gateway 192.168.1.1
# dhcp scope 2 192.168.101.2-192.168.101.5/24 gateway 192.168.101.1
# dhcp scope bind 1 192.168.1.2 ethernet 00:a0:de:01:02:03
# dhcp scope lease type 1 bind-only fallback=2

# dhcp scope 3 192.168.2.2-192.168.2.5/24 gateway 192.168.2.1
# dhcp scope 4 192.168.102.2-192.168.102.5/24 gateway 192.168.102.1
# dhcp scope bind 3 192.168.2.2 ethernet 00:a0:de:31:32:33
# dhcp scope lease type 3 bind-only fallback=4

# dhcp scope 5 192.168.0.2-192.168.0.5/24 gateway 192.168.0.1
# dhcp scope 6 192.168.100.2-192.168.100.5/24 gateway 192.168.100.1
# dhcp scope bind 5 192.168.0.2 ethernet 00:a0:de:61:62:63
# dhcp scope lease type 5 bind-only fallback=6

# ip filter 1 pass-nolog 192.168.0.0/24 *
# ip lan2 secure filter out 1
# ethernet filter 1 reject-log dhcp-not-bind 192.168.0.1
# ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
# ethernet lan1 filter in 1 2
[解説]

(ルーターA)

  • # ip lan1 address 192.168.1.1/24
    # ip lan1 secondary address 192.168.101.1/24
    LAN側(lan1)のプライマリアドレスとセカンダリアドレスを設定します。
  • # dhcp service relay
    # dhcp relay server 192.168.0.1
    DHCPリレーエージェントとして動作させます。
    センター側のルーターをDHCPサーバに指定します。
  • # ip filter 1 pass-nolog 192.168.101.0/24 192.168.200.0/24
    # ip filter 2 pass-nolog 192.168.1.0/24 *
    # ip lan2 secure filter out 1 2
    セカンダリネットワークからのパケットは、192.168.100.0/24 へ向かうパケットのみを通過させます。
    プライマリネットワークからのパケットは全て通過させます。
  • # ethernet filter 1 reject-log dhcp-not-bind 192.168.1.1
    # ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
    # ethernet lan1 filter in 1 2
    プライマリネットワークからのパケットについては、センター側の DHCP サーバにおいて、dhcp scope bind コマンドで予約されていない端末からのパケットを破棄します。
    プライマリネットワーク以外からのパケットについては全てを通過させます。

(ルーターB)

省略

(ルーターC)

  • # ip lan1 address 192.168.0.1/24
    # ip lan1 secondary address 192.168.100.1/24
    LAN側(lan1)のプライマリアドレスとセカンダリアドレスを設定します。
  • # ip lan3 address 192.168.200.1/24
    LAN側(lan3)のIPアドレスを設定します。
  • # dhcp service server
    DHCPサーバとして機能させます。
  • # dhcp scope 1 192.168.1.2-192.168.1.5/24 gateway 192.168.1.1
    # dhcp scope 2 192.168.101.2-192.168.101.5/24 gateway 192.168.101.1
    # dhcp scope bind 1 192.168.1.2 ethernet 00:a0:de:01:02:03
    # dhcp scope lease type 1 bind-only fallback=2
    拠点1のネットワークに対応するDHCPサーバの設定を行います。
    拠点1のプライマリ・セカンダリネットワークに対するDHCPスコープを設定し、端末A1のアドレスをプライマリネットワークに予約します。
    プライマリネットワークのDHCPスコープ(DHCPスコープ番号1)において予約されていない端末は、セカンダリネットワークのDHCPスコープ(DHCPスコープ番号2)からアドレスを割り当てます。
  • # dhcp scope 3 192.168.2.2-192.168.2.5/24 gateway 192.168.2.1
    # dhcp scope 4 192.168.102.2-192.168.102.5/24 gateway 192.168.102.1
    # dhcp scope bind 3 192.168.2.2 ethernet 00:a0:de:31:32:33
    # dhcp scope lease type 3 bind-only fallback=4
    拠点1と同様の設定を、拠点2に対して行います。
  • # dhcp scope 5 192.168.0.2-192.168.0.5/24 gateway 192.168.0.1
    # dhcp scope 6 192.168.100.2-192.168.100.5/24 gateway 192.168.100.1
    # dhcp scope bind 5 192.168.0.2 ethernet 00:a0:de:61:62:63
    # dhcp scope lease type 5 bind-only fallback=6
    拠点1と同様の設定を、センターに対して行います。
  • # ip filter 1 pass-nolog 192.168.0.0/24 *
    # ip lan2 secure filter out 1
    プライマリネットワークからのパケットのみを外部へ通過させます。
  • # ethernet filter 1 reject dhcp-not-bind 192.168.0.1
    # ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
    # ethernet lan1 filter in 1 2
    プライマリネットワークからのパケットについては、dhcp scope bind コマンドで予約されていない端末からのパケットを破棄します。
    プライマリネットワーク以外からのパケットについては全てを通過させます。

[セカンダリネットワークを用いた設定例3] フィルタ型ルーティングを用いたプロバイダの切り替え

[概要]
  • 登録されている端末(端末1)をプライマリネットワークに配置
    • 端末1はプロバイダAを経由してインターネットに接続
  • 登録されていない端末(端末2)をセカンダリネットワークに配置
    • 端末2はプロバイダBを経由してインターネットに接続
  • 登録されていない端末(端末3)が固定IPでプライマリネットワークに接続された場合
    • 端末3からの通信をすべて遮断
[構成図]
           (primary) 192.168.0.0/24
         (secondary) 172.16.0.0/24
                    |
    +-------+       |
    | 端末1 +-------+
    +-------+       |
00:a0:de:01:02:03   |
 primary address    |
     (DHCP)         |
                    |               +-----> The Internet
    +-------+       |               |
    | 端末2 +-------+        +------+------+
    +-------+       |        | プロバイダA |
00:a0:de:11:12:13   |        +------+------+
secondary address   |               |                     +--> The Internet
     (DHCP)         |           +---+----+                |
                    |           | モデム |         +------+------+
    +-------+       |           +---+----+         | プロバイダB |
    | 端末3 +-------+               |              +------+------+
    +-------+       |               | lan3                |
00:a0:de:21:22:23   |            +--+--------+ lan2   +---+----+
  192.168.0.200     +------------+ ルーターA +--------+ モデム |
     (固定IP)       |       lan1 +-----------+        +--------+
                     (primary) 192.168.0.1/24
                   (secondary) 172.16.0.1/24
[設定手順]
# ip lan1 address 192.168.0.1/24
# ip lan1 secondary address 172.16.0.1/24

# dhcp service server
# dhcp scope 1 192.168.0.2-192.168.0.5/24
# dhcp scope 2 172.16.0.2-172.16.0.5/24
# dhcp scope bind 1 192.168.0.2 ethernet 00:a0:de:01:02:03
# dhcp scope lease type 1 bind-only fallback=2

# nat descriptor type 1 masquerade
# nat descriptor address inner 1 192.168.0.2-192.168.0.5
# pp select 1
pp1# pppoe use lan3
pp1# pp auth accept chap pap
pp1# pp auth myname ID_A PASSWORD_A
pp1# ppp ipcp ipaddress on
pp1# ppp ipcp msext on
pp1# ip pp nat descriptor 1
pp1# ppp lcp mru on 1454
pp1# ip pp mtu 1454
pp1# pp enable 1
pp1# pp select none

# nat descriptor type 2 masquerade
# nat descriptor address inner 2 172.16.0.2-172.16.0.5
# pp select 2
pp2# pppoe use lan2
pp2# pp auth accept chap pap
pp2# pp auth myname ID_B PASSWORD_B
pp2# ppp ipcp ipaddress on
pp2# ppp ipcp msext on
pp2# ip pp nat descriptor 2
pp2# ppp lcp mru on 1454
pp2# ip pp mtu 1454
pp2# pp enable 1
pp2# pp select none

# ip filter 1 pass-nolog 192.168.0.0/24 * * * *
# ip filter 2 pass-nolog 172.16.0.0/24 * * * *
# ip route default gateway pp 1 filter 1 pp 2 filter 2

# ethernet filter 1 reject-log dhcp-not-bind 192.168.0.1
# ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
# ethernet lan1 filter in 1 2
[解説]
  • # ip lan1 address 192.168.0.1/24
    # ip lan1 secondary address 172.16.0.1/24
    LAN側(lan1ポート)のプライマリIPアドレスとセカンダリIPアドレスを設定します。
  • # dhcp service server
    # dhcp scope 1 192.168.0.2-192.168.0.5/24
    # dhcp scope 2 172.16.0.2-172.16.0.5/24
    # dhcp scope bind 1 192.168.0.2 ethernet 00:a0:de:01:02:03
    # dhcp scope lease type 1 bind-only fallback=2
    DHCPサーバの動作を設定します。
    端末1のIPアドレスをスコープ1内に予約します。
    スコープ1に予約されている端末には、スコープ1から予約済みのアドレスを割り当て、スコープ1に予約されていない端末には、スコープ2から空きアドレスを割り当てます。
  • # nat descriptor type 1 masquerade
    # nat descriptor address inner 1 192.168.0.2-192.168.0.5
    # pp select 1
    pp1# pppoe use lan3
    pp1# pp auth accept chap pap
    pp1# pp auth myname ID_A PASSWORD_A
    pp1# ppp ipcp ipaddress on
    pp1# ppp ipcp msext on
    pp1# ip pp nat descriptor 1
    pp1# ppp lcp mru on 1454
    pp1# ip pp mtu 1454
    pp1# pp enable 1
    pp1# pp select none
    lan3を用いたプロバイダAへの接続を設定します。
  • # nat descriptor type 2 masquerade
    # nat descriptor address inner 2 172.16.0.2-172.16.0.5
    # pp select 2
    pp2# pppoe use lan2
    pp2# pp auth accept chap pap
    pp2# pp auth myname ID_B PASSWORD_B
    pp2# ppp ipcp ipaddress on
    pp2# ppp ipcp msext on
    pp2# ip pp nat descriptor 2
    pp2# ppp lcp mru on 1454
    pp2# ip pp mtu 1454
    pp2# pp enable 1
    pp2# pp select none
    lan2を用いたプロバイダBへの接続を設定します。
  • # ip filter 1 pass-nolog 192.168.0.0/24 * * * *
    # ip filter 2 pass-nolog 172.16.0.0/24 * * * *
    # ip route default gateway pp 1 filter 1 pp 2 filter 2
    フィルタ型ルーティングを用いて、プライマリアドレスからのパケットは pp1 (プロバイダA)へ、セカンダリアドレスからのパケットは pp2 (プロバイダB)へ、それぞれルーティングします。
  • # ethernet filter 1 reject-log dhcp-not-bind 192.168.0.1
    # ethernet filter 2 pass-nolog *:*:*:*:*:* *:*:*:*:*:*
    # ethernet lan1 filter in 1 2
    プライマリネットワークからのパケットについては、dhcp scope bind コマンドで予約されていない端末からのパケットを破棄します。
    プライマリネットワーク以外からのパケットについては全てを通過させます。

ページトップへ戻る