Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 带有DNS响应的Golang问题>;Mac OS X上的512字节(无法解组DNS消息)_Macos_Go_Dns - Fatal编程技术网

Macos 带有DNS响应的Golang问题>;Mac OS X上的512字节(无法解组DNS消息)

Macos 带有DNS响应的Golang问题>;Mac OS X上的512字节(无法解组DNS消息),macos,go,dns,Macos,Go,Dns,我们的一个用户在尝试进行DNS解析时出现以下错误 Post https://api.heroku.com/login: dial tcp: lookup api.heroku.com on 8.8.4.4:53: cannot unmarshal DNS message 用户很有帮助,为我提供了dig输出,而且看起来DNS响应确实大于512字节。有什么我可以做的,以解决这个问题与围棋和大型DNS响应?我们目前使用的是go版本go1.6.1 darwin/amd64 ; <<>

我们的一个用户在尝试进行DNS解析时出现以下错误

Post https://api.heroku.com/login: dial tcp: lookup api.heroku.com on 8.8.4.4:53: cannot unmarshal DNS message
用户很有帮助,为我提供了
dig
输出,而且看起来DNS响应确实大于512字节。有什么我可以做的,以解决这个问题与围棋和大型DNS响应?我们目前使用的是go版本go1.6.1 darwin/amd64

; <<>> DiG 9.8.3-P1 <<>> @8.8.4.4 api.heroku.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55215
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 13, ADDITIONAL: 12

;; QUESTION SECTION:
;api.heroku.com. IN A

;; ANSWER SECTION:
api.heroku.com. 21 IN CNAME midgard.heroku.com.
midgard.heroku.com. 441 IN CNAME midgard.herokussl.com.
midgard.herokussl.com. 3137 IN CNAME elb082153-1559744486.us-east-1.elb.amazonaws.com.
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 54.243.105.250
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 54.225.188.133
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 23.21.149.112

;; AUTHORITY SECTION:
com. 140079 IN NS g.gtld-servers.net.
com. 140079 IN NS j.gtld-servers.net.
com. 140079 IN NS i.gtld-servers.net.
com. 140079 IN NS b.gtld-servers.net.
com. 140079 IN NS k.gtld-servers.net.
com. 140079 IN NS a.gtld-servers.net.
com. 140079 IN NS e.gtld-servers.net.
com. 140079 IN NS c.gtld-servers.net.
com. 140079 IN NS l.gtld-servers.net.
com. 140079 IN NS m.gtld-servers.net.
com. 140079 IN NS f.gtld-servers.net.
com. 140079 IN NS h.gtld-servers.net.
com. 140079 IN NS d.gtld-servers.net.

;; ADDITIONAL SECTION:
g.gtld-servers.net. 124660 IN A 192.42.93.30
j.gtld-servers.net. 91373 IN A 192.48.79.30
i.gtld-servers.net. 119024 IN A 192.43.172.30
b.gtld-servers.net. 119025 IN A 192.33.14.30
k.gtld-servers.net. 27063 IN A 192.52.178.30
a.gtld-servers.net. 16745 IN A 192.5.6.30
e.gtld-servers.net. 123106 IN A 192.12.94.30
c.gtld-servers.net. 153632 IN A 192.26.92.30
l.gtld-servers.net. 22933 IN A 192.41.162.30
f.gtld-servers.net. 107336 IN A 192.35.51.30
h.gtld-servers.net. 29637 IN A 192.54.112.30
d.gtld-servers.net. 119025 IN A 192.31.80.30

;; Query time: 48 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Thu Jul 14 07:37:57 2016
;; MSG SIZE rcvd: 609
;挖掘9.8.3-P1@8.8.4.4 api.heroku.com
; (找到1台服务器)
;; 全局选项:+cmd
;; 得到答案:

;; ->>HEADERI我无法从任何解析器获得如此大的响应来测试这一点。你能测试一下
GODEBUG=netdns=cgo
GODEBUG=netdns=go
之间是否有差异吗?请注意,
dig
没有使用操作系统的DNS解析器,因此你在其行为中看到的差异可能与
go
程序发生的事情没有任何关系。要测试OSX的解析器,请尝试
dscacheutil-q host-a name api.heroku.com
(但它不会给出详细的输出)。@JimB我要求用户尝试
GODEBUG=netdns=cgo
,但没有效果,将要求用户尝试
GODEBUG=netdns=go
,尽管我假设这是默认值。请提供示例
go
code-
dig
输出是无用的,因为与OSX捆绑的dig 9.8.3在默认情况下不使用
edns
,以允许UDP消息超过512个八位字节。我注意到,目前我也无法从谷歌DNS那里得到那么长的答案。注意:这可能是当时的谷歌DNS错误-对谷歌的正常查询不应该导致权限和其他部分中的所有记录。我无法从任何解析程序获得如此大的响应来测试这一点。你能测试一下
GODEBUG=netdns=cgo
GODEBUG=netdns=go
之间是否有差异吗?请注意,
dig
没有使用操作系统的DNS解析器,因此你在其行为中看到的差异可能与
go
程序发生的事情没有任何关系。要测试OSX的解析器,请尝试
dscacheutil-q host-a name api.heroku.com
(但它不会给出详细的输出)。@JimB我要求用户尝试
GODEBUG=netdns=cgo
,但没有效果,将要求用户尝试
GODEBUG=netdns=go
,尽管我假设这是默认值。请提供示例
go
code-
dig
输出是无用的,因为与OSX捆绑的dig 9.8.3在默认情况下不使用
edns
,以允许UDP消息超过512个八位字节。我注意到,目前我也无法从谷歌DNS那里得到那么长的答案。注意:这可能是当时谷歌DNS的一个漏洞——对谷歌的正常查询不应该导致所有这些记录都出现在授权和其他部分。