静态 NAT 无法继续 NATing

网络工程 思科 纳特 思科-ios
2022-02-20 08:29:15

我在 15.01 有一个 Cisco 3925。

我试图让工程网络上的机器通过静态 NAT 访问 VLAN10 上管理网络上的网络服务器。管理网络上的 Web 服务器配置为 192.168.1.125。任何工程机器都可以在https://10.230.32.132访问网站的主页,但只要我点击网页上的链接,NAT 似乎就停止工作。我可以看到它试图从 192.168.1.125 而不是 10.230.32.132 加载下一个网页,因为我认为它应该直到它超时。从工程网络上的任何机器的角度来看,从该 Web 服务器加载的所有网页似乎都是从 10.230.32.132 加载的。

管理网络上的特定机器可以通过接口 gi/0/0 访问互联网,但工程网络上的机器不允许。最后一点可能不相关。网络服务器也可以访问互联网。

这里的相关设置:

Interface gi0/1.10  
 description Management Network  
 ip address 192.168.1.1 255.255.255.128  
 ip nat inside  
 encapsulation dot1Q 10  

Interface gi0/2  
 description Engineering Network  
 ip address 10.230.32.132 255.255.255.0  
 ip nat outside  

Interface gi0/0/0  
 description Connection to the Internet  
 ip address x.x.x.x 255.255.255.240  
 ip nat outside  

ip nat inside source list 1 interface GigabitEthernet0/0 overload  
ip nat inside source static 192.168.1.125 10.230.32.132  
ip route 0.0.0.0 0 0.0.0.0 X.X.X.X <-- default gateway to the internet.  

access-list 1 permit 192.168.1.111  
access-list 1 permit 192.168.1.121  
access-list 1 permit 192.168.1.125  
access-list 1 deny any  

关于如何解决这个问题的任何建议?

2个回答

这不是您的静态 NAT 配置的问题 - 但实际上与 Web 服务器正在输出的页面上的内容有关。

在大多数情况下,Web 服务器会返回相关链接,例如:

<a href="/some/other/location.html">Link</a>

在您的情况下,它以以下形式返回绝对链接:

<a href="http://192.168.1.125/some/other/location.html">Link</a>

NAT 发生在第 3 层 - 返回链接的网络服务器及其编码到 URL 的地址发生在第 7 层,并且超出了路由器的控制范围。

在这种情况下,静态 NAT 是错误的工作工具 - 向您的主管解释解决此问题的唯一方法是使用 ACL 或重新编写 Web 应用程序。

阅读您的评论后,您似乎需要 ACL 而不是 NAT。NAT 本质上是一种节省地址空间的方法。尝试这样做:

Router(config)# ip access-list 扩展 ACL

Router(config-ext-nacl)# permit tcp 10.230.32.0 0.0.0.255 host 192.168.1.125 eq www

Router(config-ext-nacl)#deny tcp any host 192.168.1.125 eq www

路由器(config-ext-nacl)#退出

ACL 以自上而下的方式查看其规则。因此,当数据包进入接口时,ACL 将从顶部开始并沿列表向下运行,直到数据包与规则匹配。如果 ACL 中没有对数据包进行寻址的规则,则该数据包将被丢弃。

这只是一个示例配置。您应该阅读 ACL 以确保根据您的情况使用正确的配置。

第一步创建扩展 ACL 并将用户移动到扩展 ACL 配置模式。

第二步创建一个 ACL 规则,允许来自子网 10.230.32.0 中的所有主机的流量使用目标 TCP 端口 80 (HTTP) 到达位于 192.168.1.125 的 Web 服务器。请注意,ACL 使用通配符掩码(例如 0.0.0.255)来描述子网掩码,而不是在创建静态路由、DHCP 池等时使用的典型子网掩码。

第三步拒绝所有其他主机通过 HTTP 访问 Web 服务器。

接下来,您需要将 ACL 分配给接口。使用扩展 ACL,您希望配置离源最近的路由器接口。因此,无论哪个接口连接到 10.230.32.0,都需要配置新的 ACL。我们将只使用 g0/1 作为此示例的占位符。

路由器#配置终端

Router(config)# interface GigabitEthernet 0/1

Router(config-if)# ip access-group ACL in

路由器(config-if)#结束

最后,最后的步骤展示了如何在路由器的传入接口上配置新的 ACL。

祝你好运。并且不要忘记先删除您的 NAT 配置。