IPv6网络地址协议从入门到精通
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
IPv6(Internet Protocol Version 6,互联网协议版本6)是网络层协议的第二代标准协议(IPv6协议规范),也被称为IPng(IP Next Generation,下一代互联网协议),它是IPv4的升级版本,和IPv4之间最显著的区别就是IP地址的长度从32比特位增加到了128比特位。 像我们配置IPv4地址时,IP地址的掩码长度为1-32位,也就是最多有2的32次方个IPv4地址。当然,这么表述也不严谨,IPv4地址的第一位不能是0,这一下就少了256分之一的地址。 而配置IPv6地址时,我们有了更丰富的配置方式,比如IPv6支持有状态地址配置、无状态地址配置和手工配置。 有状态地址配置一般指从DHCPv6服务器获取IPv6地址及相关信息的方式,也就是dhcp-alloc。 无状态地址配置是指主机根据自己的链路层地址及路由器发布的前缀信息自动配置IPv6地址及相关信息。 这里我们可以看到IPv6地址被表示为以冒号(:)分隔的一连串十六进制数。完整的IPv6地址被分为8组,每组的16比特位用4个十六进制数来表示,组和组之间用冒号隔开。 可以看到,上图中的IPv6地址只有5组,其实这是为了简化IPv6地址表示而采用的一种处理方式,也就是每组中的前面几个“0”可以省略,而且如果地址中包含一组或连续多组均为0的组,则可以用双冒号“::”来代替。那如果我们把IPv6地址FE80::20C:29FF:FE0B:96B7还原成完整的IPv6地址应该是FE80:0000:0000:0000:020C:29FF:FE0B:96B7。 需要注意的是,在一个IPv6地址中只能使用一次双冒号“::”,否则当设备将“::”转变为0以恢复成128位地址时,将无法确定“::”所代表的0的个数。 同时,我们也发现这两个IPv6地址都是以FE80打头的,这种属于链路本地地址,默认前缀为FE80::/10,二进制格式为:1111(F)1110(E)10(补上后面6位就是80),所以第一组数字范围介于FE80-FEBF的都是链路本地地址,主要用于实现与本链路上其他主机的通信,是不能作为全球单播地址使用的。类似的可以理解为IPv4地址里面的127.0.0.0/8。 所以,不要单纯以为只有FE80打头的是,不信看下面这张图。 这里就提到了手工配置IPv6地址,从上图中可以看到,地址前缀的表示方式为:IPv6地址/前缀长度。其中,前缀长度是一个十进制数(取值范围为1-128),表示IPv6地址最左边多少位为地址前缀。 在手工配置IPv6地址时,需要配置地址前缀与接口标识。其中,地址前缀相当于IPv4地址中的网络号码字段部分,接口标识相当于IPv4地址中的主机号码部分。 以fe11::1703:1/120为例,地址前缀为fe11::1703:0/120,前缀长度为120,也可以称之为子网;接口标识为1,完整的接口标识为00000001(二进制)、01(十六进制)。 每个接口可以有多个IPv6地址,像下面这样。 然后我们给另一台路由器配置一个本地地址,可以看到VSR2是没有全球单播地址的。 然后我们测试一下两台主机的互通情况。 简单理解一下,源IP地址和目的IP地址都必须为全球单播地址,主机间是无法通过链路本地地址进行通信的。 查看IPv6路由表,可以看到FE80::/10的下一跳是本地,另一个特殊的::1/128就是本地环回地址,还有一个特殊的FF00::/8就是组播地址了。 手工配置IPv6地址的另一种方式是采用EUI-64格式,这也算是一种半自动的方式,其中接口的IPv6地址的前缀需要手工配置,而接口ID则由接口自动生成。 看着后面这一串好长啊,其实接口ID是由MAC地址根据一定的规则生成,且此接口ID具有全球唯一性。 查看一下接口的MAC地址,可以发现采用EUI-64格式生成的IPv6地址的后6位和MAC地址是一致的,具体算法就不可得知了。但是接口ID由MAC地址产生,并且接口ID始终不变,这就存在了一定的安全隐患。 当接口下配置了多个全球单播地址时,手工配置的全球单播地址(包括采用EUI-64格式形成的全球单播地址)的优先级高于自动生成的全球单播地址。如果在接口已经自动生成全球单播地址的情况下,手工配置前缀相同的全球单播地址,不会覆盖之前自动生成的全球单播地址。如果删除手工配置的全球单播地址,设备还可以使用自动生成的全球单播地址进行通信。 好了,到这里你应该已经熟练掌握了IPv6地址的基本知识点,我们最后测试一下VSR1和VSR2的通信吧。 可以看到,在进行ping测试时,会显示所使用的源地址信息。 该文章在 2024/3/14 10:23:45 编辑过 |
关键字查询
相关文章
正在查询... |