今天给大家介绍一下IPv6的一大特性——SLAAC。本文从SLAAC的原理出发,详细介绍了SLAAC的原理及RS和RA包的内容,最后通过简单的实验进行了SLAAC的配置。
阅读本文,您需要对IPv6相关基础知识有一定了解,如果对此还需要学习,欢迎关注我的博客,在我之前的文章里有关于IPv6的详细介绍。相关链接如下:IPv6报文格式讲解及其科学性探究、IPv6地址简介、IPv6各地址计算方式汇总、IPv6地址解析详解、IPv6邻居状态与邻居检测机制。

一、SLAAC简介

所谓LSAAC,即Stateless Address Autoconfiguration,无状态地址自动配置。SLAAC技术是自动获取IP地址的技术,在IPv6中,除了配置使用HDCP外,还支持使用SLAAC技术获取IPv6地址,以达到设备即插即用的效果。
SLAAC的实现依托于NDP协议中的RS报文和RA报文。在IPv6的NDP协议中,共有五种报文,而RS报文,即Router Solicitation,路由器请求报文,RA报文,即Router Advertisement,路由器公告报文。
IPv6可以设置一个网络设备上线后,先发送RS报文,在其上层路由器上可以配置定时发送RA报文。在一个网络设备收到RA报文后,就可以得到该链路上的IPv6地址前缀,之后,该网络设备就会根据IPv6地址范围和EUI64规则计算出一个IPv6地址给自己使用。因此,利用RS和RA报文,一个IPv6的网络设备就可以实现无状态IP地址配置了。

二、RA和RS报文详解

(一)RS报文
RS报文主要用来请求链路上相连的路由器发送RA报文。对于RS的发送方而言,此时必须先要有一个链路本地地址,RS报文的源IP地址就是该链路上的LLA地址,而目的地址是一个组播地址:ff02::1。由于所有的IPv6路由器都会监听这个组播地址,因此收到RA报文的路由器会向其通告RA报文。
Wireshark抓取RS报文如下:

(二)RA报文
对路由器而言,RA报文的源IP地址也是自己的本地链路地址,而目的地址也是ff02::1
Wireshark抓取RA报文如下:

RA报文除了携带本地网段信息外,还将携带两个重要的参数,就是在上图中标红的参数。路由器可以设置自己的接口IP地址作为其他网络设备的网关。Router LifeTime参数就是将自己作为网关的生存时间,而Flags就是将自己作为网关的优先级。通过合适的修改这两个参数,可以实现类似于IPv6 VRRP的功能。
下面,我将通过一个实验,介绍一下IPv6 SLAAC的配置

三、SLAAC实验拓扑

实验拓扑如下所示:

现在要求在R1、R2和R3之间运行SLAAC,当R1上线后,R2和R3向R1发定期通告RA报文,使得R1能够自动获取IPv6地址。并且设置类似VRRP的功能,将R3作为R1的主网关,当R3宕机后,自动将网关切换到R2。

四、SLAAC配置命令

(一)IPv6配置相关命令
要使得路由器开启IPv6,则必须首先在全局模式开启IPv6,然后再接口模式下使能IPv6。命令如下:

ipv6
interface GigabitEthernet0/0/0ipv6 enable

(二)R3上RA相关配置

interface GigabitEthernet0/0/0ipv6 enable ipv6 address 3000::FFFF/64 ipv6 nd ra Max-interval 4 ipv6 nd ra router-lifetime 10 ipv6 nd ra preference high undo ipv6 nd ra halt

R3 的G0/0/0接口上配置如上,要实现本实验需求,首先在接口上配置一个IPv6的地址。在华为的设备中,默认接口不发送RA报文,因此需要执行命令:undo ipv6 nd ra halt,来使其发送RA报文并对RS报文进行相应。此外,默认设置下,RA报文中路由生存时间为1800s,发送周期为200s-300s之间的随机数值。而如果按照默认配置,则如果R3宕机,R1需要很长时间才会感知到,因此通过命令: ipv6 nd ra Max-interval 4ipv6 nd ra router-lifetime 10 使得路由生存时间为10s,RA报文发送间隔为4s。以实现网关的快速切换。
(三)R1上RS相关配置
除了上述配置外,要实现R1将收到的RA报文产生的路由作为默认地址,还必须在接口G0/0/0上,执行以下命令:

