Packet Tracerでネットワークを学びます

【初心者向け】Packet Tracerでネットワークを学ぶ(ACL②)
1. 拡張ACLの作成方法
拡張ACLの作成には以下の手順で実施します。
1.拡張ACLの作成
2.インターフェースに適用
また以下の環境を準備します。PC2台とWebServer1台の構成です。
ACLは2種類のリストを作成します。
①PCAからはWebServerに対するHTTP通信のみを拒否
②PCBからはPing通信のみを拒否

1.拡張ACLの作成
2.インターフェースに適用
また以下の環境を準備します。PC2台とWebServer1台の構成です。
ACLは2種類のリストを作成します。
①PCAからはWebServerに対するHTTP通信のみを拒否
②PCBからはPing通信のみを拒否

1-1. 1.拡張ACLの作成
拡張ACLの作成にはグローバルコンフィギュレーションモードで以下のコマンドを入力します。
番号付き拡張ACL
#access-list <プロトコル> <送信元IPアドレス> <ワイルドカードマスク> [<送信元ポート番号] <宛先IPアドレス> <ワイルドカードマスク> [<オプション>]
100~199、2000から2699の任意の数字
permitは許可、denyは拒否
<プロトコル> ip,tcp,udp,icmpなどのプロトコルを指定
<送信元IPアドレス> 送信元のIPアドレスを指定
<ワイルドカードマスク> ワイルドカードマスクを指定
<送信元ポート番号> 演算子とポート番号またはポート名を指定
演算子:eq(等しい)、neq(等しくない)、lt(小さい)、gt(大きい)
<オプション>も同様です。
<宛先IPアドレス> 宛先のIPアドレスを指定
ACL番号を合わせることで条件がリストに追加されていきます。
名前付き拡張ACL
#ip access-list extended
ACL名は任意の名前です。
コマンド入力後拡張ACLコンフィギュレーションモードに移行するの 以下のコマンドを入力します。
※プロンプトは(config-ext-nacl)
# <プロトコル> <送信元IPアドレス> <ワイルドカードマスク> [<送信元ポート番号] <宛先IPアドレス> <ワイルドカードマスク> [<オプション>]
以下の図は実際に番号付き拡張ACLを作成した図です。
①番号付き拡張ACLの100番にPCAからWebServerへのHTTP(80)通信を拒否する条件を追加
②100番に全ての通信を許可する条件を追加
③110番にPCBからWebServerへのPing(echo)通信を拒否する条件を追加
④110番に全ての通信を許可する条件を追加

番号付き拡張ACL
#access-list
<プロトコル> ip,tcp,udp,icmpなどのプロトコルを指定
<送信元IPアドレス> 送信元のIPアドレスを指定
<ワイルドカードマスク> ワイルドカードマスクを指定
<送信元ポート番号> 演算子とポート番号またはポート名を指定
演算子:eq(等しい)、neq(等しくない)、lt(小さい)、gt(大きい)
<オプション>も同様です。
<宛先IPアドレス> 宛先のIPアドレスを指定
ACL番号を合わせることで条件がリストに追加されていきます。
名前付き拡張ACL
#ip access-list extended
ACL名は任意の名前です。
コマンド入力後拡張ACLコンフィギュレーションモードに移行するの 以下のコマンドを入力します。
※プロンプトは(config-ext-nacl)
#
以下の図は実際に番号付き拡張ACLを作成した図です。
①番号付き拡張ACLの100番にPCAからWebServerへのHTTP(80)通信を拒否する条件を追加
②100番に全ての通信を許可する条件を追加
③110番にPCBからWebServerへのPing(echo)通信を拒否する条件を追加
④110番に全ての通信を許可する条件を追加

1-2. 2.インターフェースに適用
作成した拡張ACLをインターフェースのインバウンドまたはアウトバウンドに適用します。
拡張ACLでは送信元に近いインターフェースに適用することが推奨されています。
コマンドとしてはインターフェースコンフィギュレーションにて以下のコマンドを入力します。
※標準ACLでのインターフェース適用と同じコマンドです。
#ip access-group < ACL番号 | ACL名 > < in | out>
以下の図は実際にインターフェースの適用を実施した図です。
① Eth1/0のインバウンドに100番の番号付き拡張ACLを設定。
② Eth1/1のインバウンドに110番の番号付き拡張ACLを設定。

拡張ACLでは送信元に近いインターフェースに適用することが推奨されています。
コマンドとしてはインターフェースコンフィギュレーションにて以下のコマンドを入力します。
※標準ACLでのインターフェース適用と同じコマンドです。
#ip access-group < ACL番号 | ACL名 > < in | out>
以下の図は実際にインターフェースの適用を実施した図です。

① Eth1/0のインバウンドに100番の番号付き拡張ACLを設定。
② Eth1/1のインバウンドに110番の番号付き拡張ACLを設定。

1-3. 3.疎通確認
ACLの作成と適用が完了したので想定通りに通信できるか確認します。
【想定】
1.PCAからWebServer1にPingが通る
2.PCBからWebServer1にPingが通らない
3.PCAからWebServer1のWebサイトが閲覧できない
4.PCBからWebServer1のWebサイトが閲覧できる
【結果】
1.PCAからWebServer1にPingが通る
0% lossなのでPingは通っていることが確認できました。
2.PCBからWebServer1にPingが通らない
100% lossなのでPingは通っていないことが確認できました。
3.PCAからWebServer1のWebサイトが閲覧できない
※webサイトの確認には「【参考】webサイトの確認方法」を参照してください。
ACLでパケットが破棄されたためにRequest Timeoutとなりアクセス失敗しています。
【想定】
1.PCAからWebServer1にPingが通る
2.PCBからWebServer1にPingが通らない
3.PCAからWebServer1のWebサイトが閲覧できない
4.PCBからWebServer1のWebサイトが閲覧できる
【結果】
1.PCAからWebServer1にPingが通る

