udhcpc6使用中遇到的问题

和udhcpc一样,udhcpc6是busybox中的一个工具,主要用来提供dhcpv6客户端服务。

在使用过程中遇到了一个问题,直接执行udhcpc6 -i eth0,可以看到打印信息中显示正在发送discover包,如果本地有配置dhcpv6服务器,则显示IPv6 obtained,lease time xxxx,即IPv6地址已经获取,lease time是租约时间,但是没有将获取到的ipv6地址打印出来。

在运行udhcpc时,如果获取ip成功,会有已获取ip的打印,如下图:

看busybox相关部分的源码,确认是udhcpc6代码里没有将ip打印出来,实际是正常获取到了ipv6地址。

无论是udhcpc还是udhcpc6,获取到ip之后,都要执行一个脚本将获得的ip地址配置到设备中,udhcpc可以使用官方文件里给的simple.script,将其改名为default.script后,放到/usr/share/udhcpc/文件夹下,在运行udhcpc的时候会自动去该文件夹下找。还可以在运行时加入-s参数去指定运行脚本。

udhcpc6官方没有提供脚本示例,经测试, 原脚本并不能配置ipv6地址。研究后确定,原因在于原脚本使用的环境变量是$ip,而udhcpc6代码中将获取的ipv6地址配置到环境变量 $ipv6中,只要将原脚本中的 $ip替换为 $ipv6即可使用。

下面放一个我正在使用的udhcpc6脚本,供参考:

#!/bin/sh
# udhcpc6 script edited by Tim Riker <Tim@Rikers.org>RESOLV_CONF="/etc/resolv.conf"[ -n "$1" ] || { echo "udhcpc6:Error: should be called from udhcpc"; exit 1; }NETMASK=""[ -n "$subnet" ] && NETMASK="netmask $subnet"
BROADCAST="broadcast +"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"case "$1" indeconfig)echo "udhcpc6:Setting IP address 0.0.0.0 on $interface"
#       ifconfig $interface 0.0.0.0;;renew|bound)echo "udhcpc6:Setting IP address $ipv6 on $interface"ifconfig $interface $ipv6 $NETMASK $BROADCASTif [ $interface != "eth0" ] && [ $interface != "bond0" ] && [ $interface != "wlan0" ] ; thenecho "udhcpc6:$interface is not allowd set router"exit 0;elseecho "udhcpc6:set router for $interface"fiif [ -n "$router" ] ; thenecho "udhcpc6:Deleting routers"while route del default gw 0.0.0.0 dev $interface ; do:donemetric=0for i in $router ; doecho "udhcpc6:Adding router $i"if [ "$subnet" = "255.255.255.255" ]; then# special case for /32 subnets:# /32 instructs kernel to always use routing for all outgoing packets# (they can never be sent to local subnet - there is no local subnet for /32).# Used in datacenters, avoids the need for private ip-addresses between two hops.ip route add $i dev $interfacefiroute add default gw $i dev $interface metric $((metric++))donefiecho "udhcpc:Recreating $RESOLV_CONF"tmpfile="$RESOLV_CONF-$$"> "$tmpfile"for i in $dns ; doecho "udhcpc: Adding DNS server $i"echo "nameserver $i" >> "$tmpfile"donemv "$tmpfile" "$RESOLV_CONF";;
esacexit 0

udhcpc6的default.script相关推荐

  1. Vue组件的三大部分-template、script、style

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net vue 是一个完全支持组件化开发的框架.vue 中规 ...

  2. Vue3 script setup 语法糖详解

    前言: 目前setup sugar已经进行了定稿,vue3 + setup sugar + TS的写法看起来很香,写本文时 Vue 版本是 "^3.2.6" 1.script se ...

  3. vue3 + ts <script setup>语法糖

    这里是引用 1.data 2.computed 3.父传子 4.子传父 5.原型链绑定和组件使用 6.父子组件 v-model 7.nextTick 8.插槽 9.路由useRoute和useRout ...

  4. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  5. 【vue】vue-znly

    老规矩,放下博主的项目地址:https://github.com/wohaiwo/vue-znly 我一直在想给那些开源者取什么名字比较好,怎样才对得起他们开源项目的精神,后来想想,还是叫博主吧.有的 ...

  6. qemu模拟Cortex-A57运行Linux4.5.1

    主机运行操作系统,deepin15.1.1 http://www.deepin.org/ 1.安装qemu sudo apt-get install qemu-system-arm 2.安装arm编译 ...

  7. Vue开发入门看这篇文章就够了

    摘要: 很多值得了解的细节. 原文:Vue开发看这篇文章就够了 作者:Random Fundebug经授权转载,版权归原作者所有. 介绍 Vue 中文网 Vue github Vue.js 是一套构建 ...

  8. Vue多个单文件组件使用

    在project目录下创建components文件夹,然后将所有子组件放入components文件夹下  [创建此目录][文件名的首字母大写] 1.多组件嵌套使用 Child1.vue <tem ...

  9. Vue单文件组件的使用

    项目搭建完成后需要分别对 main.js , index.html , App.vue 文件进行编写代码 index.html <!DOCTYPE html> <html lang= ...

  10. 嵌入式linux dhcp移植,嵌入式linux中的dhcp服务器

    嵌入式系统下,用开发板建立dhcp服务器 1.重新编译内核,添加对dhcp的支持 2.busybox是否带有dhcp的应用,如无,则需要重新编译busybox,或者直接下一个独立的也可. 3.dhcp ...

最新文章

  1. 在ESXi主机上关闭无响应的虚拟机
  2. 熬夜变傻有科学依据,人类睡觉时会被“洗脑”,科学家首次拍下全程
  3. 用筛法求之N内的素数。(N 1000000)
  4. MFC控件的颜色设置
  5. 【Spark篇】---SparkStream初始与应用
  6. idea test包_6.Flinkx如何在idea中运行?
  7. 开灯问题java小结_n个灯,k个人的开灯问题java实现
  8. 最小化安装 linux 安装图形化界面,那些最小化centos7安装图形化界面的坑
  9. mysql怎么用sb文件_初识mysql数据库
  10. Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
  11. FileZilla Server超详细配置
  12. git 中文文件名乱码
  13. 省花博会,或将成为跳马百亿产业的跳板
  14. 屏幕录像专家V7.5注册机
  15. xxl-job快速入门
  16. AI研习丨针对长尾数据分布的深度视觉识别
  17. PS学习之动态表情制作
  18. 润肤悦颜各种偏方秘方
  19. C# winform 快速导入excel 到datagridview
  20. Edge被恶意篡改主页

热门文章

  1. 零基础学SQL(三、MYSQL环境变量配置及启动)
  2. JAVA验证码存在哪里了_java实现验证码功能
  3. 记忆训练: 记数字 (110数字图像编码)
  4. win10 动态磁盘 linux,win10 动态磁盘 无效,win10动态磁盘不能识别
  5. 政策频发,全国区块链应用不断涌现 | 产业区块链发展周报
  6. 【Godot】项目结构设计
  7. python数据处理分析实训心得总结_python数据分析的总结
  8. 北理慕课——Python文件和数据格式化
  9. c语言编程中分数怎么表示,用C语言编程平均分数
  10. VueUse中文文档Vue官方工具库