HOME > コンテンツリスト > ラボ・シナリオ for CCNA > [ < 前へ 次へ > ]

番号付き拡張IPアクセスリストを設定する

拡張IPアクセスリストは、パケットの通過を許可するか/拒否するか (拒否したパケットは破棄される) の判断を、送信元/宛先IPアドレス、送信元/宛先ポート番号、プロトコルを使用することができます。そのため、telnet だけを拒否するとか、HTTP だけを禁止するとか、のようにアプリケーション単位で許可/拒否の制御が可能です。

名前付きIPアクセスリストは IOS11.2 以降でサポートされたため、通常、拡張IPアクセスリストと言えば番号付き拡張IPアクセスリストのことを指します。標準IPアクセスリスト同様に、番号付き拡張IPアクセスリストの設定方法には、旧来の方法と、新しい方法 (名前付きIPアクセスリストがサポートされてからの方法) があります。

1) 番号付き拡張IPアクセスリストの作成 (旧来の方法)

(config)# access-list [アクセスリスト番号] [許可/拒否] [プロトコル] [送信元アドレス] [送信元ポート] [宛先アドレス] [宛先ポート]
アクセスリスト番号100~199/2000~2699
許可/拒否permit/deny
プロトコルtcp/udp/ip/icmp
送信元アドレス送信元アドレス ワイルドカードマスク
送信元ポートeq/neq/gt/lt/range ポート番号/アプリケーション名
宛先アドレス宛先アドレス ワイルドカードマスク
宛先ポートeq/neq/gt/lt/range ポート番号/アプリケーション名
※特殊な場合を除いて、一般的に送信元ポートは使用しません。

2) 番号付き拡張IPアクセスリストの作成 (新しい方法)

(config)# ip access-list extended [アクセスリスト番号]
(config-ext-nacl)# <シーケンス番号> [許可/拒否] [プロトコル] [送信元アドレス] [送信元ポート] [宛先アドレス] [宛先ポート]
アクセスリスト番号1~99/1300~1999
シーケンス番号条件文の行番号 (省略可)
プロトコルtcp/udp/ip/icmp
送信元アドレス送信元アドレス ワイルドカードマスク
送信元ポートeq/neq/gt/lt/range ポート番号/アプリケーション名
宛先アドレス宛先アドレス ワイルドカードマスク
宛先ポートeq/neq/gt/lt/range ポート番号/アプリケーション名
※特殊な場合を除いて、一般的に送信元ポートは使用しません。

拡張IPアクセスリストの場合の送信元アドレス/宛先アドレスの書き方は次のようになります。

(1) 1つのIPアドレス (192.168.0.1) を指定する場合
 1) host 192.168.0.1
 2) 192.168.0.1 0.0.0.0

(2) ネットワーク (192.168.0.0/24) を指定する場合
 1) 192.168.0.0 0.0.0.255

(3) アドレスブロック (192.168.0.0/24 ~ 192.168.3.0/24) を指定する場合
 1) 192.168.0.0 0.0.3.255

(4) 全アドレスを指定する場合
 1) 0.0.0.0 255.255.255.255
 2) any

3) 作成したIPアクセスリストの適用

アクセスリストのインターフェイスへの適用は、標準、拡張、番号付き、名前付き、どれも同じコマンドです。

(config-if)# ip access-group [アクセスリスト番号/名前] [in/out]


想定するネットワーク構成図

