在我的 Ubuntu 系统上,IPv6 地址行为异常

在我的 Ubuntu 系统上,IPv6 地址行为异常

尝试在我的系统上运行 IPv6 的基本功能。如果我这样做:

sudo ip -6 address show enp2s0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2601:646:9780:4729:241b:3a90:ee0f:25f0/64 scope global temporary dynamic 
       valid_lft 319298sec preferred_lft 9212sec
    inet6 2601:646:9780:4729:966:9e4c:672d:15ca/64 scope global temporary deprecated dynamic 
       valid_lft 319298sec preferred_lft 0sec
    inet6 2601:646:9780:4729:550e:60d0:d47:d8a4/64 scope global temporary deprecated dynamic 
       valid_lft 319298sec preferred_lft 0sec
    inet6 2601:646:9780:4729:e9c:5834:f3dd:e05b/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 319298sec preferred_lft 319298sec
    inet6 fe80::ce93:ee7e:7c15:2a67/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

看起来我有 ipv6 地址,对吗?

我也能 ping 我自己:

ping 2601:646:9780:4729:241b:3a90:ee0f:25f0
PING 2601:646:9780:4729:241b:3a90:ee0f:25f0(2601:646:9780:4729:241b:3a90:ee0f:25f0) 56 data bytes
64 bytes from 2601:646:9780:4729:241b:3a90:ee0f:25f0: icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from 2601:646:9780:4729:241b:3a90:ee0f:25f0: icmp_seq=2 ttl=64 time=0.051 ms

但是,如果我尝试使用 IPv6 ping 外部世界的某些东西,它是不工作的:

addr www.example.com
Addresses for host: www.example.com
Address: type: AF_INET Socket type: SOCK_STREAM Address: 93.184.216.34
Address: type: AF_INET Socket type: SOCK_DGRAM Address: 93.184.216.34
Address: type: AF_INET Socket type: SOCK_RAW Address: 93.184.216.34
Address: type: AF_INET6 Socket type: SOCK_STREAM Address: 2606:2800:220:1:248:1893:25c8:1946
Address: type: AF_INET6 Socket type: SOCK_DGRAM Address: 2606:2800:220:1:248:1893:25c8:1946
Address: type: AF_INET6 Socket type: SOCK_RAW Address: 2606:2800:220:1:248:1893:25c8:1946

ping 93.184.216.34
PING 93.184.216.34 (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=10.2 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=9.92 ms

ping 2606:2800:220:1:248:1893:25c8:1946
connect: Network is unreachable

我在这里做错了什么?

答案1

您有 IPv6 地址,但不一定是 IPv6默认路由。 查看ip -6 r

默认路由(以及基于 SLAAC 的 LAN 寻址)使用广播 ICMPv6 路由器通告数据包进行分发。可能是您的路由器之前拥有 IPv6 访问权限,但后来丢失了,或者出于其他原因没有将自己通告为默认网关,尽管它仍然具有公共地址前缀。

运行sudo rdisc6 enp2s0以查看路由器广播的 RA 的内容 - 确保其“路由器寿命”设置为非零数字(通常为 1⁄2h 或更大)。该工具通常位于“ndisc6”包中。


附注:带有“临时”标志的地址每 10 小时会更改一次 - 它们是用于所有传出连接的 RFC 4941“隐私扩展”地址。(在列表中,您已经有两个“过期”地址。)如果您需要一个有用的地址传入连接,请使用..e05b旁边没有“临时”的连接 - 它将始终为这台计算机保持静态。(旁边的“mngtmpaddr”不是问题。)

相关内容