首页 > 其他分享 >radvd配置SLAAC说明文档

radvd配置SLAAC说明文档

时间:2022-08-28 12:13:52浏览次数:56  
标签:配置 SLAAC radv 地址 DHCPv6 文档 IPv6 radvd

 

RADVD及SLAAC简单介绍

sonic中RADVD的实现

RADVD是什么?

IPv6路由器通告守护程序(RADVD)组播自动配置参数并响应来自客户端的路由器请求。客户端可以通过路由器通告确定默认路由器和其他重要路由器信息。这些路由器通告告诉客户端是为自己分配IP地址还是从DHCPv6服务器获取IP地址。

sonic中RADVD实现主要在radv容器中,在设备启动时或者重启radv容器,sonic将会通过radv容器中的start.sh文件,启动radvd服务。在启动服务时,还将会根据模板文件在etc/radvd.conf中生成radvd配置文件。最终启动radvd服务后,RADVD将会根据配置文件中的配置进行路由器通告。

地址配置方式简介

生成全球单播地址或唯一本地地址,有两种方式

  • 手动配置

  • 自动配置

其中自动配置,又可分为:

  • 无状态(Stateless): 根据路由通告报文RA(Router Advertisement)包含的prefix前缀信息自动配置IPv6地址,IPv6地址组成方式为Prefix + (EUI64或随机)。 Stateless也可称为SLAAC (Stateless Address Auto-configuration)。无状态下,不可控、难管理。在网络有只有网关,没有IPv6地址管理者,因而无人去识别客户端,每个客户端根据网关发送的相同RA报文(FF02::1 –所有主机),自行配置IPv6地址;

  • 有状态(Stateful): 通过DHCPv6获得IPv6地址。可控、可管理。在网络中存在一个IP地址管理者,它能识别客户端,根据不同的客户端分配对应的IPv6地址,客户端与服务器之间需要维护IPv6地址的租期及续约。实现这种效果的,就是DHCPv6协议(管理者就是DHCPv6 Server)。

其中“有状态”又分为2种

  • 有状态DHCPv6(Stateful DHCPv6):IPv6地址、其他参数(如DNS)均通过DHCPv6获取

  • 无状态DHCPv6(Stateless DHCPv6):IPv6地址依然通过路由通告RA方式生成,其他参数(如DNS)通过DHCPv6获取

 

本次配置就是通过无状态自动配置的方式在客户端生成IPv6地址。这种这种配置方式即为SLAAC。

sonic中SLAAC配置

目前sonic当前版本不支持命令行方式配置地址生成方式。所有下面将介绍如何通过修改文件的方式来自动生成IPv6单播地址。

修改启动文件

radv服务启动文件在/usr/bin/start.sh,如下所示

image-20220120153128031

注  意  :默认红框标识的代码未被注释,为了启动radv服务,需要先将其注释掉。

对于此段代码判断的原因,通过在社区查找,找到以下回复:

Q: What is the significance of DEVICE_ROLE and difference between ToRRouter & LeafRouters. Why is radvd configured and started only when Sonic DEVICE_ROLE is set to "ToRRouter"?

A: DEVICE_ROLE signifies the role of the device(switch) in the DC network. ToRRouter meaning "Top of the Rack Router/Switch", LeafRouter is the middle device between ToRRouter and Spine. The radv is the IPv6 ND protocol part feature, used by routers to advertise their router-role information to the shared-link devices. The ToRs often directly connect to the Servers(host), so ToRs need the radvd function to spread the router-link informations. But radvd function should not be enabled for the LeafRouter as it is not directly connected to the servers(hosts).

修改radvd配置的模板文件

在radv服务启动时,将会根据radv配置模板文件生成配置文件。

此配置模板文件是jin2格式文件。

配置模板文件在/usr/share/sonic/templates/radvd.conf.j2,默认模板配置文件如下所示:

image-20220120154319497

根据配置文件可得出以下结论:

  • 配置文件注意根据vlan接口生成对应的接口配置,所以必须先添加vlan并且给vlan配置IPv6地址

  • 同一个vlan可以有多个prefix

配置参数介绍

