公司动态
思科 NAT + ACL 综合部署实战教程
1. 引言在企业网络出口与多网段互联场景中NAT网络地址转换与ACL访问控制列表是最常用的两项基础技术。单独使用某一种技术往往无法同时解决「私网用户上网」与「精细化流量管控」两个问题因此将二者结合部署是网络工程师必须掌握的实战技能。本文以思科 IOS 设备路由器/三层交换机为例通过一个完整的实验拓扑演示标准 ACL 与扩展 ACL 的编写方法动态 NATPAT的配置静态 NAT 对外发布内网服务器使用 ACL 控制 NAT 流量、限制公网访问内网资源验证 NAT 转换表与连通性。实验基于 Cisco IOS 15.x命令同样兼容 Packet Tracer、GNS3、EVE-NG 等模拟环境。2. 技术背景回顾2.1 NAT 的作用NAT 将内网私有地址转换为公网地址解决 IPv4 地址不足问题同时隐藏内部网络结构。常见类型类型说明静态 NAT一对一固定映射常用于对外发布服务器动态 NAT地址池多对多映射PAT端口复用多对一映射是家庭/企业上网最常见方式2.2 ACL 的作用ACL 通过匹配源地址、目的地址、协议、端口等条件对数据流进行允许或拒绝。在 NAT 场景中ACL 通常有两类用途定义 NAT 内部地址范围作为「感兴趣流量」的匹配条件安全过滤在接口上应用限制外部访问内部资源。3. 实验拓扑与地址规划PC1 内网 192.168.1.10/24SW1 核心交换机PC2 内网 192.168.2.10/24R1 出口路由器ISP 公网 200.1.1.2/30模拟外网服务器 8.8.8.8/243.1 地址规划表设备接口IP 地址说明R1G0/0192.168.1.254/24内网 VLAN10 网关R1G0/1192.168.2.254/24内网 VLAN20 网关R1G0/2200.1.1.1/30公网出口ISPG0/0200.1.1.2/30运营商侧ISPLoopback08.8.8.8/24模拟外网服务器SW1G0/1—Trunk 上联 R13.2 实验需求VLAN10 和 VLAN20 的 PC 都能通过 PAT 上网内网服务器192.168.1.100需要发布到公网使用公网 IP200.1.1.10的 80 端口外网仅允许访问该服务器的 80 端口禁止访问其他端口VLAN20 网段禁止访问外网 8.8.8.8外网禁止主动访问内网其他地址。4. 基础配置4.1 R1 接口与路由配置hostname R1 ! interface GigabitEthernet0/0 description TO_SW1_VLAN10 ip address 192.168.1.254 255.255.255.0 no shutdown ! interface GigabitEthernet0/1 description TO_SW1_VLAN20 ip address 192.168.2.254 255.255.255.0 no shutdown ! interface GigabitEthernet0/2 description TO_ISP ip address 200.1.1.1 255.255.255.252 no shutdown ! ip route 0.0.0.0 0.0.0.0 200.1.1.24.2 ISP 基础配置hostname ISP ! interface GigabitEthernet0/0 ip address 200.1.1.2 255.255.255.252 no shutdown ! interface Loopback0 ip address 8.8.8.8 255.255.255.0 ! ip route 200.1.1.0 255.255.255.252 GigabitEthernet0/0注意模拟环境下外侧 PC 通常直接配置在 ISP 的接口所属网段中此处用 Loopback 模拟外网服务器便于测试。5. ACL 配置5.1 定义 NAT 感兴趣流量使用标准 ACL 匹配需要被转换的内网地址! 定义内网地址范围供 NAT 使用 access-list 10 permit 192.168.1.0 0.0.0.255 access-list 10 permit 192.168.2.0 0.0.0.2555.2 禁止 VLAN20 访问外网服务器使用扩展 ACL 精确匹配源网段与目的主机! 拒绝 VLAN20 访问 8.8.8.8 access-list 101 deny ip 192.168.2.0 0.0.0.255 host 8.8.8.8 access-list 101 permit ip any any将该 ACL 应用到内网接口的入方向interface GigabitEthernet0/1 ip access-group 101 in5.3 限制外网访问内网服务器只允许外网访问发布服务器的 80 端口! 仅放行 TCP 80其余全部拒绝 access-list 102 permit tcp any host 192.168.1.100 eq 80 access-list 102 deny ip any any在公网接口入方向应用interface GigabitEthernet0/2 ip access-group 102 in注意access-list 102中的目的地址写的是内网私有地址192.168.1.100。由于 ACL 在接口入方向检查的是「未经过 NAT 转换」的报文因此要匹配公网访问者实际发往的公网地址200.1.1.10或转换后的行为具体取决于 NAT 「内部/外部」方向的设计。本实验采用内网源 公网目的的经典写法配合ip nat inside/outside方向即可正常验证。6. NAT 配置6.1 动态 PAT 让内网用户上网! 指定内部接口与外部接口 interface GigabitEthernet0/0 ip nat inside ! interface GigabitEthernet0/1 ip nat inside ! interface GigabitEthernet0/2 ip nat outside ! ! 使用访问列表 10 匹配的地址做 PAT复用公网接口地址 ip nat inside source list 10 interface GigabitEthernet0/2 overload6.2 静态 NAT 发布内网服务器! 内网服务器 192.168.1.100 映射到公网 200.1.1.10 ip nat inside source static tcp 192.168.1.100 80 200.1.1.10 80 extendable解释inside source static从内网发起的静态映射extendable允许同一公网地址映射到多个内网主机/端口外网用户访问http://200.1.1.10时会被转换为访问内网192.168.1.100:80。6.3 公网接口地址与映射地址说明200.1.1.10并不直接配置在 R1 的物理接口上。思科路由器会为 NAT 地址生成本地代理 ARP 响应因此需要在公网接口开启 NAT 相关地址响应多数 IOS 默认支持或额外配置interface GigabitEthernet0/2 ip nat outside ! 可选为映射公网地址手工配置 ARP 响应部分版本需要 ! 由于 200.1.1.10 与接口同网段通常默认即可代理 ARP7. 综合验证7.1 查看 NAT 配置与转换表show ip nat translations show ip nat statistics show access-lists正常输出参考R1# show ip nat translations Pro Inside global Inside local Outside local Outside global tcp 200.1.1.10:80 192.168.1.100:80 --- --- icmp 200.1.1.1:5 192.168.1.10:5 8.8.8.8:5 8.8.8.8:57.2 从内网 PC 测试上网PC1 ping 8.8.8.8此时 PC1 发出的 ICMP 报文经过 R1源地址被转换为公网接口地址200.1.1.1转换表中出现动态条目。7.3 测试 VLAN20 的访问限制PC2 ping 8.8.8.8结果应为超时Request timed out而访问其他公网地址正常说明 ACL 101 生效。7.4 测试公网访问发布的服务器模拟外网用户访问外网PC telnet 200.1.1.10 80若能建立 TCP 连接说明 80 端口发布成功再测试 22 端口应被拒绝验证 ACL 102 的过滤效果。8. 排错思路故障现象排查方向内网无法上网检查默认路由、ip nat inside/outside方向、ACL 是否误伤外网访问不到服务器检查静态 NAT 映射、公网路由、公网接口 ACL 是否放行 80部分内网主机能上网、部分不能检查 NAT 匹配 ACL 是否包含该网段NAT 转换表为空确认接口方向配置是否正确触发流量后再查看常用排错命令debug ip nat debug ip packet show ip interface brief show running-config | include nat生产环境慎用debug建议先用show命令定位必要时再针对主机开启 debug。9. 总结本文通过一个典型的企业出口场景完整演示了思科设备上NAT 与 ACL 的综合部署使用标准 ACL 定义 NAT 内部地址范围使用扩展 ACL 实现基于地址和端口的精细化访问控制使用动态 PAT 解决内网用户共享公网地址上网使用静态 NAT 端口映射对外发布内网服务通过show ip nat translations等命令完成验证。NAT 决定「谁可以出去、以什么身份出去」ACL 决定「哪些流量被允许」两者配合才能构建既连通又安全的企业网络出口。掌握这套组合是迈向更复杂安全策略如 ZBF、策略路由的基础。