Open miaotony opened 4 years ago
发现一位大佬
@wordlesswind Protocol 41 跟端口 41 是没有关系的,不需要放通端口 41,另外建议为
eth0
绑定Routed /64
静态地址:https://chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric/#TOC-Debian-to-LAN 因为Routed /64
地址可以配置 rDNS。
但是令我感到疑惑的是,该地址似乎没有路由,所以无法访问。而我能找到的所有教程(例如这一篇)都没有提到是否需要为其配置路由的问题🤔~~重启后又可以了( 果然重启能够解决 98% 的问题(~~
虽然外网能够 ping 通机器,但是机器无法通过
eth0
访问外网,烦(
查了一下,Protocol 41 跟端口 41 确实没关系,当时应该是参考了其他文章然后这么配的,后面我再确认一下。
路由的话应该是配置接口的时候就配好了的,您可以 ip -6 route
看看路由怎么走的,正确的话应该都是走 he-ipv6
接口出去的。
另外给 eth0
配置 Routed /64
静态地址应该不会影响上网吧... rDNS 是 HE 那边配的倒是了。
不知道说得对不对,有点不大明白您的问题(小声
@wordlesswind
@miaotony
@wordlesswind Protocol 41 跟端口 41 是没有关系的,不需要放通端口 41,另外建议为
eth0
绑定Routed /64
静态地址:https://chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric/#TOC-Debian-to-LAN 因为Routed /64
地址可以配置 rDNS。
但是令我感到疑惑的是,该地址似乎没有路由,所以无法访问。而我能找到的所有教程(例如这一篇)都没有提到是否需要为其配置路由的问题🤔~~重启后又可以了( 果然重启能够解决 98% 的问题(~~
虽然外网能够 ping 通机器,但是机器无法通过
eth0
访问外网,烦(查了一下,Protocol 41 跟端口 41 确实没关系,当时应该是参考了其他文章然后这么配的,后面我再确认一下。
路由的话应该是配置接口的时候就配好了的,您可以
ip -6 route
看看路由怎么走的,正确的话应该都是走he-ipv6
接口出去的。另外给
eth0
配置Routed /64
静态地址应该不会影响上网吧... rDNS 是 HE 那边配的倒是了。不知道说得对不对,有点不大明白您的问题(小声
哈哈,我的错,没有说清楚。我的需求是建立一个邮件发信服务器,所以需要配置 rDNS,并且由于只有
Routed /64
静态地址才能配置 rDNS,而Client IPv6 Address
不行,所以我必须通过Routed /64
静态地址建立连接。但是现在的情况是,外界可以ping
通eth0
绑定的静态地址,而机器却无法通过eth0
访问外界。以
curl www.qq.com
为例:curl -6 -I --interface he-ipv6 https://www.qq.com/ HTTP/1.1 200 OK Date: Thu, 23 Dec 2021 14:49:24 GMT Content-Type: text/html; charset=GB2312 Connection: keep-alive Server: squid/3.5.24 Vary: Accept-Encoding Vary: Accept-Encoding Expires: Thu, 23 Dec 2021 14:50:24 GMT Cache-Control: max-age=60 Vary: Accept-Encoding Vary: Accept-Encoding X-Cache: HIT from shenzhen.qq.com X-Frame-Options: SAMEORIGIN Content-Security-Policy: frame-ancestors https://*.qq.com X-Content-Type-Options: nosniff
he-ipv6
正常访问curl -6 -I --interface eth0 https://www.qq.com/ curl: (7) Couldn't connect to server
eth0
直接瞬间提示无法连接服务器至于
ip -6 route
2001:470:c:3a7::1 dev he-ipv6 metric 1024 pref medium 2001:470:c:3a7::/64 dev he-ipv6 proto kernel metric 256 pref medium 2001:470:d:3a6::/64 dev eth0 proto kernel metric 256 pref medium default dev he-ipv6 metric 1 pref medium default via 2001:470:c:3a7::1 dev he-ipv6 metric 1024 onlink pref medium
虽然默认通过
he-ipv6
,但如果我想上面那样选定eth0
进行连接,路由会通过he-ipv6
吗?我觉得现在的问题在这里。按这一篇 Debian, IPv6, and Hurricane Electric HOWTO 教程,我开启了net.ipv6.conf.all.forwarding = 1
。但是它似乎应该也不会默认转发?我对路由配置或者iptables
不太了解,现在也不知道是不是就是没有路由导致的问题。
既然都指定了特定的 eth0
接口,而它本身没有出去的路由,那按理说应该不会走到 he-ipv6
了啊(
你说的这篇文章应该是说给在当前设备后面的设备分配 IPv6,比如当前是路由器或者其他的网关设备,需要给内网的其他设备分 IPv6。
@wordlesswind
@miaotony
@wordlesswind Protocol 41 跟端口 41 是没有关系的,不需要放通端口 41,另外建议为
eth0
绑定Routed /64
静态地址:https://chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric/#TOC-Debian-to-LAN 因为Routed /64
地址可以配置 rDNS。 ~但是令我感到疑惑的是,该地址似乎没有路由,所以无法访问~。而我能找到的所有教程(例如这一篇)都没有提到是否需要为其配置路由的问题thinking ~重启后又可以了( 果然重启能够解决 98% 的问题(~ 虽然外网能够 ping 通机器,但是机器无法通过eth0
访问外网,烦(查了一下,Protocol 41 跟端口 41 确实没关系,当时应该是参考了其他文章然后这么配的,后面我再确认一下。 路由的话应该是配置接口的时候就配好了的,您可以
ip -6 route
看看路由怎么走的,正确的话应该都是走he-ipv6
接口出去的。 另外给eth0
配置Routed /64
静态地址应该不会影响上网吧... rDNS 是 HE 那边配的倒是了。 不知道说得对不对,有点不大明白您的问题(小声哈哈,我的错,没有说清楚。我的需求是建立一个邮件发信服务器,所以需要配置 rDNS,并且由于只有
Routed /64
静态地址才能配置 rDNS,而Client IPv6 Address
不行,所以我必须通过Routed /64
静态地址建立连接。但是现在的情况是,外界可以ping
通eth0
绑定的静态地址,而机器却无法通过eth0
访问外界。 以curl www.qq.com
为例:curl -6 -I --interface he-ipv6 https://www.qq.com/ HTTP/1.1 200 OK Date: Thu, 23 Dec 2021 14:49:24 GMT Content-Type: text/html; charset=GB2312 Connection: keep-alive Server: squid/3.5.24 Vary: Accept-Encoding Vary: Accept-Encoding Expires: Thu, 23 Dec 2021 14:50:24 GMT Cache-Control: max-age=60 Vary: Accept-Encoding Vary: Accept-Encoding X-Cache: HIT from shenzhen.qq.com X-Frame-Options: SAMEORIGIN Content-Security-Policy: frame-ancestors https://*.qq.com X-Content-Type-Options: nosniff
he-ipv6
正常访问curl -6 -I --interface eth0 https://www.qq.com/ curl: (7) Couldn't connect to server
eth0
直接瞬间提示无法连接服务器 至于ip -6 route
2001:470:c:3a7::1 dev he-ipv6 metric 1024 pref medium 2001:470:c:3a7::/64 dev he-ipv6 proto kernel metric 256 pref medium 2001:470:d:3a6::/64 dev eth0 proto kernel metric 256 pref medium default dev he-ipv6 metric 1 pref medium default via 2001:470:c:3a7::1 dev he-ipv6 metric 1024 onlink pref medium
虽然默认通过
he-ipv6
,但如果我想上面那样选定eth0
进行连接,路由会通过he-ipv6
吗?我觉得现在的问题在这里。按这一篇 Debian, IPv6, and Hurricane Electric HOWTO 教程,我开启了net.ipv6.conf.all.forwarding = 1
。但是它似乎应该也不会默认转发?我对路由配置或者iptables
不太了解,现在也不知道是不是就是没有路由导致的问题。既然都指定了特定的
eth0
接口,而它本身没有出去的路由,那按理说应该不会走到he-ipv6
了啊( 你说的这篇文章应该是说给在当前设备后面的设备分配 IPv6,比如当前是路由器或者其他的网关设备,需要给内网的其他设备分 IPv6。所以,我现在的问题是,如何将
eth0
上的 IPv6 流量,转发到he-ipv6
。又或者创建一条路由使得etho
的 IPv6 地址的下一跳为he-ipv6
。我尝试创建路由几次,均提示“没有路由到主机”。
curl --interface eth0
的具体影响是一个setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, "eth0")
,手册上说它会Bind this socket to a particular device
,根据这张经典的图,出站数据应该是不经过forward流程的,所以不会从eth0转发到he-ipv6(只有从eth0进来的包才会forward到he-ipv6)。
你给的那个Debian的教程中应该是把Routed /64
地址配置到了eth-lan
(我理解它是类似于路由器的lan口)、以及路由器下面的设备的eth0上,这样的话路由器底下的设备的包就会从eth-lan
进来的,然后经过forwarding到了he-ipv6
。
要满足你使用Routed /64
地址的需求,我觉得不应该在eth0上配Routed /64
地址,而应该给he-ipv6
配置一个Routed /64
的地址,这样he-ipv6
就有两个地址了,两个都能往外发包。为了让进程选择两个地址中Routed /64
的那个地址,你可以在路由表中指定src
参数,具体来说,删掉那条default dev he-ipv6
的路由,把它改成default dev he-ipv6 src <Routed /64 的静态地址>
就行了。
当然如果你非要将这两个地址分离到两个interface上,或者想要在traceroute上显示出两跳,我的建议是开个docker在里面配Routed /64
地址,在外面还是保持Client IPv6 Address,这样会方便很多。
https://miaotony.xyz/2020/03/03/Server_ObtainIPv6ViaTunnelBroker/
最近折腾了一下,利用Hurricane Electric提供的免费IPv6 Tunnel Broker,让阿里云的ECS拥有了IPv6地址(非原生)。