在 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'