ipv6 address auto global default

到此为止,所有的配置就已经完成了。

五、实验效果验证

最后,给大家验证一下上面的配置结果。
(一)实验过程抓包分析
首先,我们抓包看一下当R1上线后,究竟发生了什么。抓包如下所示:

如上图所示,第10个包时接口上线后的第一个数据包,(在这里使用shutdown和undo shutdown来模拟设备上线)可以看出,首先,R1会生成本地链路地址,然后发送NS报文进行地址冲突检测。之后没有收到回应的NA报文,因此R1连发三个RA报文(11、15、18),之后收到了R2和R3向其通告的RA报文(28、29)。(注:在我的实验中,因为中间交换机的缘故,RS报文引发的RA报文并没有发送到本接口上)最后,R1路由器对由RA报文生成的两个IPv6地址发NS报文进行本地地址冲突检测,没有收到NA报文,因此这两个地址可以正常使用。
(二)R1上效果
最后,我们在R1上执行命令:

display  ipv6 routing-table ::
dis ipv6  int g0/0/0

来查看一下配置结果


最后,将R3的G0/0/0口断开,发现在R1上确实能够实现网关的自动切换。

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118682784

IPv6 SLAAC原理详解及配置相关推荐

  1. VMware Workstation网络连接的三种方式原理详解 与 配置过程图解

    VMware workstations为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们 ...

  2. 虚拟路由器冗余协议VRRP原理详解!

    虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...

  3. ***原理详解(中篇)

    本文来自网易云社区. 3. ***工作原理 终于说到***工作原理了,在说这个之前必须先介绍以下普通socks 5的工作原理,将之与***的"变异版"进行对比,就可以看出***处理 ...

  4. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  5. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

  6. 详解keepalived配置和使用

    详解keepalived配置和使用 一.keepalived简介: keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Ke ...

  7. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  8. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  9. LVS原理详解及部署之四:keepalived介绍

    -------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调 ...

  10. Git 原理详解及实用指南

    Git 原理详解及实用指南 什么是版本控制系统(VCS) 很多人认为 Git 难以理解的第一个门槛在于:所谓的「Git 是一个分布式版本控制系统」这句话的具体含义不够清楚.其实分布式版本控制系统(Di ...

最新文章

  1. 这是一份不完整的数据竞赛年鉴!
  2. 人脸识别国标拟规定:不得强制刷脸、预测偏好 不对14周岁以下人脸识别
  3. linux运行java程序引用jar包,ubuntu下java 命令行引用jar包的方法
  4. Go语言在Linux环境下输出彩色字符
  5. linux系统下载r软件安装,在Linux系统安装R
  6. 一文让你彻底了解iOS字体相关知识
  7. SpringBoot集成Activiti
  8. Vulnhub--BlueSky:1
  9. 干货!结构化知识的统一建模和多任务学习
  10. 数据挖掘十大经典算法笔记
  11. Android 系统各版本新特性总结
  12. 西安交通大学计算机博士名单,2017年西安交通大学博士生拟录取名单公示
  13. 【自用】Mybatis的学习笔记(第一天)
  14. matlab中度数化成度分秒,地学中常用度、度分、度分秒,弧度、角度在MATLAB中的转换...
  15. 光端机、光纤收发器与光猫三者之间的区别介绍
  16. 数字孪生天然气管道解决方案
  17. ES6 findIndex()返回结果有true,却返回的索引位置一直是-1
  18. Sandboxie沙盘,代码开源可下载!
  19. 计算机网络实验一层二叉树,2016考研计算机冲刺考点梳理:二叉树算法(1)
  20. 什么是VOIP-网络电话名词详解

热门文章

  1. [ACL18]基于Self-Attentive的成分句法分析
  2. 百面机器学习—9.前馈神经网络面试问题总结
  3. 将list中的数据类型都变成int类型
  4. QCon全球软件开发大会:推动创新,实现技术落地
  5. CDN的基本概念和产生背景
  6. Spark:聚类算法
  7. Identity Mappings in Deep Residual Networks2016【论文理解】
  8. 11kw星三角启动延时几秒_带有延时启动的星角接启动方法
  9. 机架服务器显示器,机架式显示器排名_欧仕茄物联
  10. ubuntu中如何查看系统信息(uname)