IPv6 地址格式
IPv6 地址大小为 128 位。首选的 IPv6 地址表示为:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 是代表一个 4 位的十六进制数字。IPv6 地址范围从 0000:0000:0000:0000:0000:0000:0000:0000 至ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff。
IPv4的地址是由32位二进制码组成。格式为xxx.xxx.xxx.xxx,其中的x代表的是一个三位的二进制数字。
除此首选的格式之外,IPv6 地址还可以其它两种短格式指定:
- 省略前导零
通过省略前导零指定 IPv6 地址。例如,IPv6 地址 1050:0000:0000:0000:0005:0600:300c:326b 可写为1050:0:0:0:5:600:300c:326b。 - 双冒号
通过使用双冒号(::)代替一系列零来指定 IPv6 地址。例如,IPv6 地址 ff06:0:0:0:0:0:0:c3 可写为ff06::c3。一个 IP 地址中只可使用一次双冒号。
IPv6 地址的另一种可选格式组合了冒号与带点表示法,因此可将 IPv4 地址嵌入到 IPv6 地址中。对最左边 96 个位指定十六进制值,对最右边 32 个位指定十进制值,来指示嵌入的 IPv4 地址。在混合的网络环境中工作时,此格式确保 IPv6 节点和 IPv4 节点之间的兼容性。
这两种类型的 IPv6 地址使用此可选格式:
- 通过 IPv4 映射的 IPv6 地址
此类型的地址用于将 IPv4 节点表示为 IPv6 地址。它允许 IPv6 应用程序直接与 IPv4 应用程序通信。例如,0:0:0:0:0:ffff:192.1.56.10 和 ::ffff:192.1.56.10/96(短格式)。 - 兼容 IPv4 的 IPv6 地址
此类型的地址用于隧道传送。它允许 IPv6 节点通过 IPv4 基础结构通信。例如,0:0:0:0:0:0:192.1.56.10和 ::192.1.56.10/96(短格式)。
所有这些格式都是有效的 IPv6 地址格式。在“iSeries 导航器”中指定这些 IPv6 地址格式中的任何一个。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Link-Local Address
所有支持 IPv6 的设备,其接口在启动时,都会自动生成一个该地址。形式为 FE80:InterfaceID,前缀为 FE80::/64,最后 64 bit 为 InterfaceID。其 InterfaceID 按照 EUI-64 格式生成,具体为:将 FF-FE 插入 MAC 地址中间,然后将原 MAC 地址第 7 位取反。eg:
MAC: 90:4c:e5:12:aa:0b
插入 FF-FE: 90:4c:e5:ff:fe:12:aa:0b
取反: 92:4c:e5:ff:fe:12:aa:0b
加头: fe80::924c:e5ff:fe12:aa0b/64
因此,在 IPv6 中,链路层和 IP 层,通过这种方式巧妙的结合在了一起。即使没有路由器,同一链路的设备也能通过该地址通信,达到了即插即用的目的。同时,这也是其局限性,由于路由器不会转发该类型的地址,如果要和其它链路的设备通信,必须使用一个非 Link-Local 地址。
由于一个接口可以配置多个 IPv6 地址,那么学习路由就有可能出现很多下一跳,所以需要 Link-Local 地址来唯一的标识一个节点,在本地链路看到的下一跳都是对端的 Link-Local 地址。
此外,ping6 Link-Local Address 时,必须通过 -I ethx 指定接口。原因是,设备上的接口可能有多个,如果不指定接口,将无法得知从哪个接口出去。