最近对照IPv4看了关于v6,做出整理如下。以此为骨干,继续对照学习就很容易了。
想看懂本文,你得有点v4的基础。
128位表示法、前缀、压缩表示等等基础不提。
常见说法:
当前链路------------对应v4的网段,由路由器分隔。
组播、多播--------我理解为广播。
部分常见地址(小写x表示任意,数制、长度结合上下文):
意义 | 地址 | 说明 |
唯一地址 | FD00::/8 |
本意是为节点上的设备(如打印机)正常工作,提供的内网访问地址。用途不大。 作用域在链路上,类似v4的私网地址。 |
链路本地地址 | FE80::/10 | 初始或不得已才使用的地址。就是v4里的“169.254.x.x”。链路内有效。 |
全球单播地址 | 2000::/3 | v4的公网ip,可被全球路由。 |
本地环回地址 | ::1/128 | v4的“127.0.0.1”。 |
三层广播地址 | FF00::/8 |
以前的“255.255.255.255”等,可细分。常见的如:"FF02::1"为当前链路所有主机;1 "FF02::2"为当前链路所有路由器。1 |
三层广播地址的一种: 单个节点广播地址2 |
FF02:0:0:0:0:1:FF00::/104 |
由前缀后面,接上ip地址的后24位构成。用于寻址节点,并标明性质(广播)1 |
组播mac地址2 |
”33-33-FF“开头 |
后面接上ip地址的后24位,构成形如”33-33-FF-xx-xx-xx“的48位广播mac地址。 功能上,就是v4的”FF-FF-FF-FF-FF-FF“。1 |
表说明:
1、思想上,IPv6想让广播更具有针对性,以减少链路上节点的负荷,所以有了上表中形形色色细分的广播。
2、用节点广播地址和组播mac地址,来进行广播,取代以前的二层ARP寻址。后面有说明。
二层基本思想没变,以前ARP的漏洞仍然存在。
相对于ARP,这种寻址是否安全,还要看v6自带的验证(防欺骗)机制够不够强。
常见ICMPv6协议:
路由器请求RS(Router Solicitation)数据包Type字段值为133,路由器通告RA(RouterAdvertisement)数据包Type字段值为134。
邻居发现协议(NDP):邻居请求(Neighbor Solicitation)数据包Type字段值为135,邻居通告(Neighbor Adivertisment)数据包Type字段值为136。
上述四个协议,分为两组。
其实就是1、针对路由器广播,获取路由器信息。2、针对链路内节点广播,获取节点信息。
IPv6的工作方式:
基本和v4一样,下面列出我看到的特点。
在获取地址上:
1、节点启动,先给自己一个FE80地址。通过上面提到的“RS/RA”[三层广播("FF02::2")寻找路由器],获得链路网段。
1-1、如果路由器有DHCPv6,节点也接受,即获取到IP地址和配置。
DHCPv6-PD中的PD,是指"Prefix Delegation",前缀代理。DHCP服务器从它前面(更靠近公网)那一侧拿到的DHCP前缀如果不足64位,它自己会划分成补足的64位前缀,下发给内部链路节点。
1-2、如果路由器不做DHCP,节点可以根据最常见的“EUI-64”规则(也可以是其他规则),结合自己的mac地址,算出一个ip地址,用于联网。
关于EUI-64,自行查找资料。
1-3、计划好给自己什么地址以后,会用NDP,通过"NS/NA"拿这个地址进行广播。链路上机器都没有异议,即正式分配给自己。
2、节点间的通讯(ARP广播),地址表下方略有提及。也是通过NDP来实现。
在路由上:
由于IPv6在最初顶级地址的分配上,就按组织给出了地址段(例如有报道说,中国电信的IPv6地址段为240e::/18,中国联通的IPv6地址段为2408:8000::/20,中国移动的IPv6地址段为2409:8000::/20)。所以除了v4里的那些路由之外,v6应该还可以根据ip做默认路由(向上层转发未匹配的ip包)。只不过这种路由方式……跟以前国内的三网分离一样,会很慢。
其他的,跟v4大同小异吧。