Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否支持自动获取ipv6前缀呢? #2

Open
nkcfc opened this issue Dec 6, 2022 · 5 comments
Open

能否支持自动获取ipv6前缀呢? #2

nkcfc opened this issue Dec 6, 2022 · 5 comments

Comments

@nkcfc
Copy link

nkcfc commented Dec 6, 2022

家庭宽带,ipv6前缀是会变的,又不想用v6的内网地址。假定主路由支持完整的ipv6,支持下发PD子网,然后设置成只给XProxy运行的主机分配v6地址和v6子网信息。其他客户端的ipv6地址由XProxy再分配。我这里移动给的子网是/60的,联通好像是/48的,都是支持继续下发的。这样v6没有nat,只是有二级子网。

@nkcfc
Copy link
Author

nkcfc commented Dec 6, 2022

如果主路由不支持下发v6子网,那么能不能让radvd根据接受到的ra信息获取前缀地址,然后自己再发送一个优先级较高的ra消息,覆盖客户端的网关配置。

@dnomd343
Copy link
Owner

dnomd343 commented Dec 7, 2022

RA 消息没有优先级的参数,无法覆盖,IPv6 设计时就规定了 RA 发送源链路地址作为客户端的 next-hop,所以目前旁路由方案在 v6 下只能关闭上级的 RA 广播功能。

家庭带宽下,可以配置定时任务重载 RA 分配,运营商分配的前缀可以用 Python 脚本向光猫管理网页获取,然后在变动时写入到 XProxy 配置文件,再重启容器。或者直接将新地址写入到 radvd 配置中,然后发送热重载信号,这样子可以实现不断网切换 IPv6 地址。

@nkcfc
Copy link
Author

nkcfc commented Dec 7, 2022

谢谢回复,第二个方案也可以。我记得是有优先级,radvd的参数:
AdvDefaultPreference | string | no | medium | 广播默认路由的优先级。 (low, medium or high)
但是客户端是否支持就不一定了,我自己的Linux主机是支持的。
参见在不关闭主路由 SLAAC 的前提下对家庭内网指定设备的IPv6流量进行“旁路牵引。

@nkcfc
Copy link
Author

nkcfc commented Dec 7, 2022

保持光猫拨号并开启RA的前提下,也可以考虑用透明网桥,在LAN1(光猫)和LAN2之间架设,然后wifi和其他设备连接LAN2,我的openclash跑在网桥上,只强行截获了v4的流量。理论上截获v6应该也有办法,我现在不会整。这种方案更“透明”,因为客户端完全不知道代理跑在了哪里。

@dnomd343
Copy link
Owner

dnomd343 commented Dec 8, 2022

感谢反馈,RFC 4191 中确实提及了广播优先级机制,这个方案是可行的,但是需要保证设备 mac 地址不变,且遵守 EUI-64 规则,才能实现 RA 通告向客户端单播。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants