v1.1.3
版本亮点
Patch release,修复 ripset 中两个 Linux netlink 协议 bug —— nftset interval 集合写入被内核以 EINVAL 拒绝、ipset 创建集合时 hashsize / maxelem 字节序错误 —— 另外修复一个 WebUI 溢出问题,并预告 black_hole 插件后续版本的重设计。
本版本不引入破坏性配置变更,v1.1.2 配置可直接升级。
主要变更
Fixes
nftsetinterval 集合:ADD / DEL 改为nft用户态使用的两元素列表形式,解决真实内核以 EINVAL 拒绝写入的问题(#127);TEST 改为仅发送起始 key,交由内核 interval 树判定包含关系。同时修正元素 timeout 的字节序,并放宽 dump 解析对孤立INTERVAL_END锚点的容错。ipset创建集合:hashsize/maxelem改为大端字节序写入 —— 小端主机上hashsize=2048此前会被内核读成524288。同时移除多余的IPSET_ATTR_LINENO=0嵌套属性,与 libipset 行为对齐。- WebUI:修复
query_recorder详情面板长内容时标签栏纵向溢出。
Tests
- 大幅扩充
ripset报文格式单元测试与真实内核下的ipset集成测试覆盖。
Docs
- 在
black_hole执行器文档加入醒目提示,预告后续版本将引入mode字段(nxdomain/nodata/null/custom/refused)以覆盖所有 qtype。本版本行为保持不变。
升级说明
- 根 crate
1.1.2→1.1.3;oxidns-ripset0.1.1→0.1.2。 - 强烈建议 Linux 上使用
nftset且集合声明了flags interval的部署升级 —— 否则 ADD / DEL 会在真实内核上以 EINVAL 失败。 - 建议 Linux 上通过 OxiDNS 创建
ipset集合并显式设置hashsize/maxelem的部署升级 —— 如果集合由外部ipsetCLI 预先创建,本次修复不影响已存在的集合。
What's Changed
- release/v1.1.2 by @svenshi in #126
- Fix NFT set interval encoding and improve IP set coverage by @svenshi in #129
Full Changelog: v1.1.2...v1.1.3