0% lossなのでPingは通っていることが確認できました。
2.PCBからWebServer1にPingが通らない

100% lossなのでPingは通っていないことが確認できました。
3.PCAからWebServer1のWebサイトが閲覧できない
※webサイトの確認には「【参考】webサイトの確認方法」を参照してください。

ACLでパケットが破棄されたためにRequest Timeoutとなりアクセス失敗しています。
1-4. 4.PCBからWebServer1のWebサイトが閲覧できる
※webサイトの確認には「【参考】webサイトの確認方法」を参照してください。
PCBでは問題なくWebサイトを閲覧することができました。

PCBでは問題なくWebサイトを閲覧することができました。
2. ACL確認コマンド
作成したACLは様々なコマンドを利用することで内容を確認することが出来ます。
2-1. ACLの内容確認
作成したACLの内容を確認するには以下のコマンドを入力します。
#show access-lists [ ]
で指定したACLの内容を確認できます。
省略することで作成された全てのACLの内容を確認することができます。
Extendedは拡張ACLです。Standardだと標準ACLになります。
ACLの各エントリ部分先頭にある10や20の数字はシーケンス番号になります。
シーケンス番号の小さい順からチェックします。
(* match(es))は実際にマッチしたパケット数になります。
#show access-lists [
省略することで作成された全てのACLの内容を確認することができます。

Extendedは拡張ACLです。Standardだと標準ACLになります。
ACLの各エントリ部分先頭にある10や20の数字はシーケンス番号になります。
シーケンス番号の小さい順からチェックします。
(* match(es))は実際にマッチしたパケット数になります。
2-2. ACLを適用したインターフェースの確認
show ip interfaceコマンドでどのアクセスリストがどの方向に適用されているかが確認できます。
以下はethernet 1/0のインターフェースの状態を確認しています。
①アウトバウンド方向にはACLが適用されていません
②インバウンド方向に100のACLが適用されていることが分かります

以下はethernet 1/0のインターフェースの状態を確認しています。
①アウトバウンド方向にはACLが適用されていません
②インバウンド方向に100のACLが適用されていることが分かります

2-3. running-configからの確認
show running-configコマンドでもACLの内容や適用したインターフェースを確認することが出来ます。


3. シーケンス番号を指定した条件の追加
シーケンス番号が通常は10から始まり10ずつ自動的に加算されていきますが、
シーケンス番号を指定して条件文を追加することも可能です。
ACLコンフィギュレーションモードにて条件文を追加するコマンドの先頭に数字を入力します。
入力した数字がシーケンス番号となりACLに挿入されます。
例えばリストの一番上に全ての通信を許可する条件を挿入する場合は以下のようになります。
# 5 permit ip any any
5がシーケンス番号となりすでに登録されている10の条件文より小さいためリストの1番上に挿入されます。
ACLコンフィギュレーションモードにて条件文を追加するコマンドの先頭に数字を入力します。
入力した数字がシーケンス番号となりACLに挿入されます。
例えばリストの一番上に全ての通信を許可する条件を挿入する場合は以下のようになります。
# 5 permit ip any any
5がシーケンス番号となりすでに登録されている10の条件文より小さいためリストの1番上に挿入されます。
4. ACLの削除
ACLの作成を間違えた場合はACLを削除しましょう。
削除にはグローバルコンフィギュレーションモードにて以下のコマンドを入力します。
#no access-list < ACL番号 | ACL名 >
入力すると指定したACLの内容を全て削除します。
このno access-listコマンドでは特定の行を削除することができません。
特定の行を削除するにはACLコンフィギュレーションモードからシーケンス番号を 指定して削除します。
#ip access-list extended
#no <シーケンス番号>
上記は拡張ACLでの削除方法ですが標準ACLでもextendedの部分をStandardに変更することで標準ACLのACLコンフィギュレーションモードに移行しシーケンス番号を指定することで特定の行を削除することができます。
削除にはグローバルコンフィギュレーションモードにて以下のコマンドを入力します。
#no access-list < ACL番号 | ACL名 >
入力すると指定したACLの内容を全て削除します。
このno access-listコマンドでは特定の行を削除することができません。
特定の行を削除するにはACLコンフィギュレーションモードからシーケンス番号を 指定して削除します。
#ip access-list extended
#no <シーケンス番号>
上記は拡張ACLでの削除方法ですが標準ACLでもextendedの部分をStandardに変更することで標準ACLのACLコンフィギュレーションモードに移行しシーケンス番号を指定することで特定の行を削除することができます。
5. 【参考】webサイトの確認方法
PCからWebServerのサイトにアクセスする方法は以下の通りになります。
PCのアイコンをクリックし「Desktop」から「Web Browser」を選択します。
URLを入力し「Go」をクリックするとWebサイトにアクセスできます。
URLは「http://<サーバのIPアドレス>」です。
アクセス成功時の画面
アクセス失敗時の画面

PCのアイコンをクリックし「Desktop」から「Web Browser」を選択します。

URLを入力し「Go」をクリックするとWebサイトにアクセスできます。
URLは「http://<サーバのIPアドレス>」です。

アクセス成功時の画面

アクセス失敗時の画面
