- RT-B の f0/0 と f0/1 に適用したアクセスリストを全て解除しなさい。
< RT-B >
RT-B(config-if)# do sh ip int f0/0 | section access list
Outgoing access list is not set
Inbound access list is not set
RT-B(config-if)# do sh ip int f0/1 | section access list
Outgoing access list is 3
Inbound access list is not set
RT-B(config-if)# no ip access-group 3 out ← アクセスリスト 3 out の適用を解除
RT-B(config-if)#
F0/0 には適用されたアクセスリストはなかったので、F0/1 のみ削除しました。
- RT-B で設定済みアクセスリストを全て削除しなさい。
< RT-B >
RT-B(config-if)# do sh access-lists
Standard IP access list 1
10 deny 192.168.1.10 (8 matches)
20 permit any (481 matches)
Standard IP access list 2
10 permit 192.168.3.10 (503 matches)
RT-B(config-if)# no access-list 1 ← アクセスリスト「1」を削除
RT-B(config)# no access-list 2 ← アクセスリスト「2」を削除
- RT-B で、次のコマンドを実行しなさい。
< RT-B >
RT-B(config)# access-list 3 deny any ← 「全てのパケットを拒否する」標準IPアクセスリスト
RT-B(config)# int f0/1
RT-B(config-if)# ip access-group 3 out ← アクセスリスト 3 を out 側に適用
RT-B(config-if)# do sh access-lists
Standard IP access list 3
10 deny any
RT-B(config-if)# do sh ip int f0/1 | section access list
Outgoing access list is 3
Inbound access list is not set
RT-B(config-if)# ^Z
RT-B#
暗黙の deny ではなく、明示的に全てのパケットを拒否するアクセスリストを RT-B の F0/1 out に設定しました。
- 192.168.2.2 のIPアドレスを使って、RT-B から RT-C へ ping を実行しなさい。
< RT-B >
RT-B# ping 192.168.3.10 source 192.168.2.2 ← 192.168.2.2 が 送信元IPアドレス
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.10, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.2
!!!!! ← ping 成功
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
RT-B#
pingは成功しました。
どうして ping が成功したのでしょうか?
192.168.2.2 発のパケットは F0/1 の out を通過するので、このパケットは本来拒否されなければなりません。アクセスリスト「3」は空のアクセスリストではないのですから。
では、RT-A から ping を実行してみましょう。
- 192.168.1.1 のIPアドレスを使って、RT-A から RT-C へ ping を実行しなさい。
< RT-A >
RT-A# ping 192.168.3.10 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.10, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
U.U.U ← ping 失敗
Success rate is 0 percent (0/5)
RT-A#
pingは失敗しました。
これが正しい動作です。
RT-A から ping を実行しても、RT-B から ping を実行しても、両方とも RT-B の F0/1 から出ていくパケットです。
それなのに、RT-A 発のパケットは拒否されて、RT-B 発のパケットは拒否されなかったのでしょうか?
これは、「
ルータ発のパケットは、そのルータに設定したアクセスリストによってフィルタリングされない」という決まりがあるからです。そのため、RT-B に設定したアクセスリストによって、RT-B 発のパケット (例えば、ルーティングアップデート、ping、telnet など) が拒否されることはありません。