IPv4の高度なACL[拡張ACLの設定ガイドライン]
2015年5月11日(月)
■ACL設置のガイドライン
●フィルタリングのロジックの誤りを少なくする
フィルタリングの条件をACLで論理的に正しく実装するためには、次の2点に留意します。
1つ目はルータの機能ですが、2つ目は誤りを防ぎやすいという意味です。
①パケットの評価はACLの1行目から順番に行われる。
②条件の範囲が入れ子になったり重複する場合には、条件の範囲がより狭い具体的な行を先に定義する。
標準ACLの例を見てみましょう。10.0.1.0/24のLANからのアクセスは許可し、その中の10.0.1.8のホストからのアクセスだけは拒否したいという場合です。
一般的には、次のように条件をより狭く限定する10.0.1.8/32の行を先に記述すると正しく動作します。
access-list 1 deny 10.0.1.8 0.0.0.0 access-list 1 permit 10.0.1.0 0.0.0.255
次のように、LAN全体を許可する行を先にすると、拒否したいホストまで含めて許可してしまい、2行目のホストの条件を記述した行よりも前に、評価が終了してしまいます。
access-list 1 permit 10.0.1.0 0.0.0.255 access-list 1 deny 10.0.1.8 0.0.0.0
もう1つの例として、TELNETは拒否し、TCP全体は許可するというACLの例を次に示します。
access-list 101 deny tcp any any eq telnet access-list 101 permit tcp any any
より条件の範囲が狭いTELNETを先に記述すると正しく動作しますが、逆に範囲の広いTCPを先に記述した次の例ではTELNETを拒否できません。
access-list 101 permit tcp any any access-list 101 deny tcp any any eq telnet
●ACLの配置でネットワークの負荷を低減する
不要なパケットは、送信元から送信先へのルート中の送信元に近い位置にACLを配置することで、パケットをネットワークに流さないようにします。不要なパケットがなくなり、使用するネットワークの帯域幅を少なくでき、レスポンスが良くなります。
また、ルータの入り口のインタフェースで不要のパケットを廃棄すると、そのルータでの処理の負荷も軽減されます。
拡張ACLを用いたフィルタリングでは、拡張ACLをパケットの送信元にできるだけ近いインタフェースに配置します。
また、標準ACLを用いたフィルタリングでは、標準ACLを宛先にできるだけ近いインタフェースに配置します。この場合、ネットワークには負荷がかかります。
パケットをフィルタリングするときに、ネットワーク中のどこにACLを配置したら効果的かという問題を図1で考えてみましょう。
図1 ACLの配置
図1で、PC1のLANからPC3のLANへのパケットを拒否して、それ以外の通信はすべて許可するというポリシーを実現するとします。ACLは、パケットの通り道になるインタフェースに配置するので、図1の①から④が候補になります。
標準ACLを使ったフィルタリングの例では、次のように記述します。
access-list 1 deny 10.0.1.0 0.0.0.255 access-list 1 permit any interface GigabitEthernet0/0 ※図1の①の例 ip access-group 1 in
これを配置できるのは図1の④だけになります。標準ACLは、宛先にできるだけ近いインタフェースに配置します。
①のインバウンドに配置した場合は、PC1からPC2とPC4に向うパケットも拒否してしまいます。
②のアウトバウンド、または、③のインバウンドに配置した場合は、PC1からPC4に向うパケットも拒否してしまいます。
④のアウトバウンドに配置すれば、PC1からPC4に向うパケットのみを拒否することができ、正しく動作します。
しかし、最終的に廃棄するパケットは、ネットワークの中を経て最後のインタフェースまで通すことになり、ネットワークの帯域幅を無駄に使用します。標準ACLを用いたフィルタリングは効率的とは言えません。
拡張ACLは、標準ACLが扱う送信元IPアドレス情報に加えて、宛先IPアドレス情報、プロトコルなどの複雑な条件を指定できます。このため、標準ACLと比べてフィルタリングする条件や配置する場所にも柔軟性があります。
拡張ACLを使ったフィルタリングの例では、次のように記述します。
access-list 101 deny ip 10.0.1.0 0.0.0.255 10.0.3.0 0.0.0.255 access-list 101 permit ip any any
これを配置できるのは図1のパケットの通り道になる①から④の全てになります。
拡張ACLでは、送信元IPアドレスに加えて、宛先IPアドレスが指定できます。このため、①のインバウンド、②のアウトバウンド、③のインバウンド、④のアウトバウンド、すべてのインタフェースに配置しても正常に動作します。
どこでも正しく動作するのであれば、最適な配置は、性能の視点に移ってきます。
不要なパケットを早い段階で廃棄して、ルータやネットワークの負荷を軽減するには、送信元に一番近い①が拡張ACLの最適な配置になります。
拡張ACLは、パケットの送信元にできるだけ近いインタフェースに配置します。
ルータの入り口のインタフェースで不要のパケットを廃棄すると、ルータでの処理の負荷が軽減されるので②よりは①が適切です。ルータでのパケットの処理は、入力のインタフェースでインバウンドのACL処理、ルーティングテーブルの検索の処理、出力のインタフェースでアウトバウンドのACL処理、という順で行われるので、不要なパケットをインバウンドのACLで廃棄すると効果的です。
●デバイスの管理アクセスを制御する
ルータやスイッチにTELNETやSSHでリモートログインできる対象を限定する方法があります。ルータのすべてのインタフェースに拡張ACLを設置して、管理アクセスができる対象を限定することはできますが、スマートな方法とは言えません。
仮想回線の設定を利用すれば、ACLを設定することができます。これにより、仮想回線の入り口で管理アクセスの制御が可能になります。
設定の例を次に示します。
まずは、アクセスを制限するACLを作成します。これを仮想回線の設定の中で、access-classコマンドで設置します。パスワードの設定方法などは特に変わりありません。
R1(config)#access-list 2 permit 10.0.1.0 0.0.0.255 R1(config)#line vty 0 4 R1(config-line)#password vty2"paSS R1(config-line)#login R1(config-line)#access-class 2 in
ここでは、10.0.1.0/24のLANからのアクセスを許可する番号付き標準ACLを作成します。これにより、vtyの仮想回線に入ってくるパケットをACLで制限できます。
ACLについては他のタイプのACLも使用可能です。名前付き標準ACLの例を次に示します。
R1(config)#ip access-list standard ACL-VTY R1(config-std-nacl)#permit 10.0.1.0 0.0.0.255 R1(config)#line vty 0 4 R1(config-line)#access-class ACL-VTY in
今回は、ACLを設定するときの留意点として、論理的なミスを出しにくくするための構成順番、ネットワークやルータの負荷を軽減するためのACLの配置について、仮想回線へのアクセスを含めて解説しました。
この記事で紹介した書籍 | |
---|---|
Wendell Odom 著/株式会社クイープ 訳 |
シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J本書は、シスコ技術者認定のうち、CCENT/CCNAの認定を目指す人のための公式ガイドブックです。2013年に改訂されたICND1の試験内容に対応しています。新ICND1は、旧ICND1からトピックの削除と追加が行われています。ICND1の合格により、CCENT認定を受ければ、CCNA認定への最初のステップをクリアしたことになります。本書を携えつつCiscoプロフェッショナル認定試験突破に向けて大きな一歩を踏み出しましょう。 |
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
全文検索エンジンによるおすすめ記事
- IPv4の高度なACL[番号付き拡張ACL/名前付き拡張ACL/ワイルドカードマスク]
- IPv4の基本的なACL[番号付き標準ACL/名前付き標準ACL/ワイルドカードマスク]
- NATの設定とトラブルシューティング
- ルータと共通するスイッチ機能の設定 [パスワード/リモート接続/バナー]
- CiscoルータでのIPv4サポートの有効化[ルータとスイッチのコマンド/showコマンドとステータスコード]
- NATの概念[グローバルアドレスとローカルアドレスの静的/動的変換]
- LANスイッチの設定と運用 [ポートセキュリティ/VLAN/オートネゴシエーション]
- IPv4のサブネット化の概要[サブネットをサイジング/プライベートアドレスとパブリックアドレスを見分ける]
- 仮想LAN(Virtual LAN)の基本[ドメイン/サブネット/トランキング]
- ネットワーク層の機能(前編)―パケット転送時の役割―