加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

IPv6通讯原理 - 不能忽略的网卡启动过程

发布时间:2019-06-18 16:26:05 所属栏目:教程 来源:小慢哥Linux运维
导读:目录 一. 为什么不能忽略网卡启动过程 二. 实验环境 三. 网卡启动前/后的样子 四. 结论写在前 Step1. 生成链路本地地址 Step2. 生成被请求节点多播地址 Step3. 多播成员报告 Step4. 重复地址检测 Step5. 无状态地址自动配置 思考题 附. 实验脚本与抓包文件

就4个字:“地址解析”

  •  IPv4中用ARP做地址解析,ARP是基于广播的。
  •  IPv6没有广播,只有多播。既然是多播,就总得有一个多播地址才行,于是应运而生。

 “被请求节点多播地址”工作原理

当他人想解析我的MAC地址时,发送一个“地址解析请求包”到这个多播地址,然后属于该多播地址的成员(也就是“我”)就会收到该数据包,最后“我”返回MAC地址给对方。这样就完成了“地址解析”的流程。

“被请求节点”这5个字到底是什么意思

别人请求解析我的地址,那么我就是被请求的节点。我生成“被请求节点多播地址”的目的,就是让别人能够请求到我。

Step3. “多播成员报告”

IPv6通讯原理(1) - 不能忽略的网卡启动过程

(对应抓包图中的No. 1/2/4/6)

什么是“多播成员报告”

  •  MLDv2协议(多播控制协议)中的一种报文类型(Membership Report)。
  • 通俗理解就是对外宣称“我要加入某某多播组”。
  • 成员报告是单向的,不会收到回应包。

为什么要进行“多播成员报告”

  • 只要生成多播地址,就要进行成员报告,这是多播的工作机制。
  • 成员报告的目的是为了减少网络中的多播流量。

要报告的是哪个成员

  • 要报告的成员不是单播地址,而是多播地址。
  • 这里指的就是“被请求节点多播地址”。即“我要加入ff02::1:ff00:2多播组”

IPv6通讯原理(1) - 不能忽略的网卡启动过程

Step4. “重复地址检测”

IPv6通讯原理(1) - 不能忽略的网卡启动过程

(对应抓包图中的No. 3)

什么是“重复地址检测”

  • 为了防止IP地址冲突,每生成一个单播地址,都会进行一次“重复地址检测”(Duplicate Address Detection,简称DAD)。
  • 此刻,就是对Step1生成的“链路本地地址”进行检测。

 何时进行“重复地址检测”

  • 在生成单播地址并完成发送一次“MLDv2成员报告”后,就会随机延时一小段时间进行检测。
  • 在centos7里检测次数可通过内核参数net.ipv6.conf.eth0.dad_transmits进行修改,若设置为0表示不进行检测。

“重复地址检测”的工作原理

  • 举个例子:我想给我家小狗取名,叫“球球”,但不想和邻居家的小狗重名,于是我大声喊:“球球”。如果没有任何狗狗看过来,那就可以认定此名字没有冲突。
  • 专业解释:发送一个地址解析包(Neighbor Solicitation,简称NS),请求解析的地址就是自己的地址,并等待回应,若超时仍未得到回应(Neighbor Advertisement,简称NA),即可认为地址可用。

Step5. “无状态地址自动配置”

IPv6通讯原理(1) - 不能忽略的网卡启动过程

(对应抓包图中的No. 5/7/8)

什么是“无状态地址自动配置”

在IPv6中,有2种自动配置IP地址的方法:

  • DHCPv6:也叫做“有状态分配”
  • SLAAC:“无状态地址自动配置”(Stateless Address Autoconfiguration)

 SLAAC的作用是什么

  • 自动配置IP地址
  • 自动配置网关

注:这里说的IP地址,是指“全球单播地址”或者“唯一本地地址”,也就是俗称的公网地址和私网地址。而不是“链路本地地址”。

工作原理

涉及到这2种报文:

  • “路由器请求”(Router Solicitation,简称RS)
  • “路由器通告”(Router Advertisement,简称RA)

当收到路由器回应的RA报文后,就会根据报文中的IP前缀信息,自动生成IP地址,并将网关指向该路由器的“链路本地地址”。

 如何能够收到RA报文呢

有2种办法:

  • 路由器定期发送RA报文
  • 自己主动发送RS报文,路由器收到后就会立刻回应RA报文

由于本次实验中没有路由器,因此截图中仅能看到主动发送的RS报文,而没有得到回应。

思考题

  1. 在生成“全球单播地址”或“唯一本地地址”之后,还会采用“链路本地地址”做基础通讯吗?
  2. 为什么“多播成员报告”可以减少网络中不必要的多播流量,接入层交换机要进行额外配置吗?
  3. “地址重复”时,是否会自动更换IP?
  4. RA包只能包含一个IP前缀信息吗?一个前缀只能生成一个IP地址吗?生成的地址是什么样的?
  5. 若存在多台路由器,网关会指向谁?
  6. 如果不想自动配置IP,只想手工配置IP,可以忽视RA包吗?如何忽视?

上述问题,将在《IPv6系列》的下一篇文章中进行解答。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读