找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 532|回复: 7

[已解决]如何用脚本获取到当前的ipv6分发前缀 IPv6-PD?

[复制链接]
本帖最后由 hiseeyou 于 2023-12-16 22:00 编辑

知道IPv6-PD和设备的网卡地址就能知道设备分配的ipv6地址了。
 楼主| | 显示全部楼层
ubus call network.interface.lan status 里面有
回复

使用道具 举报

本帖最后由 jonhy 于 2024-1-29 10:57 编辑

我这是电信华为猫
光猫openwrt下(电信,其他运营商搜索dhcp6s.conf文件),也可以ps |grep dhcp 根据进程配置信息去找
/e8cvar/ipv6/dhcp6s/dhcp6s.conf

主系统下
/var/ipv6/dhcp6s/dhcp6s.conf
/var/ipv6/dhcp6c/ppp258/dhcp6c.conf
搜索
find / -name dhcp6s.conf



  1. check_ipv6_pd(){
  2.         LAST_IPV6_PD_FILE=/tmp/last_ipv6_pd
  3.         IPV6_PD=$(cat /e8cvar/ipv6/dhcp6s/dhcp6s.conf|grep "prefix"|awk -F" " '{print $2}'|awk -F"::/64" '{print $1}')
  4.         LAST_IPV6_PD=$(cat $LAST_IPV6_PD_FILE)
  5.         
  6.         # only check pd when last pd is not empty
  7.         if [ ${#LAST_IPV6_PD} -gt 0 ]; then
  8.                 if [ "${LAST_IPV6_PD}" != "${IPV6_PD}" ]; then
  9.                         ip6tables-save | grep -e "FWD_SERVICE -d `${LAST_IPV6_PD}`" | while read -r line; do
  10.                                 RULE=$(echo "$line" | sed 's/^-A //')
  11.                                 echo "deleting rule ${RULE}......"
  12.                                 ip6tables -D ${RULE}
  13.                         done
  14.                         
  15.                         # update LAST_IPV6_PD_FILE
  16.                         echo $IPV6_PD > $LAST_IPV6_PD_FILE
  17.                         
  18.                         # add rule
  19.                         echo "add rule......"
  20.                         ip6tables -A FWD_SERVICE -d ${IPV6_PD}:3a91:96af:fc2b:21de -j ACCEPT
  21.                 else
  22.                         echo "IPV6 PD not update......"
  23.                 fi
  24.         fi
  25.         
  26. }

  27. while true; do
  28.     check_ipv6_pd
  29.     echo "sleep 60 s......"
  30.     sleep 60
  31. done
复制代码
回复

使用道具 举报

本帖最后由 jonhy 于 2024-1-29 10:58 编辑

附上友华光猫的
#ps |grep dhcp
  960 telecoma /bin/udhcpc -i nas0_0 -p /var/run/udhcpc.pid.nas0_0 -s /etc/scripts/udhcpc.sh -H YHGW
2620 telecoma /bin/udhcpd -S /var/udhcpd/udhcpd.conf
7908 telecoma /bin/dhclient -6 -sf /etc/dhclient-script -lf /var/dhcpcV6ppp0.leases -pf /var/run/dhcpcV6ppp0.pid ppp0 -d -q -P
8368 telecoma /bin/dhcpd -6 -cf /var/dhcpd6.conf -lf /var/dhcpd6.leases br0
15287 telecoma grep dhcp


#cat /var/dhcpcV6ppp0.leases
default-duid "\000\001\000\001(\210+\331\274\023\250\276\025\316";
lease6 {
  interface "ppp0";
  ia-pd 00:00:00:00 {
    starts 1706471145;
    renew 86400;
    rebind 138240;
    iaprefix 240e:3ac:3025:1230::/60 {
      starts 1706471145;
      preferred-life 172800;
      max-life 259200;
    }
    option dhcp6.status-code success "Success";
  }
  option dhcp6.client-id 0:1:0:1:28:88:2b:d9:bc:13:a8:be:15:ce;
  option dhcp6.server-id 0:1:0:6:e:2:df:1b:58:60:5f:58:c5:ae;
  option dhcp6.name-servers 240e:1f:1::1;
}

#cat /var/dhcpd6.conf
default-lease-time 20000;
preferred-lifetime 10000;
option dhcp-renewal-time 5000;
option dhcp-rebinding-time 16000;
option dhcp6.name-servers fe80::1;
subnet6 240e:3ac:3025:1230::/64 {
        range6 240e:3ac:3025:1230:1:1:1:1 240e:3ac:3025:1230:2:2:2:2;
}

240e:3ac:3025:1230::/60  就是前缀
回复

使用道具 举报

另外如果 ip a 输出br有ipv6公网地址,那么br的地址前边部分就是前缀。

需要注意wan/ppp接口获取的ip和子网前缀不一致的。
回复

使用道具 举报

 楼主| | 显示全部楼层
jonhy 发表于 2024-1-29 10:56
另外如果 ip a 输出br有ipv6公网地址,那么br的地址前边部分就是前缀。

需要注意wan/ppp接口获取的ip和子 ...

ip -6 route | awk '{print $3}' | awk 'NR==2'  | awk -F::/ '{print $1 "::10"}'

这样获取方便 从 ip -6 route 里面分割提取出来组合
回复

使用道具 举报

hiseeyou 发表于 2024-1-29 11:23
ip -6 route | awk '{print $3}' | awk 'NR==2'  | awk -F::/ '{print $1 "::10"}'

这样获取方便 从 ip  ...

ppp+ 拨号获取的ip地址和子网的网络前缀不一致。

有些光猫br+接口不分配ipv6公网地址,如果分配有ipv6地址,那么br+接口的ipv6地址截取前边部分就是子网前缀了
回复

使用道具 举报

hiseeyou 发表于 2024-1-29 11:23
ip -6 route | awk '{print $3}' | awk 'NR==2'  | awk -F::/ '{print $1 "::10"}'

这样获取方便 从 ip  ...

路由方式是个好思路,这个命令我这边有点问题。

这样应该就行了,去掉fe80和fc01,另外route方式还能知道过期时间
ip -6 route|grep br|grep -v "fe80::" |grep -v "fc01::" | awk -F::/ '{print $1}'
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-20 13:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表