简介
最近在学习ipv6
相关内容,在wsl
上使用radvd
来实现发送路由通告(RA报文)分配地址前缀跟dns
服务器的功能。
radvd分配地址前缀
安装
sudo apt-get install radvd
编辑 /etc/radvd.conf
文件来定义路由器广告的参数
我使用的是我的tap0
网卡,发送的路由前缀是2001:db8:1234:5678::/64
interface tap0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix 2001:db8:1234:5678::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
wsl
打开ipv6
转发功能(显得自己是个路由器?)
sudo sysctl -w net.ipv6.conf.all.forwarding=1
启动 radvd
服务
sudo systemctl start radvd
sudo systemctl enable radvd
运行radvd
sudo /etc/init.d/radvd start
在wsl
这边可以用radvdump
命令查看发送的路由通告消息的具体内容
sudo apt install radvdump
sudo radvdump
安装
运行
这时候可以看到qemu
中的enp0s1
网卡收到了此RA
消息,并生成了此前缀的ipv6
地址
如果想停止运行radvd
,输入下列命令
sudo /etc/init.d/radvd stop
wsl
这边的抓到的RA
消息如下,这里就不多解释,等下篇文章再做解释,抓包文件已放此链接
radvd发送dns信息
编辑 /etc/radvd.conf
文件,增加红框所示的内容
RDNSS 是一种用于在 SLAAC 中提供域名解析服务的方式。它通过在 Router Advertisement 报文中包含 DNS 服务器地址,为主机提供域名解析服务,而不需要额外的 DHCPv6 服务器。在RFC6106中在5.1章节标题为Recursive DNS Server Option。
interface tap0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix 2001:db8:1234:5678::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
RDNSS fd00:2020:2019::100 fd00:2020:2019::200 {
AdvRDNSSLifetime 300;
};
};
运行
查看qemu
这边的域名服务器,可以看到增加了信的ipv6
域名服务器
cat /etc/resolv.conf
在wsl
这边进行抓包,抓包文件已放此链接
radvd RA消息抑制
RA
消息抑制其实就是radvd
不再一直往链路上发送RA
报文,只有收到RS
报文才会回复RA
报文,这样就不会浪费链路上的带宽。打开此功能只需要将配置文件中的AdvSendAdvert
从on
改为off
即可
radvd前缀存活时间
按照参考链接,可以修改AdvValidLifetime
跟AdvPreferredLifetime
源码
源码下载链接
https://radvd.litech.org/
RA
报文发送的实现在send.c
中的really_send
函数
参考链接
FEATURED TAGS
Ubuntu
markdown
stm32
OSDK
飞控
串口
Jscope
C
C++
bin
J-Flash
字符串
指针数组
malloc
vscode
svg
png
github
python
CMake
CMakeLists
Linux
拷贝构造函数
GIF
录屏
docker
操作系统
make
Makefile
文件操作
DSP
CCS
SQL
MySQL
shell
bochs
计算机网络
win10
SMTP
Socket
iOS
uxplay
投屏
证书错误
apt
nodesource
ELF
Typora
图床
fossil
sql
git
SecureCRT
windows
cygwin
blog
alsa
alsa-utils
alsa-lib
音频
USB
链接文件
内存
mmap
tcpdump
交叉编译
网络
防火墙
crontab
bond
Linux性能
udev
linux
pcie
wsl2
MMIO
wsl
qemu
raspi4
gdb
ssh
tun
tap
ifconfig
打印
gmac
phy
vim
组播
rock3a
win11
usb
sd
ubuntu
iptables
netfilter
wifi
veth
ipv6
wireshark
radvd
dhcpv6
dhcpv4
网络命名空间
br虚拟网卡
NDP
emmc
存储
raspi4b
baremental
jtag
buildroot
rootfs
ext4
调试
uboot
dropbear
raspi
ebpf
uart
baremetal
kernel
bringup
libbpf