IPv6通讯原理 - 不能忽略的网卡启动过程
副标题[/!--empirenews.page--]
目录
一. 为什么不能忽略网卡启动过程 掌握网络技术,除了看RFC协议外,最直接高效的方法就是“亲眼所见”。 其中抓包分析是最为关键的方法,能了解到:
网卡启动是网络通讯的第一步,只有夯实基础方能展翅高飞。 二. 实验环境 本文以CentOS 7为实验环境,创建两个network namespace(名字分别为ns1和ns2),并通过veth网卡桥接到同一个linux bridge(名字为br0),来模拟最简单的环境,即两台同二层服务器。 先贴出mac地址:
实验步骤:
观察:
本文最后会附上实验脚本和抓包文件的下载地址。 三. 网卡启动前/后的样子 网卡启动前的样子 在ns2里启动网卡之前,先对ns2里的网络环境进行查看,命令如下
![]() 可以看到此时eth0处于DOWN的状态,接下去,对eth0进行UP。 网卡启动后的样子
进入ns2里查看 ![]() 可以看到,此时网卡已启动,并获得了一个链路本地地址(图中fe80开头的) 抓到了哪些包呢 ![]() 这些包都是什么意思,如何产生,为何产生,请接着往下看。 四. 结论写在前 网卡启动过程一共有5步,详见示意图(右边的数字,表示对应抓包图中的第几个包): ![]() 接下来,将对这5步进行逐步讲解。 Step1. 生成“链路本地地址” ![]() (本步骤尚未产生数据包) “链路本地地址”是什么
“链路本地地址”有什么作用
Step2. 生成“被请求节点多播地址” ![]() (本步骤尚未产生数据包) “被请求节点多播地址”是什么 在IPv6的世界中,每生成一个ip地址(准确说是单播地址),无论什么类型,都会对应生成一个“被请求节点多播地址”(Solicited-Node multicast address)。 组成方式:FF02::1:FF00:0/104 + 单播地址的最后24bit。可以看到,该地址是通过单播地址推导而成,不是随机的。上图中红框里的地址就是“链路本地地址”对应的“被请求节点多播地址”。 为什么需要“被请求节点多播地址” (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |