我内部有一台web服务器对外提供服务,要求外部和内部pc都可以通过域名访问web服务器,内部所有pc的dns地址设置为路由器内网口地址,由路由器作为dns代理代为解析。已经在路由器出口做了nat server,已配置dns mapping同时也打开了nat alg,现在出现一个奇怪的问题,当内部pc的dns设置为公网的dns的时候,dns的回应报文正确的解析成了web服务器的私有地址,pc成功的访问到web服务器,但是将pc的dns设置成路由器的内网口地址时由路由器代为解析时,返回的dns回应报文解析的地址是出口的公网地址,说明nat alg和dns mapping根本就没有替换dns回应报文中的公网地址为私网地址,导致pc不能通过域名访问web服务器。为什么会出现这样的问题呢?按理说都应该将dns回应报文中数据部分的公网地址替换成web服务器的私有地址呀!哪位老师能解答一下我的问题?谢谢!!!!
(0)
最佳答案
从逻辑上讲是正常的,当DNS设置为公网DNS的时候,DNS的解析请求走到路由器上触发的DNS mapping,dns mapping映射的就是私网地址。当DNS设置为路由器内敛口地址的时候,DNS请求发送至路由器,由于路由器设置了DNS代理,所以路由器会替PC去请求DNS,这个过程是路由器作为DNS客户端去向公网DNS服务器请求域名解析,无法触发DNS mappin,导致从公网DNS服务器解析的域名对应的IP就是公网地址,就会出现异常。
(0)
您的意思是说,如果是从设备本身发出的dns请求报文对应的dns回应报文是不会触发dns mappiing 和nat alg只有转发报文(通过设备转发的报文)才会触发
你直接用端口映射+nat hairpin就可以解决,现在基本都是这么用的,终端虽然解析的地址是公网地址,流量绕一下路由器,但是不上公网
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
你直接用端口映射+nat hairpin就可以解决,现在基本都是这么用的,终端虽然解析的地址是公网地址,流量绕一下路由器,但是不上公网