【ACLの主なルール】について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2016-1-23 23:48
ochi8  常連   投稿数: 17
【ACLの主なルール】のひとつ
・条件文に一致した場合は、その指示に従って処理(deny、permit)をして、それより下の条件は確認しない。
「それより下の条件は確認しない。」が何を意味しているのかが理解できません。
具体的な例を上げて説明していただけませんでしょうか。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-1-24 0:31 | 最終変更
antares01  長老   投稿数: 690
1つのACLには複数の条件を書くことができます。この1つの条件をエントリなどとも言います。
例えば、こんな感じです。
access-list 10 permit 192.168.0.0 0.0.0.255
access-list 10 permit 192.168.1.0 0.0.0.255
access-list 10 permit 192.168.2.0 0.0.0.255
access-list 10 permit 192.168.3.0 0.0.0.255

そして、ルータはパケットを受信すると、この条件に合致するかを上から順にチェックします。上記の例で言えば、受信パケットの送信元アドレスが
192.168.0.xに一致するか?一致しなければ、次の条件である
192.168.1.xに一致するか?一致しなければ、次の条件である
192.168.2.xに一致するか?

と、上から順番にチェックし続けます。そして、いずれかの条件に合致した場合は残りの下に書かれた条件に合致するかどうかのチェックは行いません。

例えば、受信したパケットの送信元アドレスが192.168.2.1 だった場合、
3行目の「access-list 10 permit 192.168.2.0 0.0.0.255」に合致するので
残りの「access-list 10 permit 192.168.3.0 0.0.0.255」に合致するかは
チェックしません。
これが「それより下の条件は確認しない。」と言うことです。

この「それより下の条件は確認しない。」というルールは非常に重要なルールです。
合致した場合に残りはチェックしないので、ACLの条件を書く【順番】が重要な意味を持ちます。

違った例を出します。
仮に192.168.0.0/24のネットワークがあり、そのうち、192.168.0.1だけは
全ての通信を破棄し、残りのアドレスは通信許可するとします。

access-list 10 deny 192.168.0.1 0.0.0.0
access-list 10 permit 192.168.0.0 0.0.0.255
と書くと要件を満たすことができます。
しかし、順番を間違えて
access-list 10 permit 192.168.0.0 0.0.0.255
access-list 10 deny 192.168.0.1 0.0.0.0
と書いてしまうと、
192.168.0.1は最初の条件に合致するので、通信が許可されてしまい、
2行目に書いた条件で破棄することができなくなります。

「それより下の条件は確認しない。」の重要な点は、条件を書く順番がとても重要であると言うことです。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-1-24 9:15 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
もしプログラミングの経験があればこう考えてもらえばいいかもです。
・「matches」は例示のもので、「条件に合うとき真」となるものとおもってください
・「ACL(数字)」はACLの行の位置とおもってください

if packet matches ACL(10) then
  do [permit or deny]
else if packet matches ACL(20) then
  do [permit or deny]
else if packet matches ACL(30) then
  do [permit or deny]
…
else
  do drop
end if
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-1-24 21:24 | 最終変更
jjmj6  長老   投稿数: 74
そのままの意味です。

例えば、ACLの条件文が以下のように3つあったとしてと1行目と一致した場合は2、3行目の条件文とは比較しないということです。

1行目 access-list 1 permit host 192.168.0.1
2行目 access-list 1 deny host 192.168.0.2
3行目 暗黙のdeny any(通常は表示されない)

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.