在 OpenWRT 的命令行上显示委托的 ipv6 前缀

在 OpenWRT 的命令行上显示委托的 ipv6 前缀

在 OpenWRT 的 GUI“LuCI”中,ISP 提供的委托 IPv6 前缀显示在概览状态页中。通常,它将显示在“网络”部分的“IPv6 WAN 状态”下,例如

IPv6 WAN Status  Type: dhcpv6-pd
                 Prefix Delegated: 2001:db8:1234:5678::/56
                 Address: 2001:db8::abcd/128
                 […]

但是我想在命令行上找出委托的前缀。我知道我可以通过ip a或网关和其他路由获取分配的地址ip r,但从未设法检索路由器委托的前缀。

如何在命令行界面中显示委派的 IPv6 前缀?是否有我遗漏的命令或我不知道的某个文件?

答案1

您可能想要使用杰奇用于解析输出的程序(可作为 OpenWRT 中的包使用)。

此外,如果您知道该接口存在,则可以ubus直接调用底层命令,从而节省了进行的健全性检查的开销ifstatus

ubus call network.interface.wan_6 status | jq -r '.["ipv6-prefix"][0].address'

输出:

2001:db8:1234:5678::

注意:(wan_6带下划线)是自动生成的 ipv6 接口的名称。如果您有手动创建的别名,则该名称wan6可能适用。您可以列出所有接口:

ubus list network.interface*

答案2

提供此类信息的命令是ifstatus

root@openWRT:~# ifstatus wan6
[…]
"ipv6-prefix": [
    {
        "address": "2001:db8:1234:5678",
        "mask": 56,
[…]

答案3

两者结合:

ifstatus wan6 | jq -r '.["ipv6-prefix"][0].address'

相关内容