Ubuntu

在 Ubuntu 中配置 IPv6 失敗 - OVH VPS

  • January 5, 2018

一段時間以來,我一直在為我的 Ubuntu VPS 中的 IPv6 配置而苦苦掙扎。我遵循了很多關於這個問題的教程,但沒有一個對我有用。問題是,當我在控制台中使用一次性配置時:

ip addr add 2001:41D0:401:3000::XXXX/128 dev eth0
ip -6 route add 2001:41D0:401:3000::1 dev eth0
ip -6 route add default via 2001:41D0:401:3000::1 dev eth0

一切正常(當然,我將 IP 的最後一部分替換為XXXX)。但是,當我嘗試將這些放入我的/etc/network/interfaces. 時,重新啟動後我只剩下自動配置 IPv6 地址。無論我試圖進入這個文件,我得到的ip addr show eth0eth0是我的界面)是:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
   link/ether fa:16:3e:7e:48:85 brd ff:ff:ff:ff:ff:ff
   inet 164.132.XXX.XXX/32 brd 164.132.XXX.XXX scope global eth0
      valid_lft forever preferred_lft forever
   inet 145.239.XXX.XXX/32 brd 145.239.XXX.XXX scope global eth0:0
      valid_lft forever preferred_lft forever
   inet6 fe80::f816:3eff:fe7e:4885/64 scope link
      valid_lft forever preferred_lft forever

我有 2 個 IPv4 地址,它們都可以工作,但我也想擁有 IPv6。我有一個由 OVH 分配的。

這是我的/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
       address 164.132.XXX.XXX
       netmask 255.255.255.255
       post-up /sbin/ip route add 164.132.XXX.1 dev eth0
       post-up /sbin/ip route add default via 164.132.XXX.1
       post-up /sbin/ifconfig eth0:0 145.239.XXX.XXX netmask 255.255.255.255 broadcast IP_FAIL_OVER
       pre-down /sbin/ifconfig eth0:0 down
       pre-down /sbin/ip route del default via 164.132.XXX.1
       pre-down /sbin/ip route del 164.132.XXX.1 dev eth0
       dns-nameserver 213.186.33.99
       dns-search ovh.net
iface eth0 inet6 static
       address 2001:41D0:401:3000::XXXX
       netmask 128
       post-up /sbin/ip -6 route add 2001:41D0:401:3000::1 dev eth0
       post-up /sbin/ip -6 route add default via 2001:41D0:401:3000::1 dev eth0
       pre-down /sbin/ip -6 route del default via 2001:41D0:401:3000::1 dev eth0
       pre-down /sbin/ip -6 route del 2001:41D0:401:3000::1 dev eth0

auto eth0:0
iface eth0:0 inet static
   address 145.239.XXX.XXX
   netmask 255.255.255.255

我也嘗試像這樣添加 IPv6:

iface eth0 inet6 static
address 2001:41D0:401:3000::XXXX
netmask 128
gateway 2001:41D0:401:3000::1

並使用完整的(擴展的)IP 地址,但沒有任何成功。

還添加了

net.ipv6.conf.eth0.autoconf=0
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.accept_ra=0

到我的 sysctl.conf,正如 OVH 教程和其他一些建議的那樣,但它並沒有改變任何東西,無論它是否存在。

在每次檢查之間我重新啟動了整台機器,以確保所有配置都被重新載入,並且service networking restart失敗了

sty 04 15:54:21 vpsXXXXXX.ovh.net ifup[2426]: RTNETLINK answers: File exists
sty 04 15:54:21 vpsXXXXXX.ovh.net ifup[2426]: Failed to bring up eth0.
sty 04 15:54:21 vpsXXXXXX.ovh.net ifup[2426]: RTNETLINK answers: File exists
sty 04 15:54:21 vpsXXXXXX.ovh.net ifup[2426]: Failed to bring up eth0:0.
sty 04 15:54:21 vpsXXXXXX.ovh.net systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
sty 04 15:54:21 vpsXXXXXX.ovh.net systemd[1]: Failed to start Raise network interfaces.

非常感謝您的所有幫助,如果需要,我很樂意提供更多資訊。

指定網路介面別名的格式在 Linux 中interface:number棄用多年,不應再使用(已棄用,將來可能會刪除)。今天,您可能需要的所有 IP 地址都直接添加到介面中,無需別名。

因此,您需要更改eth0:0eth0. (並且auto eth0只需要出現一次。)您目前擁有:

auto eth0:0
iface eth0:0 inet static
   address 145.239.XXX.XXX
   netmask 255.255.255.255

這應該是:

iface eth0 inet static
   address 145.239.XXX.XXX
   netmask 255.255.255.255

應將配置為使用舊式介面別名的應用程序設置為使用相應的 IP 地址,或酌情偵聽所有地址。

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