当前位置: 首页 > news >正文

unbuntu系统配置IPV6的三种模式

unbuntu系统配置IPV6的三种模式

  • IPv6的三种获取IP模式
    • 无状态自动配置(SLAAC)
    • 有状态DHCPv6
    • 静态手动配置
    • 验证配置
    • dhcp6服务器
      • 安装 DHCP server
      • 安装 radvd(实现局域网路由功能)
    • 配置SLAAC 路由通告服务器
      • 安装 radvd(实现局域网路由功能)
      • 错误检查

本文主要介绍了unbuntu系统配置IPV6的三种模式,即IPv6的三种获取IP的模式。

IPv6的三种获取IP模式

在Ubuntu系统中配置IPv6地址,通常有三种主要模式:无状态自动配置(SLAAC)有状态DHCPv6以及静态手动配置。每种模式适用于不同场景,具体选择取决于网络环境需求。


无状态自动配置(SLAAC)

SLAAC(Stateless Address Autoconfiguration)是IPv6最常用的自动配置方式。路由器会周期性发送RA(Router Advertisement)消息,包含网络前缀等信息,设备根据这些信息自动生成IPv6地址。

注:需要ipv6路由器, 或者再找一台机器配置一个发送RA通告的服务器

配置方法:

  1. 确保系统内核支持IPv6,通常默认已启用。
  2. 修改网络配置文件(如 /etc/netplan/01-network-manager-all.yaml),添加以下内容(以Netplan为例):
network:version: 2renderer: NetworkManagerethernets:eno2:dhcp4: falsedhcp6: falseaccept-ra: trueaddresses: [10.200.3.10/16]gateway4: 10.200.0.1nameservers:addresses: [114.114.114.114,8.8.8.8]eno1:dhcp4: falseaddresses: [10.10.10.10/16]

3.但是我发现NetworkManager无法控制accept-ra: true这个参数
所以需要修改一下内核参数:

sudo vi /etc/sysctl.conf   // 打开sysctl.conf添加或修改以下代码
net.ipv6.conf.eno2.accept_ra = 1   // 启用IPV6路由器通告接受 (accept_ra设置为 1 才能接收路由器RA通告)
net.ipv6.conf.eno2.autoconf = 1
net.ipv6.conf.eno2.forwarding = 0
  1. 应用配置并重启网络服务:
sudo netplan apply

sudo systemctl restart NetworkManager

特点:

  • 无需DHCP服务器。
  • 地址由设备根据RA消息生成(通常结合EUI-64或随机后缀)。

有状态DHCPv6

当网络需要精确控制IP分配(如记录租约或分配固定地址)时,需使用DHCPv6服务器分配地址。此模式下,路由器RA消息会指示设备通过DHCPv6获取地址。

注:需要ipv6路由器, 或者再找一台机器配置dhcp6服务器

配置方法:

  1. 确保DHCPv6服务器已部署。
  2. 修改Netplan配置,启用DHCPv6并关闭SLAAC:
network:version: 2renderer: NetworkManagerethernets:eno2:dhcp4: falsedhcp6: trueaccept-ra: falseaddresses: [10.200.3.10/16]gateway4: 10.200.0.1nameservers:addresses: [114.114.114.114,8.8.8.8]eno1:dhcp4: falseaddresses: [10.10.10.10/16]
  1. 应用配置:
sudo netplan apply

sudo systemctl restart NetworkManager

特点:

  • 需要DHCPv6服务器支持。
  • 可分配DNS服务器等额外信息。

静态手动配置

若网络不支持自动配置或需固定IPv6地址,可手动指定地址、网关和前缀。

配置方法:

  1. 编辑Netplan配置文件(如/etc/netplan/01-network-manager-all.yaml):
network:version: 2renderer: NetworkManagerethernets:eno2:dhcp4: falsedhcp6: falseaccept-ra: falseaddresses: [10.200.3.10/16, 2001::6/64]gateway4: 10.200.0.1gateway6: 2001::1nameservers:addresses: [8.8.8.8,2001:4860:4860::8888]eno1:dhcp4: falseaddresses: [10.10.10.10/16]
  1. 应用配置并重启网络:
sudo netplan apply

特点:

  • 适用于服务器或关键设备。
  • 需确保地址不冲突且路由正确。

验证配置

无论采用哪种模式,均需通过以下命令检查是否生效:

ip -6 addr show eno2  # 查看IPv6地址
ping6 -c4 2001::5  # ping服务器或者同一网段的ipv6地址测试连通性

