IPv6扩展头部 (三) 路由头部 Routing Header for IPv6

IPv6在我国发展算是早的,网上相关的资源也是比较多但是涉及实际的应用方面就比较少了。随着今年国家对IPv6的加大投入,估计未来一段时间IPv6会变的热门。在学校里老师对这一块没怎么讲,平常工作的时候也没啥接触。最近的项目开发涉及IPv6这一部分,产品需要支持IPv6协议,因此学习了相关的知识。在此分享一下,有错误的地方还请指出哈。

这篇博客主要介绍IPv6扩展头部里的路由头部,结合报文具体分析一下它的作用。主要包括以下几方面内容:

1. 路由头部作用。

2. 路由头部格式。

IPv6路由头部为发送方提供了一种IPv6数据报控制机制,以控制(至少部分控制)数据报通过网络的路径。目前,路由扩展头部有两个不同版本,分别称为类型0(RH0)和类型2(RH2)。RH0出于安全方面的考虑已被否决[RFC5095], RH2被定义为与移动IP共同使用。为了更好地理解路由头部,先讨论RH0,然后研究它为什么被放弃,以及它和RH2的不同之处(其实没啥不同)。RH0规定了数据包转发时可“访问”的一个或多个IPv6节点。下图显示了这个头部。

路由头部格式图1. 路由头部格式

这个头部包含一个8位的路由类型标识符和一个8位的剩余部分字段。对于RH0,IPv6地址类型标识符为0;对于RH2,该标识符为2; 剩余部分字段指出还有多少段路由需要处理,也就是说,在到达目的地之前仍需访问的中间结点数。紧接着是32位的保留字段开始的地址块,有发送方设置为0,并由接收方忽略。在数据报转发时,这些地址并非可访问的组播IPv6地址。

IPv6路由头部在转发过程中不会处理,直至目的IP地址字段中包含的地址所在的节点。这时,剩余部分字段用于确定来自地址向量的下一跳地址,并将该地址与IPv6头部中的目的IP地址交换。因此,在这个数据报转发过程中,剩余部分字段将会变得越来越小,头部中的地址列表反映转发数据报的节点地址。这个转发过程可以借助下图这个栗子更好的理解。

在上图中,我们可看到中间节点如何处理路由头部。发送方(S) 使用一个目的地址R1以及一个包含地址R2、R3和D的路由头部(类型0 RH0)来构造数据报。数据报的最终目的是列表中的最后一个地址D。剩余部分字段(图中的Left字段)从3开始。数据报由S和R0 自动向R1转发。由于R0的地址在数据报中不存在,因此R0没有修改路由头部或地址。当数据报到达R1时,将基本头部的目的地址和路由头部的第一个地址交换,并将剩余部分字段递减1.

      当数据报被转发时,重复上述将目的地址与路由头部地址列表中下一个地址交换的过程,直至路由头部中的最后一个目的地址为止。

下面看几个实际的含有路由头部的IPv6报文:

可以看到路由头部下面的几个字段:

Next header: 指出路由头部后面的头部类型,这里是icmpv6.

Length : 指的是当前路由头部的总长度,单位8字节,这里显示是2,16字节,实际计算要加1,即24字节。因为会有0值,有一点需要注意,扩展头部一般都是8字节对齐的。

Type : 路由类型标识,这里是0,即RH0,现在已经不用这个值,改用RH2。

Left Segments : 剩余字段。

保留字段 : 4字节全0

Address: 地址。IPv6地址,长度16个字节。

算一下总长: Next header(1字节) + Length(1字节) + Left Segments(1字节) + Type(1字节) + 保留字段32位(4字节) +  IPv6地址(16字节)= 24字节,正好和length字段相等。

最后说一下为什么RH0被丢弃[RFC5095],这是出于安全。因为RH0可用于增加DoS攻击效果。RH0的问题是允许在路由头部中的多个位置指定相同地址。这可能导致流量在一条特定路径上的两台或多台路由器或主机之间重复转发。大量的流量负载可能在网络走会难过沿着特定路径创建,与相同路径上的其他流量竞争带宽而造成干扰。因此,RH0目前已过时,IPv6唯一支持的路由头部是RH2。RH2和RH0基本相当,区别在于它只容纳一个地址,而且在路由类型字段中使用的值不同

关于路由头部就介绍到此。

关于IPv6扩展头部的内容:

IPv6扩展头部(一)扩展头部格式、类型和扩展选项https://blog.csdn.net/fuyuande/article/details/81146615

IPv6扩展头部(四)分片扩展头部https://blog.csdn.net/fuyuande/article/details/81145145

参考资料:

1. 《TCP/IP详解-卷一:协议》W.Richard Stevens。原书第二版。5.3.2节。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值