CiscoルータでNATとACLが干渉する問題とその対処法|マッチしない原因を解説
Ciscoルータを使用していると、NATの設定は正しいのにACLがマッチせず通信できないという現象に遭遇することがあります。
これはNATとACLの処理順序や、ACLの適用位置に関する理解不足が原因であることが多く、設定を見直すことで解決可能です。
本記事では、Cisco ルータ 設定の中でも特に見落とされやすい「NATとACLの干渉」について、原因・検証方法・対処法を解説します。

1. NATとACLが干渉するとはどういうことか?
Ciscoルータでは、NAT変換とACLによるトラフィック制御が同時に行われる場合、変換前のアドレスでACLが評価されるのか、変換後で評価されるのかを正しく理解していないと、意図しない通信遮断が起こります。
例えば、以下のような構成を想定します:
- LAN:192.168.10.0/24(NAT inside)
- WAN:203.0.113.1(NAT outside)
- NAT設定:ip nat inside source list 1 interface GigabitEthernet0/1 overload
- ACLで外部へのアクセスを制限
このとき、ACLが外向きインターフェースに適用されている場合、NAT変換後のIPアドレス(203.0.113.X)で評価されるため、ACLに適切なエントリがないと通信が遮断されます。
2. NAT処理とACLの評価タイミング
Cisco IOSでは、以下の順序で処理が行われます:
- 受信方向のACL(in)適用
- ルーティング判断
- NAT変換処理
- 送信方向のACL(out)適用
つまり、送信インターフェース(outside)に設定されたACLは、NAT変換後のIPでマッチングされるため、NATの変換後アドレスをACLに含める必要があります。
3. よくあるトラブルパターン
パターン1:ACLがNAT変換前のIPを指定している
ip access-list extended OUT-ACL permit ip 192.168.10.0 0.0.0.255 any ← ❌
この設定では、NAT後のIP(203.0.113.X)にはマッチしないため、通信は拒否されます。
正しいACL例:
ip access-list extended OUT-ACL permit ip 203.0.113.0 0.0.0.255 any ← ✅
パターン2:ACLをin方向に適用しているが、変換後アドレスでマッチしようとしている
in側ではNAT変換前のIPが使用されるため、ACLの記述を逆にしてしまうとトラフィックが遮断されるケースがあります。
4. 検証に役立つshow・debugコマンド
show ip nat translations
:NAT変換の対応表debug ip nat
:リアルタイムでの変換ログshow access-lists
:ACLヒット数(hitcnt)の確認
Router# show ip nat translations Pro Inside global Inside local Outside local Outside global --- 203.0.113.11 192.168.10.11 8.8.8.8 8.8.8.8
→ この例では、ACLには「203.0.113.11」でマッチさせる必要があることがわかります。
5. NATとACLを同時に使う場合のベストプラクティス
- ACLは、inなら変換前、outなら変換後のIPアドレスで記述
- 可能であればACLの適用はin側にして、変換前IPを基準に管理する
- show/debugコマンドでトラフィックと変換状況を都度確認
- NATとACLを別インターフェースに分けることで制御を簡略化
6. 実践構成例:ACLとNATを適切に併用する方法
interface GigabitEthernet0/0 ip address 192.168.10.1 255.255.255.0 ip nat inside ip access-group LAN-ACL in interface GigabitEthernet0/1 ip address 203.0.113.1 255.255.255.0 ip nat outside ip access-group OUT-ACL out access-list 1 permit 192.168.10.0 0.0.0.255 ip nat inside source list 1 interface GigabitEthernet0/1 overload ip access-list extended OUT-ACL permit ip 203.0.113.0 0.0.0.255 any
まとめ
CiscoルータでのNATとACLの併用は非常に一般的ですが、変換の前後でACLのマッチ条件が異なるため、正確な理解が必要です。
- NATはACLの前か後か、方向によって変わる
- ACLで指定するIPは「変換前」か「変換後」かを見極める
show ip nat translations
とdebug ip nat
で確認- ACLはin方向で使う方がトラブルが少ない
「NAT ACL マッチしない」「Cisco ACL NAT 競合」と検索されるような実務トラブルに対し、本記事が役立てば幸いです。