IP地址(二)

1. IPv6地址和接口标识符

  IPv6地址比IPv4地址长4倍,其使用特殊前缀表示一个地址范围,即其可用的网络规模,例如:

  • 节点本地(只用于同一计算机中通信)
  • 链路本地(只用于同一网络链路或IPv6前缀中的节点)
  • 全球性(Internet范围)。

  在IPv6中,大部分节点通常在同一网络接口上使用多个地址。一个IPv6节点需要一组地址,包括组播地址。

1.1 链路本地IPv6地址表示

  链路本地IPv6地址和一些全球性IPv6地址使用接口表示符(IID)作为一个单播IPv6地址的分配基础。IID的长度通常

64位,并直接由一个网络接口相关的链路层MAC地址形成,该地址使用修改的EUI-64格式或者由其他进程随机提供的地址形成。

  在IEEE标准中,EUI表示扩展唯一标识符。EUI-64标识符开始于一个24位的组织唯一标识符(OUI),接着是一个组织分配的

40位扩展标识符,它由前面24位识别。OUI是由IEEE注册权威机构来维护和分配。EUI可能是”统一管理“或”本地管理“。在Internet

环境下,这种地址通常是统一管理的。

  很多IEEE标准兼容的网络接口(例如以太网)在使用短格式的地址(EUI-48)。EUI-64和EUI-48格式之间的显著的区别就是它们的

长度,如下图所示。

IP地址(二)

  OUI的长度是24位,并占据EUI-48、EUI-64前3个字节。这些地址的第一个字节的低两位分别是u位和g位。当u位被设置时,表示地址时本地管理。

当g位被设置时,表示地址是一组或组播类型的地址。目前,我们只关心g位被未设置的情况。

  一个EUI-64地址可以由EUI-48地址形成,将EUI-48的地址24位OUI值复制到EUI-64地址,并将EUI-64地址的第4和第5字节替换为FFFE,然后复制由组织分配的

剩余位。例如:EUI-48  00-11-22-33-44-55 ---> EUI-64 00-11-22-FF-FE-33-44-55。这个映射的第一步是当可以用基本EUI-48地址时由IPv6构造接口标识符。修改的

EUI-64用于形成IPv6地址的IID,但是需要对u位取反。

  当一个IPv6接口标识符需要一种接口,并且该接口没有由制造商提供EUI-48地址时,我们以后在讨论。下图是我Linux机器IPv6地址。

eno1      Link encap:Ethernet  HWaddr 14:02:ec:3e:8a:c0  
          inet addr:192.168.39.178  Bcast:192.168.39.255  Mask:255.255.255.0
          inet6 addr: fe80::1602:ecff:fe3e:8ac0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4946346128 errors:0 dropped:187 overruns:0 frame:0
          TX packets:4440691032 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1158295563755 (1.1 TB)  TX bytes:1413694812493 (1.4 TB)
          Interrupt:16 

  以太网的硬件地址是14:02:ec:3e:8a:c0,它是如何映射为一个IPv6地址的呢?

  首先,它被转换为EUI-64 格式14:02:3c:ff:fe:3c:8a:c0。接着,u位被取反,形成IID值16:02:3c:ff:fe:3c:8a:c0。为了完成链路本地IPv6地址,我们使用保留的链路本地

前缀fe80::/10。最终形成完整地址fe80::1602:ecff:fe3e:8ac0/64。/64是标准长度,用于从一个IPv6地址中识别子网/主机部分。

1.2 windows中的IPv6地址表示

  就我个人观察,windows系统的IPv6地址和linux系统有些不同,以后有再做研究吧。

 

  

 

上一篇:Docker入门之安装与简单使用操作


下一篇:JS 页面生成锚点