You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu的IPv6模式“Automatic, DHCP only”工作机制及网络异常问题咨询

Ubuntu的IPv6模式“Automatic, DHCP only”工作机制及网络异常问题咨询

我来给你拆解下这个问题的来龙去脉,先把你的场景再理一遍:

  • 本地网络是有状态IPv6,前缀/64,路由器RA的M/O位、前缀选项的L/A位都启用
  • 用“Automatic”模式时,Ubuntu同时获取SLAAC地址+DHCPv6的/128地址+DNS信息,路由配置也正常,网络完全可用
  • 切换到“Automatic, DHCP only”模式,只能拿到DHCPv6的地址和DNS,但链路路由没添加、默认路由为空,就像完全忽略了IPv6 RA一样,导致除了ff02::1组播地址外啥都访问不了

首先得明确:这个模式的设计逻辑就是完全忽略RA,所有网络配置全靠DHCPv6服务器提供

你可能会纳闷,RA里明明有路由信息为啥不用?其实这个模式就是给那种管理员想要100%用DHCPv6管控所有IPv6配置的场景设计的——比如企业网里,管理员可能开了RA的M/O位,但希望某些特定客户端完全不依赖RA,只听从DHCPv6的配置,就会用到这个模式。

那你现在的问题根源很清晰:你的DHCPv6服务器没推送路由信息。它只分配了地址和DNS,但默认路由、/64前缀的链路路由这些关键配置都没下发。而“Automatic”模式是混合模式(SLAAC+无状态DHCPv6),它会同时接收RA的路由信息和DHCPv6的地址/DNS,所以能正常工作。

如果非要用“Automatic, DHCP only”模式,给你两个解决思路:

  1. 配置DHCPv6服务器:让它推送默认路由(指向路由器的链路本地地址)和/64前缀的链路路由。不同DHCPv6服务器的配置方式不同,比如ISC DHCPv6可以用option routers <路由器链路本地地址>;来推送默认路由,前缀路由可通过对应选项配置。
  2. 手动在Ubuntu客户端补全路由:临时生效可以执行这两条命令:
    ip -6 route add default via <路由器链路本地地址> dev <你的网卡名>
    ip -6 route add <你的IPv6前缀>/64 dev <你的网卡名>
    
    要让配置持久化,可以把命令加到/etc/rc.local(记得给文件添加执行权限),或者创建一个systemd服务来开机自动执行。

当然,如果你没有特殊的配置需求,其实用“Automatic”模式是最省心的,毕竟它适配了大多数IPv6网络的常规配置方式。

备注:内容来源于stack exchange,提问作者RichardLiu

火山引擎 最新活动