IPv6区域分辨率

时间:2009-08-05 16:05:46

标签: networking ipv6

首先,我是IPv6的具体细节,所以如果这只是对IPv6路由的误解,我不会感到惊讶。考虑我运行P2P覆盖网络的情况,其中一部分网络位于单个LAN的边界内。此LAN中的节点具有以下链接本地地址(由它们自己查看):

  • 同行1 fe80 :: 225:4bff:fea8:e200%en0
  • 同行2 fe80 :: 225:4bff:fea8:e201%eth1
  • 同行3 fe80 :: 225:4bff:fea8:e202%en1

现在,假设每个对等方都能够通过某种方式发现其他对等方,并拥有彼此的地址。每个对等端都在监听一个端口,比如12345.如果对等端1想要与对等端2通信,他们可能会尝试使用URI:

TCP:// [FE80:225:4bff:fea8:E201%ETH1]:12345

这是我遇到问题的地方。对等体1没有名为“eth1”的适配器,因此不知道该IPv6区域标识符。如果区域ID被剥离了地址,则对等体1无法确定必须使用哪个适配器来联系主机。

所以,问题是:是否可以以标准方式解析IPv6地址的区域标识符?如果没有,我是否必须在系统中查询所有区域标识符,并尝试依次使用每个区域标识符连接到该地址,直到我成功为止?或者首先尝试使用链接本地地址进行通信是一个愚蠢的想法?

1 个答案:

答案 0 :(得分:4)

Link local addresses仅适用于您有某种机制来自动定位相关其他节点,并连接,绑定到正确的接口。

如果您希望用户手动输入地址,则应使用site-local addresses(或更好,Unique Local Addresses)并让用户自行配置,或者使用地址解析方法链接本地地址,例如mDNS。