Cisco 837 无法正确传递 UDP 流量(原为:DNS 查询问题)

Cisco 837 无法正确传递 UDP 流量(原为:DNS 查询问题)

我们设置了 ADSL 线路 -> Cisco 837 ADSL 路由器 -> Zyxel ZyWall 35 防火墙/NAT -> 交换机 -> LAN。

多年来一直都很好,突然从 LAN 到公共 DNS 服务器的 DNS 解析停止了。据我所知没有任何变化,所以我无法恢复任何东西。

当前行为:

  • 使用 TCP 从 LAN 发出的 DNS 请求会显示在出站防火墙日志、Cisco 调试日志、dns 服务器防火墙以及 DNS 服务器上的 tcpdump 中,并且会返回答案,一切正常。
  • 使用 UDP 的 LAN 的 DNS 请求显示在出站防火墙日志和 Cisco 调试日志中,但未显示在 dns-server-firewall 中,也不显示在 DNS 服务器上的 tcpdump 中,并且超时。
  • 来自 Cisco 使用 UDP 的 DNS 请求显示在 dns-server-firewall 中,并且在 DNS 服务器上的 tcpdump 中显示,收到了答复,工作正常。
  • netcat 与端口 53 或随机端口的 TCP 连接显示在 dns-server-firewall 中
  • netcat 与端口 53 或随机端口的 UDP 连接未显示在 dns-server-firewall 中

概括:TCP 似乎一直都很好。UDP 可以通过 ADSL 从 Cisco 传输,也可以从 LAN 传输到 Cisco,但似乎无法正确跨越 Cisco 837。更新:已通过 netcat 确认,来自 LAN 的任何 UDP 流量都会受到影响,而不仅仅是到端口 53 的流量。

更新:如果我将防火墙的外部 IP 更改为子网中的任何其他 IP,它就会开始工作。当我将其放回原位时,它停止工作。我现在怀疑这是一个 ISP 问题(这听起来合理吗?),并且正在删除 Cisco 配置。

答案1

  • 仅仅是 udp 还是 tcp 也受到影响?
  • 是否存在 IPv4/IPv6 问题(有时路由器会混淆,不过我只在非常便宜的路由器上看到过这种情况)

一种测试方法是(使用 Google DNS 服务器):

$ dig @8.8.8.8 example.com +noall +answer +notcp +ignore # udp only
example.com.        50270   IN  A   192.0.43.10
;; Received 45 bytes from 8.8.8.8#53(8.8.8.8) in 29 ms

$ dig -4 example.com +noall +answer +notcp +ignore # udp only/ipv4 only
example.com.        50270   IN  A   192.0.43.10

$ dig -6 example.com +noall +answer +notcp +ignore # udp only/ipv6 only
example.com.        50270   IN  A   192.0.43.10
;; Received 45 bytes from 8.8.8.8#53(8.8.8.8) in 29 ms

$ dig @8.8.8.8 example.com +noall +answer +tcp # tcp only
example.com.        50256   IN  A   192.0.43.10
;; Received 45 bytes from 8.8.8.8#53(8.8.8.8) in 30 ms

$ dig -4 example.com +noall +answer +tcp # tcp only/ipv4 only
example.com.        50256   IN  A   192.0.43.10
;; Received 45 bytes from 8.8.8.8#53(8.8.8.8) in 30 ms

$ dig -6 example.com +noall +answer +tcp # tcp only/ipv6 only
example.com.        50256   IN  A   192.0.43.10
;; Received 45 bytes from 8.8.8.8#53(8.8.8.8) in 30 ms

还:

  • 你有没有tcpdump
  • 也许可以买一些便宜的 VPS/EC2/Rackspace 实例并打开端口 53(netcat这是你的朋友)。使用 telnet 测试你可以连接 - 只是为了确保你的数据包确实超出了防火墙。

答案2

1 首先拔掉两根电缆,然后再重新插入。检查 Zyxel 上的网关设置,确保它指向 cisco DSL。然后检查以确保 cisco 路由器上的端口处于管理状态。然后检查以确保 cisco 路由器上的 ACL 允许 Zyxel 连接到它。从 zyxel ping cisco 路由器,有响应吗?最近有什么变化吗?固件、恢复,还是其他什么?

答案3

其实有一个不错的文章在 Google Code 上介绍了如何解决 DNS 问题。

您可能需要测试另一个 DNS,例如您的 ISP 的 DNS 或开放DNS

我感觉您的防火墙无法达到 8.8.8.8。

相关内容