# ip route get 1.2.3.4
anycast 1.2.3.4 dev eth0 src 5.6.7.8
问题是它怎么知道地址是选播?(显然是真的)。
更新:
现为选播路线:
root@hv2 ~ # ip route get 1.2.3.4
anycast 1.2.3.4 dev eth0 src 5.6.7.8
cache
但在清单中看不到:
root@hv2 ~ # ip route list|grep 1.2.3.4|wc -l
0
但是可以删除它,并将其恢复到正常状态(不再有anycast ):
root@hv2 ~ # ip route del any
When i ping 8.8.8.8 from my home computer (europe) i get around 26 ms latency.
When i ping 8.8.8.8 from a server(US) i get around 1 ms latency.
When i ping my (US) server from home (europe) i have 130 ms latency.
我知道我可以设置一个自定义DNS/名称服务器并将它附加到我的域,这样它就可以用于在地理上解析域名/将流量路由到最近的服务器/负载均衡器。
然而,正如我上面的实验所显示的,显然
我可以用一个ipv4 /24网创建多少个任意播ips?我知道我需要一个完整的/24网来做任何广播,但是我能用一个ips做多少个呢?对于anycast ip地址,我指的是doke服务器的一个地址。
举个例子我的意思是:
What I got:
- 1.1.1.0/24
- 6 Servers (a-f)
What I want to do:
- 1.1.1.1 is for server a, b and c
- 1.1.1.2 is for server d, e and f
我找了很长时间,但找不到答案。
如何让套接字接收发往IPv6子网路由器任播地址的数据包?
我还没有找到任何关于如何做到这一点的信息。
顺便说一句,我尝试过使用socket.setsockopt,就像您加入多播组一样:
# 7 is the interface number
s = socket(AF_INET6, SOCK_DGRAM)
packed_iface_num = struct.pack("I", 7)
group = inet_pton(AF_INET6, 'fd36:d00d:d00d:47cb::') + packed_iface_num
# socket.error: