强制 Cisco DNS 中继从 PAT 后面发送请求

网络工程 纳特 思科-ios 域名解析
2021-07-11 13:06:46

我有一个配置了 PAT 的 Cisco 1811:

interface FastEthernet0
 ip address dhcp
 ip nat outside       
interface Vlan1
 ip address 192.168.0.1 255.255.255.0
 ip nat inside
ip nat inside source route-map primary interface FastEthernet0 overload
route-map primary permit 10
 match ip address 9
 match interface FastEthernet0
access-list 9 permit 192.168.0.0 0.0.0.255
ip route 0.0.0.0 0.0.0.0 FastEthernet0 dhcp 99

我也使用这个路由器作为缓存 DNS 中继:

ip dns server

VLAN1 上的客户端可以向 192.168.0.1 发送 DNS 查询,路由器会将它们从 Fas0 上的 DHCP 租约中继到 DNS 服务器。

但是,最近我的(住宅)ISP 开始阻止入站 UDP 端口 53(有充分的理由)。这是一个问题,因为来自 Cisco 路由器的中继数据包具有 SrcPort:53 和 DestPort:53。回复永远不会回来。

所以我的问题是:无论如何都要重写从 Fas0 输出的所有 UDP 数据包,将 ScrPort 53 更改为某个其他固定端口,然后在它们返回时将它们重新写入。或者有什么方法可以强制他们从 NAT 内部发送,这能解决问题吗?

欢迎所有建议或想法。

谢谢

1个回答

当路由器 NAT 时,他们将首先检查“正确”的源地址是否可用,如果可用,他们会将其映射到该 nat 转换。如果它不可用,它将为端口 512(或 1024)下的服务从池 1-512(或 1024)中选择一个数字作为 src 端口。哪个是第一个可用的并将其放在翻译中。

按照这个,这主要是我对类似问题的一个想法(NTP src 端口作为端口 1,因为 ntp 端口被占用并且请求被 ntp 服务器拒绝,因为它是一个非 ntp 端口号和他们的防火墙阻止了它。)所以反过来,你可以做的是,如果你以某种方式确保 src 端口 53 被占用,它将选择另一个端口。

因此,让另一项服务接管翻译,迫使您的真实翻译以不同方式进行映射。在您的情况下可能无法正常工作,因为路由器正在执行请求?或者创建一个静态虚拟静态 nat,它会在转换表中创建一个静态条目,迫使您的服务使用另一个端口。

同样,这是一个尚未真正测试过的想法,但它可能会奏效。当时并没有真正找到任何好方法来控制哪些服务获得哪个源端口而无需“黑客攻击”:)。