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で動作せず