丶大逼哥



如图,我购买了一个叫sharania.cn的域名,然后想把服务器的三条线路全部解析到这个域名下,

但这样设置貌似没用,有大佬知道正确方法吗?



xmdhs
事实上是有用的,你用 nslookup 域名

可以看到有三条记录。实际中游戏会随机的选择其中的一条记录。

蕾米洛伊
本帖最后由 蕾米洛伊 于 2021-1-25 17:43 编辑

这个其实是有用的,但不是你想要的按线路解析。这种情况下,如果DNS支持,在用户请求的时候DNS会对每一个IP地址进行轮询,然后解析应答最快的一台服务器。
你的 DNS 支持按线路解析的话,你可以给每条记录分线路,这样不同线路玩家会自动解析所在线路IP。
按👆上面的方法,也就是按你的设置,会由DNS判断哪条记录最快,而不是由客户端进行判断,这属于负载均衡了。


Jecvay
我发错了,我编辑了。

xmdhs
蕾米洛伊 发表于 2021-1-25 17:37
这个其实是有用的,但不是你想要的按线路解析。这种情况下,如果DNS支持,在用户请求的时候DNS会对每一个IP ...

dns 有这么智能吗?

java 的标准库看不懂,那就以 Go 的为例吧。

go 建立一个 tcp 连接时,会尝试用 resolveAddrList 函数来返回一个 ip 的列表,https://github.com/golang/go/blob/go1.15.7/src/net/dial.go#L403

之后,这部分没看很懂,总之会有两种方法。一种如果解析出的 ip 是 ipv4 就同时用和返回的 ip 列表中的前两个 ip 同时建立连接,谁先建立快就用谁。另一个就是依次尝试。

这些似乎都和 dns 没啥关系,因为 dns 只是把设置的 a 记录都返回了而已。

https://github.com/golang/go/blob/go1.15.7/src/net/dial.go#L423

蕾米洛伊
本帖最后由 蕾米洛伊 于 2021-1-25 23:32 编辑
xmdhs 发表于 2021-1-25 18:58
dns 有这么智能吗?

java 的标准库看不懂,那就以 Go 的为例吧。
In its simplest implementation, round-robin DNS works by responding to DNS requests not only with a single potential IP address, but with a list of potential IP addresses corresponding to several servers that host identical services. The order in which IP addresses from the list are returned is the basis for the term round robin.
Usually, IP clients initially attempt connections with the first address returned from a DNS query but there is no standard procedure for deciding which address will be used by the requesting application

感谢纠正,的确如此,在创建多个A记录时DNS只会把所有指向的IP列表返回。
前面我说的“DNS会对每一个IP地址进行轮询”也是错误的,拿到解析IP的列表之后的行为取决于IP客户端自己会如何做,但大多数客户端做的事情是轮询,不清楚 Java 是怎么实现的。

所以LZ我前面原理部分说的是错的哈,要做到不同线路解析不同IP你可以用DNS那个分线路的功能,你把每个记录分不同线路解析就OK。


3340578288
多个域名全部解析同一个地址,
比如我有域名 1.asd.com 2.qwe.com 我有个地址123.476.247
解析时,我选择 1.asd.com来解析
A记录
主机记录 1 是的就是最前面的那个数字1
记录值我写 ip 123.476.247
然后保存,等待即可

第一页 上一页 下一页 最后一页