我怎么觉得我在描述IPv6移动性的时候这么费劲呢,洋洋洒洒几大篇,竟然还是没有囊括移动IPv6的所有,比如说,我总是试图避开复杂的XFRM…这并不完美!
并不甘心,所以我要找找看看有没有什么现成的东西。哈哈,终于被我找到了:
https://wiki.aalto.fi/download/attachments/70790972/presentation.pdf?version=1&modificationDate=1355489310000&api=v2
这个ppt讲的非常不错,比我讲的好太多,所以,我就截取这个ppt里面的好图几幅吧。
我把移动IPv6的描述分成三大块:
总体的描述
Linux内核的实现
封包
我们一个一个来读图,首先看一个总体概览:
这里涉及到了三类通信,分别是:
home agent和移动节点之间
移动节点和远程节点之间
远程节点和home agent之间
图示说明:
以上基本就描述了移动IPv6的全貌。
接下来我们看一下Linux内核的实现。
我一直试图避开的xfrm,这次避不开了。我之所以要避开它是因为我发现我没有办法用简单的语言来描述它,这可能是因为我自己对此并不精通所导致。但是无论如何,我也不想在写一篇关于IPv6的Howto时,让xfrm喧宾夺了主。
我们来看一下这篇ppt的作者是如何描述xfrm的:
哈哈,就这么简单。这让我想起了以前玩Freeswan的时候,那时要是有这个ppt该有多好啊。
进入正题,先看一下发送的流程:
然后紧接着就是接收流程了:
以上两幅图解释了Linux内核的实现,非常完美!理解了Linux的实现,相信就不需要再去看别的系统的实现了,实现并不是重要的,实现只是让你理解流程,理解它为什么会这样,看一个即可。
剩下的就是封包了,这个非常简单。
对于移动IPv6而言,存在两类流程两类封包:
控制报文流程和封包
数据报文流程和封包
先看hone agent和移动节点间的控制报文封包:
这类控制报文封包用于home agent指导移动节点创建xfrm策略,配置和管理home地址和care-of地址。
再看移动节点和固定节点之间的数据报文封包:
好了,我上万字都没有讲清楚的东西,被这个ppt里面的几张图给解释清楚了。