ACL が NAT で動作しない

ACL が NAT で動作しない

Cisco パケット トラッキングを勉強しているのですが、奇妙なことが 1 つ見つかりました。以下にネットワーク マップと設定を添付します。

ここに画像の説明を入力してください

1> server0 にアクセスするために、10.2.0.0/16 と 10.3.0.0/16 の NAT を作成しました。

2> 10.2.100.0 0.0.0.255 の ACL を作成し、www サーバへのアクセスを許可しないようにしました。

10.3.100.0 0.0.0.255 の ACL を作成し、サーバー ftp へのアクセスを許可しないようにしました。

ここで問題が発生します。PC2 が FTP にアクセスできるのと同じように、PC0 は引き続きサーバー www にアクセスできます。

しかし、NAT を削除すると ACL は機能します。

混乱しています。ACL は常に NAT の前に機能するはずですが、NAT がフィルタリングされていない送信 IP アドレスで ACL をバイパスしたようです。どうしてこのようなことが起こるのでしょうか?

!
interface FastEthernet0/0
 ip address 10.1.50.1 255.255.0.0
 ip access-group 110 out
 ip nat outside
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.2.1.1 255.255.0.0
 ip nat inside
 duplex auto
 speed auto
!
interface FastEthernet0/1.3
 encapsulation dot1Q 3
 ip address 10.3.1.1 255.255.0.0
 ip nat inside
!
interface Vlan1
 no ip address
 shutdown
!
ip nat pool internet 10.1.50.50 10.1.50.50 netmask 255.255.0.0
ip nat inside source list 2 pool internet overload
ip classless
!
ip flow-export version 9
!
!
access-list 2 permit 10.2.0.0 0.0.255.255
access-list 2 permit 10.3.0.0 0.0.255.255
access-list 110 deny tcp 10.2.100.0 0.0.0.255 host 10.1.1.1 eq www
access-list 110 deny tcp 10.3.100.0 0.0.0.255 host 10.1.1.1 eq ftp
access-list 110 permit ip any any
!
!
!

答え1

ACL 110 は適用されません。これは、トラフィックが FastEthernet0/0 から出たときに NAT が送信元アドレスを変更したためです。PC0 から Web サーバーへのトラフィックをブロックする場合は、ACL 110 を IN ACL として FastEthernet0/1 に移動する必要があります。

interface FastEthernet0/1
 ip address 10.2.1.1 255.255.0.0
 ip access-group 110 in
 ip nat inside
 duplex auto
 speed auto

これは良い習慣です:

  1. 標準 ACL を宛先ネットワーク/ホストの近くに配置します。
  2. 拡張 ACL をソース ネットワーク/ホストの近くに配置します。

関連情報