Ubuntu

無法在 Ubuntu 18.04 中正確配置 IPv6

  • August 8, 2020

我在 OVH 上有一個雲實例,可以通過 IPv4 訪問,但不能通過 IPv6 訪問。它執行的是 Ubuntu 18.04。我發現有關使用 netplan 與直接配置 systemd-networkd 的建議相互矛盾,但我嘗試過的所有事情似乎都沒有任何效果。

在 OVH 的 Web 界面中,我為我定義了這些地址:

IPv6:2607:5300:201:2100::5d4

網關:2607:5300:201:2100::1

根據我讀過的指南,我已經像這樣配置了 netplan:

/etc/netplan/90-ipv6.yml

network:
   ethernets:
       ens3:
           match:
               macaddress: fa:16:3e:53:64:ce
           set-name: ens3
           addresses:
               - 2607:5300:201:2100::5d4/64
           gateway6: 2607:5300:201:2100::1
           nameservers:
               addresses:
                   - 2001:41d0:3:163::1

   version: 2

和 systemd-networked 像這樣:

/etc/systemd/network/10-ens3.network

[Match]
Name=ens3

[Network]
DHCP=ipv4
Gateway=2607:5300:201:2100::1
DNS=2001:41d0:3:163::1
Destination=2607:5300:201:2100::1

[Address]
Address=2607:5300:201:2100::5d4/64

[Route]
Destination=2607:5300:201:2100::1
Scope=link

我的ip addr輸出如下所示:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether fa:16:3e:53:64:ce brd ff:ff:ff:ff:ff:ff
   inet 54.39.191.97/32 scope global dynamic ens3
      valid_lft 85848sec preferred_lft 85848sec
   inet6 2607:5300:201:2100::5d4/0 scope global
      valid_lft forever preferred_lft forever
   inet6 fe80::f816:3eff:fe53:64ce/64 scope link
      valid_lft forever preferred_lft forever

我可以 ping 網關並得到響應。但是,我無法通過 IPv6 從任何其他位置從伺服器獲得響應,並且ping6 google.com來自該伺服器的結果是:

PING google.com(yul02s05-in-x0e.1e100.net (2607:f8b0:4020:805::200e)) 56 data bytes
From [hostname] (2607:5300:201:2100::5d4) icmp_seq=1 Destination unreachable: Address unreachable
...
--- google.com ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4085ms

我唯一沒有嘗試過的是重新啟動伺服器,因為它是實時的,我真的不想這樣做。

我錯過了什麼?我真的不知道我在做什麼,所以這可能是非常明顯的事情。

謝謝!

**編輯:**將前綴更新為 /64。此配置也不起作用。

不幸的是,我實際上通過更改我在問題中未列出的內容來解決此問題。

在遵循使用 netplan 設置 IPv6 的指南時,我編輯了我的 netplan 配置,將 IPv4 地址配置也包含在一個單獨的現有文件50-cloud-init.yaml中。雖然地址與我的實例提供的 IP 匹配,但它們肯定與其他地方的其他配置發生衝突,這是我問題的根源(我相信/0在輸出中看到ip addr確實表明存在問題)。

從我的 netplan 配置中刪除 IPv4 地址和網關值,以便我設置的唯一內容是 IPv6 地址和網關,並應用新配置,解決了這個問題。

對於任何最終陷入這種情況的人,我發現的這篇博文準確地描述了需要改變的地方。

OVHcloud VPS 的正確 IPv6 前綴是 /64,而不是 /128 或 /0。

引用自:https://serverfault.com/questions/1029072