IPv6 SLAAC原理详解及配置
今天给大家介绍一下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 4 和 ipv6 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原理详解及配置相关推荐
- VMware Workstation网络连接的三种方式原理详解 与 配置过程图解
VMware workstations为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们 ...
- 虚拟路由器冗余协议VRRP原理详解!
虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...
- ***原理详解(中篇)
本文来自网易云社区. 3. ***工作原理 终于说到***工作原理了,在说这个之前必须先介绍以下普通socks 5的工作原理,将之与***的"变异版"进行对比,就可以看出***处理 ...
- LVS原理详解(3种工作方式8种调度算法)--老男孩
一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...
- nginx配置文件及工作原理详解
nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...
- 详解keepalived配置和使用
详解keepalived配置和使用 一.keepalived简介: keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Ke ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用
本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...
- LVS原理详解及部署之四:keepalived介绍
-------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调 ...
- Git 原理详解及实用指南
Git 原理详解及实用指南 什么是版本控制系统(VCS) 很多人认为 Git 难以理解的第一个门槛在于:所谓的「Git 是一个分布式版本控制系统」这句话的具体含义不够清楚.其实分布式版本控制系统(Di ...
最新文章
- 这是一份不完整的数据竞赛年鉴!
- 人脸识别国标拟规定:不得强制刷脸、预测偏好 不对14周岁以下人脸识别
- linux运行java程序引用jar包,ubuntu下java 命令行引用jar包的方法
- Go语言在Linux环境下输出彩色字符
- linux系统下载r软件安装,在Linux系统安装R
- 一文让你彻底了解iOS字体相关知识
- SpringBoot集成Activiti
- Vulnhub--BlueSky:1
- 干货!结构化知识的统一建模和多任务学习
- 数据挖掘十大经典算法笔记
- Android 系统各版本新特性总结
- 西安交通大学计算机博士名单,2017年西安交通大学博士生拟录取名单公示
- 【自用】Mybatis的学习笔记(第一天)
- matlab中度数化成度分秒,地学中常用度、度分、度分秒,弧度、角度在MATLAB中的转换...
- 光端机、光纤收发器与光猫三者之间的区别介绍
- 数字孪生天然气管道解决方案
- ES6 findIndex()返回结果有true,却返回的索引位置一直是-1
- Sandboxie沙盘,代码开源可下载!
- 计算机网络实验一层二叉树,2016考研计算机冲刺考点梳理:二叉树算法(1)
- 什么是VOIP-网络电话名词详解
热门文章
- [ACL18]基于Self-Attentive的成分句法分析
- 百面机器学习—9.前馈神经网络面试问题总结
- 将list中的数据类型都变成int类型
- QCon全球软件开发大会:推动创新,实现技术落地
- CDN的基本概念和产生背景
- Spark:聚类算法
- Identity Mappings in Deep Residual Networks2016【论文理解】
- 11kw星三角启动延时几秒_带有延时启动的星角接启动方法
- 机架服务器显示器,机架式显示器排名_欧仕茄物联
- ubuntu中如何查看系统信息(uname)