有人有配置 Cisco AnyConnect VPN 的经验吗?通过 VPN 连接时,我们在客户端 DNS 名称解析方面遇到问题。
对我来说,这看起来就像 Cisco AnyConnect VPN 客户端拦截了来自客户端的 DNS 查询。
- 有人可以确认 AnyConnect VPN 客户端确实这样做了(拦截 DNS 流量)吗?
- VPN 服务器上的哪里配置了这项功能?
编辑:
当我连接到 VPN 时,路由表的变化情况如下:
[~]
$ diff -u /tmp/route_normal /tmp/route_vpn
--- /tmp/route_normal 2010-01-20 19:23:47.000000000 +0100
+++ /tmp/route_vpn 2010-01-20 19:24:46.000000000 +0100
@@ -1,6 +1,10 @@
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
+xxx.xxx.xx.xx.i 10.0.0.1 255.255.255.255 UGH 0 0 0 ath0
172.16.53.0 * 255.255.255.0 U 0 0 0 vmnet1
10.0.0.0 * 255.255.255.0 U 0 0 0 ath0
+172.17.20.0 * 255.255.255.0 U 0 0 0 cscotun
0
+192.168.111.0 172.17.20.212 255.255.255.0 UG 0 0 0 cscotun
0
172.16.140.0 * 255.255.255.0 U 0 0 0 vmnet8
+172.16.0.0 172.17.20.212 255.255.0.0 UG 0 0 0 cscotun
0
default 10.0.0.1 0.0.0.0 UG 0 0 0 ath0
编辑2:
IT 人员在 VPN 端点上做了“某事”。现在我在执行时收到“递归不可用”提示nslookup
。DNS 服务器已启用递归。因此一定是 Cisco VPN DNS 拦截搞乱了这一切。
ubuntu@domU-12-31-39-00-ED-14:~$ /opt/cisco/vpn/bin/vpn connect xxx.xxxxxx.xx
...
>> Please enter your username and password
...
>> notice: Establishing VPN...
>> state: Connected
>> notice: VPN session established to ...
ubuntu@domU-12-31-39-00-ED-14:~$ nslookup www.vg.no
;; Got recursion not available from ..., trying next server
;; Got recursion not available from ..., trying next server
;; Got recursion not available from ..., trying next server
;; Got recursion not available from ..., trying next server
Server: 172.16.0.23
Address: 172.16.0.23#53
** server can't find www.vg.no.compute-1.internal: REFUSED
ubuntu@domU-12-31-39-00-ED-14:~$ ping 195.88.55.16
PING 195.88.55.16 (195.88.55.16) 56(84) bytes of data.
64 bytes from 195.88.55.16: icmp_seq=1 ttl=240 time=110 ms
64 bytes from 195.88.55.16: icmp_seq=2 ttl=240 time=111 ms
64 bytes from 195.88.55.16: icmp_seq=3 ttl=240 time=109 ms
^C
--- 195.88.55.16 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2017ms
rtt min/avg/max/mdev = 109.953/110.379/111.075/0.496 ms
答案1
正如评论中提到的,首先弄清楚您的拆分隧道(路由)。端点(集中器、ASA、PIX 等)管理员通常可以完全控制客户端如何处理此问题;有些公司只会通过隧道传输其网络(因此您的客户端 DNS 将通过 ISP 传输),而有些公司则需要通过链路传输所有流量(因此 DNS 将通过链路传输到公司)。大多数情况下,这是一个业务/IT 决策。
查看客户端上的路由表,查看网关等的样子以及流量在其特定实例中的路由位置,以便为您的调试提供起点。然后,您可以尝试从客户端对公共资源(即 Google 的新 DNS)进行直接 DNS 查询,以查看结果,同时使用 TCPview(如果您的客户端是 Windows)类型的软件来观察比特的飞行情况。
答案2
检查当您的 DNS 请求到达内部 DNS 服务器时正在使用什么明显的源 IP 地址。
服务器可能已配置为仅提供递归对来自已知内部 IP 地址的请求提供服务,否则只提供权威性为同一台服务器上托管的某些域名提供服务。
如果您的 DNS 请求似乎来自网外 IP 地址,那么他们只会获得权威答案,而不会获得递归答案。