Tcp-DNS-proxy icon indicating copy to clipboard operation
Tcp-DNS-proxy copied to clipboard

希望支持外网用TCP,内网用UDP

Open tony1016 opened this issue 9 years ago • 11 comments

单位是代理服务器上网,对于外网只能转发TCP请求。因此外网的DNS用TCP没有问题,但是内网又是UDP请求,这种配置好像不支持

tony1016 avatar Aug 08 '15 07:08 tony1016

目前的版本已经支持这个功能了。

配置文件中指定 "internal_dns_server": ["192.168.1.1:53"] 这个就是内网dns服务器的地址和端口, "internal_domain": ["intra"], 这个就是需要内网dns服务器解析的域名,对于内网的DNS服务器发送的是UDP的请求,而对其他外网的地址的解析还是使用TCP。

henices avatar Aug 08 '15 13:08 henices

但是很奇怪,我的配置如下 { "socket_timeout": 20, "host": "0.0.0.0", "port": 53, "tcp_dns_server": [ "8.8.8.8:53"], "enable_server_switch": true, "speed_test" : true, "enable_lru_cache": true, "lru_cache_size" : 100, "udp_mode" : false, "daemon_process" : false, "internal_dns_server": ["182.1.1.33"], "internal_domain":["bankcomm.com"] }


之后用dig测试:dig mysdc.bankcomm.com C:\Users\Programmer>dig mysdc.bankcomm.com

; <<>> DiG 9.9.3-P1 <<>> mysdc.bankcomm.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40720 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1024 ;; QUESTION SECTION: ;mysdc.bankcomm.com. IN A

;; AUTHORITY SECTION: bankcomm.com. 1201 IN SOA 3dnsdx3.bankcomm.com. hostmaster .bankcomm.com. 1108 10800 3600 604800 86400

;; Query time: 259 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Mon Aug 10 09:49:30 中国标准时间 2015 ;; MSG SIZE rcvd: 102

浏览器无法访问内网

但是 dig mysdc.bankcomm.com @182.1.1.33,则是

C:\Users\Programmer>dig mysdc.bankcomm.com @182.1.1.33

; <<>> DiG 9.9.3-P1 <<>> mysdc.bankcomm.com @182.1.1.33 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49842 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;mysdc.bankcomm.com. IN A

;; ANSWER SECTION: mysdc.bankcomm.com. 3600 IN A 182.1.56.231

;; Query time: 6 msec ;; SERVER: 182.1.1.33#53(182.1.1.33) ;; WHEN: Mon Aug 10 09:52:38 中国标准时间 2015 ;; MSG SIZE rcvd: 63

tony1016 avatar Aug 10 '15 01:08 tony1016

"internal_domain":["bankcomm.com"] -> "internal_domain":["*bankcomm.com"] "internal_dns_server": ["182.1.1.33"] -> "internal_dns_server": ["182.1.1.33:53"]

改改看

henices avatar Aug 10 '15 06:08 henices

我是 "internal_domain":["* bankcomm.com _"],_被markdown了

tony1016 avatar Aug 10 '15 08:08 tony1016

可以使用了没? @tony1016

henices avatar Aug 13 '15 07:08 henices

不可以啊,我又没有改什么,之前就有加星号,只不过被markdown当做重点了

tony1016 avatar Aug 13 '15 07:08 tony1016

internal_dns_server": ["182.1.1.33:53"] 这个也改了? 你的配置文件少了 :53

henices avatar Aug 13 '15 07:08 henices

也试过了,没有效果

tony1016 avatar Aug 13 '15 07:08 tony1016

"daemon_process" : false , 使用 python tcpdns.py -f tcpdns.json -d 进入调试模式,看看有出错信息没有?

henices avatar Aug 13 '15 07:08 henices

[2015-08-15 15:43:17,095][DEBUG] domain:mysdc.bankcomm.com, qtype:0

没有任何错误信息

tony1016 avatar Aug 15 '15 07:08 tony1016

输出应该类似:

[2015-08-17 17:52:33,385][DEBUG] domain:ipa.intra.site.com, qtype:1 [2015-08-17 17:52:33,386][DEBUG] server: 192.168.1.1 port:53

server 和 port 那行的内容是什么?

还有这个qtype 怎么是0啊,你能用wireshark 给我抓个正常的包吗

henices avatar Aug 17 '15 09:08 henices