udhcpc6的default.script
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相关推荐
- Vue组件的三大部分-template、script、style
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net vue 是一个完全支持组件化开发的框架.vue 中规 ...
- Vue3 script setup 语法糖详解
前言: 目前setup sugar已经进行了定稿,vue3 + setup sugar + TS的写法看起来很香,写本文时 Vue 版本是 "^3.2.6" 1.script se ...
- vue3 + ts <script setup>语法糖
这里是引用 1.data 2.computed 3.父传子 4.子传父 5.原型链绑定和组件使用 6.父子组件 v-model 7.nextTick 8.插槽 9.路由useRoute和useRout ...
- 前端Vue学习之路(二)-Vue-router路由
Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...
- 【vue】vue-znly
老规矩,放下博主的项目地址:https://github.com/wohaiwo/vue-znly 我一直在想给那些开源者取什么名字比较好,怎样才对得起他们开源项目的精神,后来想想,还是叫博主吧.有的 ...
- qemu模拟Cortex-A57运行Linux4.5.1
主机运行操作系统,deepin15.1.1 http://www.deepin.org/ 1.安装qemu sudo apt-get install qemu-system-arm 2.安装arm编译 ...
- Vue开发入门看这篇文章就够了
摘要: 很多值得了解的细节. 原文:Vue开发看这篇文章就够了 作者:Random Fundebug经授权转载,版权归原作者所有. 介绍 Vue 中文网 Vue github Vue.js 是一套构建 ...
- Vue多个单文件组件使用
在project目录下创建components文件夹,然后将所有子组件放入components文件夹下 [创建此目录][文件名的首字母大写] 1.多组件嵌套使用 Child1.vue <tem ...
- Vue单文件组件的使用
项目搭建完成后需要分别对 main.js , index.html , App.vue 文件进行编写代码 index.html <!DOCTYPE html> <html lang= ...
- 嵌入式linux dhcp移植,嵌入式linux中的dhcp服务器
嵌入式系统下,用开发板建立dhcp服务器 1.重新编译内核,添加对dhcp的支持 2.busybox是否带有dhcp的应用,如无,则需要重新编译busybox,或者直接下一个独立的也可. 3.dhcp ...
最新文章
- 在ESXi主机上关闭无响应的虚拟机
- 熬夜变傻有科学依据,人类睡觉时会被“洗脑”,科学家首次拍下全程
- 用筛法求之N内的素数。(N 1000000)
- MFC控件的颜色设置
- 【Spark篇】---SparkStream初始与应用
- idea test包_6.Flinkx如何在idea中运行?
- 开灯问题java小结_n个灯,k个人的开灯问题java实现
- 最小化安装 linux 安装图形化界面,那些最小化centos7安装图形化界面的坑
- mysql怎么用sb文件_初识mysql数据库
- Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
- FileZilla Server超详细配置
- git 中文文件名乱码
- 省花博会,或将成为跳马百亿产业的跳板
- 屏幕录像专家V7.5注册机
- xxl-job快速入门
- AI研习丨针对长尾数据分布的深度视觉识别
- PS学习之动态表情制作
- 润肤悦颜各种偏方秘方
- C# winform 快速导入excel 到datagridview
- Edge被恶意篡改主页
热门文章
- 零基础学SQL(三、MYSQL环境变量配置及启动)
- JAVA验证码存在哪里了_java实现验证码功能
- 记忆训练: 记数字 (110数字图像编码)
- win10 动态磁盘 linux,win10 动态磁盘 无效,win10动态磁盘不能识别
- 政策频发,全国区块链应用不断涌现 | 产业区块链发展周报
- 【Godot】项目结构设计
- python数据处理分析实训心得总结_python数据分析的总结
- 北理慕课——Python文件和数据格式化
- c语言编程中分数怎么表示,用C语言编程平均分数
- VueUse中文文档Vue官方工具库