87728854

87728854

V2EX 第 443962 号会员,加入于 2019-09-29 10:58:08 +08:00
87728854 最近回复了
@87728854 补充一下,二级路由 WAN 口成功从一级路由获取到 IPv6 地址 240e:55f:34f:f970::61:a/128
最近升级新版本,发现已经彻底解决了这个问题,在不手动修改代码的情况下,前缀成功下发到下一级路由,下级路由也成功给每台电脑分配了期望的 IPV6 地址,可以成功访问互联网。不过有个新问题:下级电脑无法使用 IPv6 访问上级路由 LAN 口连接的电脑,防火墙全部放开也不行。

比如:
一级路由 WAN 口获取 IPV6 地址:240e:55e:304:f97b:62be:b4ff:fe03:a49a/64
一级路由 WN 口同时从运营商获取到前缀:240e:55f:34f:f970::/60
一级路由 LAN 口分配到 IPV6 地址:240e:55f:34f:f970:62be:b4ff:fe03:a49c/64
一级路由 LAN 口使用 DHCPv6 继续向二级路由下发前缀,长度设定为 62 ,范围为:::8 至 ::c

二级路由 WAN 口成功从一级路由获取到前缀 240e:55f:34f:f97c::/62
二级路由 LAN 接口及连接的电脑分配到前缀为 240e:55f:34f:f97c::/64 的 IPV6 地址,可以正常访问互联网。

问题:
二级路由 LAN 口连接的所有电脑均无法访问一级路由 LAN 口下接入的 240e:55f:34f:f970::/64 这个段的电脑。
@Mrcocoa 我是发现 godaddy 被封,换成了 cloudflare ,目前没发现问题。
河南联通 /60
真有 /64 的吗,是不是看错了?
2022-07-03 16:59:49 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
@raysonx
我当前用的版本 22.1.9_1 ,修改 /usr/local/etc/inc/plugins.inc.d/dhcpd.inc 文件:
注释掉 1399 和 1400 行。
修改 1419 和 1421 行,经测试向下级路由委派到正确的前缀,再次感谢!
2022-07-03 16:33:00 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
@raysonx 找到了,非常感谢!

1412 switch ($pdval) {
1413 // For PD sizes of /60 through /64, the user must do the math!
1414 case 60:
1415 case 62:
1416 case 63:
1417 case 64: // 3&4th bytes on 4th array
1418 $pd_prefix_from_array_out[3] = sprintf("%04s", $ifcfgipv6arr[3]); // make it 4 bytes
1419 $pd_prefix_from_array_out[3] = substr($pd_prefix_from_array_out[3], 0, 2) . $pd_prefix_from_array[2];
1420 $pd_prefix_to_array_out[3] = sprintf("%04s", $ifcfgipv6arr[3]); // make it 4 bytes
1421 $pd_prefix_to_array_out[3] = substr($pd_prefix_to_array_out[3], 0, 2) . $pd_prefix_to_array[2];
1422 break;
1423 case 56: // 1st&2nd bytes on 4th array
1424 $pd_prefix_from_array[2] = str_pad($pd_prefix_from_array[2], 4, "0");
1425 $pd_prefix_from_array_out[3] = sprintf("%s", $pd_prefix_from_array[2]); // make it 4 bytes
1426 $pd_prefix_to_array[2] = str_pad($pd_prefix_to_array[2], 4, "0");
1427 $pd_prefix_to_array_out[3] = sprintf("%s", $pd_prefix_to_array[2]); // make it 4 bytes
1428 break;
1429 case 52: // 1st byte on 4th array only, 0 to f, we only want one byte, but lookout for the user entering more
1430 $len = strlen($pd_prefix_from_array[2]);
1431 $pd_prefix_from_array[2] = substr($pd_prefix_from_array[2], $len - 1, 1);
1432 $pd_prefix_from_array_out[3] = sprintf("%s000", substr($pd_prefix_from_array[2], 0, 1)); // first byte from entered value
1433 $len = strlen($pd_prefix_to_array[2]);
1434 $pd_prefix_to_array[2] = substr($pd_prefix_to_array[2], $len - 1, 1);
1435 $pd_prefix_to_array_out[3] = sprintf("%s000", substr($pd_prefix_to_array[2], 0, 1));
1436 break;
1437 case 48: // 4th byte on 2nd array
1438 $pd_prefix_from_array[2] = substr($pd_prefix_from_array[2], 0, 1);
1439 $pd_prefix_from_array_out[1] = substr(sprintf("%03s", $ifcfgipv6arr[1]), 0, 3) . $pd_prefix_from_array[2]; // get 1st 3 byte + nibble
1440 $pd_prefix_to_array[2] = substr($pd_prefix_to_array[2], 0, 1);
1441 $pd_prefix_to_array_out[1] = substr(sprintf("%03s", $ifcfgipv6arr[1]), 0, 3) . $pd_prefix_to_array[2]; // get 1st 3 byte + nibble
1442 break;
1443 }
2022-07-03 15:55:56 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
@raysonx 因为怀疑有 BUG ,我更新的最新版,我准备测试下 pfsense ,主要是比较喜欢 freebsd 。。。
2022-07-03 14:50:48 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
@raysonx 我还以为我对 IPV6 前缀委派理解有问题,把 《 IPV6 技术精要》涉及的章节翻来覆去看了几遍。。。这个问题已经困扰我两周了。话说你是什么时候遇到的,这都 2022 年了还没修复,真是坑啊。。。
2022-07-03 13:35:46 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
@pcslide 是的,这就是奇怪的地方,理论上 789 是不应该变动的,由于指定了委派范围 ::8 至 ::C ,应该是 7898::/62 或 789C::/62 任意一个。
2022-07-03 13:35:28 +08:00
回复了 87728854 创建的主题 宽带症候群 涉及两级路由的 IPv6 前缀下发(委派)问题求助
是的,这就是奇怪的地方,理论上 789 是不应该变动的,由于指定了委派范围 ::8 至 ::C ,应该是 7898::/62 或 789C::/62 任意一个。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   993 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.