IPv4の高度なACL[番号付き拡張ACL/名前付き拡張ACL/ワイルドカードマスク]

2015年4月27日(月)
野口 一徳

■ACLの検査の順番

パケットのIPアドレスに対して、ACLの1行目から順番にマッチングの処理が行われます。パケットがACLの1つの行と一致した時点で、ルータはその行に指定されたアクションを実行し、ACLのマッチング処理をそこで終了します。ファーストマッチロジックとも呼ばれ、それに続く行の処理は打ち切られます。
 
ACLでの処理では、ワイルドカードマスクやIPアドレスなどに加えて、記述する順番が非常に重要になるので注意しましょう。
 

●行の最後には暗黙のdeny any

 
記述したACLの最後には暗黙のdeny ip any anyの行があるものとして処理されます。ACLの全ての行で条件に一致しなかった場合には、これにより、最終的にパケットが廃棄されます。
 
次の例のようなdenyを主にして記述するACLでは、permitの行を忘れないように注意しましょう。
 
access-list 104 deny icmp 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
access-list 104 permit ip any any
[access-list 104 deny ip any any]

※上記の2行目のようなpermitの行がないと、全てを拒否するACLとなる

 

■設置する場所と方向

 
パケットをフィルタリングするには、そのパケットを処理するインタフェースで、パケットが流れる方向に対してACLを設置します。
 
方向については、インタフェースを通して、ネットワークからルータに入ってくる向きが、inです。また、そのインタフェースを通してルータからネットワークに出て行く方向がoutになります(図2)。
 
インタフェースにACLを設置する方向
図2 インタフェースにACLを設置する方向
 
次に1つのインタフェースに、ACLを方向ごとに1つずつ設置する例を示します。インタフェースにACLを設置するときは、ip access-groupコマンドを使用します。
 
●拡張ACLの作成
Router(config)# access-list 105 permit ip 10.0.0.0 0.255.255.255 192.168.0.0 0.0.255.255
Router(config)# access-list 106 permit ip 192.168.0.0 0.0.255.255 any
 
●インタフェースへの拡張ACLの設置
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 105 in
Router(config-if)# ip access-group 106 out
例では、GigabitEthernet0/0のインタフェースにおいて、105のACLにより送信元IPアドレスの第1オクテットが10で、宛先IPアドレスの第2オクテットまでが192.168であるIPパケットがルータに入ることができます。
 
また、送信元IPアドレスの第2オクテットまでが192.168であるIPパケットは、宛先IPアドレスがどこであってもネットワークに出て行くことができます。
 

■番号付き拡張ACLの編集

 
古いIOSでの番号付き拡張ACLの編集は、同じ番号のACLをまとめて消してから再作成します。
 
Router(config)#no ip access-list 104

Router(config)#access-list 104 deny icmp 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
Router(config)#access-list 104 permit ip any any
 
入力した行はACLの後尾に追加されます。
 
番号付き拡張ACLも名前付き拡張ACLと同じ方法で編集できます。行の番号を指定することで、特定の位置に行を追加することなどが可能です。
 
Router(config)#access-list 104 permit ip any any

Router(config)#ip access-list extended 104
Router(config-std-nacl)#5 deny icmp 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255

Router#show ip access-lists 
Standard IP access list 104
     5 deny icmp 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
    10 permit ip any any
 

■名前付き拡張ACLの作成例

 
ここでは、名前付きの拡張ACLの作成例を示します。ACLEXAMがこの名前付きの拡張ACLの名称になります。行番号を指定することで、特定の位置に追加することなどができます。
 
Router#Router(config)#ip access-list extended ACLEXAM
Router(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.128 0.0.0.63
Router(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 host 192.168.3.3 eq www
Router(config-ext-nacl)#5 permit icmp any any
Router(config-ext-nacl)#^Z
 
作成したACLは、showコマンドで確認できて、行番号も表示されます。
 
Router#show ip access-lists 
Extended IP access list ACLEXAM
     5 permit icmp any any
    10 permit ip 192.168.1.0 0.0.0.255 192.168.2.128 0.0.0.63
    20 permit tcp 192.168.1.0 0.0.0.255 host 192.168.3.3 eq www
 
なお、この例では、次のパケットが通過します。
 
●全てのICMPパケット
●192.168.1.0/24から192.168.2.128/26宛の全てのIPパケット
●192.168.1.0/24から192.168.3.3のホスト宛のHTTPのTCPパケット(Webアクセス)
 
以上、今回は、IPv4の高度なACLとして番号付き拡張ACLの機能、プロトコルと主なウェルノウンポートなどについて、名前付き拡張ACLを含めて解説しました。
 
この記事で紹介した書籍
シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J

Wendell Odom 著/株式会社クイープ 訳
価格:4,400円+税
発売日:2014年03月05日発売
ISBN:978-4-8443-3553-5
発行:インプレスジャパン

シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J

本書は、シスコ技術者認定のうち、CCENT/CCNAの認定を目指す人のための公式ガイドブックです。2013年に改訂されたICND1の試験内容に対応しています。新ICND1は、旧ICND1からトピックの削除と追加が行われています。ICND1の合格により、CCENT認定を受ければ、CCNA認定への最初のステップをクリアしたことになります。本書を携えつつCiscoプロフェッショナル認定試験突破に向けて大きな一歩を踏み出しましょう。

Amazon詳細ページへImpress詳細ページへ

 
ネットワークやデータベースなどのIT関係科目について、大学と専門学校で講師を務める。情報処理技術者試験やベンダー系の実技を伴うネットワークとセキュリティの受験指導、情報リテラシや情報工学の試験問題の作成など。技術士(情報工学)、情報処理技術者各種スペシャリスト、職業訓練指導員、CCAI Ciscoインストラクタ。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています