Cisco IOS - 丢弃所有未被 NAT 转换的流量

网络工程 思科 路由器 纳特 思科-ios acl
2022-02-03 14:56:28

我有几个关于 NAT 翻译的基本问题。

对于一个简单的翻译,如:

ip nat inside source list ACL interface GigabitEthernet 0 overload

如果流量与 ACL 不匹配,它将不经过翻译就出去。那么为什么不直接制作 ACLpermit ip any any呢?

在外部接口是 WAN 的情况下,如果该流量流出,无论是转换的还是未转换的,都会浪费带宽。那么,有没有办法阻止未经过 NAT 转换的流量流出?我尝试在接口上应用输出 ACL,但它最终甚至阻止了 NAT 转换的流量。

3个回答

假设您是一家拥有多个公共地址空间块的企业。您希望为面向公众的服务器保留该地址空间,但您的员工却可以为他们的 PC 获得私有地址。在这种情况下,您想要对 PC 进行 NAT,而不是任何公共寻址。

您似乎像住宅 ISP 客户一样思考,但 Cisco 路由器真正针对的是通常具有公共寻址块的企业。NAT 是一个只有在必须时才使用的工具。没有理由对通过接口的所有内容进行 NAT,而且通常不希望这样做。

至于阻止某些流量从接口流出,您将需要更详细地说明您的意思、您尝试过的内容以及您认为它不起作用的原因。

不 !通常 access -list 配置为仅从 LAN 子网发起的出站流量

假设 LAN 子网 ip 池为 10.40.1.0/24

然后访问列表将是

Router(config)#access-list 100 permit 10.40.1.0 0.0.0.255 any

Router(config)#ip nat inside source list 100 interfàce gigabit Ethernet 0/0 overload

因此不会有未翻译的出站流量,因为流量只会从 LAN 子网 10.40.1.0/24 发起,因此此流量与访问列表匹配,这会将 private ip address 转换为 public ip address 。

您的问题的正确答案是两个 ACL:一个用于实际的 NAT,另一个用于从您的 WAN 接口传出的 ACL。

ip access-list extended ACL-NAT
 deny ip any 10.0.0.0 0.255.255.255
 deny ip any 172.16.0.0 0.15.255.255
 deny ip any 192.168.0.0 0.0.255.255
 <HERE YOUR DETAILED RULES THAT ALLOW TRAFFIC TO INTERNET OR permit ip any any>

ip access-list extended ACL-WAN-OUT
 deny ip 10.0.0.0 0.255.255.255 any
 deny ip 172.16.0.0 0.15.255.255 any
 deny ip 192.168.0.0 0.0.255.255 any
 permit ip any any


ip nat inside source list ACL-NAT interface GigabitEthernet 0 overload
interface GigabitEthernet0
 ip access-group ACL-WAN-OUT out