smartdns-rs icon indicating copy to clipboard operation
smartdns-rs copied to clipboard

支持 `ip-alias` `ip-rules` `ip-set`

Open zeng-y-l opened this issue 1 year ago • 7 comments

我试了一下,似乎不支持ip-alias ip-rules ip-set配置。TODO也没有提到这些配置。

错误例如:

2025-02-16 11:35:30.729:WARN:smartdns::dns_conf:875: unknown conf: ip-alias 1.2.3.4 5.6.7.8, Error(Error { input: "ip-alias 1.2.3.4 5.6.7.8", code: Tag })

Windows 11 系统,版本:smartdns-x86_64-pc-windows-msvc-v0.9.1

zeng-y-l avatar Feb 16 '25 03:02 zeng-y-l

我打算自己fork加上这些功能,然后发现:它居然没有解析whitelist-ip配置……可能是无意中漏了,只要加一行就能修复……

zeng-y-l avatar Feb 17 '25 15:02 zeng-y-l

我打算自己fork加上这些功能,然后发现:它居然没有解析whitelist-ip配置……可能是无意中漏了,只要加一行就能修复……

@zeng-y-l 近期比较忙,如果你觉得简单方便,添加的话,欢迎 PR。原版有些功能,因为我自己没用到,所以并没有全部一一参照移植过来,细节功能,比较费时间心思。

mokeyish avatar Feb 17 '25 23:02 mokeyish

ip-set搞了,准备搞ip-alias。ip-alias的具体逻辑我不甚明白,C代码看得一头雾水的,没有linux设备也没法测试。似乎ip-alias出来也要参与测速,和address不太一样。再看bogus-nxdomain/ignore-ip/blacklist-ip/whitelist-ip的逻辑,感觉Rust和C的版本也有区别。算了,按我理解的搞吧。

还发现bogus-nxdomain根本没有参与解析,和whitelist-ip是一样的问题……

zeng-y-l avatar Feb 20 '25 12:02 zeng-y-l

https://pymumu.github.io/smartdns/config/ip-alias ip-alias简单说就是替换,例如ip-alias 1.2.3.4/24 192.168.1.1,就是解析结果中有1.2.3.4/24范围内的IP就替换成192.168.1.1

zhengqwe avatar Feb 21 '25 13:02 zhengqwe

https://pymumu.github.io/smartdns/config/ip-alias ip-alias简单说就是替换,例如ip-alias 1.2.3.4/24 192.168.1.1,就是解析结果中有1.2.3.4/24范围内的IP就替换成192.168.1.1

大概的我知道,具体细节不太清楚,我就按我的想法写了 #509 :

  • alias后的要不要参与测速?(要)
  • 没匹配上ip-alias的要不要删掉?(不删)
  • 要不要去重?(只在对应同一条ip-alias规则时去重,具体地址重复就不管了)
  • ipv4的结果能不能alias到ipv6上?(原版不行,我的行)

zeng-y-l avatar Feb 21 '25 15:02 zeng-y-l

@zeng-y-l 你的第4项应该有问题,客户端查询 ipv4 只能给 ipv4 的结果。

mokeyish avatar Feb 22 '25 00:02 mokeyish

@zeng-y-l 你的第4项应该有问题,客户端查询 ipv4 只能给 ipv4 的结果。

明白了,我去修。

zeng-y-l avatar Feb 23 '25 15:02 zeng-y-l

对了你的你的第4项,可以按 chatgpt 的说的处理。

Image

mokeyish avatar Jul 01 '25 11:07 mokeyish