dhcp6服务器

安装 DHCP server

1、安装 DHCP server

sudo apt-get update
sudo apt-get install isc-dhcp-server

2、修改配置文件 /etc/dhcp/dhcpd6.conf

log-facility local7;
subnet6 2022:: /64 {# Range for clientsrange6 2022::db8:0:1:129 2022::db8:0:1:139;# Range for clients requesting a temporary addressrange6 2022:: /64 temporary;# Additional optionsoption dhcp6.name-servers fec0:0:0:1::1;option dhcp6.domain-search "domain.example";# Prefix range for delegation to sub-routers#prefix6 2022::db8:0:1:100 2022::db8:0:1:f00 /56;# Example for a fixed host addresshost specialclient {host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01:23:45;fixed-address6 2022::db8:0:1:127;}
}

3、新建数据文件

touch /var/lib/dhcp/dhcpd6.leases
chmod 777 /var/lib/dhcp/dhcpd6.leases	

4、修改网卡作为 DHCP server 网口,需要修改为静态 IPV6
可以使用左面图形化界面设置也可以再网卡管理服务配置文件中修改,例如我将enp2s0作为DHCP server 网口配置如下:

network:version: 2renderer: NetworkManagerethernets:enp0s31f6:dhcp4: falsedhcp6: falseaddresses: [192.167.66.101/24]enp3s0:dhcp4: falsedhcp6: trueaddresses: [10.200.3.47/16]gateway4: 10.200.0.1nameservers:addresses: [10.200.0.22]enp2s0:dhcp4: falsedhcp6: falseaccept-ra: falseaddresses: [2022::db8:0:1:4/64]gateway6: 2022::db8:0:1:1

5、启动 DHCP server 服务

/usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf enp2s0

出现以下类似输入即是成功运行了,如果有错误提示需要按照提示进行修改:

amplesky@amplesky-desktop:/etc/dhcp$ sudo /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf enp2s0
Internet Systems Consortium DHCP Server 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
WARNING: Host declarations are global.  They are not limited to the scope you declared them in.
Config file: /etc/dhcp/dhcpd6.conf
Database file: /var/lib/dhcp/dhcpd6.leases
PID file: /var/run/dhcpd6.pid
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 NA, 0 TA, 0 PD leases to lease file.
Bound to *:547
Listening on Socket/7/enp2s0/2022::/64
Sending on   Socket/7/enp2s0/2022::/64
Server starting service.
Information-request message from fe80::ae1f:6bff:fe6d:2c8a port 546, transaction ID 0x9BA5A400
Sending Reply to fe80::ae1f:6bff:fe6d:2c8a port 546
Solicit message from fe80::225:90ff:fe77:c3ac port 546, transaction ID 0x4D3B3F00Information-request message from fe80::ae1f:6bff:fe04:f8d2 port 546, transaction ID 0xE3C8100
Sending Reply to fe80::ae1f:6bff:fe04:f8d2 port 546
Information-request message from fe80::ae1f:6bff:fe04:fa2b port 546, transaction ID 0x6B64EA00
Sending Reply to fe80::ae1f:6bff:fe04:fa2b port 546

安装 radvd(实现局域网路由功能)

1、下载安装 radvd 服务

sudo apt-get install radvd

2、新建配置文件,注意文件权限不能为777,可以使用755。

touch /etc/radvd.conf
chmod 755 /etc/radvd.conf

3、修改配置文件 /etc/radvd.conf 内容

#log-level 8
#log-mode full
#stateless
interface enp2s0 {AdvSendAdvert on;AdvOtherConfigFlag on;AdvManagedFlag on;MinRtrAdvInterval 10;MaxRtrAdvInterval 15;AdvDefaultPreference medium;AdvDefaultLifetime 45;prefix 2022:: /64 {  AdvOnLink on;AdvAutonomous off;  AdvRouterAddr on;AdvPreferredLifetime 3600;AdvValidLifetime 7200;  	};route 2022:: /64 {};
};

4、启动 radvd 路由服务,主要其中配置信息要和网卡设置静态 IP 对应。

sudo service radvd start

5、测试运行

(1)将需要需要获取ip的测试机器设为dhcp获取IPV6,然后ip -6 show查看是否获取到dhcp服务器上设置的ipv6。

(2)查看当前 route IP , 看看有没有你设置的 2022开头的ipv6路由。

ip -6 route show