此默认配置文件是根据DHCPv6服务来获取IPv6地址,所以需要对模板文件进行修改,下面介绍一下主要参数的具体作用。

  • AdvSendAdvert on|off

    是否(开启)路由通告转发

    一般使用都是需要开启 默认off。

  • IgnoreIfMissing on|off

    接口不存在是否退出radvd。

    on 不退出 ,off 退出 ,默认off。

  • MaxRtrAdvInterval

    非确认多播RA的最大时长,默认600.

  • MinRtrAdvInterval

    非确认多播RA的最小时长,默认200.

  • AdvManagedFlag on|off

    设置后接口除了无状态配置,可以使用有状态配置进行接口IP配置。默认关闭

  • AdvOtherConfigFlag on|off

    设置后接口采用有状态流程配置接口其他信息(非IP),默认关闭。

  • AdvOnLink on|off

    前缀是否可以作为无状态链路配置。默认打开

  • AdvAutonomous on|off

    前缀可用于自动地址配置,默认打开

修改配置模板文件

主要修改报文的M/O 及A,对应修改后的配置文件如下:

image-20220120161642651

AdvAutonomous 修改为on,用于无状态自动配置。

AdvManagedFlagAdvOtherConfigFlag修改为off,关闭有状态及无状态DHCPv6地址配置。

配置vlan及重启容器

对于设备配置,大概分以下三步:

  • 添加vlan

  • 给vlan添加IPv6地址

  • 重启radv容器

在重启radv容器后,radv容器会启动,进行以下检查,确认服务启动及设备工作正常:

  • 检查radvd服务是否启动

    ps -ef |grep radv

image-20220120162804455

  • 检查是否生成radvd.conf配置文件

    cat /etc/radvd.conf

     

    image-20220120163032704

  • 在vlan接口抓包,看是否会发出RA报文

    sudo tcpdmp -i Vlan1234 -vv -w tes.pcap

    image-20220120163244530

至此,设备基本配置已经完毕,现在可以通过将交换机连接服务器或者客户机,在对端看是否可以自动获取IPv6全球单播地址。

SLAAC功能验证

功能简述:

15.3设备Ethernet18和78服务器eth3对接。创建vlan1234,配置IPv6地址,并将Ethernet18接口加入vlan124.

重启78服务器eth3接口,观察eth3接口是否会自动生成IPv6全球单播地址。

 

Step 1 : 创建vlan并配置IPv6地址  

 admin@sonic:~$ show ipv6 interface
 Interface   Master   IPv6 address/mask       Admin/Oper    
 -----------  --------  -----------------------  ------------  
 Vlan1234               FD12:3456:6789::1000/64 up/up        

Step 2 : 将Ethernet18加入vlan123 

 admin@sonic:~$ show vlan brief
 +-----------+-------------------------+------------+----------------+
 |   VLAN ID | IP Address             | Ports     | Port Tagging   |
 +===========+=========================+============+================+
 +-----------+-------------------------+------------+----------------+
 |     1234 | FD12:3456:6789::1000/64 | Ethernet18 | untagged       |
 +-----------+-------------------------+------------+----------------+

Step 3 : 观察服务器eth3接口IP 

 eth3      Link encap:Ethernet  HWaddr f0:79:59:39:44:f2  
          inet6 addr: fd12:3456:6789:0:cfbf:b1a1:b6f0:e4b8/64 Scope:Global
          inet6 addr: fd12:3456:6789:0:f5a8:c2fd:9f44:c7c6/64 Scope:Global
          inet6 addr: fe80::64c7:7f5e:f2d9:566f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:2000 Metric:1
          RX packets:417142 errors:0 dropped:991 overruns:0 frame:0
          TX packets:2031101 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:50444898 (50.4 MB) TX bytes:516551747 (516.5 MB)
          Memory:bf700000-bf71ffff

Step 4: 通过ping看是否可以相互ping通 

交换机ping 服务器

image-20220120171950136

服务器ping交换机

image-20220120172058391

抓包查看ping包

image-20220120172406014

image-20220120172507158

 

标签:配置,SLAAC,radv,地址,DHCPv6,文档,IPv6,radvd
From: https://www.cnblogs.com/sun-windsing/p/16632516.html

相关文章