Некоторое время я борюсь с настройкой IPv6 в моем Ubuntu VPS. Я следил за многими руководствами по этому вопросу, но ни один из них не помог мне. Проблема в том, что когда я использую одноразовую конфигурацию в консоли:
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 eth0
(eth0
это мой интерфейс):
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.
Большое спасибо за вашу помощь, и я буду рад предоставить дополнительную информацию, если потребуется.
Формат указания псевдонима сетевого интерфейса как interface:number
был устарел в Linux в течение многих лет и больше не должен использоваться (поскольку устарел, он может быть удален в будущем). Сегодня все IP-адреса, которые могут вам понадобиться, добавляются непосредственно в интерфейс без использования псевдонимов.
Итак, вам нужно изменить eth0:0
к eth0
. (И 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-адреса или на прослушивание всех адресов, в зависимости от ситуации.