“一个接口也可能有多个任意types的IPv6地址(单播,任播和多播)或范围” —-引用formsRFC 4291
最近我在我进行的实验中遇到了这个问题。 我通过RFC 4291,没有线索
以下是我的实验的简要介绍:
有两个主机,我有两个IPv6地址分别分配给他们。 然后,我testing了两台主机之间的连接。 我使用命令“ping6 ipv6_addr”。 但事实certificate,它不能通过命令ping6同时访问对等主机的地址。
更具有感知性的例子*(两个命令在主机A执行,使用linux kenel 2.6.32)*:
ping6 addr_b_1 —它的工作原理
ping6 addr_b_2 —无法通过
我想和你们讨论两个问题:
1.为什么ipv6协议允许这种机制,单个接口有多个地址?
2.为什么我不能同时访问主机a的两个地址。 (应该是这样的,IPv6的默认地址select是在RFC 3484中定义的)
感谢你们!
早期的IPv4堆栈不支持每个接口多个IP地址。 稍后的改进启用了“次要”地址。 这被发现在实践中是非常有用的,IPv6的设计者选择强制支持它作为标准的一部分,这样你就可以永远相信它是可能的。
IPv6的设计者不仅仅是要求它。 它们使之成为IPv6协议的重要组成部分。 每个IPv6接口都有一个链路本地IP地址。 如果接口也能够在更大的网络(如Internet)上进行通信,那么它也具有全局范围地址。 这是最低的两个地址,在那里。 如果主机位于多宿主Internet连接的后面,则可能有更多的地址。 每个接口的多个IP地址不像IPv4那样是IPv6的事后考虑。
你提到了缺点,但是没有配置错误,我不认为这种情况会造成任何问题。 (也许你可以详细说明你的设置,为什么一个IP地址工作,但不是另一个,但是我保证你有某种错误导致它)。
另一方面,想想优点:
另外:请记住,几乎所有的IPv4堆栈也支持每个接口多个地址,所以这与v4和v6之间的差别不大。 只有真正旧的v4堆栈不支持它。 不同之处在于v6有自动管理这组地址的方法,但在v4中不存在。