1
Earsum 137 天前 7
恭喜你,会自问自答了
|
2
adrianzhang OP @Earsum 好吧,谢谢!
|
3
bao3 137 天前 1
先在家里放一台固定的服务器,它成为中转,然后在路由器的 ipv6 里把它的 EUI-64 地址放通,也就是你说得后缀。
然后它有上面跑 ddns ,把域名注册为自己的 ipv6 。这样你家里其他的 ipv6 设备,也通过这台服务器来反代,最终达到通过域名,访问家里所有的 ipv6 设备。又省去了配置 ipv6 防火墙的麻烦。
|
4
mrl1996 137 天前
我记忆中路由器可以指定前缀拨号,设备可以指定 ipv6 拨号。这样问题是不是迎刃而解
|
5
adrianzhang OP |
6
adrianzhang OP |
7
HughRyu 137 天前
PPPOE 拨号,光猫要改成双栈或者桥接之后,路由器拨号,防火墙开放 IPV6 。
DDNS 域名 更新 AAAA 记录,外部访问域名通过 IPV6 解析。 |
8
adrianzhang OP @HughRyu
PPPoE 拨号,内网多台设备。这种情况,我查资料是说 DHCPv6 不太合适,因为它有个租约问题,推荐是用 SLAAC ,主动下发前缀,设备可以固定后缀。那么 DDNS 也是存在租约,该如何解决呢? 而且我上面提到的内网服务问题。举例:内部建立一个 web ,v4 时代可以建立内网 DNS ,指向私网地址,假设外部端口啥的都放开了,在外部是公网地址,外部 DNS 上用 DDNS 对应公网 IP ,这样无论从内外都可以用同样的域名去访问这个 web 。v6 的话,怎么做呢?内网一个 DNS 指向该设备的 v6 私网地址,外网 DNS 指向它的 v6 公网地址?也就是上一段的 DDNS 租约问题又是怎么解决的? |
9
vibbow 136 天前
|
10
duduke 136 天前 via iPhone 1
ddns 会有问题,比如刚重启的那段时间会失联,我会在 ddns 之外生成一个小火箭订阅,用 argo tunnel 开放出来
|
11
titanium98118 136 天前
wireguard 回去,继续用 ipv4 访问
|
12
Hhehepei 136 天前 via Android 1
@adrianzhang 根据 rfc4193 4.6 节中的规定,对于一个既可以在站点内部也可以在站点外部访问节点,它的 dns 应该指向这个节点的公网地址。对于本地 dns ,在指向它的公网地址之余可以同时指向它的私网地址。
我猜这应该就是最佳实践了? |
13
cwek 136 天前
固定后缀的话,可以查 ip -6 addr 查出带 dynamic mngtmpaddr noprefixroute 那个地址出来,然后域名直接用 DDNS 更新就好了
|
15
987N 136 天前
ddns v6 到 wireguard 上,继续 v4
|
16
adrianzhang OP @vibbow 嗯,这种方式就如同 v4 一样了。
|
17
adrianzhang OP @Hhehepei 但是这样的话,配置 DNS 服务器时就有个问题,使用不使用 SLAAC 。例如 Pi-hole ,如果开启 SLAAC ,都指向公网地址,没问题。可是私网地址并不存在动态指定。如果同时指向公网和私网地址,那这个 SLAAC 开不开?或者,得等待 DNS 服务器软件更新功能/给它打补丁/换更灵活支持的 DNS 软件?
|
18
adrianzhang OP @cwek 查资料指的就是这个 dynamic mngtmpaddr noprefixroute ,它会随着每次拨号变化。实践中变不变?
|
19
adrianzhang OP @luny 看了一下它的实现方式是客户端定期上报,TTL 可设定在 30sec ,传统的 DDNS 方式。可能 SLAAC 变化不是很剧烈,大概我多虑了……还得做点实验看看。
|
20
Internet0User 136 天前 via Android
推荐 GitHub 上的开源 DDNS 的项目 ddns-go
项目地址: https://github.com/jeessy2/ddns-go#%E7%B3%BB%E7%BB%9F%E4%B8%AD%E4%BD%BF%E7%94%A8 |
21
cwek 136 天前 1
@adrianzhang
肯定会变,只是这个帮你从一堆 v6 中找到那个固定后缀的地址。 如果有配置 ULA 的话,或者可以考虑 NPT ,允许路由将外网的网络段平行 NAT 到 ULA 地址段,这样内网机器 ULA 地址完全固定。 |
22
adrianzhang OP @cwek 好的,我先按你给的这些线索查查看。
|
23
Hhehepei 136 天前 via Android
@adrianzhang 开啊,开了无状态 ipv6 之后,设备的后缀是固定的,对于私网地址,你下发一个固定的前缀就好,这样私网地址就是固定的了,对于公网地址的话,就像楼上说的那样定期检查然后上报就好,反正对于家宽来说下发的前缀一般就是一两周才变一次
|
24
adrianzhang OP @Hhehepei 好的,谢谢!
|
25
charley008 136 天前
ddns-go 不就很完美解决你的问题了吗?
要么通过命令要么通过网卡。 ip addr | grep 'inet6 240[89e].*/64' |grep -m1 '' | awk -F '[ \t]+|/' '{print $3}' ip addr show ovs_eth0 | grep "inet6.*global"| awk -F '[ \t]+|/' '{print $3}' | grep -m1 ''|awk -F ':' '{print $1":"$2":"$3":"$4":f6a9:97ff:fed1:7897"}' |
26
adrianzhang OP @charley008 目前我的 LAN 里有几十个机器,并有内网 DNS ,访问这些机器全靠域名,一部分域名跟外网域名相同。改成 v6 ,用 DDNS ,就很头疼。每个机器安装 ddns 客户端,建立多个条目不说,最重要的是 IP 变化。
|
27
charley008 135 天前
@adrianzhang ddns-go 不是可以多建很多个配置吗?我就是 6-7 个域名使用同一个 ddns-go 来配置.只要后缀不变就好办
|
28
adrianzhang OP @charley008 #27 我理解 ddns-go 建多个配置跟我这个问题无关啊。
举例来说:IPv4 情况下,30 台 Linux 服务器,通过内网 DNS ,指定 server1.domain.com~server30.domain.com ,然后电脑就用域名访问它们。这种情况下,服务器用固定的私网地址( 192.168.x.x ),在内网 DNS 上建立对应的映射就好了。其中 server30.domain.com 在外网也要用,那么外网上设立的权威 DNS 就把 server30.domain.com 指定为公网 IP 。 好了,现在 IPv6 了,这 30 个服务器的地址都是动态更新的,如果用 DDNS ,30 台电脑上都得安装 DDNS 客户端,这样内网电脑访问它们才能用域名,当然外网访问也用同样的域名就可以了。DDNS 有个 TTL 对吧,当 IPv6 发生变化的时候,DDNS 可能存在更新不及时问题,那么此时内网的电脑用域名去访问这些内网服务器,就会出现连接故障。 所以这个问题,上面有回复说用小火箭的,有说设置私网地址 v6 的,有说通过 xxx 能够把私网地址固定的。终究就是要解决一个问题,私网内域名和地址的及时对应。 |
29
adrianzhang OP @charley008 #27 补充一下,你给出的代码相当于一个 DDNS 客户端的作用。那么在我给出的这个例子中,每台服务器都要这么设置一下对吧。
|
30
lxcopenwrt 135 天前
我是直接在跑 NGINX 的虚拟机上用 DDNS-GO 更新不用 op 自带的 ddns
|
31
adrianzhang OP @lxcopenwrt #30 嗯,一个的话还算可以考虑这么干,如果有几十个 nginx, db, redis, k8s, webdav..... DDNS 会痛苦死的,尤其是还存在更新不及时的问题,单独一个服务更新不及时问题不大,内网要全用域名来访问服务的话,就乱了。
|
32
lxcopenwrt 135 天前
@adrianzhang 可以考虑使用 nginx 的 tcp/udp 转发,外网只访问一台机器的 nginx 就够了,其他机器通过访问这台机器的 IPv6 不同端口然后通过 nginx 转发到其他机器的内网 IPv4 端口即可,http 内容就更简单了直接反代一下不就行了
|
33
adrianzhang OP @lxcopenwrt #32
我的场景是内网也用域名联络。Nginx 一台机器,MySQL 另一台机器,这两个机器用域名互相访问,如 web.doamin.com 和 db.domain.com 。 |
34
lxcopenwrt 135 天前
@adrianzhang 内网直接用静态 IPv4 不就行了,实在想用域名 ddns 那边也可以设置指向一个内网 IP ,如果非要指向公网 IPv6 这种非主流那确实没什么好的方案
|
35
charley008 135 天前 via iPhone
@adrianzhang 就一台,不需要每一台。这 ipv6 动态变化 基本没办法符合你的要求。话说你都有自己域名了,真内网的话多加一个子域名不就行了。比如 web.domain.com 用 ipv4 内网,web6.domain.com 只用 ipv6 。无非多设置一次而已
|
36
LnTrx 135 天前 1
先确认一下家宽 IPv6 前缀的变动频率,部分地区很长时间才更新,DDNS 空档期就不是大问题。
如果各设备后缀不随前缀变化,可以在公网地址的同时解析一个链路本地地址或者唯一区域地址,这样前缀变化不影响局域网连接。 |
37
Atomo 95 天前
内网 30 台设备 v6 后缀固定的话,可以在某一台设备上用
http://ipv6.ddnspod.com/prefix/:1 http://ipv6.ddnspod.com/prefix/:2 http://ipv6.ddnspod.com/prefix/:3 http://ipv6.ddnspod.com/prefix/:4 来批量更新 ip 地址,详情 www.ddnspod.com |