【发布时间】:2009-08-05 16:05:46
【问题描述】:
首先,我对 IPv6 的细节不熟悉,所以如果这只是对 IPv6 路由的误解,我不会感到惊讶。考虑我正在运行 P2P 覆盖网络的情况,其中一部分位于单个 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 地址的区域标识符?如果没有,我是否必须向系统查询所有区域标识符,并尝试使用每个区域标识符依次连接到地址,直到成功?还是一开始就尝试使用本地链接地址进行通信是一个愚蠢的想法?
【问题讨论】:
-
您还想根据RFC 6874 对
%字符进行编码:tcp://[fe80:225:4bff:fea8:e201%25eth1]:12345
标签: networking ipv6