forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 2266|回复: 14

    [问题反馈] 无线中继功可不可以增加DHCP Vendor Class配置功能

    [复制链接]

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-11 16:38:43 | 显示全部楼层 |阅读模式
    校园网会识别dhcp客户端特征,


    应该是用到的DHCP Option: (60) Vendor class identifier字段,现在系统中的无线中继功能设置好以后是无法正常获取到ip地址的,如果直接在接口设置里面修改WWAN的参数就会导致中继断开重连,然后WWAN就又被重置了,希望官方可以加入在无线中继模式下配置DHCP客户端参数的功能,要不然我们这垃圾学校的校园网就真没办法了



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    3

    主题

    86

    帖子

    1117

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1117
    发表于 2024-9-11 18:23:49 | 显示全部楼层
    哈哈,这个需求很中国、很实际,官方能解决或用低调官方插件解决那确实对高校学生党很实用!!!很佩服现在高校学生的钻研精神,一步步分析都到这一步了...
    回复

    使用道具 举报

    3

    主题

    86

    帖子

    1117

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1117
    发表于 2024-9-11 18:45:52 | 显示全部楼层
    没有你校园环境测试,给你个思路自己试试修改能不能成

    反正都是基于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脚本,出问题了还原回来就好了
    回复

    使用道具 举报

    3

    主题

    86

    帖子

    1117

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1117
    发表于 2024-9-11 18:58:38 | 显示全部楼层
    本帖最后由 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"}。根据需求,你可以修改这行代码以支持十六进制格式或其他格式,例如修改为
    1. ${vendorid:+-V '' "-x 0x3c:$vendorid"}
    复制代码

    来支持十六进制Vendor ID。

    ‌保存并应用更改‌:保存对脚本的更改,并重启网络服务或整个设备以使更改生效。

    请注意,直接编辑系统脚本可能会带来风险,如果不确定,建议先备份相关文件。此外,不同版本的OpenWrt可能在文件路径或脚本内容上有所不同,因此请根据你使用的具体版本进行操作。

    以上步骤仅供参考,具体操作可能因OpenWrt版本和设备配置而异。如果不熟悉这些操作,建议寻求专业帮助。
    回复

    使用道具 举报

    小龙虾 该用户已被删除
    发表于 2024-9-13 12:17:53 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 02:07:22 | 显示全部楼层
    Oasis.cn 发表于 2024-9-11 18:58
    在OpenWrt中修改DHCP的Vendor ID(vendorid),通常涉及到对系统脚本或配置文件的编辑。以下是一个基本的步 ...

    感谢大佬指点,我明天就研究试一下
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 11:41:06 | 显示全部楼层
    Oasis.cn 发表于 2024-9-11 18:58
    在OpenWrt中修改DHCP的Vendor ID(vendorid),通常涉及到对系统脚本或配置文件的编辑。以下是一个基本的步 ...

    大佬,经过一上午的研究,现在dhcp 12、60、61、80已经都和安卓手机一样了,但是还是不能正常获取到ip
    目前还存在三个可能的问题,在网上一顿搜索并无结果
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 11:41:24 | 显示全部楼层
    本帖最后由 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期望回复列表和安卓不一样,但是目前并未找到修改方法。(可能有影响???)
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 11:43:22 | 显示全部楼层
    小龙虾 发表于 2024-9-13 12:17
    感谢环境数据提供和想法,我反馈给开发同事看看。

    我发现这个论坛输入Windows自带表情会将表情及后续内容截断,应该是个bug
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 11:44:07 | 显示全部楼层



    这个是修改后的文件

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 11:45:23 | 显示全部楼层
    sorkai 发表于 2024-9-16 11:44
    这个是修改后的文件

    修改前忘了备份,文件已经一片狼藉了
    回复

    使用道具 举报

    3

    主题

    86

    帖子

    1117

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1117
    发表于 2024-9-16 19:01:24 | 显示全部楼层
    你的校园网mtu被设成576,不是传统以太网默认1500和pppoe1469,应该是出于安全考虑。防止基于ICMP(Internet Control Message Protocol,互联网控制消息协议)的攻击。至于你修改了好几项仍不能达到路由器分享校园网的需求,还得你一点一点对比差异,也许锁定了客户端mac吧,谁知道呢,你可以再试试把路由器mac改成你能连接成功的android手机mac试试行不行
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 23:27:46 | 显示全部楼层
    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
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 23:29:40 | 显示全部楼层
    本帖最后由 sorkai 于 2024-9-16 23:30 编辑
    sorkai 发表于 2024-9-16 23:27
    嗯嗯,mac的问题我已经试过了,并没有绑定,而且修改成手机的也获取不到ip,,MTU那个,,可能我的图片有 ...

    我觉得有很大可能dhcp服务器是检测的这个option57的值来判断客户端类型的,因为剩下的差别实在不大了,检测期望回复列表太复杂,变量太多,检测广播单播我觉得没有必要,option57的值很明显
    回复

    使用道具 举报

    1

    主题

    10

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
     楼主| 发表于 2024-9-16 23:31:40 | 显示全部楼层
    sorkai 发表于 2024-9-16 23:29
    我觉得有很大可能dhcp服务器是检测的这个option57的值来判断客户端类型的,因为剩下的差别实在不大了,检 ...

    我现在想自己写个简单的dhcp客户端了
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2024-12-27 09:02 , Processed in 0.024208 second(s), 24 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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