ラボ・シナリオで使用するネットワーク構成図
・物理 PC の VirtualBox 上に、PC-A、PC-B、PC-C の3つの仮想 PC を構成する。
・PC-A、PC-B は物理 PC に標準搭載している LAN ポートを使用するように VirtualBox を設定する。
・物理 PC に USB-LAN 変換ケーブルを1つ接続し、PC-C がそれを使用するように VirtualBox を設定する。


  1. RT-A、RT-B をネットワーク構成図に示す通り設定し、シングルエリア OSPF を構成しなさい。
  2. < RT-A >
    Router# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Router(config)# host RT-A
    RT-A(config)# int f0/0
    RT-A(config-if)# ip add 192.168.1.1 255.255.255.0
    RT-A(config-if)# no shut
    RT-A(config-if)# int f0/1
    RT-A(config-if)# ip add 192.168.2.1 255.255.255.0
    RT-A(config-if)# no shut
    RT-A(config-if)# router ospf 1
    RT-A(config-router)# net 192.168.0.0 0.0.255.255 area 0
    RT-A(config-router)# ^Z
    RT-A#
    
    < RT-B >
    Router# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Router(config)# host RT-B
    RT-B(config)# int f0/0
    RT-B(config-if)# ip add 192.168.2.2 255.255.255.0
    RT-B(config-if)# no shut
    RT-B(config-if)# int f0/1
    RT-B(config-if)# ip add 192.168.3.2 255.255.255.0
    RT-B(config-if)# no shut
    RT-B(config-if)# router ospf 1
    RT-B(config-router)# net 192.168.0.0 0.0.255.255 area 0
    RT-B(config-router)# ^Z
    RT-B#
    
  3. PC-A、PC-B、PC-C をネットワーク構成図に示す通り設定しなさい。
  4. < PC-A >
    C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.10 255.255.255.0 192.168.1.1
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター イーサネット:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
    
    C:\>
    
    < PC-B >
    C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.11 255.255.255.0 192.168.1.1
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター イーサネット:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 192.168.1.11
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
    
    C:\>
    
    < PC-C >
    C:\> netsh interface ipv4 set address "イーサネット" static 192.168.3.10 255.255.255.0 192.168.3.2
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター イーサネット:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 192.168.3.10
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 192.168.3.2
    
    C:\>
    

    拡張IPアクセスリストを使って、PC-A (192.168.1.10) から RT-B へのIPアクセスを禁止する設定を行います。

    RT-B には F0/0 と F0/1 の2つのインターフェイスがあり、それぞれに次図のとおりIPアドレスが設定されています。


  5. PC-A から RT-B の F0/0 と F0/1 へ ping を実行しなさい。
  6. < PC-A >
    C:\> ping 192.168.2.2     ← RT-B F0/0 のIPアドレス
    
    192.168.2.2 に ping を送信しています 32 バイトのデータ:
    192.168.2.2 からの応答: バイト数 =32 時間 =2ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    
    192.168.2.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 1ms、最大 = 2ms、平均 = 1ms
    
    C:\>
    
    < PC-A >
    C:\> ping 192.168.3.2     ← RT-B F0/1 のIPアドレス
    
    192.168.3.2 に ping を送信しています 32 バイトのデータ:
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    
    192.168.3.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 1ms、最大 = 1ms、平均 = 1ms
    
    C:\>
    
    RT-B へのIPアクセスを禁止するには、この2つのIPアドレス宛てのパケットを拒否する必要があります。PC-A (192.168.1.10) からこの2つのIPアドレス宛てのパケットを拒否し、その他のパケットを許可するには次のアクセスリストを使用します。
    access-list 100 deny ip host 192.168.1.10 host 192.168.2.2  ← 192.168.1.10 から 192.168.2.2 宛てのパケットを拒否する
    access-list 100 deny ip host 192.168.1.10 host 192.168.3.2  ← 192.168.1.10 から 192.168.3.2 宛てのパケットを拒否する
    access-list 100 permit ip any any
    
    PC-A (192.168.1.10) 発 RT-B 宛 (PC-A → RT-B) のパケットを拒否するためには、このパケットが流れる方向にアクセスリストを適用します。具体的には、「RT-A の F0/0 in」または「RT-A F0/1 out」または「RT-B F0/0 in」です。
    「RT-B F0/1 out」は RT-B を通過した出口なので、ここに設定しても意味がありません。

    ただし、拡張IPアクセスリストはできるだけ送信元に近いところに設定すべきですので、「RT-A の F0/0 in 」に設定するのが最適です。

  7. RT-A を、上記内容を基に設定しなさい。
  8. < RT-A >
    RT-A# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    RT-A(config)# access-list 100 deny ip host 192.168.1.10 host 192.168.2.2
    RT-A(config)# access-list 100 deny ip host 192.168.1.10 host 192.168.3.2
    RT-A(config)# access-list 100 permit ip any any
    RT-A(config)# int f0/0
    RT-A(config-if)# ip access-group 100 in
    RT-A(config-if)# ^Z
    RT-A#
    
  9. sh access-lists コマンドで設定したアクセスリストを確認しなさい。
  10. < RT-A >
    RT-B# sh access-lists
    Extended IP access list 100
        10 deny ip host 192.168.1.10 host 192.168.2.2
        20 deny ip host 192.168.1.10 host 192.168.3.2
        30 permit ip any any
    RT-A#
    
    アクセスリストの前についている「10」「20」「30」はシーケンス番号です。
    シーケンス番号については後からやりますが、初期値が「10」で、「+10」単位で増えていきます。
  11. PC-A から RT-B の F0/0 と F0/1 へ ping を実行しなさい。
  12. < PC-A >
    C:\> ping 192.168.2.2     ← RT-B F0/0 のIPアドレス
    
    192.168.2.2 に ping を送信しています 32 バイトのデータ:
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    
    192.168.2.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    
    C:\>
    
    < PC-A >
    C:\> ping 192.168.3.2     ← RT-B F0/1 のIPアドレス
    
    192.168.3.2 に ping を送信しています 32 バイトのデータ:
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    192.168.1.1 からの応答: 宛先ネットワークに到達できません。
    
    192.168.3.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    
    C:\>
    
  13. PC-B から RT-B の F0/0 と F0/1 へ ping を実行しなさい。
  14. < PC-B >
    C:\> ping 192.168.2.2     ← RT-B F0/0 のIPアドレス
    
    192.168.2.2 に ping を送信しています 32 バイトのデータ:
    192.168.2.2 からの応答: バイト数 =32 時間 =2ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.2.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    
    192.168.2.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 1ms、最大 = 2ms、平均 = 1ms
    
    C:\>
    
    < PC-B >
    C:\> ping 192.168.3.2     ← RT-B F0/1 のIPアドレス
    
    192.168.3.2 に ping を送信しています 32 バイトのデータ:
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    192.168.3.2 からの応答: バイト数 =32 時間 =1ms TTL=254
    
    192.168.3.2 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 1ms、最大 = 1ms、平均 = 1ms
    
    C:\>
    
    192.168.1.10 (PC-A) から RT-B への ping は失敗し、192.168.1.11 (PC-B) からの ping は成功しています。

    番号付き拡張IPアクセスリストを新しい設定方法で作成します。

  15. RT-A を、次の通り設定し、sh access-lists コマンドを実行しなさい。
  16. < RT-A >
    RT-A(config)# ip access-list extended 101
    RT-A(config-ext-nacl)# deny ip host 192.168.1.10 host 192.168.2.2
    RT-A(config-ext-nacl)# deny ip host 192.168.1.10 host 192.168.3.2
    RT-A(config-ext-nacl)# permit ip any any
    RT-A(config-ext-nacl)# ^Z
    RT-A# sh access-lists
    Extended IP access list 100
        10 deny ip host 192.168.1.10 host 192.168.2.2 (5 matches)
        20 deny ip host 192.168.1.10 host 192.168.3.2 (5 matches)
        30 permit ip any any (57 matches)
    Extended IP access list 101
        10 deny ip host 192.168.1.10 host 192.168.2.2
        20 deny ip host 192.168.1.10 host 192.168.3.2
        30 permit ip any any
    RT-A#
    
    番号付き拡張IPアクセスリストの新しい作成方法です。
  17. 設定したアクセスリストを running-config で確認しなさい。
  18. < RT-A >
    RT-A# sh run | section access-list
    access-list 100 deny   ip host 192.168.1.10 host 192.168.2.2
    access-list 100 deny   ip host 192.168.1.10 host 192.168.3.2
    access-list 100 permit ip any any
    access-list 101 deny   ip host 192.168.1.10 host 192.168.2.2
    access-list 101 deny   ip host 192.168.1.10 host 192.168.3.2
    access-list 101 permit ip any any
    RT-A#
    
    旧来の作成方法も新しい作成方法も、sh run では同じです。
    後のシナリオでやりますが、名前付きアクセスリストは表示が異なります。
    ※ 次の「シナリオ」に続きます。