(3)将需要获取ip的测试机器设为dhcp获取IPV6。重新拔插同一交换机中的其他主机上的网线,或者对其上的网卡进行重新启用操作,促使其发起 DHCP 请求来获取新的 IP,拿到新的 IP 后,可以通过 ping 命令来查看当前是否ping通:

ping -6 [目标IPV6]

配置SLAAC 路由通告服务器

安装 radvd(实现局域网路由功能)

1、下载安装 radvd 服务

sudo apt-get install radvd

2、新建配置文件,注意文件权限不能为777,可以使用755。

touch /etc/radvd.conf
chmod 755 /etc/radvd.conf

3、修改配置文件 /etc/radvd.conf 内容

#log-level 8
#log-mode full
#stateless
interface enp2s0 {AdvSendAdvert on;AdvOtherConfigFlag off;AdvManagedFlag off;MinRtrAdvInterval 30;MaxRtrAdvInterval 100;prefix 2001:db8:1234:5678::/64 {  AdvOnLink on;AdvAutonomous on;  AdvRouterAddr on;};
};

4、启用 IPv6 转发

#启用 IPv6 转发
echo 'net.ipv6.conf.all.forwarding=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p#启动 radvd
sudo systemctl enable radvd
sudo systemctl start radvd#检查状态
sudo systemctl status radvd

5、启动 radvd 路由服务,主要其中配置信息要和网卡设置静态 IP 对应。

sudo service radvd start

错误检查

1、检查语法错误

sudo radvd -c

2、以调试模式运行

sudo radvd -d 5 -f /etc/radvd.conf -m logfile

3、查看相关日志

sudo journalctl | grep radvd

4、查看 radvd 发送的 RA 包

#在客户端监听 RA 消息
sudo tcpdump -i enp0s31f6 -n icmp6 and ip6[40] == 134#或者在服务器端监听
sudo tcpdump -i enp2s0 -n icmp6 and ip6[40] == 134

5、常见错误排查

# 查看运行错误信息
sudo systemctl status radvd# 检查配置文件权限
sudo ls -l /etc/radvd.conf# 检查 radvd 是否在运行
ps aux | grep radvd# 检查端口绑定
sudo netstat -tulpn | grep :546

6、尝试重启服务

sudo systemctl stop radvd
sudo systemctl daemon-reload
sudo systemctl start radvd
sudo systemctl status radvd
http://www.dtcms.com/a/523820.html

相关文章:

  • ZVD振动抑制方法原理介绍
  • Java微服务无损发布生产案例
  • Kivy 乒乓游戏教程 基于Minconda或Anconda 运行
  • 摄影的网站设计特点同城发广告的平台有哪些
  • 【Python高级编程】类和实例化
  • 徐州市建设局交易网站网站设计的公司运营接单
  • 虹科亮相2025嵌入式会议 | 解读CAN XL与TSN如何驱动下一代E/E架构创新
  • VxWorks系统下龙芯平台的PCI驱动与硬件配置
  • 【2026计算机毕业设计】基于Django的新闻资讯平台的设计与实现
  • Linux小课堂: 基于 SSH 的安全文件传输与增量同步机制深度解析之从 wget 到 rsync 的全流程实战
  • 使用ffmpeg裁剪视频
  • 凡科建站网站西安全网推广公司
  • 免费网站建设程序下载建站用什么工具
  • 香港科技大学工学院2026/2027年度研究生课程招生宣讲会-重庆大学专场
  • Qualcomm SNPE(Neural Processing SDK)集成到 OpenWRT + QCS6490 的完整配置指南
  • LangGraph 官方教程:聊天机器人之一
  • Git与Gitee使用中的几个问题
  • 关于淘宝店网站建设的可行性报告网站建设的公司
  • Flink DatastreamAPI详解(四)
  • 线性代数直觉(四):找到特征向量
  • iis网站服务器 建立出现问题微信小程序制作费用是多少
  • 亚马逊云代理商:2025 AWS 服务器配置趋势走向怎么样?
  • 建设银行网站修改手机号湖南省和城乡住房建设厅网站
  • 云电脑与云手机的关系
  • 加性高斯白噪声和码间串扰的信道中Ungerboeck和Forney接收机的区别
  • 厨房电子秤芯片方案:SIC8833
  • 2025MathorCup大数据竞赛A题B题选题建议与分析,思路模型
  • 做网站的公司属于什么行业工商银行手机银行app下载
  • FastGateway 容器化部署与安全集成实践:技术架构与生态融合
  • 流媒体网站建设规划 所需设备网站建设方案500字