CCNA試験対策 下巻ch2: Basic IPv4 Access Control Lists

CCNAネットワーク勉強メモ

出典: 


IPv4 Access Control List Basics

  • source IP address, destination IP address, port numberなどに基づいてパケットを特定する
  • もっとも多いユースケースはパケットフィルタリング
  • 他の用途にも使える

    • QoSなど

ACL Location and Direction

  • interfaceごとにACLを有効化して、inbound/outboundでACLロジックを設定する

Matching Packets

  • source IP address, destination IP address, TCP/UDP port numberなどに基づいてパケットのマッチングを行う

Taking Action When a Match Occurs

  • 本書ではフィルタリングのみ扱う

    • deny/permit

Types of IP ACLs

Numbered Named
Standard
Extended
  • 4つに大別される
  • 本章ではStandard/Extended Numberedを学ぶ

Standard Numbered IPv4 ACLs

  • source IPにのみマッチするやつ
  • 1-99, 追加1300-1999

List Logic with IP ACLs

  • first-matchなので、狭いのから広げていく
10.1.1.1 permit
10.1.1.x deny
10.x.x.x permit
  • 1行でもコマンドが登録されていて何にもマッチしない場合、最後の暗黙のdeny anyにマッチする

Matching Logic and Command Syntax

  • グローバルコンフィグでACLを作成
Router(config)#access-list ?
  <1-99>     IP standard access list
  <100-199>  IP extended access list

Router(config)#access-list 99 ?
  deny    Specify packets to reject
  permit  Specify packets to forward
  remark  Access list entry comment

Router(config)#access-list 99 deny ?
  A.B.C.D  Address to match
  any      Any source host
  host     A single host address  

Router(config)#access-list 1 deny any
  • インタフェースコンフィグでinbound/outbound別にACLの番号を指定する
Router(config-if)#ip access-group 1 ?
  in   inbound packets
  out  outbound packets
Router(config-if)#ip access-group 1 in
  • コンフィグ確認
Router#show running-config | section access-list
access-list 1 deny any

Router#show running-config | section interface
interface GigabitEthernet0/0/0
 ip address 10.1.1.254 255.255.255.0
 ip access-group 1 in
 duplex auto
 speed auto
  • 疎通のできないこと確認
R2#ping 10.1.1.254

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.254, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
  • 【補】debugにも映らなくなる
Router#debug ip icmp
ICMP packet debugging is on
Router#

Matching the Exact IP Address

Matching a Subset of the Address with Wildcards

Binary Wildcard Masks

Finding the Right Wildcard Mask to Match a Subnet

Router#show running-config | section access-list
access-list 1 permit host 10.1.1.2
access-list 1 deny 10.1.0.0 0.0.255.255
  • 10.1.1.2からのpingは通る

    • host 10.1.1.2にマッチし、permitされる
R2(config-if)#ip add 10.1.1.2 255.255.255.0
R2(config-if)#end
R2#ping 10.1.1.254

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/1/5 ms
  • 10.1.1.3からのpingは通らない

    • 10.1.0.0 0.0.255.255 にマッチし、denyされる
R2(config-if)#ip add 10.1.1.3 255.255.255.0
R2(config-if)#end
R2#ping 10.1.1.254

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.254, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
  • 0.0.255.255: wildcard mask (WC mask)

    • OSPFとかで使ったやつ
    • subnetの論理反転
    • 変化していいよ、という部分のビットが立っている

Matching Any/All Addresses

  • any
Router(config)#access-list 1 deny ?
  A.B.C.D  Address to match
  any      Any source host
  host     A single host address  

Implementing Standard IP ACLs

Router#show ip access-lists 
Standard IP access list 1
    10 permit host 10.1.1.2 (10 match(es))
    20 deny 10.1.0.0 0.0.255.255 (5 match(es))
  • 統計情報も見られる

Standard Numbered ACL Example 1

Standard Numbered ACL Example 2

  • 「サーバー1からPC-Aへのパケットはpermitして」
  • 「サーバー1からPC-Bへのパケットはdenyして」
  • standard numbered ACLではこれらを両立できない

    • source IP addressでしかマッチングできない
    • first-matchなので、「サーバー1から」のコマンドは1つしか適用されない
  • extended numbered ACLを使う必要がある

    • destination IP addressも込みでルールを記述できる
    • 100-199, 追加2000-2699
Router(config)#access-list ?
  <1-99>     IP standard access list
  <100-199>  IP extended access list

Router(config)#access-list 101?
<100-199>  

Router(config)#access-list 101 ?
  deny    Specify packets to reject
  permit  Specify packets to forward
  remark  Access list entry comment

Router(config)#access-list 101 permit ?
  ahp    Authentication Header Protocol
  eigrp  Cisco's EIGRP routing protocol
  esp    Encapsulation Security Payload
  gre    Cisco's GRE tunneling
  icmp   Internet Control Message Protocol
  ip     Any Internet Protocol
  ospf   OSPF routing protocol
  tcp    Transmission Control Protocol
  udp    User Datagram Protocol

Router(config)#access-list 101 permit ip ?
  A.B.C.D  Source address
  any      Any source host
  host     A single source host

Router(config)#access-list 101 permit ip 10.1.1.1 ?
  A.B.C.D  Source wildcard bits

Router(config)#access-list 101 permit ip 10.1.1.1 0.0.0.0 ?
  A.B.C.D  Destination address
  any      Any destination host
  host     A single destination host

Router(config)#access-list 101 permit ip 10.1.1.1 0.0.0.0 10.2.2.2 ?
  A.B.C.D  Destination wildcard bits

Router(config)#access-list 101 permit ip 10.1.1.1 0.0.0.0 10.2.2.2 0.0.0.0 ?
  dscp        Match packets with given dscp value
  precedence  Match packets with given precedence value
  <cr>
  • remarkでACLにドキュメントを添えられる
Router(config)#access-list 1 ?
  deny    Specify packets to reject
  permit  Specify packets to forward
  remark  Access list entry comment
Router#show running-config | section access-list
access-list 1 permit host 10.1.1.2
access-list 1 deny 10.1.0.0 0.0.255.255
access-list 1 remark sample acl

Troubleshooting and Verification Tips

  • access-listコマンド末尾にlogを追記することでdeny/permit時のログを出力できるらしい

    • Packet Tracerで動作せず