1
maobukui 2023-06-11 08:25:57 +08:00
不是的,拿到的 V6 地址,跨运营商也是可以访问的。
猜测你应该是路由器拿 V6 的配置不对吧 |
2
maobukui 2023-06-11 08:26:55 +08:00 1
fe80 是本地地址,240 开头的是外网地址
|
3
unidotnet OP @maobukui pppoe 拨号后拿到的是 fe80 开头的,自己去获取 ipv6 才能拿到 240 开头的。
ipv6 的路由里 都写了 ::/0 gateway bridge 了 |
4
Archeb 2023-06-11 08:33:26 +08:00
你是一个路由器上有 2 个 IPv6 上游?这种情况你要根据源地址做策略路由让它选择正确的出口的。
我建议先拔掉另一个运营商,使用单运营商进行测试,没问题再做下一步。 |
5
Archeb 2023-06-11 08:37:07 +08:00
我的配置,供参考
/ipv6 firewall mangle add action=change-mss chain=forward new-mss=1420 out-interface-list=Public-Out \ passthrough=yes protocol=tcp tcp-flags=syn add action=mark-routing chain=prerouting in-interface-list=!Public-Out \ new-routing-mark=route6-ct passthrough=no src-address=240e::/18 add action=mark-routing chain=prerouting in-interface-list=!Public-Out \ new-routing-mark=route6-cu passthrough=no src-address=2408:8000::/20 add action=mark-routing chain=prerouting in-interface-list=!Public-Out \ new-routing-mark=route6-cmcc passthrough=no src-address=2409:8000::/20 /routing rule add action=lookup disabled=no routing-mark=route6-cu table=route6-cu add action=lookup disabled=no routing-mark=route6-cmcc table=route6-cmcc add action=lookup disabled=no routing-mark=route6-ct table=route6-ct /ipv6 route add disabled=no distance=1 dst-address=::/0 gateway=pppoe-cu2 routing-table=\ route6-cu scope=30 target-scope=10 add disabled=no distance=1 dst-address=::/0 gateway=pppoe-ct-163 routing-table=\ route6-ct scope=30 target-scope=10 add disabled=no distance=1 dst-address=::/0 gateway=pppoe-cmcc-3 routing-table=\ route6-cmcc scope=30 target-scope=10 |
6
duke807 2023-06-11 08:38:52 +08:00 via Android
最简单是:路由器当交换机,无线路由器当 AP 用
可以这样先排查一下 |
7
questionyu 2023-06-11 10:34:08 +08:00
拨号获得的 fe80::/128 地址其实可以理解为运营商先给你分配了一个 100.64.x.x/32 的地址,然后路由器再去获取一个 /60 的前缀可以理解为再去获取公网地址。你使用公网地址去访问外网的时候,其实可以理解为流量是走在 fe80 之上的,由 fe80 这个通道承载着上层的 240e:: 地址与互联网的通信。(我这里只是便于理解才这么类比的,实际情况不是这样的)
|
9
gearfox 2023-06-11 11:05:11 +08:00
|
10
unidotnet OP @Archeb 谢谢,我发现问题了,路由 ::/0 写电信的 pppoe out , 联通分流可以和您的配置差不多,就可以了。 不过用 firewall mark rule 再 look up table 有点消耗 cpu 哈。。
感谢感谢 但是问题又来了,dns 服务器对某些域名返回了 ipv6 地址,所以。。我连 V2EX 都上不上了。。 只能禁用 ipv6 了。。 |
11
unidotnet OP 好了搞定了,ipv6 route 设置只能访问电信 /联通 /移动 /腾讯云 /阿里云 /淘宝的 ipv6 地址, 别的都不能,解决,谢谢。
@Archeb |
12
Archeb 2023-06-11 17:57:47 +08:00 1
@unidotnet #10 直接用 /routing/rule 规则匹配 src 和 interface 其实也行,我只是习惯了用防火墙搞
|
13
unidotnet OP @Archeb 我现在只允许 ipv6 访问国内。
但是一个网卡上有电信和联通 2 个 ipv6 , 都能 ping 通, 但是为什么客户端会选择联通 v6 ip 出去而不是电信? |
14
Archeb 2023-06-12 07:26:53 +08:00
@unidotnet #13 客户端选择哪个 IP 出去,一般遵循 rfc3484 中的八条规则。在同一个接口上有多个 IP 地址的情况下,一般根据第八条规则 "Use longest matching prefix" (最长前缀匹配)来选择源地址。
你可以尝试一下,分别 tracert -6 www.189.cn 和 tracert -6 www.chinaunicom.com.cn 如果两个源地址都能正常工作,那么他们应该会分别使用电信和联通的源地址进行连接,如下图所示 |
16
alamak76 2023-06-12 09:36:10 +08:00
CGNAT 吗?
|
17
cnbatch 2023-06-13 16:58:35 +08:00
fe80 并不是运营商分配的,而是设备自己生成的。fe80 的地位相当于 IPv4 时期的 169.254.0.0/16 ,属于链路本地地址。
如果运营商想要分配 IPv6 内网地址,那顶多也只能选择 fd00 这个网段(说实话,十分不妥)。 fd00 相当于 IPv4 时期的 10.0.0.0/8 、172.16.0.0.0/12 、192.168.0.0/16 ,是可以自己在内网随便用的。 |
19
unidotnet OP @Archeb 另外问一下,为了安全性,我把非内网的 input 和 forward 都 drop 了, 那咋设置可以让 BT 的 peers 能从外面连进来?貌似只有我主动去连外面的 peers 才可以?
|
21
flynaj 2023-06-20 22:16:07 +08:00 via Android
routeros 用了很多年还是放弃了,IPv6 确实不如 openwrt 稳定。还有不可以安装其它软件。
|