无线中继功可不可以增加DHCP Vendor Class配置功能
校园网会识别dhcp客户端特征,应该是用到的DHCP Option: (60) Vendor class identifier字段,现在系统中的无线中继功能设置好以后是无法正常获取到ip地址的,如果直接在接口设置里面修改WWAN的参数就会导致中继断开重连,然后WWAN就又被重置了,希望官方可以加入在无线中继模式下配置DHCP客户端参数的功能,要不然我们这垃圾学校的校园网就真没办法了:L
哈哈,这个需求很中国、很实际,官方能解决或用低调官方插件解决那确实对高校学生党很实用!!!很佩服现在高校学生的钻研精神,一步步分析都到这一步了... 没有你校园环境测试,给你个思路自己试试修改能不能成
反正都是基于openwrt开源体系,你可以winscp到设备,修改 /lib/netifd/proto/dhcp.sh脚本,找到 ${vendorid:+-V "$vendorid"} \ 这行试着修改下,默认就是你劫包后显示发送的udhcp+version号字串。怎么修改这段代码我不知道,但恩山那边有人说只支持16进制,输错其它字符会出错,导致 udhcpc 不工作!具体你参考下这个https://www.right.com.cn/forum/thread-522652-1-1.html,尝试下自己改有效否,反正大不了备份下这个dhcp.sh脚本,出问题了还原回来就好了 本帖最后由 Oasis.cn 于 2024-9-11 18:59 编辑
在OpenWrt中修改DHCP的Vendor ID(vendorid),通常涉及到对系统脚本或配置文件的编辑。以下是一个基本的步骤指南:
访问OpenWrt终端:首先,你需要通过SSH或其他方式访问OpenWrt设备的终端。
编辑dhcp.sh脚本:找到/lib/netifd/proto/dhcp.sh脚本文件,并使用文本编辑器(如vi或nano)打开它。在脚本中,找到与Vendor ID相关的行,通常类似于${vendorid:+-V "$vendorid"}。根据需求,你可以修改这行代码以支持十六进制格式或其他格式,例如修改为${vendorid:+-V '' "-x 0x3c:$vendorid"}
来支持十六进制Vendor ID。
保存并应用更改:保存对脚本的更改,并重启网络服务或整个设备以使更改生效。
请注意,直接编辑系统脚本可能会带来风险,如果不确定,建议先备份相关文件。此外,不同版本的OpenWrt可能在文件路径或脚本内容上有所不同,因此请根据你使用的具体版本进行操作。
以上步骤仅供参考,具体操作可能因OpenWrt版本和设备配置而异。如果不熟悉这些操作,建议寻求专业帮助。 Oasis.cn 发表于 2024-9-11 18:58
在OpenWrt中修改DHCP的Vendor ID(vendorid),通常涉及到对系统脚本或配置文件的编辑。以下是一个基本的步 ...
感谢大佬指点,我明天就研究试一下:lol Oasis.cn 发表于 2024-9-11 18:58
在OpenWrt中修改DHCP的Vendor ID(vendorid),通常涉及到对系统脚本或配置文件的编辑。以下是一个基本的步 ...
大佬,经过一上午的研究,现在dhcp 12、60、61、80已经都和安卓手机一样了,但是还是不能正常获取到ip
目前还存在三个可能的问题,在网上一顿搜索并无结果 本帖最后由 sorkai 于 2024-9-16 12:17 编辑
大佬,经过一上午的研究,现在dhcp 12、60、61、80已经都和安卓手机一样了,但是还是不能正常获取到ip
目前还存在三个可能的问题,在网上一顿搜索并无结果
1、Bootp flags: Broadcast flag字段udhcpc是1也就是广播,而安卓该字段是0也就是单播,尝试在dhcp客户端请求脚本中将-B选项(-B,--broadcast Request broadcast replies)删除,但udhcpc依旧会发送Broadcast flag:0也就是期望广播回复。(不知道这个影不影响dhcp服务器识别)
2、Option: (57) Maximum DHCP Message Size,udhcpc默认576,安卓默认1500,这个消息大小我觉得特征明显,遂在请求脚本中加入-x "0x39:05dc"参数尝试覆盖默认的option57,但是这个-x选项好像不支持覆盖已经有的option,所以也没有生效,在国内外网站上也没有找到修改option57的方法。(感觉这个大概率影响识别)
3、Option: (55) Parameter Request List,udhcpc期望回复列表和安卓不一样,但是目前并未找到修改方法。(可能有影响???)
小龙虾 发表于 2024-9-13 12:17
感谢环境数据提供和想法,我反馈给开发同事看看。
我发现这个论坛输入Windows自带表情会将表情及后续内容截断,应该是个bug
这个是修改后的文件
sorkai 发表于 2024-9-16 11:44
这个是修改后的文件
修改前忘了备份,文件已经一片狼藉了 你的校园网mtu被设成576,不是传统以太网默认1500和pppoe1469,应该是出于安全考虑。防止基于ICMP(Internet Control Message Protocol,互联网控制消息协议)的攻击。至于你修改了好几项仍不能达到路由器分享校园网的需求,还得你一点一点对比差异,也许锁定了客户端mac吧,谁知道呢,你可以再试试把路由器mac改成你能连接成功的android手机mac试试行不行 Oasis.cn 发表于 2024-9-16 19:01
你的校园网mtu被设成576,不是传统以太网默认1500和pppoe1469,应该是出于安全考虑。防止基于ICMP(Interne ...
嗯嗯,mac的问题我已经试过了,并没有绑定,而且修改成手机的也获取不到ip,,MTU那个,,可能我的图片有点误导,抓包的截图是用电脑开热点,手机和路由分别连接电脑得到的,想要的是比较二者的差异,那个option57我查了下他并不是MTU而是dhcp客户端接受的最大dhcp消息包大小,也就是说这个576是openwrt中udhcpc自己要求的,在连接同样的WiFi时,安卓手机是要求的最大大小1500 本帖最后由 sorkai 于 2024-9-16 23:30 编辑
sorkai 发表于 2024-9-16 23:27
嗯嗯,mac的问题我已经试过了,并没有绑定,而且修改成手机的也获取不到ip,,MTU那个,,可能我的图片有 ...
我觉得有很大可能dhcp服务器是检测的这个option57的值来判断客户端类型的,因为剩下的差别实在不大了,检测期望回复列表太复杂,变量太多,检测广播单播我觉得没有必要,option57的值很明显 sorkai 发表于 2024-9-16 23:29
我觉得有很大可能dhcp服务器是检测的这个option57的值来判断客户端类型的,因为剩下的差别实在不大了,检 ...
我现在想自己写个简单的dhcp客户端了:'(
页:
[1]